Pular para o conteúdo
Acessar conta

Mapear o corpo recebido para campos do contato

JSONPath na prática: o caminho de cada valor num JSON de exemplo, o tipo de campo certo e o que muda entre o webhook de entrada e o fluxo.

Guia10 min
Atualizado em 26/10/2026

Mapear é ligar cada valor de um JSON a um campo do contato, com um caminho JSONPath. Três lugares da NexTags fazem isso, cada um com as suas regras:

OndeDe onde vem o JSONOnde fica o caminho
Webhook de entradaO corpo que o outro sistema mandaFind or create contact e Save incoming data
Requisição externaA resposta da sua APIAba Mapeamento de resposta
Obter dados de JSONUm campo de texto do contato que guarda um JSONSalve a resposta em um campo personalizado.

Este guia usa um JSON de exemplo para mostrar o caminho de cada valor, o tipo de campo certo e o que muda em cada lugar.

Antes de começar

  • Um exemplo real do JSON. Veja no passo 1 onde conseguir.
  • Os campos personalizados que vão receber os valores. Veja Criar campos personalizados.

Passo a passo

Passo 1: Pegue um exemplo real do JSON

Monte os caminhos sobre um JSON de verdade, e não sobre a documentação de memória: um nome de chave diferente basta para o campo ficar vazio.

  • Webhook de entrada: o histórico de envios da outra plataforma, como o Payload da Hotmart ou o Ver logs da Kiwify, ou um envio de teste para o Test URL do n8n. Veja Exemplos de plataformas.
  • Requisição externa: o Corpo da resposta, no Testar Agora da ação.
  • Obter dados de JSON: o conteúdo do campo. Para ver, mostre o campo numa mensagem de teste.

O exemplo deste guia, um pedido:

{
  "cliente": {
    "nome": "Ana Souza",
    "email": "ana@exemplo.com.br",
    "telefone": "5511988776655",
    "vip": true
  },
  "pedido": {
    "id": "PED-1001",
    "numero": "000123",
    "total": 249.9,
    "pago_em": 1793030400,
    "itens": [
      { "produto": "Curso de Confeitaria", "preco": 199.9 },
      { "produto": "Apostila impressa", "preco": 50 }
    ]
  },
  "utm": { "utm_source": "instagram" },
  "dados-do-cupom": { "código": "BEMVINDO10" }
}

Passo 2: Ache o caminho de cada valor

O caminho começa com $, o JSON inteiro, e desce um nível a cada ponto. Item de lista vai entre colchetes, contando do zero. Chave com hífen, espaço ou acento vai entre aspas e colchetes.

Valor que você querJSONPathResultado
E-mail do cliente$.cliente.emailana@exemplo.com.br
Telefone do cliente$.cliente.telefone5511988776655
Cliente VIP$.cliente.viptrue
ID do pedido$.pedido.idPED-1001
Número do pedido$.pedido.numero000123
Total do pedido$.pedido.total249.9
Data do pagamento$.pedido.pago_em1793030400
Primeiro produto$.pedido.itens[0].produtoCurso de Confeitaria
Preço do segundo produto$.pedido.itens[1].preco50
Origem da campanha$.utm.utm_sourceinstagram
Código do cupom$["dados-do-cupom"]["código"]BEMVINDO10
$.cliente.email
$.pedido.itens[0].produto
$["dados-do-cupom"]["código"]

O caminho precisa chegar num valor: um texto, um número, true ou false. $.pedido e $.pedido.itens apontam para um grupo de dados, e não para um valor. Para listas de tamanho que muda, só dá para pegar posições fixas, como [0] e [1]: se precisar de todos os itens num texto só, monte esse texto no sistema que manda o JSON.

Passo 3: Escolha o tipo de campo

O tipo do campo personalizado decide o que dá para fazer com o valor depois, nas condições e nas mensagens.

ValorTipo de campoPor quê
Valores e quantidades, como 249.9NúmeroDá para comparar nas condições, como "maior que". Mande o número com ponto, sem R$.
IDs e códigos, como PED-1001 e 000123TextoUm ID não entra em contas e pode ter letras e zeros à esquerda. Guarde como texto, mesmo quando só tem números.
Datas, como 1793030400Data, ou Data e horaOs campos de data guardam a data em Unix timestamp, em segundos. Uma data em outro formato, como 2026-10-26T13:00:00-03:00, guarde num campo de texto.
Verdadeiro ou falso, como trueVerdadeiro/FalsoO campo guarda 0 ou 1. Confira no teste como o true e o false do seu JSON ficam.
Textos grandes, como uma descrição ou o JSON inteiroTexto longoÉ o tipo para textos grandes. Obter dados de JSON lê o JSON de campos de texto e de texto longo.

Na API, o valor de um campo vem como texto quando o tipo é Texto (0) e como número nos outros tipos, como neste campo de número:

{ "id": 3001, "name": "Valor do pedido", "type": 1, "value": 249.9 }

