Pular para o conteúdo principal

Visão geral

Variáveis permitem capturar, armazenar e reutilizar dados durante uma conversa. Use-as para personalizar mensagens, tomar decisões com base na entrada do usuário e passar dados entre nós.

Tipos de Variáveis

Variáveis de Sistema

Carregadas automaticamente em toda sessão. Você não precisa declará-las.
VariávelDescrição
system.last_message.textConteúdo de texto da última mensagem do usuário.
system.last_message.captionLegenda de uma mensagem de mídia do usuário.
system.last_message.urlURL de mídia da mensagem do usuário.
system.last_message.typeTipo da última mensagem (text, image, video, audio, document, etc).
system.request.statusCodeCódigo de status HTTP do último nó API Request.
system.request.responseCorpo completo da resposta do último nó API Request.
system.numberOfAttemptsNúmero de tentativas no nó de espera atual.
system.dateHourData/hora atual do sistema.

Variáveis do Usuário

Variáveis que você cria no editor de fluxos para armazenar dados personalizados. Cada variável tem um nome (usado em templates) e um ID único (usado internamente).

Sintaxe de Template {{variableName}}

Use chaves duplas para referenciar variáveis em campos de texto — corpos de mensagem, URLs de API, cabeçalhos, condições, etc.

Valores Primitivos

Variáveis que armazenam strings, números ou booleanos são substituídas diretamente:
TemplateValor da VariávelResultado
Hello {{name}}name = "Claudio"Hello Claudio
Total: {{amount}}amount = 42.5Total: 42.5
Active: {{active}}active = trueActive: true
Balance: {{balance}}balance = 0Balance: 0

Valores de Objeto

Quando uma variável contém um objeto, o resultado é sua representação JSON:
TemplateValor da VariávelResultado
Info: {{data}}data = { name: "Ana", age: 30 }Info: {"name":"Ana","age":30}

Acessando Propriedades de Objetos

Use notação de ponto para acessar propriedades aninhadas:
TemplateValor da VariávelResultado
Hello {{user.name}}user = { name: "Claudio" }Hello Claudio
Total: {{order.total}}order = { total: 150.99 }Total: 150.99
City: {{data.address.city}}data = { address: { city: "SP" } }City: SP
Aninhamento profundo funciona em qualquer nível:
TemplateValor da VariávelResultado
Name: {{a.b.c.name}}a = { b: { c: { name: "Carlos" } } }Name: Carlos

Acesso a Arrays

Quando uma variável é um array, retorna o JSON do array:
TemplateValor da VariávelResultado
Items: {{list}}list = [1, 2, 3]Items: [1,2,3]
Tags: {{tags}}tags = ["node", "nest", "ts"]Tags: ["node","nest","ts"]
Ao acessar uma propriedade em um array, ele mapeia e extrai essa propriedade de cada item:
TemplateValor da VariávelResultado
{{products.price}}products = [{ name: "Shirt", price: 50 }, { name: "Pants", price: 120 }][{"price":50},{"price":120}]
{{orders.customer.name}}orders = [{ customer: { name: "Ana" } }, { customer: { name: "Bob" } }]["Ana","Bob"]

Variáveis de Sistema em Templates

Variáveis de sistema usam o prefixo system.:
TemplateResultado
Last message: {{system.last_message.text}}Last message: Hello world
Status: {{system.request.statusCode}}Status: 200
Response: {{system.request.response}}Response: {"ok":true}
Response ok: {{system.request.response.ok}}Response ok: true
Date: {{system.dateHour}}Date: 2025-01-15T10:30:00

Múltiplas Variáveis

Você pode usar múltiplas variáveis na mesma string:
TemplateVariáveisResultado
Due date {{dueDate}} amount {{amount}}dueDate = "03/15", amount = "R$ 150,00"Due date 03/15 amount R$ 150,00
{{name}} bought {{qty}}x {{product}}name = "Ana", qty = 3, product = "Shirt"Ana bought 3x Shirt

Variável Não Encontrada

Quando uma variável não existe, é null ou undefined, o template original é mantido:
TemplateValor da VariávelResultado
Hello {{name}}(não definida)Hello {{name}}
Val: {{obj.missing}}obj = { a: 1 }Val: {{obj.missing}}
Hello {{name}}name = nullHello {{name}}

Variáveis Encadeadas

Se o valor de uma variável contém outra referência de variável, ela é resolvida recursivamente:
TemplateVariáveisResultado
{{a}}a = "{{b}}", b = "final"final
{{a}}a = "{{b}}", b = "{{c}}", c = "deep"deep
{{a}}a = "{{b}}", (b não definida){{b}}

Padrões Comuns

Capturar Entrada do Usuário

Após um nó de espera (Botão, Lista, Menu de Mensagem), a resposta do usuário está em system.last_message.text. Use um nó Definir Variável para persisti-la:
{{system.last_message.text}} → userName

Analisar Respostas de API

Após um nó Requisição API, use um nó Parser de Objeto para extrair campos de system.request.response:
data.order.id     → orderId
data.order.status → orderStatus
data.customer.name → customerName

Interpolar em Mensagens

Referencie qualquer variável em um nó Mensagem:
Hello, {{userName}}! Your order #{{orderId}} is {{orderStatus}}.

Regras de Nomenclatura

  • Use camelCase: userName, orderTotal, cpfNumber
  • Sem espaços ou caracteres especiais — apenas letras, números e underscores
  • Nomes são case-sensitive: userNameusername
  • Nunca use o prefixo system. para variáveis do usuário

Operadores de Comparação

Ao usar variáveis em nós Condição:
OperadorDescriçãoValor obrigatório?
equalsCorrespondência exataSim
notEqualsNão correspondeSim
containsContém substringSim
notContainsNão contémSim
greaterThanNumericamente maiorSim
lessThanNumericamente menorSim
greaterOrEqualMaior ou igualSim
lessOrEqualMenor ou igualSim
isSetPossui valor não vazioNão
isEmptyVazio ou indefinidoNão
startsWithComeça com a stringSim
endsWithTermina com a stringSim
matchesRegexCorresponde ao padrão regexSim

Funções de Transformação

Transformações opcionais aplicadas a variáveis antes de comparar em condições:
FunçãoEfeito
lengthUsa o comprimento da string em vez da string em si
trimRemove espaços em branco no início e fim
lowercaseConverte para minúsculas
uppercaseConverte para maiúsculas
toNumberConverte para número
normalizeRemove acentos e diacríticos
removeSpacesRemove todos os espaços