Webhooks e avisos: Webhook (saída), Slack, Discord e Telegram
Como fazer o app avisar você ou a sua equipe fora dele (um canal do Slack, um servidor do Discord, um grupo do Telegram) e como mandar dados para uma automação sua, no Zapier, no Make ou num endereço próprio.
Sem a integração, o aviso não sai: a automação que usa o canal não entrega, e a ação do app é recusada com o aviso de que o canal não está configurado neste app.
Antes de começar
- Plano: Slack e Discord funcionam em qualquer plano, inclusive no Free. Telegram e Webhook (saída) pedem o plano Builder, e para eles o plano é conferido a cada envio: se a conta sair do Builder, eles param;
- Custo: criar webhooks e bots nesses serviços é gratuito. Cada envio feito pelo app consome créditos de integração, e só quando o destino aceita;
- O endereço do webhook é uma senha. Quem tem a URL de um webhook do Slack ou do Discord consegue postar no seu canal. Não publique a URL em lugar nenhum.
Todos ficam na aba Integrações: Slack, Discord e Telegram na categoria Notificações, Webhook (saída) em Automação.
Slack
Campo do card: Incoming Webhook URL.
- em api.slack.com/apps, crie um app no seu workspace;
- em Incoming Webhooks, ative o recurso e clique em Add New Webhook to Workspace;
- escolha o canal que vai receber os avisos e autorize;
- copie a URL gerada (começa com
https://hooks.slack.com/services/); - no card Slack, cole a URL e clique em Salvar e ativar.
Cada webhook do Slack posta num canal só. Para outro canal, crie outro webhook.
Discord
Campos do card: Webhook URL, Bot Token (para DM aos usuários) e Convite do servidor (opcional).
Para avisos num canal, só a Webhook URL é necessária:
- no Discord, abra as Configurações do servidor → Integrações → Webhooks;
- clique em Novo webhook, escolha o canal e copie a URL do webhook;
- no card Discord, cole a URL e clique em Salvar e ativar.
Mensagem direta para os usuários do app
Para o app mandar mensagem direta (DM) a quem usa o app, e não num canal, são necessárias três coisas:
- um bot criado em discord.com/developers/applications, com o token colado em Bot Token (para DM aos usuários);
- o login com Discord ativo na aba Autenticação: é ele que liga a pessoa do app à conta dela no Discord;
- a pessoa ter entrado no app com o Discord.
Quem não entrou com o Discord recebe o aviso dentro do app, no lugar da DM.
Telegram
Campo do card: Bot token.
O que o app faz: envia uma mensagem para um chat, grupo ou canal do Telegram, pelo seu bot.
- no Telegram, abra uma conversa com o @BotFather e envie
/newbot; - escolha o nome e o usuário do bot. O BotFather responde com o token (algo como
123456:ABC-DEF…); - no card Telegram, cole o token e clique em Salvar e ativar;
- adicione o bot ao grupo ou canal que vai receber as mensagens. Num canal, ele precisa ser administrador. Numa conversa privada, a pessoa precisa ter iniciado a conversa com o bot antes.
Para enviar, o app precisa do ID do chat de destino. Informe no chat do assistente junto com o pedido.
Webhook (saída)
Campo do card: URL de destino.
O que o app faz: envia um POST com os dados em JSON para a URL que você cadastrou. É o jeito de ligar o app a qualquer automação sua: um Zap no Zapier, um cenário no Make, um fluxo no n8n ou um endereço próprio.
- no serviço de automação, crie um gatilho do tipo webhook e copie a URL que ele gera;
- no card Webhook (saída), cole em URL de destino e clique em Salvar e ativar;
- peça no chat o que o app deve enviar e quando (por exemplo, "quando um pedido for criado, envie o pedido para o webhook").
Duas regras do lado de lá:
- a URL tem de ser pública. Endereços de rede interna são recusados;
- o destino tem de responder com sucesso (código 2xx). Qualquer outra resposta, inclusive redirecionamento, conta como falha, e falha não é cobrada.
Como testar
Estes cards não testam a credencial ao salvar: Conectado quer dizer que foi salvo. Dá para testar a URL antes mesmo de envolver o app.
Slack ou Discord, direto do seu computador: num terminal, rode o comando abaixo trocando a URL. Uma mensagem deve aparecer no canal.
# Slack
curl -X POST -H "Content-Type: application/json" -d '{"text":"teste"}' "SUA_URL_DO_SLACK"
# Discord
curl -X POST -H "Content-Type: application/json" -d '{"content":"teste"}' "SUA_URL_DO_DISCORD"
Pelo app: peça no chat um botão de teste que dispare o aviso (isso gasta crédito de IA, como qualquer construção). Use o botão e confira o canal, o grupo ou o histórico do serviço de automação. Se falhar, o erro que aparece traz a resposta do destino.
Problemas comuns
- O curl funciona e o app não envia. Confira se colou a mesma URL no card e se o saldo de créditos de integração não acabou;
- Webhook (saída) falha com "destino recusou". O serviço de destino respondeu com erro ou redirecionamento. Veja o código que aparece na mensagem e o histórico do serviço;
- "webhook_url inválida ou aponta para rede interna". A URL não é pública (endereço local, IP interno). Use a URL pública do serviço;
- Telegram não entrega. O bot não está no grupo, não é administrador do canal, ou a pessoa nunca iniciou conversa com ele. Confira também o ID do chat;
- A DM do Discord cai como aviso dentro do app. A pessoa não entrou no app com o Discord, ou o login com Discord não está ativo;
- Vazou a URL de um webhook. Apague o webhook no Slack ou no Discord, crie outro e cole a nova URL no card. No
Telegram, gere um token novo com
/revokeno @BotFather.