Variáveis são o que transforma um template estático ("Olá, seu pedido foi confirmado") em uma mensagem específica ("Olá Maria, seu pedido #12345 foi confirmado!"). Sem variáveis, todo cliente recebe a mesma mensagem genérica — e toda mensagem genérica é uma oportunidade desperdiçada de mostrar pro cliente que você sabe quem ele é e o que ele fez.
Sintaxe
No template aprovado pela Meta, variáveis são placeholders numerados: {{1}}, {{2}}, {{3}}. Quando você cria a mensagem no Rishi e escolhe esse template, você diz qual valor vai em cada placeholder.
Os valores vêm dos dados do gatilho — quando o evento dispara, o Rishi monta um pacote de informações (chamado trigger_data) e você acessa os campos por dot notation: order.id, customer.first_name, coupon.code.
Exemplo prático:
Olá {{1}}! Seu pedido #{{2}} foi confirmado.
Total: {{3}}
No editor de variáveis você liga:
{{1}}→customer.first_name{{2}}→order.id{{3}}→order.total
Quando o gatilho Pedido pago dispara pra um pedido da Maria de R$ 199,90, a mensagem fica: "Olá Maria! Seu pedido #1842 foi confirmado. Total: R$ 199,90."
De onde vêm os valores
Cada tipo de gatilho carrega um conjunto específico de dados. Não dá pra acessar coupon.amount num gatilho de "estoque baixo" — o cupom não existe nesse contexto.
Os conjuntos de variáveis disponíveis são organizados em quatro grandes grupos, e cada gatilho expõe um ou mais deles:
- Pedido (
order.*) — dados do pedido em si: ID, valor, status, endereço, código de rastreio. - Cliente (
customer.*) — dados de quem comprou ou está no fluxo: nome, e-mail, telefone. - Cupom (
coupon.*) — quando o gatilho gerou ou anexou um cupom: código, valor, expiração. - Carrinho abandonado (
cart_*) — quando o gatilho é abandono: link de retomada, total, token.
Pra ver quais grupos cada gatilho expõe, veja Quais variáveis usar em cada tipo de gatilho.
Sugestão automática com IA
Você não precisa decorar a lista de variáveis. Quando você escolhe um template no editor de mensagem, o Rishi lê o texto do template e propõe automaticamente qual variável bate em cada placeholder.
Exemplo: o template tem "Olá {{1}}, seu pedido #{{2}}". O Rishi entende que {{1}} deve ser nome do cliente e {{2}} o ID do pedido. Sugere customer.first_name e order.id. Você revisa e confirma — ou ajusta se quiser outra coisa.
A sugestão é boa, mas revise sempre. Em casos com mais de uma variável de nome (ex: nome do cliente vs nome do entregador), o Rishi pode acertar a maioria mas errar alguma específica.
Caminhos aninhados
Variáveis suportam caminhos com pontos pra acessar campos dentro de objetos:
order.address.city— cidade do endereço de entrega.order.address.state— estado.order.address.postcode— CEP.
Funciona pra qualquer nível de aninhamento, desde que o valor exista no trigger_data.
Webhooks externos: variáveis dinâmicas
Quando você usa a tela Mensagens via webhook, as variáveis funcionam de jeito diferente: você define os nomes das variáveis ao criar a mensagem, e elas vêm direto do JSON que seu sistema envia. Não há schema fixo — você inventa os nomes que fazem sentido pro seu caso.
Detalhes em Variáveis dinâmicas em mensagens via webhook.
E quando uma variável vem vazia?
Se o caminho da variável existe mas o valor é nulo (ex: pedido sem cupom, cliente sem sobrenome), o Rishi substitui por string vazia. A Meta aceita variáveis vazias em alguns templates, mas você pode ter aprovação revogada se isso virar regra. Em geral:
- Use variáveis que sempre existem pro tipo de gatilho (ID do pedido, nome do cliente).
- Pra opcionais (cupom, observação), faça template separado que dispara só quando o valor existe.
Se você não sabe se um campo virá preenchido, faça um teste primeiro. No envio de teste do template, simule cenários reais e veja se a mensagem fica fluida com valores vazios ou não.
Próximos passos
Cada artigo da seção lista as variáveis disponíveis no detalhe. Pelo seu caso:
- Construindo mensagens de pedido? Vá em Variáveis de pedido.
- Recuperação de carrinho abandonado? Variáveis de carrinho abandonado.
- Mensagens com cupom de desconto? Variáveis de cupom.
- Quer um overview por tipo de gatilho? Quais variáveis usar em cada tipo de gatilho.