Un disparador inicia una ejecución: no tiene entrada y envía un mensaje cuando ocurre su evento. Un flujo puede tener varios disparadores. Esta página enumera todos los disparadores con sus salidas y ajustes, tal como los definen los bloques. La pestaña Help del editor muestra la misma referencia para el bloque seleccionado.
Los mensajes se entregan al menos una vez: tras un fallo, un mensaje puede volver a entregarse, marcado como msg.metadata.redelivered = true, con los mismos identificadores de mensaje, de modo que los bloques que llaman a servicios externos envían las mismas claves de idempotencia. Los disparadores basados en tiempo y de webhook tienen un ajuste skip_redelivered (desactivado por defecto): si está activado, un mensaje reentregado no vuelve a iniciar el flujo.
Entrada del flujo
La entrada de los mensajes que otro flujo transfiere con Run flow y, en un flujo raíz, de los mensajes de dispositivo del ámbito de la raíz. Cada flujo tiene exactamente una; no puede eliminarse.
| Salida | out: el mensaje tal como se transfirió, en la misma ejecución. En una raíz IoT, cada mensaje de dispositivo; la telemetría produce un mensaje por registro. |
| Ajustes | Ninguno. El propio flujo es la dirección. |
| Notas | El flujo debe estar activado y en ejecución para recibir mensajes. Una raíz nunca es ejecutada por otro flujo. Los datos llegan solo a través del mensaje; defina los campos antes de Run flow. |
Mensaje de dispositivo (host IoT)
Se inicia con mensajes de dispositivos. Los mensajes de dispositivo (telemetry, attributes, connect, disconnect, activity, inactivity, rpc_request, rpc_response) van solo a un flujo raíz; en una raíz cuya Flow input esté conectada, la Flow input es su entrada. Los mensajes alarm y attributes_updated van a todos los flujos con un disparador Device message que los nombre, sean raíz o no. Un disparador sin tipos marcados escucha solo los tipos de mensaje de dispositivo: marque alarm o attributes_updated por nombre para recibirlos.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| types | Los tipos de mensaje que lo inician | todos los tipos | telemetry, attributes, connect, disconnect, activity, inactivity, rpc_request, rpc_response, attributes_updated, alarm |
| profiles | Solo dispositivos de estos perfiles | todos los perfiles | sus perfiles de dispositivo |
| skip_redelivered | Un mensaje reentregado no lo inicia | off | on, off |
Salidas: out (telemetría, un mensaje por registro, con msg.metadata.recordTs), error (bad_payload: telemetría que no dio ningún registro; msg.error.drops indica por qué se omitió cada valor).
Metadatos de solo lectura: msgType, deviceId, profileId, deviceName, profileName, transport (mqtt o http), ts (hora de recepción), recordTs, topic (solo datos de tópico personalizado), gatewayDeviceId, y otros. Los metadatos nunca se almacenan.
Inject
Inicia un flujo manualmente (el botón del bloque), una vez poco después de iniciarse el flujo, o repetidamente.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| payload | Lo que va en msg.payload | la hora actual (segundos epoch) | un número, texto, sí/no, JSON, la hora actual, nada, una variable de entorno o una expresión |
| topic | msg.topic | vacío | hasta 256 caracteres |
| repeat_ms | Vuelve a dispararse cada este tiempo; 0 = sin repetición | 0 | hasta 7 días; al menos 60 s en la nube (el mínimo de su plan) |
| once_after_ms | Dispara una vez este tiempo después de iniciarse el flujo | vacío | de 0 a 24 h |
| originator | Quién envía el mensaje | la organización | la organización, o este flujo (su propio carril) |
| msg_type | El tipo de mensaje | inject | uno de los tipos de mensaje del host |
| metadata | Entradas adicionales de msg.metadata | ninguna | hasta 16 filas |
| times | Detener tras este número de repeticiones | 0 (sin fin) | requiere una repetición |
| catch_up | Tras un tiempo sin servicio | once | once (una ejecución para el disparo perdido más reciente), skip |
Salida: out. El payload se calcula cada vez que se dispara.
Schedule
Inicia un flujo según el reloj de pared.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| mode | Cómo se indica la hora | daily | daily, cron, sun |
| time | Hora del día (daily) | 08:00 | HH:MM, 24 horas |
| weekdays | Días en que se dispara (daily) | ninguno marcado = todos los días | de lunes a domingo |
| cron | Expresión cron | 0 8 * * 1-5 | 5 campos: minuto, hora, día del mes, mes, día de la semana |
| sun | Amanecer o anochecer | set | rise, set |
| offset_min | Minutos después (+) o antes (−) del evento solar | 0 | −720 a 720 |
| lat, lon | Posición para las horas solares | vacío | −90 a 90, −180 a 180; obligatorio para mode sun |
| tz | Zona horaria | la zona por defecto de la organización | un nombre IANA como Europe/Istanbul |
| originator | Quién envía el mensaje | la organización | la organización, o este flujo |
| msg_type | El tipo de mensaje | schedule | uno de los tipos del host |
| payload | Sustituye el payload estándar | { event: "due", mode, at, time } | cualquier valor o expresión |
| catch_up | Tras un tiempo sin servicio | once | once, skip |
Salida out: msg.payload { "event": "due", "mode": "daily", "at": …, "time": … }, msg.topic schedule/<mode>.
- Los campos cron aceptan números,
*, rangos (1-5), listas (1,15) y pasos (*/10); el día de la semana 0 y 7 es domingo; los nombres comoMONno se entienden. Cuando el día del mes y el día de la semana están ambos restringidos, basta con que se cumpla uno de los dos. - Una hora omitida por un cambio de horario de verano no dispara. Un día sin amanecer ni anochecer (regiones polares) se omite.
- Show the next runs en los ajustes del bloque muestra las próximas horas de disparo en su zona.
- El mensaje de un schedule no tiene dispositivo: los bloques que necesitan un mensaje de dispositivo (Save telemetry, Raise alarm, Send command) lo rechazan con
not_a_device.
Named timer
Inicia un flujo cuando expira un temporizador con nombre. El bloque de acción Timer lo inicia, lo reinicia o lo cancela, desde cualquier flujo de la organización.
| Ajuste | Significado | Valores |
|---|---|---|
| name | El temporizador a escuchar | obligatorio |
Salida out: msg.payload { "event": "fired", "name", "ms", "time" }, msg.topic timer/<name>, msg.text «Timer name ran out». Los temporizadores sobreviven a las ediciones de los flujos y la plataforma los conserva. Un temporizador que vence durante una interrupción más larga que el tiempo de vida se convierte en un mensaje fallido que puede reproducir.
Webhook
Un POST HTTP a la dirección del bloque inicia el flujo. La dirección se muestra en el diálogo Webhooks del editor una vez desplegado y activado el flujo.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| auth | Cómo se identifican quienes llaman | token | token (Authorization: Bearer <secret>), hmac (X-Automation-Signature: HMAC-SHA256 en hexadecimal de timestamp.rawBody, y X-Automation-Timestamp dentro de 300 s), session (un miembro con sesión iniciada de su organización) |
| permission | Solo sesión: un permiso que el llamante también debe tener | vacío | un id de permiso |
| originator | A quién se refiere el mensaje | la organización | la organización, o una entidad de su organización |
| max_body | Cuerpo más grande | 16 KiB | como máximo 256 KiB |
| parse | Cómo se lee el cuerpo | json | json, text |
| reply | Cuándo recibe el llamante su respuesta | accepted | accepted (202 con un id de inmediato), response (responde un bloque HTTP response) |
| timeout_ms | Cuánto espera un llamante síncrono | 10,000 | 1.000 a 10.000 |
Salida out: msg.payload es el cuerpo; msg.metadata.http tiene method, query y las cabeceras content-type, user-agent y x-request-id (nunca authorization ni cookies). Para un hook de sesión, msg.metadata.user.id es el llamante.
Respuestas: 202 aceptada, 401 token, firma o sesión incorrectos, 403 sesión rechazada, 404 hook desconocido, 413 cuerpo demasiado grande, 429 límite de frecuencia o cuota, 503 ocupado. Un hook síncrono responde 204 cuando el flujo no envía respuesta, 500 ante un error no capturado, 504 al vencer el plazo. Consulte Connections and secrets para secretos y rotación.
Evento
Se inicia con un evento elegido por origen y tipo, como uno que otro flujo envió con Emit event.
| Ajuste | Significado | Predeterminado | Valores |
|---|---|---|---|
| source | El origen del evento | any | un origen, p. ej. flow; * = cualquiera |
| kind | El tipo del evento | any | exacto, *, o un prefijo terminado en * (tank.*) |
| filter | Una expresión que debe ser verdadera | none | sobre msg, hasta 512 caracteres |
Salida out: msg.payload son los datos del evento, msg.topic <source>/<kind>. Error invalid_value cuando el filtro no compila. Excepto para los orígenes flow y platform, debe indicar un tipo o un prefijo.
Catch
Recibe los errores de bloques del mismo flujo cuya salida error no está conectada.
| Ajuste | Significado | Predeterminado |
|---|---|---|
| scope | Los bloques cuyos errores se capturan | todos los bloques del flujo |
| uncaught_only | Solo los errores que ningún otro Catch captura | off |
Salida out: una copia del mensaje fallido con msg.error { message, code, source: { id, type, flow, name } }.
Status
Se inicia cada vez que un bloque del mismo flujo cambia la línea de estado bajo él.
| Ajuste | Significado | Predeterminado |
|---|---|---|
| scope | Los bloques observados | todos los bloques del flujo |
Salida out: msg.payload el texto de estado, msg.status { fill, shape, text, ts, source }. No observe todos los bloques y conecte a un bloque que establece su propio estado (como Debug): se volverá a iniciar a sí mismo sin fin.
Complete
Se inicia cuando los bloques seleccionados del mismo flujo terminan un mensaje sin error.
| Ajuste | Significado | Valores |
|---|---|---|
| nodes | Los bloques observados | hasta 64; none = nunca se activa |
Salida out: una copia del mensaje terminado con msg.complete { id, type, name }.
Link in
Una entrada con nombre a la que envían los bloques Link out y Link call, desde este u otro flujo del mismo host.
| Ajuste | Significado | Valores |
|---|---|---|
| name | El nombre que usan los bloques de enlace | de 1 a 32 caracteres: letras, dígitos, _, ., -; único |
Salida out: cada mensaje que llega, sin cambios y en la misma ejecución.
Comment
Un bloque Comment es una nota en el lienzo (hasta 2.048 caracteres). No hace nada cuando el flujo se ejecuta.
Consulte también Routing and timing blocks para Link call, y Action blocks para Link out, Emit event, Timer y Run flow.

