Variáveis e contexto
Variáveis guardam informação durante a conversa — input do cliente, resposta de API, computação. Cada variável tem um nome e um valor.
Como referenciar
No texto de qualquer bloco, use {{nome_da_variavel}}:
"Olá {{contact.name}}, seu pedido {{numero_pedido}} já está a caminho!"
Tipos de variáveis
Contato (built-in)
Dados do cliente que mandou mensagem. Sempre disponíveis.
Conversa (built-in)
Sobre a conversa atual: ID, inbox, atendente, etc.
Custom
Criadas por você — vem de input do cliente, API, ou código.
Variáveis built-in disponíveis
Contato ({{contact.*}})
| Variável | O que é |
|---|---|
contact.name | Nome do contato |
contact.email | |
contact.phone | Telefone |
contact.identifier | ID externo (se você setou via API) |
contact.custom.<atributo> | Qualquer atributo personalizado |
Conversa ({{conversation.*}})
| Variável | O que é |
|---|---|
conversation.id | ID da conversa atual |
conversation.inbox.name | Nome da inbox |
conversation.inbox.channel_type | "Channel::Whatsapp", "Channel::Web", etc. |
conversation.assignee.name | Atendente atribuído (se houver) |
conversation.team.name | Time atribuído (se houver) |
conversation.custom.<atributo> | Atributo customizado da conversa |
Sistema
| Variável | O que é |
|---|---|
now() | Data/hora atual |
today() | Hoje |
random_id() | UUID novo |
environment | "production", "staging", etc. |
Setar variável
Use o bloco Set Variable (em Lógica → Set variable) ou input do cliente vai direto pra variável (cada bloco de entrada tem campo "salvar em variável").
Operações em variáveis
O bloco Set variable suporta:
| Tipo de operação | Exemplo |
|---|---|
| Valor literal | cpf = "12345678900" |
| Expressão | total = preco * quantidade |
| Concatenação | nome_completo = nome + " " + sobrenome |
| Funções de data | vencimento = today() + 30 |
| Código JS livre | cep = lookup_cep(input).slice(0,5) |
| Append em lista | historico = historico + [novo_item] |
| Random ID | pedido_id = random_id() |
Escopo
- Variáveis viver durante a conversa — somem quando a conversa é resolvida.
- Sub-fluxos (Cosmoflow Link) podem optar por mesclar suas variáveis no fluxo pai.
- Atributos do contato (
contact.custom.*) persistem entre conversas — é onde você guarda dados pra reuso.
Persistir entre conversas
Para guardar algo que sobrevive a Resolvida, salve num atributo customizado do contato ou da conversa:
// dentro do bloco Set variable, modo "código"
contact.custom.ultima_compra = today();Defina os atributos previamente em Configurações → Atributos.