Voltar ao blog
Tutorial

Atendimento automatizado com Claude API + n8n (pra clínica que não dorme)

Por Flávio Emanuel · · 9 min de leitura

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:

  1. Recebe mensagens do WhatsApp
  2. Passa pra Claude analisar o contexto
  3. Claude responde ou qualifica como “precisa falar com humano”
  4. 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:

  1. Conta Claude API (com saldo)
  2. n8n rodando (self-hosted ou n8n.cloud)
  3. Conta de WhatsApp Business ou TwilioWhatsApp
  4. 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

  1. Google Calendar: bot coleta data/hora desejada, consulta disponibilidade, marca direto.
  2. Stripe: cliente quer pagar na hora? Bot gera invoice, cobra via link.
  3. Slack: bot manda notificação pro time em tempo real, não espera que alguém cheque o dashboard.
  4. 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

Próximo passo

Precisa de um dev que entrega de verdade?

Seja pra um projeto pontual, reforço no time, ou parceria de longo prazo. Vamos conversar.

Falar no WhatsApp

Respondo em até 2h durante horário comercial.