Resumo do fluxo
Emarsys workflow (contato) → POST JSON plano → emarsys-mkt-adapter → fila SQS → Campaign API OmniChat → WhatsApp.
Pré-requisitos
Emarsys com Data Hub Professional (ou trial) — necessário para ação Enviar um webhook
URL assinada do adapter (
webhookUrl) gerada na OmniChatCampanha com
audiência integradajá criada na OmniChat Configurando uma Audiência Dinâmica para integração com serviços externos | Central de Ajuda | OmniChatContatos no Emarsys com telefone válido em
mobilePhoneouphone
Passo 0 — Obter URL do webhook na OmniChat
Antes de configurar o workflow no Emarsys, obtenha a webhookUrl assinada da campanha diretamente na plataforma OmniChat.
Acesse app.omni.chat e faça login
No menu lateral, abra Campanhas e crie ou edite a campanha WhatsApp que será disparada pela integração
Configure a campanha normalmente (audiência integrada, modelo de mensagem, etc.) e salve se necessário
Na tela de edição da campanha, clique no botão Webhook no rodapé da página
No modal exibido, copie a URL clicando em Copiar webhook
Guarde essa URL — ela será colada no Emarsys no Passo 7
Figura 0a: Botão Webhook na edição da campanha
Figura 0b: Modal com URL do webhook para copiar
Formato esperado da URL:
https://emarsys-mkt-adapter.omni.chat/v1/webhook/{retailerId}/{campaignId}/{hash}
O modal pode exibir referência a outro CRM na interface, mas a URL gerada é exclusiva da campanha e deve ser usada no Emarsys conforme este guia.
Passo 1 — Acessar o Automation Center na Emarsys
Os prints de tela reais ainda não foram capturados em uma conta Emarsys. Os passos abaixo foram escritos com base no texto das referências oficiais listadas ao final desta seção. Validar a nomenclatura exata das telas e substituir os placeholders de figura assim que alguém com acesso à conta Emarsys capturar os prints reais.
Faça login na conta Emarsys (Engagement Cloud).
No menu lateral, abra Automation (Automation Center).
Passo 2 — Criar um preset de Webhook
Antes de usar um nó de Webhook em um programa, é necessário cadastrar um preset com o endpoint e a autenticação (tela Automation > Webhook Node Presets).
Em Automation, abra Webhook Node Presets.
Clique em Create Preset.
Dê um nome ao preset (ex.:
OmniChat - Campanha WhatsApp XYZ) — esse nome identifica o preset na lista e aparece como nome do nó.
Campo | Valor |
Endpoint URL | Colar a |
Método | POST (fixo no nó de Webhook) |
Autenticação | Não é necessário configurar autenticação adicional no preset — o hash de validação já está embutido na própria |
Passo 3 — Criar o programa de automação
Abra Automation Center > Programs.
Clique em Create Program e escolha o tipo de programa (orientado a evento ou a audiência, conforme o gatilho desejado).
Dê um nome ao programa (ex.:
OmniChat - Campanha WhatsApp XYZ).
Passo 4 — Configurar o gatilho (Start)
Configure o nó inicial do programa conforme a forma de disparo:
External event: selecione o evento que deve inscrever o contato no programa — recomendado quando o disparo parte de uma ação/evento externo
Lista de contatos / segmento: selecione a audiência manualmente, para inscrição direta
Habilite a opção de reinscrição (re-entry) caso o mesmo contato precise disparar a campanha novamente em execuções futuras.
Passo 5 — Adicionar o nó de Webhook ao fluxo
No editor de fluxo (flowchart) do programa, arraste o nó Webhook para o canvas, conectado após o gatilho
Abra o nó e selecione o preset criado no Passo 2
Passo 6 — Mapear os campos do payload
No nó de Webhook, mapeie os campos de contato da Emarsys para as chaves do JSON enviado ao adapter, usando os dropdowns ao lado de cada propriedade. O adapter aceita o payload plano — campos na raiz, sem aninhar em properties.
Chave no payload (raiz) | Descrição | Repassado para Campaign API como | Obrigatório |
| Telefone do contato |
| Sim* |
| Telefone celular do contato |
| Alternativa* |
| Primeiro nome do contato |
| Não |
| Sobrenome do contato |
| Não |
| E-mail do contato |
| Não |
| Nome da empresa do contato |
| Não |
| Cargo do contato |
| Não |
| Data de nascimento do contato |
| Não |
| Cidade do contato |
| Não |
| Estado/UF do contato |
| Não |
| País do contato |
| Não |
| Identificador do contato no CRM/sistema de origem |
| Não |
| Identificador da automação/journey Emarsys que originou o disparo |
| Não |
| Texto livre de contexto adicional sobre a campanha, usado pelo agente Whizz ao responder o contato (ex.: detalhes da promoção, produto, condições) |
| Não |
qualquer outro campo (texto, número ou booleano) | Token de personalização livre, definido pelo time que configura o Webhook node | repassado com o mesmo nome, como variável livre de personalização | Não |
* Pelo menos um telefone válido (phone ou mobilePhone). Sem telefone, o adapter retorna 202 mas não enfileira o disparo. Campos do tipo objeto, array, null ou vazios são ignorados e não viram variável de personalização.
retailerId e campaignId já fazem parte da webhookUrl (path) — não devem ser incluídos no corpo do payload.
Contexto adicional para o agente Whizz (contextInfo)
O campo opcional contextInfo envia um texto livre que alimenta o agente Whizz durante a conversa com o contato, priorizado para perguntas sobre a campanha.
Como funciona:
O texto de
contextInfoé salvo no context-api e vira umcontextId, que viaja junto com o disparo até a Campaign API.O contexto não altera a mensagem enviada — o template WhatsApp é fixo e aprovado pela Meta. Ele só é usado pelo agente na conversa que segue.
O contexto só é lido quando o contato responde à campanha. Sem resposta, o contexto não chega a ser consultado.
Uma resposta que é só uma saudação (ex.: "Oi") não aciona o contexto — o agente responde a saudação padrão primeiro. Para validar que o contexto está funcionando, responda com uma pergunta sobre a campanha (ex.: "quanto custa X?") e confira se o agente usa a informação enviada.
Repetir o mesmo texto em
contextInfodentro de 90 dias reaproveita o contexto já salvo (cache por hash do texto). Para forçar um contexto novo, altere o texto.
contextInfo só é aceito como texto (string). Se o valor mapeado no Emarsys for um objeto, array ou número, o campo é descartado silenciosamente — sem erro nem log.
Passo 7 — Ativar o programa
Revise o fluxo e clique em Launch/Activate
Confirme que o status do programa está ativo
Passo 8 — Inscrever contatos (disparo de teste)
Inscreva um contato de teste no programa (manualmente ou pelo gatilho configurado) para validar o fluxo de ponta a ponta.
Passo 9 — Validar execução
No painel do programa, abra o histórico/log de execução do nó de Webhook e confirme que a requisição foi enviada com sucesso (resposta 202 do adapter).
Referências oficiais consultadas (sem prints — conteúdo renderizado via JS/bloqueado para scraping):
Respostas do adapter
HTTP | Significado |
202 | Aceito — evento enfileirado (ou descartado se sem telefone) |
400 | Payload inválido (body vazio, sem campos de contato) |
401 | Hash inválido na URL |
Troubleshooting
Webhook Sucesso no Emarsys, mas sem WhatsApp: verificar telefone do contato e status da campanha na OmniChat
Não inscrito: habilitar reinscrição no gatilho
400 no adapter: corpo sem campos de contato na raiz
Ação webhook indisponível: confirmar plano Data Hub Professional