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 novedad), todos los datos de esa marcación o novedad. En este artículo se explica qué información llega para que puedas usarla en el diseño del flujo sin necesidad de conocer detalles técnicos.
Visión general
El flujo recibe un único objeto llamado my_info, con esta estructura:
{
"my_info": {
"meta": { ... },
"data": {
"subject": { ... },
"novelty": { ... }
}
}
}
- meta: Metadatos del evento: identificador único del evento, fecha y hora, cuenta, módulo, acción, identificador del puesto cuando el evento está asociado a un puesto concreto (entity_id), e identificador del flujo.
- data.subject: Tipo de registro (en asistencia será "novelty") e identificadores: record_id es el ID de la novedad o del reporte de horas cuando el evento está asociado a un registro concreto.
- data.novelty: Datos de la marcación o novedad: empleado, puesto, cliente, sede, zona, horarios, resumen del día, estado del puesto, detalle de la marcación y, si aplica, análisis de fraude. Solo se rellena cuando el evento está asociado a un reporte de horas o a una novedad concreta; si no, data.novelty se envía con muchos campos en
null.
Estructura general (qué verás en el diseñador)
En el diseñador del flujo verás esta misma jerarquía: el objeto principal my_info, dentro de él meta y data, y dentro de data los bloques subject y novelty. Los mismos nombres de campo que se listan abajo son los que usarás al conectar los datos entrantes en un paso del flujo.
Cuándo llegan los datos completos
Si la automatización se dispara a partir de un reporte de horas o de una novedad concreta (por ejemplo porque en la regla indicaste un puesto o porque el evento viene asociado a ese registro), data.novelty vendrá rellenado con la información de ese registro (empleado, puesto, sede, horarios, resumen del día, estado del puesto, detalle de la marcación, etc.). Si no, data.novelty tendrá solo los datos básicos del evento y el resto de campos en null.
Todas las fechas y horas que recibe el flujo están en la zona horaria configurada para tu cuenta en inData.
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 (en la zona horaria de la cuenta; si la aplicación no la envía, se usa la hora de la novedad o marcación).
- id_account: identificador de tu cuenta (tenant).
- module: módulo que disparó la automatización (asistencia).
- action: acción concreta (por ejemplo hora_entrada_tardia, marcacion_asistencia_programada, etc.).
- entity_id: identificador del puesto cuando el evento está asociado a un puesto 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 asistencia será "novelty".
- form_id: identificador del formulario si aplica (opcional).
- local_id: identificador local del registro si aplica (opcional).
- record_id: identificador de la novedad (
id_account_novelty) o del reporte de horas (id_check_in_check_out) cuando el evento está asociado a un registro concreto.
Contenido de data.novelty
Cuando el evento está asociado a un reporte de horas o a una novedad, data.novelty contiene la información de ese registro. Los campos que no existan o no apliquen pueden llegar vacíos o nulos. Puedes usar estos nombres exactos en el diseñador del flujo.
Sobre la novedad o el evento
- id_account_novelty: identificador de la novedad (cuando el registro es una novedad).
- novelty_datetime: fecha y hora de la novedad o de la marcación (zona de la cuenta).
- novelty_type / novelty_name: tipo y nombre de la novedad en texto legible (por ejemplo "Hora entrada tardía", "Marcación de asistencia programada").
- novelty_description: descripción de la novedad (si existe).
- novelty_alert_at: fecha/hora de alerta si aplica.
- id_account_novelty_status: identificador del estado de la novedad.
- novelty_status_name: nombre del estado (por ejemplo Verificado).
- novelty_status_color: color del estado (si existe).
- novelty_status_is_closed: si el estado se considera cerrado.
- novelty_data_jornada_tipo: nombre de la jornada (por ejemplo Diurna).
- novelty_data_jornada_horario: horario de la jornada (por ejemplo 08:00 - 17:00).
- novelty_data_programacion_status: estado de la programación (por ejemplo Verificado).
- novelty_data_marcacion_datetime: fecha y hora de la marcación asociada.
Empleado involucrado
- id_account_customer_employee: identificador del empleado.
- employee_first_name: nombre del empleado.
- employee_last_name: apellido del empleado.
- employee_code: código del empleado.
- employee_phone: teléfono (si está registrado).
- employee_identification: número de identificación del empleado.
Puesto y ubicación
- id_sitio_operativo_puesto: identificador del puesto (sitio operativo).
- puesto_name: nombre del puesto (el que ves en inData).
- puesto_code: código del puesto (cuando existe).
- id_account_customer_point: identificador de la sede (punto).
- customer_point_name: nombre de la sede.
- customer_point_address: dirección de la sede.
- id_account_customer: identificador del cliente.
- customer_name: nombre del cliente.
- customer_code: código del cliente.
- customer_business_name: razón social.
- customer_alias: alias del cliente.
- customer_identification: identificación del cliente (NIT o documento).
Zona geográfica
- id_account_geo_city: identificador de la ciudad.
- geo_city_name: nombre de la ciudad.
- geo_city_code: código de la ciudad (si existe).
- id_account_geo_state: identificador del estado o departamento.
- geo_state_name: nombre del estado o departamento.
- geo_state_code: código (si existe).
- id_account_geo_country: identificador del país.
- geo_country_name: nombre del país.
- id_account_geo_zone: identificador de la zona.
- geo_zone_name: nombre de la zona.
- geo_zone_code: código de la zona (si existe).
Otras novedades del mismo día
- related_novelties: lista de otras novedades del mismo empleado o del mismo puesto ese mismo día. Cada elemento puede incluir id_account_novelty, novelty_datetime, name, description, type, id_account_customer_employee, id_sitio_operativo_puesto, id_account_customer_point.
Resumen del día (reporte de horas)
- check_in_check_out: objeto con el resumen del día de esa marcación. Campos útiles: id_check_in_check_out, date, id_account_customer_employee, employee_code, employee_first_name, employee_last_name, employee_identification, id_account_customer_point, account_customer_point_name, id_sitio_operativo_puesto, sitio_operativo_puesto_name, id_turno_jornada, turno_jornada_name, turno_jornada_start_time, turno_jornada_end_time, check_in_time, check_in_real_time, check_out_time, check_out_real_time, time_worked, time_not_worked, programacion_has_employee_status_checked, is_absenteeism, is_manual. Todo en la zona horaria de la cuenta.
Estado del puesto ese día
- workstation_check: lista de objetos con el estado del puesto en esa fecha. Cada elemento puede incluir id_sitio_operativo_puesto, cupo, count_programacion, employees_programados, pendiente, verificado, vencido, estado_puesto, fecha, id_turno_jornada, id_programacion, y id_programacion_has_employee (lista de empleados programados). Por cada empleado en id_programacion_has_employee pueden llegar, cuando existan: id_account_customer_employee, employee_code, first_name, last_name, identification, job_title_name, job_title_code, mobile, phone, phone_alt, personal_address, geo_city_name, fecha_nacimiento, genero, tipo_sangre, rh, entry_date, extra1 a extra4, y emergency_contacts (lista con name y phone).
Detalle de la marcación (entrada o salida)
Análisis de fraude (cuando existe)
- check_in_fraud_analysis: si existe un análisis de fraude asociado a esa marcación, este objeto puede incluir id, id_account_customer_check_in, id_account, id_account_customer_employee, status, score_fraude, confidence, umbral_usado, score_avanzado, indicadores_activos, status_validado, fecha_validacion, razones, metricas, date_created, date_updated. Así puedes automatizar acciones en función del resultado del análisis.
Resumen rápido
- Estructura: un objeto my_info con meta (información del evento) y data (con subject y novelty). Esta es la misma jerarquía que verás al configurar el flujo; usa los nombres de campo indicados arriba.
- Evento con reporte de horas o novedad concreta: data.novelty viene rellenado con empleado, puesto, cliente, sede, zona, horarios, check_in_check_out, workstation_check, check_in y, si aplica, check_in_fraud_analysis.
- Evento sin registro concreto: data.novelty tendrá muchos campos en
null; solo tendrás meta y data.subject con información básica. - Fechas y horas: siempre en la zona horaria de tu cuenta.
- Los campos que no existan en tu configuración (por ejemplo contacto de emergencia, tipo de sangre) pueden llegar vacíos o nulos.