Variáveis
Variáveis são trechos entre chaves duplas que a Atalia troca pelo valor real na hora de enviar.
Olá {{contato_nome}}, seu atendimento é com {{conversa_agente}}.
Olá Ana Ribeiro, seu atendimento é com Carla Souza.
Funcionam em mensagens, no corpo de uma Requisição HTTP, no nome de um documento, no prompt de um agente de IA — em qualquer campo do construtor de fluxos que aceite texto.
Se a Atalia não reconhece a variável, o texto sai como está. Escrever {{valor_do_pedido}} quando o nome certo é {{conversa_atributo_valor_do_pedido}} não dá erro: o destinatário recebe literalmente {{valor_do_pedido}}.
Por isso, prefira sempre inserir pelo botão de variáveis ou digitando {{ para abrir a lista, em vez de escrever de cabeça.
Variáveis do sistema
Sempre disponíveis, sem precisar configurar nada.
Data e hora
No fuso de Brasília.
| Variável | Valor | Exemplo |
|---|---|---|
{{data_atual}} | Data de hoje | 02/01/2026 |
{{data_atual_iso}} | Data de hoje no formato internacional | 2026-01-02 |
{{hora_atual}} | Hora atual | 14:30 |
{{data_hora_local}} | Data e hora completas | 02/01/2026 14:30:05 |
{{dia_semana}} | Dia da semana por extenso | segunda-feira |
Use {{data_atual_iso}} quando o valor for para um sistema externo ou para uma ferramenta de agendamento. O formato 02/01/2026 é ambíguo fora do Brasil.
Contato
| Variável | Valor | Exemplo |
|---|---|---|
{{contato_nome}} | Nome completo do contato | Ana Ribeiro |
{{contato_primeiro_nome}} | Só o primeiro nome | Ana |
{{contato_telefone}} | Telefone | 5511987654321 |
{{contato_email}} | ana.ribeiro@email.com | |
{{contato_documento}} | CPF ou CNPJ do contato | 123.456.789-00 |
{{contato_external_id}} | ID do usuário na plataforma hospedeira do webchat, quando identificado | usr_8821 |
{{contato_identificado}} | Se o contato foi identificado via login do webchat | true ou false |
Contato sem o dado preenchido devolve vazio, não o literal. Se o nome pode estar em branco, escreva algo como Olá {{contato_primeiro_nome}} com cuidado, ou use um bloco Condição antes.
cliente_Os nomes antigos {{cliente_nome}}, {{cliente_primeiro_nome}}, {{cliente_telefone}} e {{cliente_email}} continuam funcionando, sem prazo para parar. Não é preciso mexer em fluxo que já está no ar.
contato_ é só o nome usado daqui em diante, porque descreve melhor quem é a pessoa do outro lado — nem toda conversa é com um cliente.
Conversa
| Variável | Valor | Exemplo |
|---|---|---|
{{conversa_id}} | Identificador da conversa | 84217 |
{{conversa_status}} | Situação | open, waiting ou closed |
{{conversa_prioridade}} | Prioridade | normal |
{{conversa_agente}} | Atendente responsável | Carla Souza |
{{conversa_time}} | Equipe responsável | Suporte |
{{conversa_canal}} | Nome do canal | WhatsApp Vendas |
{{conversa_origem}} | No Webchat, por onde o cliente começou a conversa: pelo site ou pelo app da empresa (SDK mobile). Vazio nos outros canais | site ou app |
Mensagem
| Variável | Valor | Exemplo |
|---|---|---|
{{ultima_mensagem}} | Conteúdo da última mensagem recebida | Quero fazer um pedido |
{{tipo_mensagem}} | Tipo da última mensagem | text |
{{mensagem_conteudo}} e {{last_message}} são nomes antigos que devolvem exatamente o mesmo valor de {{ultima_mensagem}}. Continuam funcionando para não quebrar fluxos existentes, mas em fluxo novo use {{ultima_mensagem}}.
Empresa e avaliação
| Variável | Valor | Exemplo |
|---|---|---|
{{empresa_nome}} | Nome da sua empresa | Doceria Bem-Me-Quer |
{{avaliacao_csat}} | Escala de avaliação configurada no canal | 1 - Muito Ruim 😞 … |
Atributos personalizados
São os campos que você mesmo cria em Configurações → Atributos Personalizados. Existem em dois escopos independentes:
| Escopo | Como usar | Vale para |
|---|---|---|
| Conversa | {{conversa_atributo_CHAVE}} | aquele atendimento específico |
| Contato | {{contato_atributo_CHAVE}} | a pessoa, em todas as conversas dela |
O prefixo antigo {{cliente_atributo_CHAVE}} continua funcionando, igual às demais variáveis de contato.
O CHAVE é o identificador do atributo, mostrado logo abaixo do nome na tela de Atributos Personalizados. Um atributo chamado Valor do Pedido costuma ter a chave valor_do_pedido:
{{conversa_atributo_valor_do_pedido}}
{{contato_atributo_cpf}}
Nada impede que exista um valor_do_pedido de conversa e um de contato ao mesmo tempo, com valores diferentes. É o prefixo que diz qual dos dois você quer — por isso ele não pode ser omitido.
Valores em dinheiro
Um atributo do tipo Valor monetário é guardado internamente em centavos, mas a variável já entrega o valor pronto para uso:
| No banco | {{conversa_atributo_valor_do_pedido}} entrega |
|---|---|
1000 | 10.00 |
2550 | 25.50 |
Lista de itens
Um atributo do tipo Lista de itens guarda vários itens com os mesmos campos, por exemplo os produtos de um pedido, cada um com produto e quantidade. A variável inteira vira JSON, e você pode ler um item e um campo específicos pelo índice (o primeiro item é o [0]):
| Variável | Entrega |
|---|---|
{{conversa_atributo_itens}} | [{"produto":"Pizza","quantidade":2},{"produto":"Refri","quantidade":1}] |
{{conversa_atributo_itens[0].produto}} | Pizza |
{{conversa_atributo_itens[1].quantidade}} | 1 |
Campos monetários dentro dos itens ficam em centavos, como no banco (4990 = R$ 49,90).
Atributo vazio e atributo inexistente
São coisas diferentes, e o comportamento reflete isso:
- Atributo existe mas está em branco → a variável vira texto vazio. Num JSON, você recebe
"valor": "". - Chave não existe (erro de digitação) → o texto sai literal,
"valor": "{{conversa_atributo_valr_do_pedido}}".
Se um campo chegou literal no seu sistema, quase sempre é erro de digitação na chave.
Variáveis criadas pelos blocos
Alguns blocos guardam o resultado deles numa variável que os blocos seguintes podem usar.
Requisição HTTP
No campo Salvar resposta na variável você escolhe o nome. Usando resposta_api, ficam disponíveis:
| Variável | Conteúdo |
|---|---|
{{resposta_api}} | O corpo da resposta |
{{resposta_api_status}} | Código HTTP: 200, 404, 500… |
{{resposta_api_ok}} | true se deu certo, false se não |
{{resposta_api_error}} | Mensagem de erro, se houver |
Para o fluxo seguir caminhos diferentes conforme o resultado, use um bloco Condição sobre {{resposta_api_ok}} ou {{resposta_api_status}}.
Negócio (CRM)
O bloco cria, move, ganha, perde ou anota no negócio do contato. Ele não desvia o fluxo: o resultado fica nas variáveis abaixo, para um bloco Condição decidir o caminho.
| Variável | Conteúdo |
|---|---|
{{crm_ok}} | true se a ação foi feita, false se não |
{{crm_erro}} | O motivo, quando não foi (por exemplo, um campo obrigatório da etapa que falta) |
Depois do bloco, as variáveis {{negocio_*}} (veja Fluxo iniciado por Negócio no CRM) passam a ser as do negócio criado ou alterado.
Decisão por IA
O bloco faz uma pergunta sobre a mensagem do cliente (ou sobre a conversa inteira, ou um texto seu) e guarda a resposta. No campo Salvar resultado na variável você escolhe o nome. Usando decisao, ficam disponíveis:
| Variável | Conteúdo |
|---|---|
{{decisao}} | Sim ou não: true ou false. Uma opção da lista: o valor da opção escolhida, ou outro quando a IA não tem confiança suficiente. Nota em níveis: o nível mais próximo |
{{decisao_prob}} | A probabilidade da resposta, de 0 a 1 |
{{decisao_confianca}} | O grau de confiança da IA, de 0 a 1 (opção da lista e nota) |
{{decisao_nota}} | Só na nota em níveis: a posição exata, que pode ficar entre dois níveis (1.6) |
{{decisao_ok}} | true se a IA respondeu, false se não |
{{decisao_error}} | O motivo, quando não respondeu |
Para o fluxo seguir caminhos diferentes, use um bloco Condição sobre {{decisao}}. Se a IA não responder, o fluxo segue normalmente, com {{decisao_ok}} igual a false.
Continuar no chat
O bloco guarda o que aconteceu com o convite em {{chat_resultado}} (o prefixo chat pode ser trocado no bloco): abriu, nao_abriu, respondeu_whatsapp, anuncio, recusou ou indisponivel. Detalhes em Continuar no chat.
Outros blocos
| Bloco | O que guarda |
|---|---|
| Definir Variável | o valor que você configurar |
| Solicitar Entrada | a resposta que o cliente digitou |
| Gerar Documento | o arquivo gerado, para enviar depois |
| Subfluxo | as variáveis do fluxo atual seguem valendo dentro dele |
Chegando num campo específico
Quando a variável guarda uma estrutura (a resposta de uma API, por exemplo), você navega até o campo com ponto e colchete:
{{resposta_api.dados.url}}
{{resposta_api[0].url}}
{{pedido.cliente.nome}}
Se você usar a variável inteira num texto, ela vira JSON legível — nunca aparece [object Object].
Variáveis de gatilho
Dependem de como o fluxo começou.
Fluxo iniciado por webhook
Todo o conteúdo enviado fica sob {{trigger.}}:
{ "pedido": { "id": 42, "itens": [{ "nome": "Bolo de cenoura" }] } }
{{trigger.pedido.id}} → 42
{{trigger.pedido.itens[0].nome}} → Bolo de cenoura
Fluxo iniciado por comentário
| Variável | Conteúdo |
|---|---|
{{_comment_text}} | Texto do comentário que disparou o fluxo |
Fluxo do chat iniciado pelo Continuar no chat
Além das variáveis do fluxo do WhatsApp (quando o bloco leva as variáveis):
| Variável | Conteúdo |
|---|---|
{{handoff_origem}} | Sempre whatsapp |
{{handoff_conversa_origem}} | Número da conversa do WhatsApp de onde o cliente veio |
Fluxo do chat iniciado por um aviso do widget
Quando o visitante responde a um aviso do webchat ou toca num botão de fluxo dele, o fluxo "Chamado por outro fluxo" escolhido no botão começa com:
| Variável | Conteúdo |
|---|---|
{{aviso_nome}} | Nome da regra do aviso (o que a sua equipe deu, ex.: Cupom Black Friday) |
{{aviso_botao}} | Texto do botão tocado; vazio quando o visitante respondeu digitando |
{{aviso_url}} | Página do site em que o visitante estava |
{{aviso_id}} | Número da regra |
{{premio_nome}} | Roleta: o prêmio que o visitante ganhou (ex.: 10% OFF) |
{{premio_codigo}} | Roleta: o código do cupom entregue |
{{premio_validade}} | Roleta: até quando o prêmio vale (AAAA-MM-DD HH:MM) |
Detalhes em Avisos e regras por página no Webchat.
Fluxo iniciado por evento agendado
| Variável | Conteúdo |
|---|---|
{{evento_data}} | Data do evento |
{{evento_hora}} | Horário do evento (HH:MM) |
{{evento_periodo}} | Turno do evento: manha (antes das 12h), tarde (12h às 17h59) ou noite (18h em diante). Use numa Condição If para mandar o lembrete só para um turno |
{{evento_produto}} | Produto ou serviço agendado |
{{evento_preparo}} | Instruções de preparo |
{{evento_agenda}} | Nome da agenda (profissional ou sala) da reserva feita pelo catálogo |
{{paciente_nome}} | Nome da pessoa do agendamento |
Fluxo iniciado por Negócio no CRM
O gatilho Negócio no CRM dispara quando um negócio é criado, entra numa etapa, é ganho, perdido ou fica parado. O fluxo roda na conversa do contato do negócio no canal do fluxo.
| Variável | Conteúdo |
|---|---|
{{negocio_titulo}} | Título do negócio |
{{negocio_valor}} | Valor único, formatado: R$ 1.500,00 |
{{negocio_valor_mensal}} | Valor mensal, formatado (vazio quando não há) |
{{negocio_etapa}} | Etapa em que o negócio está (no ganho ou perda, a etapa em que estava) |
{{negocio_etapa_anterior}} | Etapa de onde ele saiu, quando o gatilho é "entrou numa etapa" |
{{negocio_funil}} | Nome do funil |
{{negocio_status}} | Em andamento, Ganho ou Perdido |
{{negocio_responsavel}} | Nome do responsável |
{{negocio_motivo_perda}} | Motivo da perda, quando perdido |
{{negocio_link}} | Link da ficha do negócio na Atalia, para mandar a quem atende |
{{negocio_id}} | Número do negócio |
Nos agentes de IA
No prompt de um agente valem as mesmas variáveis do sistema e dos atributos personalizados. Além delas:
| Variável | Conteúdo |
|---|---|
{{tools.NOME_DA_FERRAMENTA}} | Referência a uma ferramenta disponível para o agente |
A tela do agente tem a seção Variáveis contextuais, onde você escolhe quais dados entram automaticamente no contexto da conversa — sem precisar citá-los no texto do prompt.
Onde cada variável funciona
| Contexto | Sistema | Atributos personalizados | De bloco | trigger. | tools. |
|---|---|---|---|---|---|
| Blocos de mensagem do fluxo | ✅ | ✅ | ✅ | ✅ | — |
| Requisição HTTP (URL, cabeçalhos, corpo) | ✅ | ✅ | ✅ | ✅ | — |
| Prompt do agente de IA | ✅ | ✅ | ✅ | ✅ | ✅ |
| Modelos de mensagem do WhatsApp | ✅ | ✅ | ✅ | ✅ | — |
Modelos aprovados pela Meta usam numeração própria ({{1}}, {{2}}) no cadastro junto à Meta. No envio pela Atalia, você preenche cada posição com as variáveis desta página.
Exemplo completo: enviar o valor do pedido para um sistema externo
Objetivo: quando a conversa for marcada como venda concluída, mandar os dados para uma planilha ou um automatizador.
1. Crie o atributo em Configurações → Atributos Personalizados:
- Nome:
Valor do Pedido - Aplica-se a: Conversa
- Tipo: Valor monetário
- Chave gerada:
valor_do_pedido
2. No fluxo, adicione um bloco Requisição HTTP e preencha o corpo:
{
"nome": "{{contato_nome}}",
"telefone": "{{contato_telefone}}",
"atendente": "{{conversa_agente}}",
"valor": "{{conversa_atributo_valor_do_pedido}}",
"idconversa": "{{conversa_id}}"
}
3. Use o botão Testar do bloco para conferir antes de publicar. O teste passa pelo mesmo caminho da execução real, então o que você vê ali é o que o sistema externo vai receber.
O destino recebe:
{
"nome": "Ana Ribeiro",
"telefone": "5511987654321",
"atendente": "Carla Souza",
"valor": "10.00",
"idconversa": "84217"
}
{{alguma_coisa}}O nome da variável está errado. Confira a chave do atributo e lembre-se do prefixo: conversa_atributo_ para atributo de conversa, contato_atributo_ para atributo de contato.
Lendo atributos pela API
Se o seu sistema precisa buscar os valores em vez de recebê-los, use a API da Atalia. Os atributos de uma conversa e os do contato dela vêm juntos:
curl -H "x-api-key: SUA_CHAVE" \
https://chat.atalia.com.br/api/conversations/84217/custom-attributes
A resposta traz value (como está guardado) e value_formatted (pronto para uso, com dinheiro já em reais).