SyncroCentral de Ajuda
No se encontraron resultados
Acessar Syncro

Variáveis no fluxo

Actualizado el 30 de abril de 2026

Variáveis transformam um chatbot genérico em personalizado. Em vez de "Olá, como posso te ajudar?", você manda "Olá, {{nome}}! Qual o motivo do contato hoje?". O Syncro tem 2 tipos de variável: session (capturada na conversa) e system (já existe no CRM, prefixo $). Esse artigo cobre como capturar, interpolar e usar.

Pré-requisitos

Os 2 tipos de variável

Session (capturada do user)

Variáveis criadas durante a conversa. Sempre vinculadas a 1 conversa específica. Persistem em conversation.chatbot_variables (JSON).

Sem prefixo, ex: nome, email, interesse.

System (computada pelo CRM)

Variáveis pré-existentes com dados do lead/conversa. Read-only — você não pode mudar via fluxo.

Prefixo $, ex: $contact_name, $lead_stage_name.

Variáveis de sistema disponíveis

Calculadas em tempo real a cada execução:

Variável Tipo Descrição
$contact_name string Nome do contato (do WhatsApp/IG profile)
$contact_phone string Telefone (vazio em Instagram)
$lead_exists string sim ou não (lead vinculado à conversa)
$lead_stage_name string Nome da etapa do lead (ex: "Negociação")
$lead_stage_id int ID da etapa
$lead_source string Fonte do lead (ex: "formulario-site")
$lead_tags string Tags do lead, vírgula-separadas
$messages_count int Total de mensagens trocadas na conversa
$conversations_count int Total de conversas desse contato (lifetime)
$is_returning_contact string sim (conv > 1) ou não (primeira vez)

Exemplos de uso

Saudação personalizada

