Estructura del eventos de registros de formulario - inData Workflow

Estructura del eventos de registros de formulario - inData Workflow

Cuando configuras una automatización para Formularios con la acción "Al crear un registro", el flujo se ejecuta cada vez que se crea un nuevo registro (solución) de un formulario —desde la app móvil o desde la web—. En este artículo se explica qué información llega al flujo y qué nombres de campo usar en el diseñador para conectar los datos entrantes.

Para probar el evento sin afectar producción puedes usar el simulador de eventos: en la configuración de simulación elige Módulo: Formularios, Acción: Al crear un registro y, si quieres, Formulario (opcional) para acotar a un formulario concreto. El flujo que indiques en "Workflow" recibirá el evento de prueba con la misma estructura que se describe aquí.


Visión general

El flujo recibe un único objeto llamado my_info, con esta estructura:

{
"my_info": {
"meta": { ... },
"data": {
"subject": { ... },
"form_id": ...,
"local_id": ...,
"result": { ... },
...
}
}
}
  • meta: Metadatos del evento: identificador único del evento, fecha y hora, cuenta, módulo (formularios), acción (crear_registro), entity_id (identificador del formulario cuando la regla está asociada a un formulario concreto) e identificador del flujo.
  • data.subject: Tipo de registro ("solution") e identificadores del registro: form_idlocal_idrecord_id.
  • data (además de subject): Incluye los datos del registro creado: form_idlocal_idaccount_idtype_wfrecord_idrecord_code, fechas de envío en formato legible (start_atsend_atsent_atts), result (objeto con las respuestas del formulario por nombre de campo), useruser_email, sucursal (cuando aplica), y otros campos útiles. Las fechas se envían en la zona horaria de tu cuenta.

Si el sistema no puede recuperar el registro (por ejemplo porque form_id o local_id no se enviaron o no existen), data tendrá solo subject y el resto de campos no estarán presentes o vendrán vacíos.


Estructura general (qué verás en el diseñador)

En el diseñador del flujo verás la jerarquía my_info → meta y data; dentro de data, el bloque subject y el resto de campos del registro (form_id, local_id, result, etc.) al mismo nivel. Los nombres que se listan abajo son los que debes usar al conectar los datos entrantes en un paso del flujo.


Cuándo llegan los datos del registro

El evento "Al crear un registro" se dispara cuando la aplicación (móvil o web) indica que se ha creado un nuevo registro de un formulario. Para que el flujo reciba los datos completos del registro (respuestas, fechas, usuario, sucursal, etc.), el evento debe enviar subject.form_id y subject.local_id. Con esos datos el sistema consulta el registro y rellena data con la información en formato legible. Si no se envían o no se encuentra el registro, data contendrá solo subject con los identificadores básicos.


Contenido de meta

En todos los casos meta incluye:

  • event_id: identificador único de esta ejecución del evento (para trazabilidad).
  • occurred_at: fecha y hora del evento (si la aplicación la envía).
  • id_account: identificador de tu cuenta (tenant).
  • module: módulo que disparó la automatización (formularios).
  • action: acción concreta; para este evento será crear_registro.
  • entity_id: identificador del formulario cuando la automatización está asociada a un formulario concreto; si no, puede ser null.
  • flow_id: identificador del flujo que se está ejecutando.

Contenido de data.subject

data.subject incluye:

  • type: tipo de registro; para formularios será "solution".
  • form_id: identificador del formulario (id_survey_base).
  • local_id: identificador local del registro recién creado (el que identifica ese envío en el formulario).
  • record_id: identificador interno de la solución (id_survey_solution o equivalente), si se envió en el evento.

Contenido de data (datos del registro creado)

Cuando el sistema puede recuperar el registro, data incluye además de subject los siguientes campos. Los que no existan o no apliquen pueden llegar vacíos o nulos.

Identificación y contexto

  • form_id: identificador del formulario.
  • local_id: identificador local del registro.
  • account_id: identificador de la cuenta.
  • type_wf: tipo de workflow (por ejemplo "Solution").
  • record_id: identificador interno de la solución.
  • record_code: código del registro (si existe).
  • version: versión del documento (si existe).

