Passar para o conteúdo principal

Emarsys → OmniChat: disparo de campanha via webhook

Guia para equipe de suporte configurar integração sem código no Emarsys, usando ação nativa Enviar um webhook.

P
Escrito por Produto Omnichat

Resumo do fluxo

Emarsys workflow (contato) → POST JSON plano → emarsys-mkt-adapter → fila SQS → Campaign API OmniChat → WhatsApp.

Pré-requisitos

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.

  1. Acesse app.omni.chat e faça login

  2. No menu lateral, abra Campanhas e crie ou edite a campanha WhatsApp que será disparada pela integração

  3. Configure a campanha normalmente (audiência integrada, modelo de mensagem, etc.) e salve se necessário

  4. Na tela de edição da campanha, clique no botão Webhook no rodapé da página

  5. No modal exibido, copie a URL clicando em Copiar webhook

  6. Guarde essa URL — ela será colada no Emarsys no Passo 7

Figura 0a: Botão Webhook na edição da campanha

image-20260702-190452.png

Figura 0b: Modal com URL do webhook para copiar

image-20260702-190339.png

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.

  1. Faça login na conta Emarsys (Engagement Cloud).

  2. 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).

  1. Em Automation, abra Webhook Node Presets.

  2. Clique em Create Preset.

  3. 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 webhookUrl completa da OmniChat. Precisa começar com https:// — a Emarsys exige endpoint seguro

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 webhookUrl. Se a tela exigir selecionar um método, usar a opção sem autenticação; se só houver Basic Auth ou JWT disponíveis, alinhar com o time técnico antes de prosseguir

Passo 3 — Criar o programa de automação

  1. Abra Automation Center > Programs.

  2. Clique em Create Program e escolha o tipo de programa (orientado a evento ou a audiência, conforme o gatilho desejado).

  3. 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

  1. No editor de fluxo (flowchart) do programa, arraste o nó Webhook para o canvas, conectado após o gatilho

  2. 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

phone

Telefone do contato

fullNumber (sanitizado para E.164, sem +)

Sim*

mobilePhone

Telefone celular do contato

fullNumber (alternativa a phone)

Alternativa*

firstName

Primeiro nome do contato

firstName

Não

lastName

Sobrenome do contato

lastName

Não

email

E-mail do contato

email

Não

company

Nome da empresa do contato

company_name

Não

jobTitle

Cargo do contato

job_title

Não

birthDate

Data de nascimento do contato

birthday

Não

city

Cidade do contato

city

Não

state

Estado/UF do contato

state

Não

country

País do contato

country

Não

externalId

Identificador do contato no CRM/sistema de origem

externalId

Não

bsuid

Identificador da automação/journey Emarsys que originou o disparo

bsuid

Não

contextInfo

Texto livre de contexto adicional sobre a campanha, usado pelo agente Whizz ao responder o contato (ex.: detalhes da promoção, produto, condições)

contextInfo (vira contextId via context-api; injetado no prompt do agente)

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 um contextId, 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 contextInfo dentro 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

  1. Revise o fluxo e clique em Launch/Activate

  2. 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

Respondeu à sua pergunta?