🔗 Integrações

Webhooks no Chatys: integre qualquer sistema

O que é um Webhook e quando usar

Um webhook é uma forma de o Chatys notificar seu sistema externo em tempo real quando algo acontece — sem que você precise ficar consultando a API periodicamente. Em vez de perguntar "tem algo novo?", o Chatys empurra a informação automaticamente para uma URL do seu servidor assim que o evento ocorre.

Quando usar webhooks em vez de polling:

  • Você quer atualizar um CRM ou ERP imediatamente quando uma nova conversa chega
  • Precisa criar um ticket no Zendesk, Jira ou sistema próprio quando um lead é qualificado
  • Quer acionar automações (email, SMS, notificação interna) baseadas em eventos do Chatys
  • Precisa sincronizar dados com um sistema legado sem usar Zapier ou Make
  • Deseja construir integrações personalizadas com controle total sobre o fluxo
Webhooks exigem um servidor ou endpoint acessível publicamente na internet que consiga receber requisições HTTP POST. Se você não tem um servidor próprio, considere usar o Zapier ou Make como intermediário.

Eventos disponíveis

O Chatys pode disparar webhooks para os seguintes eventos:

  • message.received — Nova mensagem recebida de um contato (qualquer canal)
  • message.sent — Mensagem enviada por agente ou IA para um contato
  • conversation.created — Nova conversa iniciada (primeiro contato ou após encerramento)
  • conversation.closed — Conversa marcada como encerrada por agente ou IA
  • conversation.assigned — Conversa atribuída a um agente ou time específico
  • tag.applied — Tag aplicada a uma conversa ou contato
  • lead.qualified — Agente IA identificou e qualificou um lead conforme critérios configurados
  • contact.created — Novo contato adicionado ao CRM do Chatys
  • contact.updated — Dados de um contato existente foram atualizados
  • ai.handoff — Agente IA transferiu a conversa para atendimento humano

Como criar um Webhook no Chatys

Tela de integrações externas do Chatys

Painel de Integrações do Chatys — acesse Configurações → Integrações para gerenciar webhooks

1
No painel do Chatys, acesse Configurações (ícone de engrenagem) → Integrações → Webhooks.
2
Clique em + Novo Webhook. Um formulário de configuração será exibido.
3
No campo URL de Destino, insira o endpoint do seu servidor que receberá os eventos. Exemplo: https://meucrm.com.br/api/chatys-webhook. A URL deve aceitar requisições POST.
4
Em Eventos, marque quais eventos devem acionar este webhook. Você pode criar webhooks diferentes para eventos distintos, o que facilita a organização.
5
No campo Secret, o Chatys gera automaticamente uma chave secreta (ou você pode inserir a sua). Essa chave é usada para assinar cada requisição com HMAC-SHA256, permitindo que seu servidor valide a autenticidade do payload.
6
Dê um nome descritivo ao webhook (ex: "CRM Salesforce — leads qualificados") e clique em Salvar.
7
Use o botão Enviar Evento de Teste para verificar se seu endpoint está recebendo corretamente antes de ativar em produção.
Dica: Você pode criar múltiplos webhooks apontando para URLs diferentes — um para o CRM, outro para o ERP, outro para notificações internas. Cada um pode ouvir eventos distintos independentemente.

Formato do Payload JSON

Cada evento enviado pelo Chatys segue o mesmo formato base:

{
  "event": "message.received",
  "timestamp": "2025-01-15T14:32:00.000Z",
  "account_id": "acc_abc123",
  "data": {
    "conversation_id": "conv_xyz789",
    "contact": {
      "id": "contact_456",
      "name": "Maria Silva",
      "phone": "+5511999887766",
      "email": "maria@email.com",
      "tags": ["cliente", "vip"]
    },
    "message": {
      "id": "msg_001",
      "type": "text",
      "content": "Olá, gostaria de saber sobre os planos",
      "channel": "whatsapp",
      "direction": "inbound",
      "created_at": "2025-01-15T14:32:00.000Z"
    },
    "assigned_agent": {
      "id": "agent_789",
      "name": "João Atendente"
    }
  }
}

Para o evento lead.qualified, o campo data incluirá adicionalmente:

"lead": {
  "score": 85,
  "qualification_reason": "interesse confirmado, orçamento definido",
  "custom_fields": {
    "produto_interesse": "Plano Profissional",
    "orcamento": "R$ 500-1000/mês"
  }
}

Como validar a assinatura HMAC

Para garantir que as requisições vêm realmente do Chatys e não de terceiros, valide a assinatura em cada request recebido:

1
O Chatys envia o header X-Chatys-Signature em cada requisição, com o valor sha256=HASH_GERADO.
2
No seu servidor, gere o HMAC-SHA256 do corpo bruto da requisição usando o Secret configurado no webhook.
3
Compare o hash gerado com o valor do header. Se forem iguais, a requisição é autêntica. Se diferentes, descarte e retorne HTTP 401.

Exemplo em Node.js:

const crypto = require('crypto');

function validateSignature(body, signature, secret) {
  const hmac = crypto.createHmac('sha256', secret);
  hmac.update(body, 'utf8');
  const digest = 'sha256=' + hmac.digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(digest),
    Buffer.from(signature)
  );
}

