Atendimento automatizado com Claude API + n8n (pra clínica que não dorme)
Clínicas odontológicas recebem mensagens o tempo todo. Alguém quer informação sobre tratamento. Outro quer agendar. Outro manda “qual o preço?”. Metade chega depois que a clínica fecha.
Eu resolvi isso pra uma clínica em São Paulo. Um bot que roda 24/7, qualifica o lead, coleta informações, e passa pra humano quando precisa. Resultado: 60% dos leads chegam já categorizados. O time de atendimento economiza 3 horas por dia respondendo perguntas repetidas.
Vou mostrar como montar.
O que você vai construir
Um workflow n8n que:
- Recebe mensagens do WhatsApp
- Passa pra Claude analisar o contexto
- Claude responde ou qualifica como “precisa falar com humano”
- Se for qualificado, passa pra fila do atendimento
Custo por conversa: R$0,015 (em maio de 2026). Se você processar 1000 conversas por mês, é 15 reais. A economia de tempo da equipe? Uns 60 reais por dia em horas economizadas.
Setup inicial
Você vai precisar de:
- Conta Claude API (com saldo)
- n8n rodando (self-hosted ou n8n.cloud)
- Conta de WhatsApp Business ou TwilioWhatsApp
- Um banco de dados (pode ser Supabase, Firebase, ou PostgreSQL)
Assumi que você já tem n8n rodando. Se não tiver, coloco aqui rápido: docker run -it -p 5678:5678 n8nio/n8n.
O prompt que funciona pra clínica
Este é o coração do sistema. Tudo depende de um prompt bem feito:
Você é um assistente de atendimento de clínica odontológica.
Seu trabalho é: receber mensagens de possíveis pacientes e qualificá-las.
CONTEXTO DA CLÍNICA:
- Localização: São Paulo, zona sul
- Especialidades: estética, implante, limpeza
- Horário de atendimento: seg-sex, 8h-18h
- WhatsApp para agendamento: link para calendário
SUA MISSÃO:
1. Responder perguntas simples (horário, localização, procedimentos)
2. Coletar informações: nome, tipo de procedimento, telefone
3. Quando a pessoa quer agendar, responda com o link de calendário
4. Se a conversa fica complexa, passe para um humano
QUANDO PASSAR PARA HUMANO:
- Paciente tem dor/emergência
- Precisa de diagnóstico detalhado
- Quer negociar preço
- Está insatisfeito
- Faz perguntas sobre saúde que você não tem certeza
REGRAS:
- Sempre seja amigável, nunca robótico
- Se não sabe a resposta, diga honestamente
- Não invente informações sobre procedimentos
- Se o paciente disser "dor", marca como EMERGÊNCIA
RESPONDA SEMPRE EM PORTUGUÊS.
Ao final de cada resposta, inclua uma meta:
[META: tipo_interacao] onde tipo pode ser: INFORMACAO, AGENDAMENTO, QUALIFICADO, EMERGENCIA
Cada meta define o que happens com a conversa.
Workflow n8n passo a passo
Comece num workflow vazio no n8n.
Passo 1: Trigger do WhatsApp
Adicione um node “Webhook” configurado pra receber POST do seu provedor de WhatsApp.
{
"from": "5511987654321",
"body": "Qual o preço de limpeza?"
}
Passo 2: Código pra extrair dados
Crie um node Function que processa a mensagem:
const message = $input.all()[0].body.body;
const phone = $input.all()[0].body.from;
return {
message,
phone,
timestamp: new Date().toISOString(),
};
Passo 3: Chamar Claude API
Adicione um node HTTP Request configurado assim:
Method: POST
URL: https://api.anthropic.com/v1/messages
Authorization Header: Bearer {seu_api_key}
Body (JSON):
{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 300,
"messages": [
{
"role": "user",
"content": "{{$node.ProcessMessage.json.message}}"
}
],
"system": "[seu prompt acima aqui]"
}
Claude vai responder. O node retorna algo como:
{
"content": [
{
"type": "text",
"text": "Olá! Limpeza custa R$200 e leva 30 minutos. Quer agendar? [link]"
}
]
}
Passo 4: Extrair a meta
Use regex pra puxar aquele [META: ...]:
const response = $input.all()[0].json.content[0].text;
const metaMatch = response.match(/\[META: (\w+)\]/);
const meta = metaMatch ? metaMatch[1] : "DESCONHECIDO";
return { meta, response };
Passo 5: Switch baseado na meta
Use um node Switch:
- Se
meta === "EMERGENCIA": vai pra “Human Handoff - Urgente” - Se
meta === "QUALIFICADO": vai pra “Qualificado - Cria Lead” - Se
meta === "AGENDAMENTO": vai pra “Enviou Link” - Se
meta === "INFORMACAO": responde e segue
Passo 6: Responder no WhatsApp
Node HTTP Request pra enviar de volta:
Method: POST
URL: [seu webhook do WhatsApp]
Body:
{
"to": "{{$node.ProcessMessage.json.phone}}",
"body": "{{$node.ExtractMeta.json.response}}"
}
Passo 7: Salvar no Supabase
Antes de responder, salve tudo:
Method: POST
URL: https://seu-supabase.supabase.co/rest/v1/mensagens
Body:
{
"phone": "{{$node.ProcessMessage.json.phone}}",
"mensagem_entrada": "{{$node.ProcessMessage.json.message}}",
"resposta": "{{$node.ExtractMeta.json.response}}",
"meta": "{{$node.ExtractMeta.json.meta}}",
"timestamp": "{{$node.ProcessMessage.json.timestamp}}"
}
Passo 8: Notificar time se for handoff
Se meta === "EMERGENCIA" ou meta === "QUALIFICADO", envie Slack/email:
[NOVO LEAD - CLÍNICA]
Nome: {{extraído do histórico}}
Tipo: {{meta}}
Mensagem: {{mensagem original}}
Responder em: https://clinica.com/dashboard/leads/{{id}}
Custo real por conversa
Em maio de 2026, Claude 3.5 Sonnet custa:
- Input: $3 por 1 milhão de tokens
- Output: $15 por 1 milhão de tokens
Uma conversa típica de 5 trocas (5 mensagens do usuário + 5 respostas do bot):
- Input: ~400 tokens por conversa (prompt + mensagem)
- Output: ~150 tokens por resposta = 750 total
Cálculo:
- (400 input tokens / 1M) * $3 = $0,0012
- (750 output tokens / 1M) * $15 = $0,01125
- Total: ~$0,0124 por conversa
Arredondado, R$0,06 por conversa em 2026 (considerando câmbio).
Se 1000 conversas por mês: ~R$60. Tempo economizado da equipe? Umas 30 horas. Custo hora de atendente: R$50/hora = R$1500 economizado. ROI: 25x.
Como evitar alucinação
O maior risco é Claude inventar informações sobre procedimentos que a clínica não oferece. Três técnicas:
1. Sistema com contexto restritivo
Você CONHECE apenas:
- Limpeza: R$200
- Clareamento: R$500
- Implante: consulta necessária
Qualquer pergunta sobre outro procedimento: "Não temos esse serviço.
Quer conhecer nossos procedimentos? [link]"
2. Validação de resposta
Antes de enviar, use outro Claude call pra validar:
Resposta gerada: "O implante sai por R$3000"
Validar: essa informação consta na base de procedimentos? SIM/NÃO
Se NÃO: rejeita a resposta e substitui por "Essa informação não temos disponível"
3. Human in the loop para informações críticas
Se a meta for “EMERGENCIA” ou “PROCEDIMENTO_CUSTOMIZADO”, sempre passa pra humano. Não toma risco.
Métricas que importam
Depois que o sistema rodar uma semana, analise:
Taxa de qualificação: % de conversas que chegaram na forma “qualificada” (nome + telefone + tipo de procedimento) = sua taxa de sucesso do bot.
Na clínica que eu montei: 62% de qualificação. Quer dizer, 62% das conversas que entraram no bot saíram com informações que o time poderia usar.
Taxa de escalação: % de mensagens que foram pro humano. Deve estar entre 10-25%. Se for acima de 40%, significa que o prompt está pedindo escalação demais. Se for abaixo de 5%, pode estar deixando coisas passar.
Tempo medio de resposta: seu bot responde em quanto tempo? Deve ser segundos. Se for minutos, algo tá slow.
Taxa de conclusão: de quantas conversas o bot conseguiu info suficiente pra um follow-up? A clínica conseguiu marcar reunião por causa do bot?
Integrações extra pra considerar
- Google Calendar: bot coleta data/hora desejada, consulta disponibilidade, marca direto.
- Stripe: cliente quer pagar na hora? Bot gera invoice, cobra via link.
- Slack: bot manda notificação pro time em tempo real, não espera que alguém cheque o dashboard.
- CRM customizado: cada conversa qualificada vira um contato novo no seu CRM.
Prompt tuning: iteração é chave
O primeiro prompt vai ser ok. Não vai ser ótimo. Rodeie por uma semana, veja conversas reais que falharam, ajuste.
Exemplos de ajustes:
- Semana 1: bot está escalando demais. Você faz o prompt mais assertivo.
- Semana 2: bot não consegue lidar com perguntas sobre preço de forma clara. Você estrutura melhor a seção de preços.
- Semana 3: pacientes querem agendar mas o link não chega direito. Você simplifica o call-to-action.
Cada iteração, melhora.
Custos operacionais reais
- Claude API: R$60-150/mês (dependendo de volume)
- n8n.cloud: R$0 (free) ou R$20/mês (pro)
- WhatsApp Business: R$0,07 por mensagem (enviada por você)
- Supabase: R$0 (free) ou R$25/mês
Total por mês: R$60-200.
Economia de tempo do time: R$1500+.
Checklist: deploy de chatbot de clínica
- Prompt está específico pra clínica (não genérico)?
- Três tipos de “meta” estão definidos (INFORMACAO, QUALIFICADO, EMERGENCIA)?
- Cada resposta inclui a meta no fim (pra rotear corretamente)?
- Supabase/banco preparado pra salvar conversas?
- Webhook do WhatsApp está testado (consegue receber mensagens)?
- Node de Claude API está autenticado e chamando corretamente?
- Switch logic está roteando corretamente pras diferentes metas?
- Time de atendimento sabe onde olhar novos leads?
- Validação de alucinação está em place (pra procedimentos)?
- Você rodou teste com 10-20 mensagens reais antes de ir live?
Leia também: Automações com n8n e webhooks | WhatsApp Business API pra clínica | Quanto cobrar por automação com IA