Conteúdo detalhado
🎬 O cenário
Imobiliária Vivenda. 800 imóveis ativos em São Paulo. Atendimento via WhatsApp 24/7. Agenda integrada com 12 corretores. Antes do agente: 70% das mensagens em horário comercial, 30% perdidas à noite e fim de semana.
📊 Números do projeto (3 meses pós-deploy)
- +340% em visitas agendadas (de 90 para 397/mês)
- 78% de resolução sem humano
- R$ 0,18 custo médio por sessão
- R$ 2,40 custo por visita agendada
- NPS 71 nas sessões resolvidas pelo agente
- 4 corretores reposicionados para fechamento (não mais atendimento inicial)
🔧 As 4 tools
O agente foi desenhado com 4 tools atômicas que cobrem o funil inteiro: buscar, detalhar, listar slots, agendar. Nenhuma das 4 sozinha resolve — juntas, fecham a venda.
tool buscar_imoveis(cidade, bairro?, quartos?, max_preco?, finalidade)
→ retorna até 3 imóveis ordenados por match
tool detalhar_imovel(id)
→ retorna ficha completa: fotos, m², condomínio, foto do prédio,
distância de metrô, valor total com taxas
tool listar_slots(imovel_id, data_inicio?, data_fim?)
→ retorna horários disponíveis do corretor responsável
tool agendar_visita(imovel_id, slot, pessoas, telefone)
→ cria evento no Google Calendar do corretor, envia WhatsApp
de confirmação, registra no CRM, retorna id da visita
💡 Atomicidade
Repare: cada tool é uma única coisa. Não existe agendar_e_confirmar(). Não existe buscar_e_detalhar(). Atomicidade dá ao modelo liberdade de orquestrar.
💬 O fluxo da conversa
Veja o ReAct em ação. Cliente entra com pergunta vaga, agente conduz em 7 turnos até visita agendada. Cada turno tem uma decisão clara e uma tool (ou não).
[M] oi tem apto 2 quartos vila mariana ate 500k?
[Sofia] (chama buscar_imoveis)
Oi Marina! Achei 3 opções na Vila Mariana até R$500k.
Quer ver os destaques?
[M] sim
[Sofia] 1. R. Vergueiro 1500 — 65m², R$ 480k, 50m do metrô
2. R. Loefgren 900 — 62m², R$ 495k, 8º andar
3. R. Domingos de Morais 240 — 70m², R$ 499k
Qual chama atenção?
[M] o 2
[Sofia] (chama detalhar_imovel id=1108)
Loefgren 900 — 62m², 8º andar, sol da manhã, 1 vaga,
condomínio R$ 680, IPTU R$ 220/mês. Quer agendar visita?
[M] pode ser quarta a tarde
[Sofia] (chama listar_slots id=1108)
Tenho quarta às 14h, 15h30 e 17h. Qual?
[M] 15h30
[Sofia] Marina, perfeito. Vão quantas pessoas no total?
[M] 2 eu e meu marido
[Sofia] (chama agendar_visita)
Pronto! Visita marcada — quarta 28/05 às 15h30,
Loefgren 900, com a corretora Bia.
Mando o endereço completo no WhatsApp. Te vejo lá!
💡 Regra > pressa
Note o turn 6: agente NÃO agendou sem confirmar # de pessoas. Está no system prompt como regra inviolável. Esse detalhe evita confusão na portaria e crítica no Google.
🎫 Custom fields injetados
Sofia trata Marina diferente de João do plano frio. O custom field lead_score=82 entra no prompt e muda o comportamento: mais proativa, oferece contato direto, prioriza horário do dia útil.
# Comportamento por lead_score (vem em runtime) - score >= 70 (Marina, 82): - Trate com prioridade - Ofereça slots dos próximos 2 dias - Se demorar a responder, mande mensagem proativa em 4h - Sugira ligação com corretor humano se houver dúvida complexa - score 40-69: - Slots da semana corrente - Ofereça fotos extras antes de empurrar visita - Nutrição leve em 24h se não responder - score < 40: - Foco em educação: "como funciona o processo de compra" - Não pressione agendamento - Sugira inscrever no newsletter de imóveis novos
💡 Faixas curtas, comportamento claro
Não complique demais. 3 faixas de lead score já capturam 80% do valor. 10 faixas geram comportamento incoerente e ninguém entende o que o bot vai fazer.
⚠️ Os 4 erros comuns
Esses são os 4 erros que matam projetos imobiliários parecidos. Cada um foi cometido na v1 do bot Vivenda — e corrigido depois de aparecer no log.
1. Agendar sem confirmar # de pessoas
Portaria barra o cliente. Corretor reclama. Regra inviolável no prompt resolve.
2. Mostrar imóvel já vendido/locado
Tool buscar_imoveis filtrava por status='ativo'. Solução: filtro no SQL, não no prompt.
3. Agendar fora do horário do corretor
listar_slots inicialmente devolvia horário comercial genérico. Integrar com agenda real.
4. Perder histórico em handoff humano
Quando corretor pegava a sessão, começava do zero. Solução: tool resumir_sessao() na transferência.
📊 Resultado e KPIs
O cliente compra a métrica final, não o modelo. Conversão visita → venda é o número que justifica renovar o contrato. Tudo o mais é meio.
✓ KPIs de negócio (renovam contrato)
- ✓Visitas agendadas / mês
- ✓Conversão visita → proposta
- ✓Conversão proposta → fechamento
- ✓Custo por visita agendada
- ✓NPS pós-atendimento
✗ KPIs técnicos (não vendem para o cliente)
- ✗Tokens por sessão
- ✗Latência média p95
- ✗Taxa de erro de tool
- ✗% de cache hit
- ✗Modelo usado por % de sessões
💡 Relatório certo
Cliente final não quer saber qual modelo você usa. Quer saber quanto custa cada visita agendada — e se essa visita vira venda. Foque o relatório mensal nos 5 KPIs de negócio. O resto vai para o anexo técnico.
📌 Resumo do módulo
Próximo:
Voltar à Trilha 3 (índice)