Fechas (en zona horaria de tu cuenta)

  • start_at: fecha y hora de inicio del envío (formato legible).
  • send_at: fecha y hora en que se envió (formato legible).
  • sent_at: fecha y hora de envío registrada (formato legible).
  • ts: timestamp de envío en formato legible.

Usuario y origen

  • user: usuario que creó/envió el registro (si se registró).
  • user_email: correo del usuario (si existe).
  • source: origen del envío (móvil, web, etc.), si se registra.

Respuestas del formulario

  • result: objeto plano con las respuestas del formulario. Cada clave es el nombre del campo (saneado, sin caracteres especiales); el valor es la respuesta. Por ejemplo: result.nombre_contactoresult.sucursalresult.observaciones. Si el formulario tiene subformularios (tablas repetibles), esas partes vienen como array de objetos para que puedas recorrerlas en el flujo. El campo sucursal (cuando existe) se envía como nombre de la sede, no como ID, para que puedas usarlo directamente en mensajes o condiciones.

Ubicación y datos adicionales

  • geolocation: datos de geolocalización en el momento del envío (si se capturaron).
  • coords: coordenadas (si existen).
  • coords_delta: variación de coordenadas (si se registra).
  • homework: identificador de asignación si el registro está vinculado a una (opcional).
  • is_homework_local: si es envío local de una asignación (opcional).
  • solution_data: datos crudos adicionales del documento (si el sistema los expone).

Las rutas de archivos que correspondan a almacenamiento interno del dispositivo se sustituyen por un texto genérico por seguridad; el resto de valores de las respuestas llega tal como se guardó.


Resumen rápido

  • Estructura: my_info con meta (información del evento) y data (subject + datos del registro cuando se puede recuperar). Usa los nombres de campo indicados arriba en el diseñador del flujo.
  • Evento "Al crear un registro": se dispara al crearse un nuevo registro del formulario. Para recibir datos completos, el evento debe incluir form_id y local_id en subject.
  • data.result: contiene las respuestas del formulario por nombre de campo; result.sucursal viene como nombre de la sede cuando aplica.
  • Fechas: start_atsend_atsent_atts en formato legible y en la zona horaria de tu cuenta.
  • Para probar sin afectar producción: usar el simulador con Módulo Formularios, Acción "Al crear un registro" y opcionalmente un Formulario concreto.
    • Related Articles

    • Estructura del eventos de asignaciones - inData Workflow

      Cuando configuras una automatización para Asignaciones (por ejemplo “Al realizar una asignación” o “Al vencimiento de una asignación”), el flujo recibe un conjunto de datos con una estructura fija. Conocer esa estructura te ayuda a configurar los ...
    • Estructura del eventos de asistencia - inData Workflow

      Cuando configuras una automatización para Asistencia (por ejemplo “Hora entrada tardía”, “Marcación de asistencia programada”, etc.), el flujo recibe información del evento y, si el evento está asociado a un registro concreto (reporte de horas o ...
    • Estructura del eventos de rondas internas - inData Workflow

      Cuando configuras una automatización para Rondas Interna (por ejemplo "Al marcar un punto", "Al marcar un punto con fraude de umbral", "Al completar una ronda", "Al vencimiento de una ronda", etc.), el flujo recibe datos de la ronda y, según el tipo ...
    • Cómo usar el Simulador de eventos de workflow

      ¿Para qué sirve el simulador? El simulador sirve para probar un flujo como si hubiera ocurrido un evento real (un registro nuevo de formulario, una marcación de asistencia, una asignación realizada, un punto de ronda marcado, etc.), pero sin que ese ...
    • Ejemplo de automatización para confirmar asistencia

      En este ejemplo se presenta un flujo de referencia para la confirmación de asistencia en puesto del personal operativo. El objetivo es mostrar el funcionamiento de los nodos de inData Workflow aplicados a: Envío de mensajes por WhatsApp Envío de ...