Webhooks
Receba eventos em tempo real via webhooks.
Configurando webhooks
- Acesse Settings > Webhooks
- Clique em Novo Webhook
- Configure a URL e eventos
typescriptconst webhook = await client.webhooks.create({ url: 'https://api.example.com/webhook', events: ['message.received', 'contact.created'], secret: 'your-webhook-secret' });
Eventos disponíveis
| Evento | Descrição |
|---|---|
message.received | Nova mensagem recebida |
message.sent | Mensagem enviada |
contact.created | Novo contato criado |
contact.updated | Contato atualizado |
thread.created | Nova thread criada |
thread.resolved | Thread resolvida |
agent.response | Agente respondeu |
Formato do payload
json{ "id": "evt_123456", "type": "message.received", "timestamp": "2024-01-15T10:30:00Z", "data": { "message": { "id": "msg_789", "content": "Olá!", "from": "+5511999999999" }, "contact": { "id": "contact_456", "name": "João Silva" }, "thread": { "id": "thread_123" } } }
Verificação de assinatura
Valide que o webhook veio do SuperSquad:
typescriptimport crypto from 'crypto'; function verifyWebhook({ payload, signature, secret }: { payload: string; signature: string; secret: string; }): boolean { const expected = crypto .createHmac('sha256', secret) .update(payload) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(`sha256=${expected}`) ); }
Retries
Se seu endpoint retornar erro, tentamos novamente:
- 1ª retry: 1 minuto
- 2ª retry: 5 minutos
- 3ª retry: 30 minutos
- 4ª retry: 2 horas
Após 4 tentativas, o webhook é marcado como falho.
Logs
Acesse Settings > Webhooks > Logs para ver:
- Histórico de entregas
- Payloads enviados
- Respostas recebidas
- Erros e retries