SyncroCentral de Ajuda
Nenhum resultado encontrado
Acessar Syncro

Nós mensagem, input, condição, ação

Atualizado em 30 de abril de 2026

O fluxo do chatbot é montado com nós conectados por setas. Cada nó faz uma coisa específica — manda mensagem, pergunta algo, decide caminho, executa ação. O Syncro tem 7 tipos de nós. Esse artigo explica cada um, com config, quando usar e exemplos práticos.

Pré-requisitos

Adicionar e conectar nós

  1. Sidebar esquerda mostra paleta de tipos.
  2. Arraste o tipo desejado pro canvas.
  3. Clique no nó pra configurar (painel direito).
  4. Conecte:
  • Source handle (bolinha à direita do nó).
  • Arraste pra target handle (bolinha à esquerda do próximo nó).
  1. Salve com Salvar fluxo (canto superior direito).

1. Mensagem (message)

O que faz

Envia uma mensagem pro cliente. Pode ser texto, imagem ou áudio. Após enviar, segue pro próximo nó automaticamente.

Quando usar

  • Boas-vindas: "Olá! 👋 Como posso ajudar?".
  • Confirmação após coleta: "Recebi seus dados, {{nome}}. Em breve te ligamos.".
  • Apresentar opções: "Posso te ajudar com 1) Preços 2) Suporte 3) Agendamento".
  • Enviar mídia: imagem do produto, áudio explicativo.

Configuração

{
 "text": "Olá {{nome}}! Bem-vindo ao Syncro. 👋",
 "image_url": "https://exemplo.com/banner.jpg",
 "audio_url": null
}
  • Texto (opcional): suporta interpolação de variáveis ({{nome}}, {{$contact_name}}).
  • Imagem URL (opcional): link público pra imagem (PNG/JPG/WebP).
  • Áudio URL (WhatsApp only): link de arquivo.ogg/.mp3.

Comportamento por canal

  • WhatsApp: envia tudo (texto + imagem com legenda + áudio separado).
  • Instagram: texto + imagem (áudio não suportado).
  • Website: texto + imagem inline.

💡 Dica: cada mensagem tem delay de 3 segundos antes da próxima — simula digitação humana. Cliente percebe o bot como mais natural.

2. Input — Pergunta (input)

O que faz

Pergunta algo, espera resposta do cliente, e direciona pro nó certo conforme a resposta. É o nó central de qualquer fluxo interativo.

Quando usar

  • Capturar nome, e-mail, telefone.
  • Menu de opções (1, 2, 3 ou A, B, C).
  • Triagem (Vendas / Suporte / Outro).
  • Escolha de produto, horário, plano.

Configuração

{
 "text": "Qual seu nome?",
 "save_to": "nome",
 "branches": [
 {
 "label": "Sim, quero",
 "keywords": ["sim", "quero", "yes"],
 "handle": "branch_0"
 },
 {
 "label": "Não, obrigado",
 "keywords": ["não", "nao", "no"],
 "handle": "branch_1"
 }
 ],
 "default_branch": { "steps": [...] }
}
  • Texto da pergunta (obrigatório): o que o bot pergunta.
  • Salvar resposta em (save_to) (opcional): nome de variável (sem $). Resposta livre fica salva pra usar depois (ex: {{nome}}).
  • Branches (opcional): lista de opções com:
  • Label (max 24 chars): texto visível pro cliente (ex: "Sim, quero").
  • Keywords: array de palavras que matcham essa branch (case-insensitive).
  • Default branch: caminho se nenhuma keyword bater (resposta livre).

Comportamento por canal

Canal Renderização
WhatsApp Lista interativa (sendList) — cliente vê dropdown com opções clicáveis
Instagram Quick Replies — botões de resposta rápida
Website Texto + botões inline

Exemplos práticos

Pergunta livre (capturar nome)

{
 "text": "Qual seu nome?",
 "save_to": "nome",
 "branches":,
 "default_branch": { "next": "node_5" }
}

Cliente responde "João Silva" → vira {{nome}} → próximo nó usa: "Prazer, {{nome}}!".

Menu de opções