// No handler do webhook:
const isValid = validateSignature(
  req.rawBody,        // corpo bruto, antes de parsear JSON
  req.headers['x-chatys-signature'],
  process.env.WEBHOOK_SECRET
);
if (!isValid) return res.status(401).send('Unauthorized');
Atenção: Use o corpo bruto (raw body) para calcular o HMAC — não o JSON já parseado. Qualquer modificação no corpo, mesmo espaços, invalidará a assinatura. Configure seu framework para preservar o raw body antes do parse.

Como testar um Webhook

1
Para testar sem ter um servidor próprio, use o serviço webhook.site — acesse o site, copie a URL única gerada e cole no campo URL do webhook no Chatys.
2
Na tela de configuração do webhook no Chatys, clique em Enviar Evento de Teste. O Chatys enviará um payload de exemplo do evento selecionado.
3
Verifique no webhook.site (ou no log do seu servidor) se o payload chegou corretamente com os campos esperados.
4
Na lista de webhooks do Chatys, clique no webhook e veja o Log de Entregas — cada tentativa é registrada com o status HTTP de resposta e o tempo de resposta.
Dica: Seu endpoint deve responder com HTTP 200 (ou qualquer 2xx) em menos de 10 segundos. Se demorar mais, o Chatys marcará como falha e tentará novamente. Para processamentos longos, responda 200 imediatamente e processe de forma assíncrona.

Retry automático em caso de falha

O Chatys tem um sistema de retry automático para garantir que eventos não se percam:

  • 1ª tentativa: imediatamente após o evento
  • 2ª tentativa: 5 minutos após a falha
  • 3ª tentativa: 30 minutos após
  • 4ª tentativa: 2 horas após
  • 5ª tentativa: 6 horas após — última tentativa

Se todas as tentativas falharem, o evento é marcado como "Falha permanente" no log e um alerta é enviado por email para o Admin da conta. O endpoint é temporariamente desativado se a taxa de falha ultrapassar 50% em 1 hora.

Usando webhooks para integrar com CRM e ERP

O caso de uso mais comum de webhooks no Chatys é a sincronização bidirecional com sistemas de CRM e ERP:

  • Chatys → CRM: quando um contato é criado ou atualizado no Chatys, use o evento contact.created ou contact.updated para criar/atualizar o registro no seu CRM (Salesforce, HubSpot, RD Station, etc.)
  • Lead qualificado → CRM: use lead.qualified para criar automaticamente uma oportunidade de venda no CRM com os dados capturados pelo Agente IA
  • Conversa encerrada → ERP: use conversation.closed para criar um registro de atendimento no ERP e atualizar o histórico do cliente
  • Tag aplicada → segmentação: use tag.applied para mover contatos entre listas de email marketing ou segmentos no CRM

Casos de uso — como aplicar no seu negócio

Veja como empresas de diferentes segmentos utilizam esta funcionalidade na prática:

🛍️ E-commerce e lojas online

Quando uma conversa é resolvida no Chatys (evento conversation.resolved), o webhook dispara e atualiza o status do ticket no ERP da empresa automaticamente. Fim da duplicidade de atualizações manuais em dois sistemas — o time de suporte ganhou em média 2 horas por dia com essa automação.

🏥 Clínicas e profissionais de saúde

Quando o paciente marca consulta via Chatys, o webhook cria o agendamento automaticamente no software médico (Clinicorp, iMed, etc.). A secretária não precisa digitar a mesma informação em dois lugares — menos trabalho repetitivo e zero risco de divergência entre os sistemas.

🏠 Imobiliárias e construtoras

Um novo lead no Chatys dispara o webhook, que cria o lead no Pipedrive com todas as informações coletadas pela IA e notifica o corretor responsável no Slack. O pipeline de vendas fica sempre atualizado sem qualquer intervenção manual, e nenhum lead fica esquecido na fila.

🍕 Restaurantes e food service

Quando o cliente cria uma conversa sobre "entrega atrasada" (detectado por tag automática), o webhook notifica a transportadora via API e cria um ticket de investigação automaticamente. O tempo médio de resolução cai de 48 horas para 4 horas, com impacto direto na satisfação do cliente.

💼 Serviços, consultoria e SaaS

Em fintechs, cada mensagem com as palavras "empréstimo" ou "financiamento" dispara um webhook para o sistema de scoring de crédito. Se o score for aprovado, o sistema retorna via API e a IA apresenta automaticamente uma proposta personalizada dentro da mesma conversa — sem intervenção humana.

Melhores práticas:
  • Sempre implemente validação HMAC do lado do servidor antes de processar o payload — é uma medida de segurança crítica que protege sua aplicação de chamadas maliciosas.
  • Use uma fila de mensagens (Redis, SQS) para processar webhooks de alto volume sem perder eventos em picos de tráfego.
  • Responda sempre com HTTP 200 em até 5 segundos após receber o webhook, ou o Chatys realizará tentativas de reenvio automáticas que podem gerar processamento duplicado.

Este artigo foi útil?