Olá, {{$contact_name}}! 👋
{{#if $is_returning_contact == 'sim'}}
Que bom te ver de novo!
{{/if}}

⚠️ Atenção: o template engine do bot não suporta if/else — apenas interpolação simples {{var}}. Pra lógica condicional, use o nó Condition.

Personalizar por etapa do funil

Mensagem: "Vejo que você está em {{$lead_stage_name}} — vou te ajudar a avançar!".

Mostrar quantas vezes já falou

*"Esse é seu **{{$conversations_count}}*º contato com a gente — obrigado pela fidelidade!"

Capturar variáveis (session)

Em nó Input

{
 "text": "Qual seu nome?",
 "save_to": "nome"
}

Cliente responde "João Silva"vars[nome] = "João Silva".

Próxima mensagem usa: "Prazer, {{nome}}!" → renderiza como "Prazer, João Silva!".

Em nó Action save_variable

Pra calcular ou definir uma variável programaticamente:

{
 "type": "save_variable",
 "variable": "categoria",
 "value": "premium"
}

Salva vars[categoria] = "premium". Útil pra:

  • Setar flags baseado em fluxo trilhado (vars[interessado_em_curso] = "sim").
  • Concatenar valores: value = "{{nome}} {{sobrenome}}" (interpolado).

Interpolar variáveis

Sintaxe: {{nome_da_variavel}} (com ou sem prefixo $).

Funciona em:

  • Mensagem text.
  • Mensagem image_url (URL pode ter {{token}} se você quer dinâmico).
  • Mensagem audio_url.
  • Input text (pergunta personalizada).
  • Input branch labels.
  • Action send_webhook body (payload customizado por lead).
  • Action send_whatsapp message.
  • Action set_custom_field value.
  • Action save_variable value.

Exemplos

Nome no início

Texto: "Olá, {{nome}}! Bem-vindo." Resultado: "Olá, João! Bem-vindo.".

Confirmação completa

Texto:

Confirmando seu cadastro:
- Nome: {{nome}}
- E-mail: {{email}}
- Telefone: {{$contact_phone}}

Tudo certo?

Webhook customizado

Action send_webhook:

{
 "method": "POST",
 "url": "https://hooks.zapier.com/...",
 "body": "{\"name\": \"{{nome}}\", \"email\": \"{{email}}\", \"source\": \"chatbot\"}"
}

Variável em URL

Action send_whatsapp:

{
 "phone_mode": "custom",
 "custom_phone": "+5511987654321",
 "message": "Novo lead! {{nome}} ({{$contact_phone}}) interessado em {{produto}}."
}

Variáveis vazias

Se variável não existe ou está vazia, interpolação retorna string vazia.

Texto: "Olá, {{nome}}!"
vars sem 'nome' definido
Resultado: "Olá, !"

💡 Dica: pra evitar mensagem feia tipo "Olá, !", sempre capture nome no início do fluxo (com input save_to=nome) ou use system var {{$contact_name}} que sempre existe.

Persistência

Onde fica salvo

Coluna chatbot_variables (JSON) em:

  • whatsapp_conversations
  • instagram_conversations
  • website_conversations

Estrutura:

{
 "nome": "João",
 "email": "[email protected]",
 "interesse": "vendas",
 "categoria": "premium"
}

Quando é limpo

  • End executa: chatbot_variables = null.
  • Action assign_human ou assign_ai_agent: limpa.
  • Você manualmente faz toggle off do fluxo na conversa.

Persistência entre conversas

Variáveis NÃO persistem entre conversas diferentes do mesmo cliente. Cada nova conversa começa do zero.

Pra dado persistente do cliente (nome, e-mail, etc), salve no lead via custom field:

{
 "type": "set_custom_field",
 "field_name": "interesse",
 "value": "{{interesse}}"
}

Próxima vez, busque via system var {{$lead_custom_X}} (não exposto hoje, requer manualmente).

Variáveis pré-declaradas no fluxo

No drawer de edição, há campo Variáveis com lista de variáveis que o fluxo coleta:

- nome (default: "")
- email (default: "")
- interesse (default: "")

Esse campo é documentação — não força criação. Serve pra você lembrar quais variáveis usa nos nós.

💡 Dica: declare aqui todas as variáveis que aparecem nos nós. Facilita revisar fluxos longos.

Variáveis com lista (multi-valor)

Não suportado nativo. Variável é sempre string única.

Pra simular lista, use string concatenada:

{
 "type": "save_variable",
 "variable": "interesses",
 "value": "{{interesses}}, novo_interesse"
}

Cada vez append. Resulta em "vendas, suporte, marketing".

Pra parse depois, use no condition: operator contains valor vendas.

Casos práticos completos

Fluxo de qualificação com 4 variáveis

1. Mensagem: "Olá! Vou fazer 4 perguntas rápidas. 😊"
2. Input save_to=nome: "Qual seu nome?"
3. Mensagem: "Prazer, {{nome}}! Continuando..."
4. Input save_to=email: "Seu melhor e-mail?"
5. Input save_to=empresa: "Qual sua empresa?"
6. Input save_to=interesse com branches:
 - "Vendas" → branch_0
 - "Suporte" → branch_1
 - "Outro" → branch_2
7a. (branch_0) Action change_stage stage_id=5 (Vendas)
 + Mensagem "{{nome}}, te conectei com vendas. {{$contact_name}} já vai responder!"
 + Action assign_human user_id=12
7b. (branch_1) Action change_stage stage_id=8 (Suporte)
 + Action assign_human user_id=15
7c. (branch_2) Mensagem "Sem problema, {{nome}}! Te ajudo direto aqui."
 + Action assign_ai_agent agent_id=3

Resultado: lead qualificado, etapa correta, transferido pro destino certo.

Confirmação por sessão

1. Input save_to=produto: "Qual produto você quer?"
2. Input save_to=qtd: "Quantos?"
3. Action save_variable variable=total value="{{qtd}} x {{produto}}"
4. Mensagem: "Confirma {{total}}? Responda SIM ou NÃO."
5. Input branches:
 - SIM → finalizar pedido
 - NÃO → reiniciar do nó 1

Erros comuns

Variável aparece como {{nome}} literal

Causa: typo no nome ou variável não foi capturada.

  • Confira save_to do input correspondente.
  • Confira se o nó com input está ANTES do nó com interpolação.

Variável tem caracteres especiais e quebra interpolação

Sistema escapa, mas se você tem chaves dentro do valor ({{ ou }}), pode dar conflito. Evite.

Variável de sistema não funciona em alguns canais

$contact_phone é vazio em Instagram (Meta não expõe phone no IG profile). Use $contact_name que funciona em todos canais.

Variável "some" no meio do fluxo

Verifica se algum nó End ou action transfer rodou antes — eles limpam variáveis. Reorganize o fluxo pra esses nós ficarem só no final.

Próximos passos

Artigos relacionados