Rishidocs

Variáveis dinâmicas em mensagens via webhook

4 min de leituraAtualizado há 1 semana

Em mensagens criadas pela tela Mensagens via webhook, as variáveis funcionam diferente das mensagens vinculadas a gatilhos do Rishi (pedido, carrinho, lead).

Aqui não há schema fixo. Você inventa os nomes das variáveis na hora de criar a mensagem, e o sistema externo (n8n, ERP, código próprio) manda esses campos no JSON do POST. É bem mais flexível — e por isso você precisa pensar nos nomes com mais cuidado.

Como funciona

Quando você cria uma mensagem via webhook, na tela de configuração você vê o template escolhido com os placeholders ({{1}}, {{2}}...). Pra cada placeholder, você define:

  • Um nome de variável (ex: customer_name, order_id, tracking_code)
  • Esse nome vira o campo JSON que seu sistema vai enviar

No envio, o body precisa ter:

  • phone_number — sempre obrigatório, no formato 5511999998888.
  • Cada variável que você definiu, com o nome exato que você usou.

Exemplo completo

Você cria uma mensagem chamada "Confirmação de pedido via API" com template:

Olá {{1}}! Seu pedido #{{2}} foi recebido.
Total: {{3}}

Define as variáveis:

  • {{1}}customer_name
  • {{2}}order_id
  • {{3}}order_total

Depois copia a URL do webhook gerada pelo Rishi.

Seu sistema externo manda:

POST https://app.rishi.com.br/api/meta/messages/{id}/trigger?signature=...
Content-Type: application/json

{
  "phone_number": "5511999998888",
  "customer_name": "Maria",
  "order_id": "10231",
  "order_total": "R$ 199,90"
}

E a mensagem que sai pro WhatsApp da Maria é:

Olá Maria! Seu pedido #10231 foi recebido. Total: R$ 199,90

Convenções de nomes

Use snake_case

Embora o Rishi aceite qualquer nome, snake_case (customer_name, order_id) é o padrão que casa com a maioria dos sistemas externos e fica fácil de ler em JSON.

Evite:

  • customerName (camelCase fica feio em JSON)
  • customer-name (traços causam problema em algumas linguagens)
  • Cliente Nome (espaço quebra)

Use nomes claros

A pessoa que vai configurar do outro lado (você ou um dev) lê esses nomes pra mapear. customer_name é melhor que var1, mesmo que o segundo seja mais curto.

tracking_code, payment_method, delivery_date

v1, field2, data

Padronize entre mensagens

Se você cria várias mensagens via webhook (uma pra pedido novo, outra pra pagamento, outra pra status), use os mesmos nomes quando o significado for o mesmo. customer_name em todas, order_id em todas — assim seu sistema externo manda sempre o mesmo formato e você reduz erro.

Variáveis condicionais

Algumas vezes uma variável pode ou não vir preenchida (ex: tracking_code só existe depois que o pedido foi postado).

Opção 1 — mandar string vazia. Você sempre envia o campo, mas pode mandar "":

{ "phone_number": "...", "tracking_code": "" }

A mensagem sai com o pedaço em branco. Pode ficar estranho dependendo do template.

Opção 2 — duas mensagens separadas. Crie uma mensagem "Pedido em separação" sem tracking_code e outra "Pedido postado" com tracking_code. Seu sistema decide qual disparar conforme o estado.

A opção 2 é quase sempre melhor — separação clara, nenhuma chance de mensagem ficar com buraco.

Limites

  • O phone_number é sempre obrigatório, mesmo que não apareça como placeholder no template.
  • O nome phone_number é fixo — não dá pra renomear.
  • Não há limite prático no número de variáveis, mas templates muito longos geralmente não são aprovados pela Meta. Mantenha mensagens curtas.
  • Não envie HTML, markdown, links com [texto](url) — o WhatsApp não renderiza. Mande URLs em texto puro (https://exemplo.com/x).

Combinando com fluxo do Rishi

Você pode misturar mensagens via webhook com fluxos do Rishi. Caso típico: seu sistema externo dispara uma mensagem inicial (via webhook), e o Rishi continua o fluxo a partir daí (próximas mensagens, tags, segmentação).

Pra essa integração mais avançada, fale com nosso time — geralmente envolve recursos do Rishi Boost (programa de fidelidade, automações compostas).

Erros comuns

Variável vem em branco — você definiu customer_name na mensagem mas o JSON envia customerName ou name. Confira se os nomes batem exatamente (case-sensitive).

Template não aprova porque tem muito placeholder — a Meta tem regras: placeholder com pouco texto fixo no entorno levanta suspeita de spam. Use mais palavras fixas em volta.

phone_number em formato errado — não pode ter +, traço, espaço, parêntese. Só dígitos: 5511999998888.

Use o botão Copiar curl de teste na tela da mensagem antes de codar do lado do seu sistema. O curl vem com payload de exemplo já no formato correto — basta substituir os valores e rodar.

Próximos passos

Foi útil?