{
 "text": "Como posso te ajudar?",
 "branches": [
 { "label": "Preços", "keywords": ["1", "preço", "preco"], "handle": "branch_0" },
 { "label": "Suporte", "keywords": ["2", "suporte", "ajuda"], "handle": "branch_1" },
 { "label": "Agendamento", "keywords": ["3", "agendar"], "handle": "branch_2" }
 ],
 "default_branch": { "next": "node_fallback" }
}

⚠️ Atenção: se input tem branches mas o texto está vazio, sistema gera default "Escolha uma opção:" — pra não silenciar o cliente.

3. Condição (condition)

O que faz

Avalia o valor de uma variável e direciona pra branch correspondente. Diferente de input (que pergunta), condition decide baseado em dado já coletado.

Quando usar

  • Direcionar baseado em resposta anterior (já capturada).
  • Lógica de qualificação: "Se receita > 100k → vendedor sênior. Senão → SDR."
  • Branching baseado em variável de sistema (ex: lead já existe? está em qual etapa?).

Configuração

{
 "variable": "interesse",
 "conditions": [
 { "operator": "equals", "value": "comprar", "handle": "branch_0" },
 { "operator": "contains", "value": "info", "handle": "branch_1" },
 { "operator": "gt", "value": "1000", "handle": "branch_2" }
 ],
 "default_branch": { "next": "node_default" }
}
  • Variável (obrigatório): nome da variável a avaliar (com ou sem $).
  • Condições: lista, primeiro match ganha:
  • Operador: equals, not_equals, contains, starts_with, ends_with, gt (maior que), lt (menor que).
  • Valor: o que comparar.
  • Handle: pra qual branch ir.
  • Default branch: se nenhum match.

Operadores

Operador Descrição Ex
equals É igual a nome == 'João'
not_equals É diferente de país != 'BR'
contains Contém mensagem contém 'urgente'
starts_with Começa com tel começa com '+55'
ends_with Termina com email termina com '@gmail.com'
gt Maior que (numérico) valor > 1000
lt Menor que (numérico) idade < 18

Exemplos práticos

Direcionar por interesse

Cliente capturou {{interesse}} = "comprar" no input anterior.
Condition: se interesse equals "comprar" → manda pra vendedor.
 se interesse contains "info" → manda material.
 senão → fallback FAQ.

Triagem por valor

Variável: $lead_value (pré-existente do CRM).
Se gt 5000 → conta enterprise → notifica gerente.
Se lt 5000 → fluxo SDR padrão.

4. Ação (action)

O que faz

Executa uma ação no CRM. Não envia mensagem — modifica estado do lead/conversa.

Quando usar

  • Mover lead pra etapa do funil.
  • Adicionar/remover tag.
  • Transferir pra humano.
  • Transferir pra agente IA.
  • Salvar variável customizada.
  • Disparar webhook externo.
  • Preencher custom field.

Tipos de ação (12 disponíveis)

Tipo O que faz Campos
change_stage Move lead pra etapa stage_id
add_tag Adiciona tag value (nome da tag)
remove_tag Remove tag value
assign_human Transfere pra atendente user_id
assign_ai_agent Transfere pra IA agent_id (ver artigo dedicado)
close_conversation Fecha conversa
save_variable Salva variável de sessão variable, value
send_webhook Faz HTTP request method, url, body, headers, save_response_to
set_custom_field Preenche custom field do lead field_name, value
send_whatsapp Envia WhatsApp pra outro contato phone_mode, custom_phone, message
create_task Cria task vinculada ao lead subject, description, priority, due_date_offset
create_lead Cria lead se não existe

Exemplos práticos

Qualificar lead com tag

Após cliente confirmar interesse:

{ "type": "add_tag", "value": "interessado-curso" }

Mover pra "Negociação" no funil

Após cliente fornecer dados completos:

{ "type": "change_stage", "stage_id": 5 }

Transferir pra suporte (humano)

Após cliente reportar bug:

{ "type": "assign_human", "user_id": 12 }

Bot encerra. Atendente recebe a conversa atribuída.

Webhook pra sistema externo

Notificar Slack quando lead se inscreve:

