Abrir NextChat
Atendimento

Enviar à integração

Um botão na conversa que manda os dados para o seu sistema.

Nesta página

Com o Enviar à integração, a equipe manda dados de uma conversa para o sistema da empresa: um pedido para o delivery, um cadastro no ERP, um chamado no suporte. O NextChat faz um POST com JSON no endereço cadastrado e mostra na hora a resposta do seu sistema.

Diferente dos webhooks, que avisam a cada evento, aqui quem decide é a pessoa: o envio só acontece quando ela clica.

Como a empresa configura

Em Configurações → Integrações → Enviar à integração, o administrador cadastra cada destino com:

  • Endereço https que recebe o POST. Aceita variáveis (veja abaixo);
  • Autenticação, se o seu sistema pede (veja abaixo);
  • O que vai no JSON: mensagens, contato, número, quem enviou e arquivos;
  • Campos fixos que entram em todo envio, como "origem": "nextchat". Também aceitam variáveis;
  • Botão na conversa: o nome e o ícone que aparecem no botão de ações (raio) de cada conversa.

Na conversa, cada destino vira um botão:

“Mensagens” no JSONO que acontece ao clicar
Ligado (padrão)A pessoa escolhe as mensagens e confere o JSON antes de enviar
DesligadoEnvia na hora só os dados da conversa (contato, número, empresa…), sem selecionar nada

Autenticação no destino

FormaO que vai em cada envio
NenhumaSó a assinatura (X-NextChat-Signature)
Token (Bearer)Authorization: Bearer <token>
Cabeçalho próprio<nome>: <valor>, por exemplo X-Api-Key: …

O token fica guardado no NextChat e nunca volta para a tela (só o fim dele, para reconhecer). A assinatura vai sempre, com ou sem token: com ela, o seu sistema confere que o corpo veio do NextChat e não foi alterado.

O que chega

Corpo do POST (messages.shared)json
{
  "type": "messages.shared",
  "version": 1,
  "id": "1c9e…",
  "created_at": "2026-10-18T19:03:00Z",
  "integration": { "id": "…", "name": "Pedidos do ERP" },
  "company": { "id": "…", "name": "Pizzaria Bella" },
  "shared_by": { "id": "…", "name": "Amanda", "email": "amanda@…" },
  "channel": { "id": "…", "name": "Delivery", "phone": "5511999990000" },
  "contact": { "id": "…", "name": "Maria Souza", "phone": "5511988887777", "group": false },
  "conversation_id": "…",
  "note": "Mesa 4",
  "messages": [
    { "position": 1, "id": "…", "whatsapp_id": "3EB0…", "direction": "in", "from": "contact", "author": "Maria Souza",
      "type": "text", "text": "Quero 2 pizzas grandes", "sent_at": "2026-10-18T19:02:11Z", "media": null }
  ],
  "origem": "nextchat"
}
  • messages vai na ordem em que as mensagens foram enviadas, com até 200 por envio. Cada item tem sempre os mesmos campos. media traz mime_type, file_name, size_bytes, url e expires_at: o link vale 24 horas.
  • Com “Mensagens” desligado, messages chega como [].
  • shared_by, channel, contact e os arquivos saem do JSON quando a empresa desliga cada um.
  • account aparece nas integrações prontas que pedem um código da conta (por exemplo, o CNPJ da loja).
  • Os campos fixos ficam na raiz do JSON.
  • O botão Testar manda o mesmo formato com dados de exemplo e "test": true.

Variáveis

O endereço e os campos fixos aceitam variáveis com os nomes do JSON, em até dois níveis. Elas são trocadas em cada envio pelos dados da conversa.

Endereço com variáveisbash
https://erp.exemplo.com.br/clientes/{contact.phone}/pedidos?conversa={conversation_id}
VariávelValor
{contact.phone}, {contact.name}, {contact.id}O contato da conversa
{conversation_id}A conversa
{channel.phone}, {channel.name}, {channel.id}O número do WhatsApp da conversa
{company.id}, {company.name}A empresa
{shared_by.name}, {shared_by.email}, {shared_by.id}Quem enviou
{integration.name}, {integration.id}O destino
{account}O código da conta (integrações prontas)
{id}O envio
  • No endereço, os valores vão codificados para URL (um espaço vira %20). Nos campos fixos, vão como texto.
  • Variáveis só valem no caminho e na consulta do endereço, nunca no domínio: o envio nunca é desviado para outro servidor.
  • Uma variável desconhecida é recusada ao salvar. A tela mostra a prévia do endereço e o JSON completo de exemplo enquanto a pessoa configura.

Cabeçalhos e assinatura

CabeçalhoValor
Content-Typeapplication/json
X-NextChat-Eventmessages.shared
X-NextChat-DeliveryO id do envio (igual ao id do corpo)
X-NextChat-TimestampSegundos Unix do envio
X-NextChat-Signaturesha256= + HMAC-SHA256(segredo, timestamp + "." + corpo) em hex
A autenticaçãoAuthorization: Bearer … ou o cabeçalho próprio, quando configurados

A assinatura é a mesma dos webhooks: veja como conferir em Webhooks. O segredo whsec_… aparece uma vez, ao cadastrar o destino ou ao redefinir.

A resposta do seu sistema

  • Um 2xx conta como enviado. Qualquer outro status aparece para a pessoa como falha, com o motivo.
  • O corpo da resposta (até 4 KB) aparece na tela, por exemplo {"pedido":"P-77"}: use para devolver o número do pedido ou do chamado.
  • Responda em até 15 segundos. Não há nova tentativa automática: a pessoa vê o erro e pode enviar de novo.
Segurança do destino

Só https. Endereços de rede interna, loopback e de metadados de nuvem são recusados, e redirecionamentos não são seguidos. Só sai o que a pessoa escolheu, e só quando ela clica. Quem pode enviar fica em Perfis de acesso (“Enviar dados à integração”).

↑ ↓ navegar↵ abrirEsc fechar