O Syncro tem 2 motores de atendimento automático distintos: Chatbot Builder (fluxos visuais com nós) e Agente IA (LLM com contexto livre). São complementares, não concorrentes — cada um brilha num cenário. Esse artigo compara os 2, explica quando usar cada um, e cobre a regra crítica de mutual exclusion: numa conversa, só um atende por vez.
Comparação rápida
| Aspecto | Chatbot Builder | Agente IA |
|---|---|---|
| Tipo de fluxo | Determinístico (nós conectados) | Conversacional (LLM decide) |
| Configuração | Builder visual (nós) | Prompt + base conhecimento + tools |
| Custo por mensagem | Quase zero | Cobra tokens IA (cota mensal) |
| Previsibilidade | 100% (sempre mesmo caminho) | ~80% (LLM pode variar) |
| Lida com mensagem fora do esperado | Mal (cai no default) | Bem (entende contexto) |
| Multi-canal | WhatsApp, Instagram, Website | WhatsApp, Instagram, Website |
| Aprendizado contínuo | Não (você muda manual) | Sim (RAG + memória) |
| Setup time | 30min - 2h | 1h - 4h |
| Manutenção | Edita nó quando cliente reclama | Adiciona conhecimento + ajusta prompt |
| Custo de erro | Cliente trava em loop | Cliente recebe info imprecisa |
Quando usar Chatbot
✅ Cenários ideais
1. Triagem inicial / qualificação
Cliente chega → bot pergunta nome, e-mail, interesse → tagueia → transfere pro humano certo.
Por quê: previsível, rápido, barato. Variáveis viram dados estruturados.
2. FAQ simples (3-7 perguntas)
Cliente clica "Preços" → bot responde com tabela.
Por quê: respostas idênticas pra todos os clientes — não tem nuance que IA precise.
3. Agendamento de horário
Cliente escolhe data → bot mostra horários → cliente escolhe → bot confirma.
Por quê: fluxo determinístico, sem ambiguidade.
4. Pesquisa NPS
Cliente recebe link/keyword → bot pergunta nota 0-10 + motivo.
Por quê: resposta estruturada, sem necessidade de "conversar".
5. Cupom de Black Friday
Cliente comenta CUPOM → bot manda cupom + prazo + CTA "Comprar agora".
Por quê: mensagem fixa, sem contexto adicional.
❌ Quando NÃO usar Chatbot
- Cliente faz perguntas abertas e variadas (cada um pergunta de jeito diferente).
- Você quer suporte técnico profundo (LLM entende mais nuance).
- Você não consegue prever as 10 perguntas mais comuns.
- Cliente espera resposta personalizada baseada em conversas anteriores.
Quando usar Agente IA
✅ Cenários ideais
1. Suporte de produto
Cliente: "Como eu cancelo a assinatura?" IA: pega contexto da base de conhecimento, responde com passos exatos.
Por quê: cada cliente pergunta diferente, mas resposta tem que ser precisa.
2. Recomendação personalizada
Cliente: "Quero um plano pra minha loja de 5 vendedores" IA: avalia, sugere o plano, explica diferencial.
Por quê: depende do contexto (5 vendedores), bot teria que ter 50 nós.
3. Atendimento conversacional
Cliente reclama: "Cara, esse chatbot não responde direito!" IA: reconhece frustração, oferece humano, mantém conta.
Por quê: empatia conversacional, fora do alcance de bot.
4. Vendas consultivas
Cliente: "Tô em dúvida entre vocês e [concorrente]" IA: argumenta com diferenciação real, ajusta tom.
Por quê: diálogo dinâmico, depende da resposta.
❌ Quando NÃO usar IA
- Você quer controle 100% sobre o que o bot diz (compliance, jurídico).
- Cota de tokens é escassa (plano Trial / Starter).
- Cliente reclama de mensagem genérica — IA pode "alucinar".
- Você precisa integrar com sistema externo complexo (use webhook do bot).
Combinação ideal — Bot + IA
Padrão recomendado:
1. Bot recebe primeira mensagem.
2. Bot pergunta nome, e-mail, interesse principal.
3. Bot tagueia + move pra etapa do funil.
4. Bot transfere pra IA (action assign_ai_agent).
5. IA assume com contexto: já sabe nome, e-mail, interesse.
6. IA conversa naturalmente.
7. IA detecta intenção forte → notifica humano.
Resultado: dados estruturados (do bot) + conversa fluída (da IA) + escalonamento humano (da IA).
Veja Transferir para Agente IA pra implementar.
Mutual exclusion (regra crítica)
O invariante
Numa mesma conversa, você não pode ter os dois ativos:
| Estado | chatbot_flow_id |
ai_agent_id |
|---|---|---|
| Bot | preenchido | NULL |
| IA | NULL | preenchido |
| Humano | NULL | NULL |
| ❌ Inválido | preenchido | preenchido |
Sistema bloqueia via trait EnforcesExclusiveHandler no model — se você tentar setar ambos, dispara DomainException (erro 500).
Por quê
- Quem responde? Se ambos estão setados, qual job (
ProcessChatbotStepouProcessAiResponse) dispara? Race condition. - Custo: IA gasta tokens, bot não. Pagar 2 vezes pela mesma mensagem é absurdo.
- Estado conflitante: bot tem variáveis em sessão, IA tem memória vetorial — não compatíveis.
Transição segura — Bot → IA
Action assign_ai_agent no fluxo:
- Limpa
chatbot_flow_id,chatbot_node_id,chatbot_variables. - Seta
ai_agent_id. - Loop do bot detecta limpeza → para (return).
- Cria evento na timeline: "Bot atribuiu conversa ao agente Camila".
- Dispara
ProcessAiResponseimediatamente — IA responde com saudação contextualizada.
Veja Transferir para Agente IA.
Transição segura — IA → Bot
Pra voltar pra bot após IA estar atendendo:
- No header da conversa, dropdown "Atribuir chatbot".
- Sistema:
- Limpa
ai_agent_id. - Seta
chatbot_flow_id+chatbot_node_id(start node).
- Próxima mensagem dispara o bot do início.
⚠️ Atenção: variáveis da IA não são preservadas pro bot. Cliente vê fluxo "do zero" — pode parecer estranho.
Transição IA → Humano
Action assign_human na automação ou comando manual:
- Limpa
ai_agent_id. - Seta
assigned_user_id. - Atendente assume — vê histórico completo (incluindo bot e IA).
Transição Bot → Humano
Action assign_human no fluxo:
- Limpa
chatbot_flow_id, etc. - Seta
assigned_user_id. - Bot termina, atendente assume.
Custos comparados
Chatbot Builder
- Custo direto: zero. Não cobra tokens.
- Custo indireto: webhook outbound (negligível).
Agente IA
- Cobra tokens IA por chat (~500 tokens por resposta média).
- Plano define cota mensal grátis (ex: Growth = 1M tokens/mês).
- Acima da cota: pacotes adicionais via PIX.
Pra calcular custo IA, veja Quota de tokens.
💡 Dica: combine pra economizar tokens: bot faz triagem (zero custo), só transfere pra IA quando necessário. Reduz uso de IA em ~60-70%.
Quando bot é limitação
Sinais de que você precisa de IA:
- Cliente reclama: "Esse bot é burro".
- 80%+ das mensagens caem na default branch (cliente fora do esperado).
- Você adiciona N nós toda semana pra cobrir casos novos.
- Cliente abandona após 2-3 nós (frustrado com escolhas restritas).
→ Hora de migrar a parte conversacional pra IA, manter bot pra triagem inicial.
Quando IA é limitação
Sinais de que você precisa de bot:
- IA tá inventando ("o produto custa R$ 500" quando custa R$ 1500).
- Você precisa garantir mensagem exata (compliance, oferta promocional fixa).
- Cota de tokens estoura mês.
- Cliente faz pergunta sempre repetida (FAQ) — bot resolveria sem IA.
→ Hora de criar bot pro caso específico, manter IA pra resto.
Estratégia híbrida — exemplo real
Cenário: Imobiliária
1. BOT: "Olá! Posso te ajudar com:
1. Comprar imóvel
2. Alugar imóvel
3. Vender imóvel
4. Outro"
2. (cliente: 1)
3. BOT input save_to=tipo: "Que tipo? Casa, apto, comercial?"
4. (cliente: apto)
5. BOT input save_to=cidade: "Em qual cidade?"
6. (cliente: São Paulo)
7. BOT action add_tag value="apto-SP"
8. BOT action change_stage stage_id=2 (Interessado)
9. BOT action assign_ai_agent agent_id=3 (Camila Vendas)
10. IA assume: "Maria, vi que você quer apto em SP. Tenho 5 opções com seus filtros..."
Bot fez trabalho estruturado (qualificou + tagueou + moveu funil), IA continua conversa real (mostra imóveis específicos, agenda visita, etc).
Erros comuns
"Cliente conversa com bot mas espera IA"
Sinal de que bot não tá entregando o que cliente quer. Migre parte do fluxo pra IA com assign_ai_agent mais cedo.
"IA gasta cota muito rápido"
Cliente que entra direto na IA (sem triagem do bot) usa muito token. Adicione bot na frente pra qualificar — só transfere pra IA quem é realmente lead qualificado.
"Não consigo desativar IA — bot já estava setado"
Mutual exclusion. Sistema impede ambos. Pra desativar, atribua null no ai_agent_id ou mude o fluxo pra setar bot via dropdown.
"Variáveis do bot perdidas quando IA assume"
Comportamento esperado — assign_ai_agent limpa variáveis. Mas o histórico de mensagens (bot e cliente) fica visível pra IA no contexto. IA lê e entende.
Pra preservar dados específicos, salve no lead antes:
- Action
set_custom_fieldpra cada variável crítica. - IA depois consulta via tool de leitura.
Próximos passos
- Pra implementar transferência bot → IA, veja Transferir para Agente IA.
- Pra criar agente IA, veja Criar agente IA.
- Pra entender quotas IA, veja Quota de tokens.