{
 "type": "send_webhook",
 "method": "POST",
 "url": "https://hooks.slack.com/services/...",
 "body": "{\"text\": \"Novo lead: {{nome}} ({{email}})\"}",
 "headers": { "Content-Type": "application/json" }
}

💡 Dica: ações não param o fluxo automaticamente — após executar, vai pro próximo nó. Exceção: assign_human e assign_ai_agent terminam o fluxo (cliente passa pra humano/IA).

5. Aguardar (delay)

O que faz

Pausa o fluxo por N segundos antes de continuar.

Quando usar

  • Esperar entre 2 mensagens longas (não despeja tudo de uma vez).
  • Dar tempo de cliente ler antes da próxima pergunta.
  • Aguardar processamento (ex: webhook async — em casos raros).

Configuração

{ "seconds": 5 }
  • Range: 1-30 segundos.
  • Valor fora do range é clamped (1 vira 1, 60 vira 30).

Exemplo

Mensagem: "Estou consultando seu pedido..."
↓ Delay 3s
Mensagem: "Pronto! Encontrei aqui."

💡 Dica: por padrão, mensagens já têm 3s de delay automático entre si. Use delay só pra pausas longas (5s+) ou efeito de "estou pensando".

6. Cards (cards) (Website only)

O que faz

Renderiza um carrossel horizontal de cards com imagem, título, descrição e botão. Só funciona no Website widget.

Quando usar

  • Catálogo de produtos.
  • Lista de planos/pacotes.
  • Galeria de portfólio.
  • Opções com mídia visual.

Configuração

{
 "items": [
 {
 "title": "Plano Growth",
 "description": "Pra times de 5-20",
 "image_url": "https://...",
 "button_text": "Quero saber mais",
 "button_url": "https://syncro.chat/pro"
 },
 {
 "title": "Plano Scale",
 "description": "Pra grandes operações",
 "image_url": "https://...",
 "button_text": "Falar com vendas",
 "button_url": null
 }
 ]
}
  • Items: array de cards.
  • Título + descrição + imagem URL.
  • Texto do botão + URL (se vazio, botão clica = continua fluxo no próximo nó).

⚠️ Atenção: WhatsApp e Instagram não suportam cards — esse nó só faz sentido em fluxos canal=website.

7. Fim (end)

O que faz

Encerra o fluxo. Envia mensagem final (opcional), incrementa completions_count (analytics), e limpa o estado da conversa.

Quando usar

  • Final natural após cliente concluir tarefa (agendou, comprou, etc).
  • Fim de fluxo de FAQ ("Espero ter ajudado!").
  • Após transferência implícita (ex: cliente disse "tchau").

Configuração

{ "text": "Obrigado por usar nosso atendimento! 👋" }
  • Texto (opcional): mensagem final.

Comportamento

  1. Envia mensagem (se configurada).
  2. Limpa chatbot_node_id e chatbot_variables da conversa.
  3. Incrementa completions_count do fluxo (visível na lista de fluxos).
  4. Mantém chatbot_flow_id (pra analytics — saber qual fluxo o cliente terminou).

💡 Dica: cada fluxo deve ter pelo menos 1 nó End. Sem End, fluxo fica em loop ou trava em input esperando resposta.

Conectar nós (edges)

Handles

  • Target handle (esquerda): entrada do nó.
  • Source handle (direita): saída.

Nós com branches (input, condition) têm vários sources:

  • default — fallback.
  • branch_0, branch_1, … — uma por opção.

Como conectar

  1. Clique e segure no source handle de um nó.
  2. Arraste até target handle do próximo.
  3. Solte. Seta criada.

Restrições

  • 1 source por edge — você não pode 2 sources apontando pra mesmo target sem isso.
  • Não pode ciclar sem terminar — sistema bloqueia loop infinito (max 30 iterações).

Validação no save

Antes de salvar, sistema valida:

  • Pelo menos 1 nó start (is_start=true).
  • ✅ Cada input/condition tem default_branch (pra fallback).
  • ✅ Cada action tem campos obrigatórios (ex: agent_id em assign_ai_agent).
  • Edges válidas (source/target existem).

Se falha, erro vermelho aparece no canto superior. Corrija e salve novamente.

Próximos passos

Artigos relacionados