Además de las reglas de alarma, dos herramientas envían notificaciones: la acción Tell people de una regla de la tarjeta Rules y el bloque Notify de un flujo. Ambas pasan por el mismo servicio de notificaciones que las alarmas, con los mismos canales y las mismas preferencias personales. Añaden un tiempo de espera (cooldown) para que un evento repetido no inunde a las personas.
Desde una regla de la tarjeta Rules
La acción Tell people tiene dos campos:
| Campo | Significado |
|---|---|
| Who | Marque Owners, Admins y/o Members. |
| Message | Hasta 1.000 caracteres. |
- El título de la notificación es el nombre de la regla; su texto es el mensaje.
- Los usuarios, roles, roles personalizados y equipos se alcanzan en la aplicación, mediante push donde esté configurado, y en las aplicaciones de chat vinculadas; nunca reciben correo electrónico ni SMS. Solo las filas
addressreciben correo electrónico y solo las filasphonereciben SMS. - En la tarjeta elige roles. La API de reglas también acepta usuarios individuales (
{ "kind": "user", "userId": "…" }) y equipos ({ "kind": "team", "teamId": "…" }), hasta 20 destinatarios, y una listachannels. - Un rol o equipo con más de 20 miembros activos se rechaza en lugar de notificarse a medias, y la ejecución registra el fallo.
- Los miembros se alcanzan en la campana, mediante push y en sus aplicaciones de chat. La tarjeta Rules no puede indicar direcciones de correo electrónico ni números de teléfono; para ello use un flujo.
- Tell people sigue funcionando en modo Manual solo si la regla está marcada como Also runs in Manual.
{ "id": "a3", "kind": "notify", "recipients": [ { "kind": "role", "role": "ADMIN" }, { "kind": "team", "teamId": "…" } ], "channels": ["inapp"], "text": "Cold room door open for 10 minutes" }
Consulte Rules card: actions.
Desde un flujo: el bloque Notify
El bloque Notify envía a usuarios, roles, equipos, direcciones de correo electrónico y números de teléfono, y pasa el mensaje al siguiente nodo.
| Ajuste | Significado | Límites |
|---|---|---|
| recipients | Filas de un tipo y un valor: user (un id de usuario), address (una o más direcciones de correo electrónico, separadas por comas), phone (números en formato internacional), role (OWNER, ADMIN, USER), custom_role, team, u originator_owner (los propietarios del originador del mensaje, cuando un módulo los declare). Los valores son plantillas. | 20 filas; 20 destinatarios tras la expansión |
| channels | Restringe a estos ids de canal. Vacío: la elección propia de cada destinatario. | |
| urgency | normal o critical. Critical omite las preferencias de los destinatarios, salvo que la organización lo haya desactivado. | |
| title, text | El mensaje, como plantillas. | Entre 200 y 4.000 caracteres |
| format | text, o html para correo (los demás canales reciben texto plano). | |
| subject, reply_to, cc, bcc | Opciones de correo. Cada dirección cc y bcc recibe su propio mensaje. | |
| attachments | Archivos para el correo. | 10 archivos, 1 MiB en total |
| reason | Lo que hace que dos notificaciones sean «la misma» para el cooldown. | 200 caracteres |
Referencia completa del bloque: Alarm, command and notify blocks.
Plantillas
Los valores entre {{ }} se rellenan con el mensaje, por ejemplo:
title: {{ msg.metadata.deviceName }}: level {{ msg.payload.level }} %
text: Tank level fell below the limit at {{ msg.metadata.deviceName }}.
Un valor insertado en un texto HTML se escapa, de modo que un mensaje puede añadir texto al correo pero nunca marcado.
El cooldown
Un evento repetido no debe enviar cientos de mensajes. Cada destinatario recibe una notificación con el mismo reason del mismo flujo una vez por cooldown: 10 minutos, salvo que su plan establezca otro (como mínimo 1 minuto).
- El reason es el ajuste
reasondel bloque o, si no existe, las palabras de la notificación. Un texto que cambia con cada lectura («Nivel 41 %», «Nivel 40 %») es un reason nuevo cada vez; establezcareason(por ejemplolevel of {{ msg.metadata.deviceName }}) para agruparlos. - Un destinatario retenido se omite; los demás sí la reciben. Cuando no queda nadie, el mensaje continúa sin error.
- La siguiente notificación tras el fin del cooldown incluye «(+n)»: cuántas se retuvieron mientras tanto.
- Un destinatario solo cuenta como notificado cuando un canal lo entregó. Si todos los canales fallaron o fueron retenidos por preferencias o horas de silencio, la siguiente notificación se les envía.
- El Tell people de la tarjeta Rules es un bloque de flujo por debajo, así que tiene el mismo cooldown, asociado al nombre de la regla y al mensaje.
Mensajes tardíos
Un mensaje procesado después de su tiempo de vida (time-to-live, tras una interrupción) no notifica a nadie: las lecturas de hace horas no deben avisar a las personas. Se cuenta como «too old».
Cuotas
Antes de enviar, el bloque comprueba las cuotas mensuales de correo electrónico y SMS de los canales que usaría. Un canal sin cuota (o que no esté en el plan) se omite y se indica en el resultado; los demás se envían igualmente. Solo cuando todos los canales se han quedado sin cuota, el bloque termina con el error limit.
El resultado
El mensaje continúa con msg.metadata.notify:
| Campo | Significado |
|---|---|
recipients | Cuántos destinatarios se direccionaron |
delivered / failed | Canales entregados / fallidos |
suppressed | Canales retenidos por una preferencia, horas de silencio o una dirección bloqueada |
invalid | Entradas que no eran un id de usuario, dirección o número válido |
quota | Canales omitidos por cuota |
held | Destinatarios retenidos por el cooldown |
Errores: no_recipients, too_many_recipients, members_unavailable, invalid_attachment, notify_failed (todas las entregas fallaron), limit.
Cuál usar
| Necesidad | Use |
|---|---|
| Avisar a las personas cuando se abre una alarma, con recordatorios y protección frente a tormentas | El bloque notify de la regla de alarma. Alarm notifications in depth |
| Avisar a un rol sobre algo que hizo una regla | Tell people |
| Correo con adjuntos, SMS, un buzón externo, texto personalizado a partir de datos | El bloque Notify del flujo |

