Webhooks y avisos: Webhook (salida), Slack, Discord y Telegram
Cómo hacer que la app te avise a ti o a tu equipo fuera de ella (un canal de Slack, un servidor de Discord, un grupo de Telegram) y cómo enviar datos a una automatización tuya, en Zapier, en Make o en una dirección propia.
Sin la integración, el aviso no sale: la automatización que usa el canal no entrega, y la acción de la app se rechaza con el aviso de que el canal no está configurado en esta app.
Antes de empezar
- Plan: Slack y Discord funcionan en cualquier plan, incluido Free. Telegram y Webhook (salida) requieren el plan Builder, y para ellos el plan se comprueba en cada envío: si la cuenta deja Builder, dejan de funcionar;
- Costo: crear webhooks y bots en esos servicios es gratis. Cada envío que hace la app consume créditos de integración, y solo cuando el destino acepta;
- La dirección del webhook es una contraseña. Quien tiene la URL de un webhook de Slack o de Discord puede publicar en tu canal. No publiques la URL en ningún lugar.
Todas están en la pestaña Integraciones: Slack, Discord y Telegram en la categoría Notificaciones, Webhook (salida) en Automatización.
Slack
Campo de la tarjeta: Incoming Webhook URL.
- en api.slack.com/apps, crea una app en tu workspace;
- en Incoming Webhooks, activa la función y haz clic en Add New Webhook to Workspace;
- elige el canal que va a recibir los avisos y autoriza;
- copia la URL generada (empieza con
https://hooks.slack.com/services/); - en la tarjeta Slack, pega la URL y haz clic en Guardar y activar.
Cada webhook de Slack publica en un solo canal. Para otro canal, crea otro webhook.
Discord
Campos de la tarjeta: Webhook URL, Bot Token (para DM a los usuarios) y Invitación al servidor (opcional).
Para avisos en un canal, solo hace falta la Webhook URL:
- en Discord, abre Ajustes del servidor → Integraciones → Webhooks;
- haz clic en Nuevo webhook, elige el canal y copia la URL del webhook;
- en la tarjeta Discord, pega la URL y haz clic en Guardar y activar.
Mensaje directo a los usuarios de la app
Para que la app envíe un mensaje directo (DM) a quien usa la app, y no a un canal, hacen falta tres cosas:
- un bot creado en discord.com/developers/applications, con el token pegado en Bot Token (para DM a los usuarios);
- el login con Discord activo en la pestaña Autenticación: es el que vincula a la persona de la app con su cuenta de Discord;
- que la persona haya entrado en la app con Discord.
Quien no entró con Discord recibe el aviso dentro de la app, en lugar del DM.
Telegram
Campo de la tarjeta: Bot token.
Qué hace la app: envía un mensaje a un chat, grupo o canal de Telegram, a través de tu bot.
- en Telegram, abre una conversación con @BotFather y envía
/newbot; - elige el nombre y el usuario del bot. BotFather responde con el token (algo como
123456:ABC-DEF…); - en la tarjeta Telegram, pega el token y haz clic en Guardar y activar;
- agrega el bot al grupo o canal que va a recibir los mensajes. En un canal, tiene que ser administrador. En una conversación privada, la persona tiene que haber iniciado antes la conversación con el bot.
Para enviar, la app necesita el ID del chat de destino. Indícalo en el chat del asistente junto con el pedido.
Webhook (salida)
Campo de la tarjeta: URL de destino.
Qué hace la app: envía un POST con los datos en JSON a la URL que registraste. Es la forma de conectar la app a cualquier automatización tuya: un Zap en Zapier, un escenario en Make, un flujo en n8n o una dirección propia.
- en el servicio de automatización, crea un disparador de tipo webhook y copia la URL que genera;
- en la tarjeta Webhook (salida), pégala en URL de destino y haz clic en Guardar y activar;
- pide en el chat qué debe enviar la app y cuándo (por ejemplo, "cuando se cree un pedido, envía el pedido al webhook").
Dos reglas del otro lado:
- la URL tiene que ser pública. Las direcciones de red interna se rechazan;
- el destino tiene que responder con éxito (código 2xx). Cualquier otra respuesta, incluida una redirección, cuenta como fallo, y el fallo no se cobra.
Cómo probar
Estas tarjetas no prueban la credencial al guardar: Conectada significa que se guardó. Puedes probar la URL incluso antes de involucrar a la app.
Slack o Discord, directo desde tu computadora: en una terminal, ejecuta el comando de abajo cambiando la URL. Debe aparecer un mensaje en el canal.
# Slack
curl -X POST -H "Content-Type: application/json" -d '{"text":"prueba"}' "TU_URL_DE_SLACK"
# Discord
curl -X POST -H "Content-Type: application/json" -d '{"content":"prueba"}' "TU_URL_DE_DISCORD"
Desde la app: pide en el chat un botón de prueba que dispare el aviso (eso gasta créditos de IA, como cualquier construcción). Usa el botón y revisa el canal, el grupo o el historial del servicio de automatización. Si falla, el error que aparece trae la respuesta del destino.
Problemas comunes
- El curl funciona y la app no envía. Comprueba que pegaste la misma URL en la tarjeta y que no se acabó el saldo de créditos de integración;
- Webhook (salida) falla con "destino recusou". El servicio de destino respondió con un error o una redirección. Mira el código que aparece en el mensaje y el historial del servicio;
- "webhook_url inválida ou aponta para rede interna". La URL no es pública (dirección local, IP interna). Usa la URL pública del servicio;
- Telegram no entrega. El bot no está en el grupo, no es administrador del canal, o la persona nunca inició una conversación con él. Revisa también el ID del chat;
- El DM de Discord llega como aviso dentro de la app. La persona no entró en la app con Discord, o el login con Discord no está activo;
- Se filtró la URL de un webhook. Borra el webhook en Slack o en Discord, crea otro y pega la nueva URL en la tarjeta. En Telegram, genera un token nuevo con
/revokeen @BotFather.