Webhooks

Receba notificações em tempo real sobre eventos na sua aplicação.

Como Funciona

Webhooks enviam requisições HTTP POST para sua URL sempre que um evento acontece. Sua aplicação recebe os dados do evento e pode processá-los automaticamente.

Eventoocorre
POSTenviado para sua URL
200 OKconfirma recebimento

NooviChat Webhooks

Configuração

Registre um webhook via API ou painel de administração. Os endpoints de gerenciamento exigem token de usuário administrador da conta:

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 '{
    "webhook": {
      "url": "https://your-app.com/webhooks/noovichat",
      "subscriptions": [
        "conversation_created",
        "message_created",
        "contact_created"
      ]
    }
  }'

Eventos Disponíveis (32)

EventoDescrição
conversation_status_changedStatus da conversa alterado (aberta, resolvida, pendente)
conversation_updatedConversa atualizada
conversation_createdNova conversa criada
contact_createdNovo contato criado
contact_updatedDados do contato atualizados
message_createdNova mensagem recebida ou enviada
message_updatedMensagem atualizada
webwidget_triggeredWidget de chat acionado no site
inbox_createdNova inbox criada
inbox_updatedInbox atualizada
conversation_typing_onIndicador de digitação iniciado
conversation_typing_offIndicador de digitação encerrado
appointment.createdNovo atendimento agendado
appointment.updatedDados do atendimento atualizados
appointment.confirmedAtendimento confirmado
appointment.completedAtendimento concluído
appointment.cancelledAtendimento cancelado
appointment.no_showCliente não compareceu
appointment.rescheduledAtendimento reagendado
reminder.sentLembrete enviado
reminder.failedFalha no envio do lembrete
professional.createdProfissional criado
professional.updatedProfissional atualizado
service.createdServiço criado
service.updatedServiço atualizado
follow_up_scheduledFollow-up agendado
follow_up_sentFollow-up enviado
follow_up_failedFalha no envio do follow-up
follow_up_cancelledFollow-up cancelado
broadcast_follow_up_sentFollow-up de disparo enviado
broadcast_startedDisparo em massa iniciado
broadcast_completedDisparo em massa concluído

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

Configuração

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 Disponíveis

EventoDescrição
transaction.createdNova transação registrada
transaction.updatedStatus da transação alterado
invoice.createdNova fatura emitida
invoice.paidFatura marcada como paga
invoice.overdueFatura vencida
contract.createdNovo contrato criado
contract.cancelledContrato 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 não tratado:", event);
  }

  // Responda rapidamente com 200
  res.status(200).json({ received: true });
});

Boas Práticas

  • Responda com 200 imediatamente e processe os dados de forma assíncrona
  • Implemente idempotência — o mesmo evento pode ser enviado mais de uma vez
  • Use HTTPS na URL de webhook para segurança dos dados
  • Implemente timeout handling — o timeout padrão de entrega é 5 segundos e pode ser configurado na instalação
  • Armazene os eventos recebidos em um log para debugging
  • Configure retries para falhas temporárias (o sistema reenvia até 3 vezes)