Webhooks
- O que são webhooks e como funcionam no AutoTalk
- O que cada entrega contém e como as entregas se comportam
- Como criar e gerenciar endpoints de webhook
Webhooks enviam notificações em tempo real para serviços externos quando eventos acontecem no AutoTalk. Em vez de verificar repetidamente a API do AutoTalk em busca de novos dados, seu sistema externo recebe uma notificação automática no momento em que algo acontece, como uma nova mensagem chegando ou um contato sendo atualizado.
Você gerencia webhooks na página Webhooks em Integrações na barra lateral.
Como os webhooks funcionam
- Você fornece uma URL do webhook (um endpoint no seu servidor ou um serviço de terceiros que pode receber requisições HTTP).
- Você escolhe um Modelo de dados e uma Operação (por exemplo,
contacts+afterCreate) que devem acionar o webhook e, opcionalmente, um Filtro CEL para restringir quais alterações o disparam. Seus próprios Tipos Personalizados também funcionam — escolha a entradact:<slug>no dropdown de Modelo (para Tipos Personalizados, disparam as operaçõesafterCreate,afterUpdateeafterDelete). - Quando uma alteração correspondente ocorre no AutoTalk, a plataforma envia uma requisição HTTP POST para sua URL do webhook com os dados do evento no formato JSON.
Seu sistema externo recebe os dados e pode agir sobre eles como necessário, seja atualizando um banco de dados, enviando uma notificação ou disparando um workflow.
O dropdown oferece um conjunto fixo de modelos integrados mais os seus próprios Tipos Personalizados como entradas ct:<slug>. Os modelos integrados que você pode escolher são contacts, conversations, messages, agents, workflows e webhooks — nenhum outro modelo pode ser selecionado ali. Para reagir a qualquer outra coisa, construa um workflow com um trigger do tipo hook e um passo de Requisição HTTP em vez de um webhook.
O filtro
O filtro é uma expressão CEL sobre doc (o registro), prev (a versão anterior, ou null), companyId, type, op e now. Ele os vê como um filtro de hook de workflow: todo id é a sua string hexadecimal de 24 caracteres e toda data uma string ISO 8601, então compare ids diretamente, por exemplo doc.contactId == "65f0c1d2e3a4b5c6d7e8f901".
Um filtro que falha — um erro, como ler um campo que o registro não tem, ou passar de 1000 ms — nunca entrega o webhook, seja qual for a configuração Em caso de erro. Proteja um campo que pode não existir ou ser nulo: has(doc.channel) && doc.channel != null && doc.channel.kind == 'whatsapp'.
Payload da entrega
Cada entrega é uma requisição HTTP POST com um corpo JSON em um formato estável:
{
"id": "contacts:afterCreate:66a1b2c3d4e5f6a7b8c9d0e1:2026-07-02T14:03:07.512Z",
"model": "contacts",
"op": "afterCreate",
"at": "2026-07-02T14:03:07.512Z",
"companyId": "664a0f9eb1c2d3e4f5a6b7c8",
"tenantId": "664a0f9eb1c2d3e4f5a6b7c8",
"doc": {
"_id": "66a1b2c3d4e5f6a7b8c9d0e1",
"name": "Jane Doe",
"createdAt": "2026-07-02T14:03:07.498Z",
"updatedAt": "2026-07-02T14:03:07.498Z"
},
"prev": null
}
| Campo | Significado |
|---|---|
id | Um identificador por evento que combina o modelo, a operação, o id do registro e o timestamp |
model | O modelo de dados que foi alterado — um modelo integrado como contacts, ou ct:<slug> para um Tipo Personalizado |
op | A operação de ciclo de vida que disparou o webhook (por exemplo afterCreate, afterUpdate, afterDelete) |
at | Quando o evento foi disparado, como um timestamp ISO 8601 |
companyId / tenantId | O id da sua empresa (ambos os campos carregam o mesmo valor) |
doc | O registro envolvido no evento (o exemplo acima está truncado — você recebe o registro completo) |
prev | A versão anterior do registro, quando existe (atualizações); null caso contrário (por exemplo, em criações) |
Para entregas de afterDelete de Tipo Personalizado (ct:), doc não é o registro excluído — é um objeto de resumo {filter, hardDelete, deletedCount} que descreve a exclusão, e prev é sempre null.
Semântica de entrega
- Cada evento recebe uma única tentativa de entrega por webhook — entregas que falham não são repetidas.
- A requisição expira após 5 segundos, e redirecionamentos não são seguidos — aponte o webhook diretamente para um endpoint que responda rapidamente.
- Responda com qualquer status 2xx para confirmar o recebimento; o corpo da resposta não é processado, mas precisa ficar abaixo de 64 KiB — uma resposta maior aborta a entrega e conta como uma entrega com falha.
- O AutoTalk registra as entregas com falha nos logs da plataforma e nas métricas de entrega, mas não existe um registro de entregas por webhook que você possa abrir no aplicativo — se precisar de um registro do que o seu receptor recebeu, registre cada requisição do seu lado.
- As entregas não são assinadas. Se o seu receptor precisa verificar que uma requisição realmente veio do AutoTalk, inclua um token difícil de adivinhar na sua URL do webhook (por exemplo, um parâmetro de query secreto) e verifique-o do seu lado.
Gerenciando webhooks
Visualizando webhooks existentes
Navegue até Integrações > Webhooks. A página exibe uma lista intitulada Webhooks com todos os seus endpoints configurados. A lista segue o formato CRUD padrão do AutoTalk com opções para filtrar, visualizar, editar e excluir entradas.
Criando um novo webhook
- Na página de Webhooks, clique no botão + (dica "Adicionar novos webhooks").
- Preencha os campos:
- URL do webhook — O endpoint para onde o AutoTalk deve enviar os dados do evento (precisa ser uma URL HTTP/HTTPS pública)
- Ativado — Se o webhook dispara (ativado por padrão)
- Gatilho — Um Modelo, uma Operação e um Filtro CEL opcional que decidem quais alterações disparam o webhook. A lista de Modelo é o conjunto fixo descrito em Como os webhooks funcionam, acima.
- Salve o webhook.
O AutoTalk agora enviará uma requisição HTTP POST para sua URL do webhook toda vez que uma alteração correspondente ocorrer.
Editando ou excluindo um webhook
- Clique em qualquer webhook na lista para visualizar seus detalhes e modificar sua configuração.
- Para parar as notificações para um endpoint específico, exclua o webhook da lista.
Próximos passos
- Tokens de API — Crie tokens para autenticar requisições de API
- Workflows — Construa fluxos de automação internos dentro do AutoTalk
- Adicionando uma integração — Passo a passo geral de configuração de canal