Saltearse al contenido

Formularios - Captura de datos

El sistema de formularios permite crear formularios de captura de datos que pueden disparar workflows o ser presentados dentro de la ejecucion de un workflow. Esta compuesto por dos modulos principales:

  • FormTrigger: Inicia un workflow a partir del envio de un formulario.
  • FormRender: Genera y muestra formularios dentro de un workflow en ejecucion.

Form Trigger - Iniciar workflow desde formulario

Sección titulada «Form Trigger - Iniciar workflow desde formulario»

Es un trigger que inicia el workflow cuando se envia un formulario. Funciona de manera similar al webhook, pero incluye metadata de formulario adicional.

Los datos recibidos incluyen:

{
"campo1": "valor",
"_request": { "method": "POST", "timestamp": "...", "source": "form" },
"_form": { "form_id": "1", "form_name": "Registro", "form_fields": [...] }
}

Soporta flujo OTP (One-Time Password) para verificacion de identidad del usuario antes de procesar el envio.


Form Render - Mostrar formularios en el flujo

Sección titulada «Form Render - Mostrar formularios en el flujo»

Genera un formulario pre-poblado con datos del workflow. Dispone de tres modos de salida:

  • url: Retorna una URL para acceder al formulario (modo por defecto).
  • html: Retorna HTML embebible directamente en una pagina o correo.
  • redirect: Redirige al usuario al formulario automaticamente.

Utiliza sesiones temporales con una duracion de 24 horas para pre-llenar los campos del formulario. La tabla form_prefill_sessions almacena estos datos temporales hasta su expiracion.


Permite pre-llenar campos del formulario con datos provenientes del workflow. Se utilizan variables dinamicas para referenciar valores de nodos anteriores o variables del workflow:

{
"email": "{{@Webhook.email}}",
"nombre": "{{@HTTP_Request.data.name}}",
"empresa": "{{var.empresa_nombre}}"
}

De esta forma, cuando el usuario accede al formulario, los campos indicados ya contienen los valores correspondientes.


ParametroTipoDescripcion
form_idtextID del formulario a renderizar
field_mappingjsonMapeo de campos con variables dinamicas
output_typeselecturl, html, redirect
redirect_after_submitbooleanRedirigir despues de enviar
custom_titletextTitulo personalizado (soporta variables)
custom_descriptiontextareaDescripcion personalizada

Las tablas principales involucradas son:

  • forms: id, name, description, form_json, settings, public_hash
  • form_prefill_sessions: session_hash, form_id, prefill_data, expires_at (24h)
  • form_submissions: Almacena las respuestas enviadas por los usuarios

Webhook (recibe datos parciales del CRM)
-> HTTP (consultar datos adicionales)
-> FormRender (pre-llenar formulario de registro)
-> [Usuario completa el formulario]
FormTrigger (recibe formulario completado)
-> DataStore (guardar cliente)
-> SendMail (enviar confirmacion)
-> End

En este flujo, se reciben datos iniciales desde un CRM via webhook, se enriquecen con una consulta HTTP externa, y se genera un formulario pre-llenado para que el usuario complete la informacion faltante. Una vez enviado el formulario, un segundo workflow almacena los datos y envia un correo de confirmacion.


FormTrigger (solicitud de vacaciones)
-> SetVariable (guardar solicitud)
-> SendMail (notificar al manager)
-> FormRender (formulario de aprobacion para manager)
-> [Manager aprueba/rechaza]
FormTrigger (respuesta del manager)
-> Decision (aprobado?)
-> true: SendMail (notificar aprobacion)
-> false: SendMail (notificar rechazo)
-> End

En este caso, un empleado envia una solicitud de vacaciones mediante un formulario. El sistema notifica al manager y le presenta un formulario de aprobacion. Segun la respuesta del manager, se notifica al empleado si la solicitud fue aprobada o rechazada.