Envía alertas IoT a Telegram directamente desde tus eventos de Ubidots: sin facturación por mensaje, sin pasarela SMS y sin que tu equipo tenga que instalar otra app. Telegram funciona muy bien cuando tus operadores ya coordinan en grupos de chat y quieren que las alertas de sensores aterricen en el mismo canal.
Para enviar alertas IoT a Telegram desde Ubidots, instala el plugin de Telegram de Ubidots (impulsado por un bot de Telegram que tú creas) y luego agrega una acción Trigger Webhook a cualquier evento para que el mensaje se entregue al bot, grupo o contacto de Telegram que elijas cuando un sensor cruce un umbral, un dispositivo quede inactivo o se cruce una geocerca.
Cuándo usar Telegram para alertas IoT
Equipos de campo y operaciones que ya usan Telegram: las alertas llegan al chat que ya están monitoreando, sin tener que aprender una nueva app.
Mercados con alta adopción de Telegram: CEI, partes de LATAM, Medio Oriente y el Sudeste Asiático.
Alertas en chats de grupo: múltiples operadores ven la misma alerta al mismo tiempo, con un registro escrito que todos pueden consultar.
Flujos basados en bots: tu bot también puede aceptar comandos, así que los operadores pueden confirmar alertas o consultar el estado del dispositivo sin salir de Telegram.
Despliegues sensibles al costo: Telegram no factura por mensaje; solo consumes tu cuota de eventos/webhooks de Ubidots.
Cómo funciona
Un evento de Ubidots (basado en valor, inactividad, geocerca, programado) dispara una acción Trigger Webhook. El webhook llega al endpoint HTTPS del plugin de Telegram de Ubidots, que reenvía el mensaje a través de un bot de Telegram que tú controlas al grupo o contacto destino. Configuras el bot una vez con BotFather, instalas el plugin una vez con el token del bot, y desde ese momento cada evento se convierte en un mensaje de Telegram.
La regla de las 24 horas: el plugin de Telegram de Ubidots solo registra un chat ID si su webhook se dispara dentro de las 24 horas posteriores a que el bot se una a ese chat. Si pierdes esa ventana, tendrás que remover y volver a agregar el bot. Esta es la causa más común por la que las alertas IoT a Telegram fallan silenciosamente.
Requisitos
Una cuenta de Ubidots en el plan Industrial o superior (los plugins requieren Industrial+).
Una cuenta de Telegram (crearás el bot desde tu teléfono).
Permisos para crear grupos en tu workspace destino de Telegram (solo necesario si quieres entregar alertas a un grupo en lugar de a contactos individuales).
1. Crear un bot de Telegram con BotFather
Necesitarás un bot para retransmitir los mensajes. BotFather es el bot oficial de Telegram para crear nuevos bots.
Abre la app de Telegram.
Toca el icono de búsqueda en la esquina superior derecha.
Escribe
botfathery toca el resultado BotFather para iniciar un chat.En el chat de BotFather, envía
/newbot.BotFather te pide un nombre para mostrar — elige uno y envíalo.
Luego BotFather pide un username único. Debe terminar en
bot(por ejemplo,myexamplebot). Envíalo.Si el username está disponible, BotFather crea el bot y responde con un token. Copia este token — lo pegarás en el plugin de Ubidots en el siguiente paso.
2. Instalar el plugin de Telegram de Ubidots
Ve a Dev Center → Plugins, haz clic en el botón + en la esquina superior derecha, elige Telegram y:
Pega el token de tu bot.
Asigna un nombre al plugin.
Opcionalmente agrega una descripción.
Guarda. El plugin ahora expone un endpoint webhook HTTPS al que apuntarás tu evento en el paso 4.
3. Configurar el grupo de Telegram (omite si envías a contactos individuales)
Si quieres que las alertas se entreguen a un grupo, confíguralo ahora. (¿Envías a contactos individuales? Salta al paso 4 — la segunda alternativa lo cubre.)
Abre la app de Telegram.
Toca el menú hamburguesa → Nuevo Grupo. Dale un nombre claro y distintivo (por ejemplo, Alertas Meteorológicas). El nombre del grupo es lo que el plugin usa para hacer match, y es sensible a mayúsculas y minúsculas.
Invita a tu bot al grupo.
Envía un mensaje tipo comando inicial (cualquier cosa que empiece con
/, por ejemplo/help). Esto le indica a Telegram que exponga el chat ID al bot.
4. Crear el evento con una acción Trigger Webhook
Crea un evento condicional, global o programado en Data → Eventos con la lógica de disparo que se ajuste a tu caso (basado en valor, inactividad, geocerca o basado en contexto).
Luego agrega una acción Trigger Webhook (referencia completa: Events: Create a Webhook) y configura:
URL — el endpoint HTTPS de tu plugin. Lo encuentras en Dev Center → Plugins → [tu plugin] → Decoder.
Método —
POST.Headers —
Content-Type: application/json.Payload — elige una de las dos alternativas.
Tip: escribe las comillas dobles manualmente dentro del editor de payload en lugar de pegarlas — las "comillas tipográficas" pegadas son la causa #1 de payloads malformados con este plugin.
Alternativa 1 — entregar a un grupo de Telegram
{"groupname": "<GROUPNAME>", "message": "<MESSAGE>"}<GROUPNAME>— el nombre sensible a mayúsculas y minúsculas del grupo destino, exactamente como aparece en Telegram.<MESSAGE>— el contenido a enviar. Usa el icono de etiqueta de Ubidots para insertar variables dinámicas (nombre del dispositivo, valor, marca de tiempo, etc.).
Alternativa 2 — entregar a contactos individuales
{"to": "<NUMBER(S)>", "message": "<MESSAGE>"}<NUMBER(S)>— número(s) de teléfono, cada uno con código de país (+57 XXX,+52 XXX). Sepáralos con coma para enviar a varios:"+57 XXX, +52 XXX".<MESSAGE>— el contenido.
En el primer disparo del evento, cada contacto recibe un SMS con un enlace de opt-in. Deben hacer clic en él para empezar a recibir alertas de Telegram. Hasta que lo hagan, cada activación del evento reenvía el mismo SMS de opt-in.
5. Asocia el chat ID con el plugin dentro de las primeras 24 horas
El plugin solo almacena un chat ID si su webhook se dispara mientras el bot acaba de ser agregado al chat. Si no disparas el webhook dentro de las 24 horas posteriores a agregar el bot, el plugin no podrá entregar mensajes a ese chat — tendrás que remover y volver a agregar el bot.
La forma más sencilla es disparar una prueba manual desde Postman o curl:
curl -X POST 'https://dataplugin.ubidots.com/api/web-hook/<plugin>' \
-H 'Content-Type: application/json' \
-d '{"groupname": "<GROUPNAME>", "message": "El bot está listo para enviar alertas."}'Aprovecha esta misma llamada para presentar el bot al grupo con un mensaje inicial amigable.
6. Pestaña de configuración
Asigna un nombre al evento, agrega una descripción opcional, aplica etiquetas para controlar la visibilidad para tus usuarios finales, define un período de enfriamiento (en segundos) para silenciar disparos repetidos y configura una o más ventanas activas durante las cuales el evento puede ejecutarse. Haz clic en Guardar.
Buenas prácticas
Un bot por proyecto: mantiene los logs y límites de tasa aislados, y facilita retirar un solo bot cuando un proyecto termina.
Pre-carga el chat con
/helpantes de que dispare el primer webhook; sin ello, Telegram no expone el chat ID a tu bot.Comienza el cuerpo del mensaje con el nombre del dispositivo + el umbral: la previsualización móvil de Telegram corta las líneas largas.
Prueba con un POST de curl a la URL del plugin antes de desplegar alertas IoT a Telegram en producción; los logs del plugin (Dev Center → Plugins → [tu plugin] → Logs) son la fuente de verdad para el estado de entrega.
Precios y límites
Costo de Telegram: gratis. Sin facturación por mensaje.
Costo de Ubidots: consume tu cuota de eventos y webhooks; sin tarifa adicional por plugin.
Disponibilidad por plan: plan Industrial o superior (requerido para plugins).
Regla de las 24 horas: el plugin solo registra un chat ID si el webhook se dispara dentro de las 24 horas posteriores a agregar el bot al chat.
Límites de tasa: Telegram limita los bots a ~30 mensajes/seg en todos los chats y ~1 msg/seg por chat. En la práctica, los volúmenes de alertas IoT nunca se acercan.
Preguntas frecuentes
¿Por qué no llegó mi mensaje de Telegram?
Causas comunes, en orden de frecuencia: (1) el chat ID del bot no se registró dentro de las 24 horas tras unirse al chat — vuelve a agregar el bot y dispara el webhook de inmediato; (2) el groupname en el payload no coincide exactamente con el nombre del grupo en Telegram (es sensible a mayúsculas y minúsculas); (3) la URL del webhook es incorrecta — revísala en Dev Center → Plugins → [tu plugin] → Decoder; (4) el evento está fuera de su ventana activa o silenciado por el período de enfriamiento; (5) los logs del plugin muestran un error — revísalos en Dev Center → Plugins → [tu plugin] → Logs.
¿Puedo enviar a un grupo de Telegram, a contactos individuales o a ambos?
A ambos, con payloads diferentes. Para un grupo, usa {"groupname": "<GROUPNAME>", "message": "<MESSAGE>"}. Para contactos individuales, usa {"to": "<NUMBER(S)>", "message": "<MESSAGE>"} con números de teléfono con código de país. Puedes enviar a múltiples contactos en un solo webhook separando los números con coma.
¿Ubidots tiene una acción integrada "Enviar Telegram" como WhatsApp/SMS?
No. Las alertas de Telegram se entregan a través del plugin de Telegram de Ubidots más una acción Trigger Webhook — no es una acción nativa en el selector de acciones de eventos. Este es el método soportado y vigente (la antigua acción "Enviar Telegram" documentada en otros lugares fue retirada).
¿Hay un costo por mensaje para alertas de Telegram?
No. Telegram no cobra por mensaje, y Ubidots no agrega una tarifa por mensaje — solo consumes tu cuota de eventos y webhooks de tu plan.
Telegram vs. WhatsApp vs. SMS — ¿cuál usar?
Telegram para alertas gratuitas y aptas para grupos en mercados donde Telegram es popular; ideal para equipos de operaciones que ya están en la plataforma. WhatsApp para alertas a clientes/operadores en mercados donde WhatsApp domina (LATAM, EMEA, SEA), con respuestas de doble vía y contenido enriquecido — facturado por mensaje, requiere opt-in del destinatario. SMS para teléfonos antiguos, regiones con poca cobertura de datos o industrias reguladas que necesitan un registro auditable de SMS — facturado por prefijo de país y limitado a 140 caracteres.
Solución de problemas
Revisa los logs del plugin en Dev Center → Plugins → [tu plugin] → Logs para ver el estado de entrega y los mensajes de error.
Prueba el bot directamente haciendo POST a la URL del plugin con curl o Postman, usando un payload válido conocido.
Vuelve a agregar el bot si nunca se registró un chat ID (regla de las 24 horas), e inmediatamente dispara un webhook de prueba.



