Isso é diferente da API pública (
/wapi): não usa Authorization: Bearer, não tem escopo, e não é você quem chama — é o seu sistema externo que recebe a URL e faz o POST.Como criar
1
Crie o webhook no painel
Vá em API (menu lateral) → aba Webhooks e crie um novo. Escolha a ação: criar card (
create_opportunity), disparar flow (trigger_flow) ou sincronizar contato (upsert_contact). O painel gera uma URL pública com um hash não-adivinhável — copie a URL exibida ali, não monte ela manualmente.2
Configure o fieldMapping
O O mapeamento configurado no painel seria
fieldMapping traduz os caminhos do JSON que o sistema externo manda pros campos que o Whatix entende. Cada valor é um dot-path dentro do payload recebido:Se o formulário externo manda:
phone → lead.telefone, contactName → lead.nome, title → interesse.3
Teste com cURL
Use a URL copiada do painel no passo 1:A resposta é imediata (
202), antes de qualquer processamento:O que acontece depois do 202
O202 só confirma que o Whatix recebeu o payload — o processamento roda em background logo em seguida:
create_opportunity: resolve o contato pelophone(reaproveita se o número já existe, cria se não), cria o card no pipeline/etapa/origem configurados no webhook e aplica os campos personalizados decustom, se houver.trigger_flow: resolve o contato, abre um ticket na conexão configurada no webhook e roda o flow. As variáveis nativas do flow ficam disponíveis normalmente ({{nome}},{{telefone}},{{protocolo}},{{data}},{{hora}}, resolvidas do contato/ticket) — mas o payload bruto recebido no webhook não vira variável do flow.upsert_contact: cria ou atualiza o contato comname/email/document, sem criar card nem disparar flow.
Autenticação opcional e limites
- Por padrão o webhook não exige nada além do hash (
authMode: none). Você pode configurar um token no painel e exigi-lo no headerX-Whatix-Token. - Um hash inativo ou inexistente responde
404. - Rate limit próprio de 120 requisições por minuto por hash (independente do rate limit de token da API
/wapi) — passou disso,429. - Para evitar duplicar o card/contato em caso de reenvio (retry do sistema externo), mande uma chave de idempotência: os headers
Idempotency-KeyouX-Idempotency-Key, ou os camposidempotency_key,event_id/eventIdno corpo (o primeiro valor encontrado, nessa ordem, é usado) — chamadas repetidas com a mesma chave dentro de 1 hora são ignoradas, e a resposta vem comduplicate: true(em vez de reprocessar) pra você identificar isso do seu lado.
Erros comuns
Para consumir dados do Whatix pela API tradicional (com token e escopos), veja Autenticação e os demais guias.