Webhooks
Receba notificacoes em tempo real sobre eventos na sua aplicacao.
Como Funciona
Webhooks enviam requisicoes HTTP POST para sua URL sempre que um evento acontece. Sua aplicacao recebe os dados do evento e pode processa-los automaticamente.
Eventoocorre
POSTenviado para sua URL
200 OKconfirma recebimento
NooviChat Webhooks
Configuracao
Registre um webhook via API ou painel de administracao:
bash
curl -X POST \
"https://chat.seudominio.com/api/v1/accounts/{account_id}/webhooks" \
-H "api_access_token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/webhooks/noovichat",
"subscriptions": [
"conversation_created",
"message_created",
"contact_created"
]
}'Eventos Disponiveis
| Evento | Descricao |
|---|---|
conversation_created | Nova conversa criada |
conversation_status_changed | Status da conversa alterado (aberta, resolvida, pendente) |
message_created | Nova mensagem recebida ou enviada |
message_updated | Mensagem atualizada |
contact_created | Novo contato criado |
contact_updated | Dados do contato atualizados |
webwidget_triggered | Widget de chat acionado no site |
Exemplo de Payload
json
{
"event": "message_created",
"id": "1234",
"account": {
"id": 1,
"name": "Minha Empresa"
},
"content": "Ola, preciso de ajuda!",
"conversation": {
"id": 567,
"status": "open"
},
"sender": {
"id": 890,
"name": "Joao Silva",
"type": "contact"
},
"created_at": "2025-01-15T14:30:00.000Z"
}NooviFlow Webhooks
Configuracao
bash
curl -X POST \
"https://flow.seudominio.com/api/v1/webhooks" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/webhooks/nooviflow",
"events": [
"invoice.created",
"invoice.paid",
"transaction.created"
]
}'Eventos Disponiveis
| Evento | Descricao |
|---|---|
transaction.created | Nova transacao registrada |
transaction.updated | Status da transacao alterado |
invoice.created | Nova fatura emitida |
invoice.paid | Fatura marcada como paga |
invoice.overdue | Fatura vencida |
contract.created | Novo contrato criado |
contract.cancelled | Contrato cancelado |
Recebendo Webhooks
Exemplo de endpoint para receber webhooks:
app.post("/webhooks/noovichat", (req, res) => {
const { event, ...data } = req.body;
switch (event) {
case "message_created":
handleNewMessage(data);
break;
case "conversation_status_changed":
handleStatusChange(data);
break;
default:
console.log("Evento nao tratado:", event);
}
// Responda rapidamente com 200
res.status(200).json({ received: true });
});Boas Praticas
- Responda com 200 imediatamente e processe os dados de forma assincrona
- Implemente idempotencia — o mesmo evento pode ser enviado mais de uma vez
- Use HTTPS na URL de webhook para seguranca dos dados
- Implemente timeout handling — webhooks que nao respondem em 10s sao considerados falhos
- Armazene os eventos recebidos em um log para debugging
- Configure retries para falhas temporarias (o sistema reenvia ate 3 vezes)