Webhooks
Um webhook é a forma mais simples de ligação: uma mensagem HTTP para um endereço que tu defines. O Slack, o Discord e o Microsoft Teams aceitam essas mensagens diretamente como publicação num canal; sistemas próprios podem fazer com elas o que quiserem.
Utilizações típicas: o endereço de suporte notifica novos pedidos no canal da equipa. A confirmação de encomenda aciona o sistema de gestão de stock. O alerta de servidor de um cliente aparece no Discord.
Configurar o endpoint
Seção intitulada “Configurar o endpoint”- Abre Definições → Integrações → Webhooks e ativa Ativar webhooks.
- Escolhe Adicionar endpoint e indica um Nome e o URL.
- Em Modelo predefinido de payload escolhe Slack, Discord, Microsoft Teams ou Generic JSON. O modelo preenche o Template de payload (JSON) com uma estrutura base adequada, que podes ajustar livremente.
- Testar envia uma mensagem de teste com dados de exemplo. No Slack e afins vê-la logo no canal.
Obténs o URL no respetivo serviço:
- Slack: cria em
api.slack.com/appsuma app com Incoming Webhooks; o URL gerado é o endpoint. - Discord: Definições do canal → Integrações → Webhooks.
- Teams: no canal, através da app Workflows com o modelo para publicar quando for recebido um pedido de webhook.
- Sistemas próprios: qualquer endereço que aceite JSON por HTTP POST ou PUT.
É possível ter vários endpoints, e cada um pode ser desativado à parte: o canal de suporte e o script próprio podem coexistir.
Disparar por regra
Seção intitulada “Disparar por regra”O envio faz-se exclusivamente através da automatização: a ação Enviar webhook numa regra, com o endpoint à tua escolha como destino.
O que é enviado ao certo está no template de payload do endpoint.
Nele colocas variáveis entre chavetas duplas, que ao enviar são
preenchidas com os dados da mensagem que desencadeou o envio:
{{subject}}, {{from}}, {{from_name}}, {{to}}, {{cc}},
{{date}}, {{preview}} (o início do texto), {{tags}},
{{mailbox}}, {{account_id}} e {{rule_name}}. A
Referência de variáveis por baixo do template explica cada uma. Uma
notificação do Slack para o canal de suporte tem, por exemplo, este aspeto:
{ "text": "Novo pedido de {{from_name}}: {{subject}}" }Para servidores próprios
Seção intitulada “Para servidores próprios”- Assinatura: se preencheres um Segredo HMAC (opcional), cada
pedido contém o cabeçalho
X-YouniqMail-Signature: sha256=…com uma assinatura HMAC-SHA256 do conteúdo. O teu servidor verifica assim que a mensagem vem de ti. - Repetições: em erros do servidor (5xx) e problemas de rede, o YouniqMail tenta de novo até três vezes, com pausas de 1, 2 e 4 segundos. Recusas (4xx) não são repetidas. O tempo limite defines por endpoint, no máximo 30 segundos.
- Método: POST é o padrão, PUT só se o teu endpoint o exigir. Os redirecionamentos não são seguidos.
Bom saber
Seção intitulada “Bom saber”- A mensagem vai para o endpoint que indicares. Verifica o URL com cuidado, porque quem o conhecer pode escrever no canal. Trata os URLs de webhook como palavras-passe.
- Tu decides o conteúdo: é transmitido o que estiver no template. Quem usar só assunto e remetente, só esses transmite.
- Funcionalidade Pro: os webhooks pertencem ao âmbito Pro.