Com as variáveis, o seu bot envia mensagens personalizadas para cada cliente. Nome, endereço, horário de atendimento, status do pedido e muito mais são preenchidos automaticamente, na hora da conversa. Isso deixa o atendimento mais próximo e evita que você precise escrever uma mensagem diferente para cada pessoa.
O que são variáveis?
Variáveis são "espaços reservados" que você insere nos textos do bot. Quando a mensagem é enviada, a OmniChat substitui a variável pelo dado real daquele atendimento.
Por exemplo, se você escrever:
Olá @Consumidor.nome! Que bom te ver por aqui. 😊
A cliente Maria vai receber:
Olá Maria! Que bom te ver por aqui. 😊
Onde você pode usar as variáveis?
As variáveis não servem apenas para os textos das mensagens. Elas funcionam em vários pontos da construção do bot:
Local | Como funciona |
Mensagens do bot | Nos textos das mensagens, incluindo mensagens com imagem e arquivo. |
Botões interativos | No corpo, no rodapé e no texto dos botões das mensagens interativas. |
Templates de WhatsApp (HSM) | No preenchimento dos tokens (parâmetros) do template. |
Condições do fluxo | Para comparar valores e decidir o caminho da conversa. Por exemplo: verificar se @Bot.abertoAgora é verdadeiro. |
Integrações de API | Na URL, nos cabeçalhos, nos parâmetros e no corpo da requisição, para enviar dados da conversa ao sistema externo conectado à sua operação. |
Atenção: nas mensagens enviadas ao cliente, os dados sensíveis (e-mail, CPF e CNPJ) aparecem mascarados.
Esse mascaramento no Bot é automático e obrigatório, diferente da configuração de Privacidade de Dados da loja, que pode ou não mascarar dados conforme o que for definido lá. Ou seja, mesmo que a loja esteja configurada para não mascarar, dentro do Bot o dado sensível aparece mascarado do mesmo jeito. Já nas integrações de API o valor é enviado completo, sem máscara, para que o sistema externo receba o dado real.
Como inserir uma variável?
Na edição da mensagem do bot, digite @ no campo de texto.
Escolha o tipo de dado na lista de sugestões (Consumidor, Bot, Pedido...).
Continue navegando pelas sugestões até chegar ao dado desejado. Por exemplo: @Consumidor.nome.
Se quiser, escolha também uma formatação para o valor, como #Moeda.
Prefira sempre usar as sugestões do editor em vez de digitar a variável manualmente. Assim você garante que o nome está exatamente correto. Se a variável estiver escrita errado, ela não será substituída.
As variáveis são sensíveis a maiúsculas e minúsculas.
Escrever @consumidor.nome (com c minúsculo) não é reconhecido pelo bot, só @Consumidor.nome funciona.
A variável correta fica destacada em azul no editor; se aparecer em branco, foi digitada errado. Esse é o motivo mais comum de "a variável não substituiu", então vale reforçar isso na seção de Problemas Comuns.
Como funciona a estrutura de uma variável?
@Tipo.variavel.detalhe#Formatacao+textoExtra
@Tipo: A categoria do dado (Consumidor, Bot, LojaFisica...).
.variavel: O dado que você quer usar (nome, telefone, CEP...).
.detalhe: Alguns dados têm níveis extras, como o dia da semana ou o campo do endereço.
#Formatacao (opcional): Ajusta como o valor aparece. Veja a seção Formatações disponíveis.
+textoExtra (opcional): Cola um texto logo após o valor, sem espaço. Exemplo: @Bot.horarioDeAbertura.segundaFeira#ApenasHorario+h retorna 8h.
Variáveis disponíveis
@Consumidor: dados do cliente
Informações do cadastro do cliente que está conversando com o bot.
Variável | O que traz |
@Consumidor.nome | Primeiro nome do cliente |
@Consumidor.sobrenome | Sobrenome |
@Consumidor.e-mail | |
@Consumidor.telefone | Telefone |
@Consumidor.DDD | DDD do telefone |
@Consumidor.DDI | Código do país do telefone (ex: 55) |
@Consumidor.CPF | CPF |
@Consumidor.CNPJ | CNPJ |
@Consumidor.nascimento | Data de nascimento |
@Consumidor.genero | Gênero |
@Consumidor.consentimentoLGPD | Se o cliente aceitou receber comunicações (verdadeiro/falso) |
@Consumidor.idConsumidor | Código do cliente na OmniChat |
@Consumidor.idExterno | Código do cliente no sistema externo do cliente |
@Consumidor.endereco.logradouro | Rua/avenida do endereço |
@Consumidor.endereco.numero | Número |
@Consumidor.endereco.complemento | Complemento |
@Consumidor.endereco.bairro | Bairro |
@Consumidor.endereco.cidade | Cidade |
@Consumidor.endereco.UF | Estado (UF) |
@Consumidor.endereco.CEP | CEP |
@Consumidor.campoCustomizado.<campo> | Valor de um campo customizado do cadastro do cliente. |
Dados sensíveis: por segurança, e-mail, CPF e CNPJ aparecem mascarados nas mensagens enviadas ao cliente. Por exemplo: ma***@email.com.
Exemplo:
Olá @Consumidor.nome! Confirmando seu CEP: @Consumidor.endereco.CEP#CEP.
Resultado:
Olá Maria! Confirmando seu CEP: 01310-100.
@Bot: dados do bot
Variável | O que traz |
@Bot.nome | Nome do bot |
@Bot.abertoAgora | Se está dentro do horário de atendimento agora (verdadeiro/falso). Útil em condições. |
@Bot.horarioDeAbertura.<dia> | Horário em que o atendimento abre no dia |
@Bot.horarioDeFechamento.<dia> | Horário em que o atendimento fecha no dia |
Os dias disponíveis são: segundaFeira, tercaFeira, quartaFeira, quintaFeira, sextaFeira, sabado e domingo.
Exemplo:
Nosso atendimento abre às @Bot.horarioDeAbertura.segundaFeira#ApenasHorario+h.
Resultado:
Nosso atendimento abre às 8h.
Ao usar horários de abertura e fechamento, aplique sempre a formatação #ApenasHorario ou #ApenasHorarioComMinutos para exibir apenas a hora, e não a data completa.
@LojaFisica: loja vinculada ao cliente
Dados da loja física associada ao cliente em atendimento.
Variável | O que traz |
@LojaFisica.nome | Nome da loja |
@LojaFisica.telefone | Telefone da loja |
@LojaFisica.logradouro | Rua/avenida |
@LojaFisica.numero | Número |
@LojaFisica.complemento | Complemento |
@LojaFisica.bairro | Bairro |
@LojaFisica.cidade | Cidade |
@LojaFisica.UF | Estado (UF) |
@LojaFisica.CEP | CEP |
@LojaFisica.identificador | Identificador da loja |
@LojaFisica.abertoAgora | Se a loja está aberta agora (verdadeiro/falso) |
@LojaFisica.emFuncionamento.<dia> | Se a loja funciona no dia (verdadeiro/falso) |
@LojaFisica.horarioDeAbertura.<dia> | Horário de abertura no dia |
@LojaFisica.horarioDeFechamento.<dia> | Horário de fechamento no dia |
Exemplo:
aA loja @LojaFisica.nome abre sexta às @LojaFisica.horarioDeAbertura.sextaFeira#ApenasHorario+h.
Resultado:
A loja Loja Paulista abre sexta às 8h.
@Canal: canal da conversa
Variável | O que traz |
@Canal.telefone | Número/identificador do canal da sua empresa (ex: o WhatsApp da empresa) |
@Canal.tipo | Tipo do canal (whatsapp, webchat...) |
@Chat: dados da conversa atual
Variável | O que traz |
@Chat.idChat | Código da conversa |
@Chat.idAtendimento | Código do atendimento |
@Chat.ultimaMensagem | Texto da última mensagem enviada pelo cliente |
@Chat.ultimaMensagemObjeto | Última mensagem do cliente em formato JSON, com texto, tipo, anexo e código da mensagem. Disponível somente nas configurações de API. |
A variável @Chat.ultimaMensagemObjeto só aparece e funciona nas configurações de integrações de API (URL, cabeçalhos, parâmetros e corpo da requisição). Ela não é substituída em mensagens enviadas ao cliente. Use-a quando o sistema externo precisar receber a última mensagem completa, incluindo anexos.
Formato de saída de @Chat.ultimaMensagemObjeto:
{"text": "texto da mensagem",
"type": "tipo da mensagem (ex: text, image, audio, file)",
"attachmentUrl": "link do anexo, quando houver",
"messageId": "código da mensagem"}
Exemplo, corpo da requisição configurado na integração:
{ "usuario": "@Consumidor.idConsumidor",
"mensagem": "@Chat.ultimaMensagemObjeto" }
O sistema externo recebe:
{ "usuario": "aB12cD",
"mensagem": { "text": "Olá, quero falar com o suporte",
"type": "text",
"messageId": "m1" } }
Interface do objeto:
interface ultimaMensagemObjeto
{ "text": "Segue o relatório mensal.",
"type": "DOCUMENT",
"attachmentUrl": "https://exemplo.com/relatorio.pdf",
"messageId": "msg-9876543210" }
Repare que o valor é injetado como JSON de verdade (objeto), e não como texto. A OmniChat ajusta as aspas automaticamente para que o JSON final continue válido.
Exemplo:
Seu protocolo de atendimento é @Chat.idAtendimento. Guarde este número!
@Pedido: dados do pedido
Variável | O que traz | Dica de formatação |
@Pedido.total | Valor total do pedido | #Moeda |
@Pedido.subTotal | Subtotal | #Moeda |
@Pedido.frete | Valor do frete | #Moeda |
@Pedido.desconto | Desconto aplicado | #Moeda |
@Pedido.checkoutUrl | Link de pagamento (checkout) |
|
Exemplo:
Seu pedido ficou em R$ @Pedido.total#Moeda. Finalize o pagamento aqui: @Pedido.checkoutUrl
Resultado:
Seu pedido ficou em R$ 149,90. Finalize o pagamento aqui: https://...
@Time: horários de um time de atendimento
Consulta os dados de um time específico da sua operação. Ao digitar @Time., o editor lista os seus times. Escolha o time e depois o dado desejado.
Variável | O que traz |
@Time.<time>.nome | Nome do time |
@Time.<time>.abertoAgora | Se o time está em horário de atendimento (verdadeiro/falso) |
@Time.<time>.horarioDeAbertura.<dia> | Horário de abertura do time no dia |
@Time.<time>.horarioDeFechamento.<dia> | Horário de fechamento do time no dia |
Exemplo:
Nosso time atende hoje até @Time.Suporte.horarioDeFechamento.sextaFeira#ApenasHorarioComMinutos.
Resultado:
Nosso time atende hoje até 18:30.
@Lista: valores de uma lista (entidade)
Insere os valores de uma lista cadastrada na OmniChat como uma lista numerada, pronta para o cliente escolher uma opção.
Exemplo, lista "sabores" com os valores Calabresa, Mussarela e Portuguesa:
Escolha um sabor: @Lista.sabores
Resultado:
Escolha um sabor:
1. Calabresa
2. Mussarela
3. Portuguesa
@API: dados de integrações
Busca um dado em tempo real em um sistema externo, usando uma integração de API do tipo "Dados específicos" configurada na plataforma. Ao digitar @API., o editor lista as suas integrações. Depois, escolha o campo da resposta que deseja exibir.
Exemplo:
Status do seu pedido: @API.consultaPedido.data.status
Resultado:
Resultado: Status do seu pedido: enviado
@Personalizado: dados salvos durante a conversa
Recupera valores que o bot guardou durante a conversa. Por exemplo, com a ação de guardar a resposta do cliente.
Anotado! Seu protocolo é @Personalizado.protocolo.
Formatações disponíveis
As formatações ajustam a aparência do valor. Elas são adicionadas com # logo após a variável. O editor sugere as formatações disponíveis para cada dado.
Formatação | O que faz | Exemplo |
#ApenasNumeros | Mantém apenas os números | (11) 99999-8888 vira 11999998888 |
#Moeda | Exibe o valor com duas casas decimais e vírgula | 149.9 vira 149,90 |
#CEP | Formata o CEP no padrão 00000-000 | 1310100 vira 01310-100 |
#ApenasHorario | Exibe apenas a hora de um horário | 08:00 vira 8 |
#ApenasHorarioComMinutos | Exibe hora e minutos | 08:30 vira 08:30 |
#ApenasData | Exibe a data no formato dd/mm/aaaa | 1990-05-20 vira 20/05/1990 |
#URL | Prepara o texto para ser usado dentro de um link | São Paulo vira S%C3%A3o%20Paulo |
Texto extra (+)
Tudo o que vier após o + é colado imediatamente após o valor, sem espaço. É útil para completar horários e unidades.
Exemplo:
Abrimos às @Bot.horarioDeAbertura.segundaFeira#ApenasHorario+h da manhã.
Resultado:
Abrimos às 8h da manhã.
Dicas e boas práticas
Dado não preenchido: se o cliente não tiver aquela informação no cadastro, a variável é substituída por vazio. A mensagem é enviada normalmente, sem quebrar. Evite frases que fiquem estranhas sem o dado, preferindo, por exemplo, "Olá! 😊" com o nome opcional no meio da conversa.
Use o autocomplete: variáveis digitadas com erro de escrita não são substituídas. Sempre selecione a variável na lista de sugestões do editor.
Maiúsculas e minúsculas importam: a variável só é reconhecida se escrita exatamente como cadastrada (ex: @Consumidor, não @consumidor).
Dados sensíveis: e-mail, CPF e CNPJ aparecem mascarados nas mensagens enviadas ao cliente, por segurança, de forma automática e obrigatória dentro do Bot. Nas integrações de API o valor vai completo.
Teste antes de publicar: faça uma conversa de teste com o bot para conferir se as variáveis estão sendo substituídas como esperado.
Publicação: qualquer mudança no bot (incluindo em variáveis) só passa a valer depois que a versão atualizada é publicada em produção.
Problemas comuns
A variável apareceu do jeito que eu escrevi, sem trocar pelo dado do cliente?
Isso costuma acontecer quando a variável foi digitada manualmente e tem algum erro de escrita, incluindo diferença de maiúsculas/minúsculas. Apague o trecho e digite @ novamente, escolhendo a variável pela lista de sugestões do editor.
A variável ficou em branco na mensagem enviada?
Nesse caso, o cliente provavelmente não tem aquele dado preenchido no cadastro (por exemplo, data de nascimento ou CEP). Revise o fluxo para garantir que a mensagem continue fazendo sentido mesmo quando o dado vier vazio.