Os tipos e as variáveis estão em Campos personalizados, campos do bot e variáveis.

Passo 4: Mapeie no webhook de entrada

A tela do webhook de entrada aceita só três formas: .chave, ["chave"] (ou ['chave']) e [n]. Use .chave só para chaves com letras sem acento, números e _, que não comecem com número; qualquer outra chave vai entre aspas e colchetes.

Aceitos                            Recusados
$.cliente.email                    $.pedido.itens[*].produto     (curinga)
$["dados-do-cupom"]["código"]      $..email                      (dois pontos seguidos)
$.pedido.itens[0].produto          $.pedido.itens[-1].produto    (índice negativo)
$['utm']['utm_source']             $.dados-do-cupom.código       (hífen e acento fora das aspas)

Os avisos que a tela mostra, em inglês:

AvisoO que quer dizer
Start the path with $.O caminho não começa com $.
Use .key, ["key"], or [0]. Filters and wildcards are not supported.Uma parte do caminho não está numa das três formas aceitas.
Close the quoted key with ].Falta fechar as aspas ou o colchete de uma chave.
Select a value rather than an object or array.O caminho chega num grupo de dados (objeto ou lista), e não num valor.
No value found in sample data.O exemplo não tem esse caminho. Se o dado é opcional e só falta no exemplo, dá para salvar assim.
Load sample JSON to preview this path.Ainda não há exemplo carregado: cole em Sample JSON e clique em Load sample JSON.
Array index is too large.O número entre colchetes é grande demais.

Ao salvar, os avisos de Find or create contact aparecem com o nome do campo na frente, como Número de telefone: Start the path with $.. Os caminhos de Save incoming data não são conferidos ao salvar: olhe o Result: de cada um antes.

Passo 5: Mapeie no fluxo

Na requisição externa (Mapeamento de resposta) e em Obter dados de JSON, escreva o caminho do mesmo jeito: $, a chave depois de cada ponto e [n] para listas. Ao lado de JSONPath, na requisição externa, o ícone ⓘ abre um site que ajuda a achar o caminho num JSON colado.

Em Obter dados de JSON, escolha em Dados JSON o campo de texto que guarda o JSON e, embaixo, uma linha por valor, com o caminho e o campo que recebe (até 100 linhas). A ação tem duas saídas:

  • Sucesso: pelo menos um campo foi preenchido.
  • Falhado: o JSON é inválido ou nenhum campo foi preenchido.
Dados JSON: o campo Resposta do pedido
$.pedido.id       → ID do pedido
$.pedido.total    → Valor do pedido
$.cliente.vip     → Cliente VIP

Um caminho errado apaga o valor do campo

Em Obter dados de JSON, se o caminho de uma linha está errado, o valor que o campo tinha é apagado. Com vários campos na mesma ação, o contato pode sair por Sucesso com um campo perdido. Antes de usar o valor, confira numa etapa Condição se o campo tem valor. Veja Etapa Condição.

O passo a passo de tela está em Obter dados de JSON e em Requisição externa.

Pronto: como conferir

  • No webhook de entrada, cada caminho mostra Result: com o valor esperado, depois de Load sample JSON.
  • Na requisição externa, o Testar Agora mostra o Corpo da resposta, e o caminho de cada linha bate com ele.
  • Depois de um teste de verdade, os campos aparecem preenchidos no painel do contato, na Caixa de Entrada, com o tipo certo.

Se não funcionou

O campo ficou vazio

O caminho não achou o valor. Compare letra por letra com o JSON real, com maiúsculas e minúsculas, e confira o nível de cada chave. Um envio real pode não trazer um dado opcional.

O campo perdeu o valor que tinha

Em Obter dados de JSON, um caminho errado apaga o valor anterior. Corrija o caminho e, nos campos importantes, confira o valor com uma condição antes de usar.

O valor ficou diferente do JSON

Confira o tipo do campo: um texto como PED-1001 não cabe num campo de número, e um valor com R$ ou vírgula não é um número. Para datas, use um campo de data com Unix timestamp ou um campo de texto.

A tela pede um valor, e não um objeto ou uma lista

O caminho para num grupo de dados. Desça até o valor, como $.pedido.itens[0].produto em vez de $.pedido.itens.

Faça com a IA

Copie o pedido e cole no ChatGPT ou no Claude.

Preciso mapear um JSON para campos de contato da NexTags. Leia este guia: https://docs.nextags.com.br/webhooks/mapear-campos.md

Onde vou mapear: [webhook de entrada / Mapeamento de resposta da requisição externa / Obter dados de JSON]. Este é o JSON, sem dados reais: [cole aqui]. Os dados que quero guardar: [liste]. Para cada um, me dê o JSONPath (no webhook de entrada, só com .chave, ["chave"] e [0]), o nome do campo personalizado e o tipo certo (Texto, Número, Data, Data e hora, Verdadeiro/Falso ou Texto longo).

Relacionados

Este conteúdo ajudou?

Obrigado! Sua resposta ajuda a melhorar a central.