ZAP-API
PreçosCasos de UsoBlogDocsLogin
Começar grátis
  1. Blog
  2. WhatsApp API para psicólogos: agendamento com privacidade e LGPD
Vertical

WhatsApp API para psicólogos: agendamento com privacidade e LGPD

Como psicólogos e clínicas de saúde mental usam WhatsApp API para confirmar consultas, enviar lembretes e manter comunicação terapêutica respeitando sigilo profissional e LGPD.

25 de maio de 2026·11 min de leitura·Equipe Editorial ZAP API

O paciente que falta na consulta de psicologia custa duas vezes: a sessão perdida (R$150-300 que não entram no caixa) e o impacto clínico no tratamento (continuidade interrompida). Pesquisa do CFP de 2024 mostra que clínicas de saúde mental têm taxa média de no-show de 22%, contra 8% em outras especialidades médicas — em parte porque o paciente em sofrimento mental tem ambivalência sobre o atendimento, em parte porque os lembretes não funcionam (SMS é frio, ligação invade, email vai pra spam).

WhatsApp resolve essas duas pontas: é o canal natural do paciente, e a confirmação aceita ou nega com 1 clique. Mas o psicólogo carrega responsabilidades extras: sigilo profissional (Código de Ética CFP), LGPD com base legal específica (saúde é dado sensível), e cuidado redobrado em situações de risco. Esse artigo mostra o passo a passo respeitando tudo isso.

O custo do no-show em psicologia

Um psicólogo autônomo com 25 atendimentos/semana e 22% de no-show perde 5,5 sessões/semana × R$200 = R$1.100/semana = R$4.400/mês. Com WhatsApp + lembrete inteligente, no-show cai pra 6-10% (média de mercado), recuperando R$3.000-3.500/mês.

Esse mesmo cálculo escala em clínicas: clínica de 6 psicólogos com volume similar economiza R$20-25 mil/mês.

Os 4 fluxos automatizados

1. Confirmação 48h antes

Mensagem é enviada 2 dias antes com botão "Confirmo" / "Preciso reagendar". Em consultas onde a marcação é antiga (>1 semana), confirmação é crítica.

2. Lembrete 2h antes

Texto curto reforçando horário e endereço (ou link da videochamada). Não pede ação — só lembra.

3. Reagendamento via bot

Se o paciente clicou "preciso reagendar", bot oferece 3 horários disponíveis na semana seguinte. Quando o psicólogo abre a agenda no Sábado, vê os ajustes feitos automaticamente.

4. Pós-sessão (opcional)

2 horas depois da sessão, mensagem opcional de "Como você está se sentindo agora?" — só pra pacientes que consentiram explicitamente. Vira insight clínico.

Privacidade: a regra de ouro

Mensagens automáticas nunca mencionam:

  • Diagnóstico ("seu tratamento de ansiedade")
  • Tipo de terapia ("sua sessão de TCC")
  • Identidade do profissional ("Dr. João Psiquiatra") — ok mencionar nome, não especialidade na mensagem
  • Conteúdo da sessão anterior

Padrão correto: "Confirmando sua consulta amanhã às 14h" ou "Sua sessão com Marina começa em 2 horas". Genérico mas funcional.

Cron que envia confirmação 48h antes

import cron from "node-cron";
import axios from "axios";

const ZAP = axios.create({
  baseURL: "https://api.zap-api.tech/v1",
  headers: { Authorization: `Bearer ${process.env.ZAP_TOKEN}` },
});

// Diariamente às 9h, busca consultas das próximas 48h
cron.schedule("0 9 * * *", async () => {
  const inicioJanela = new Date();
  inicioJanela.setHours(inicioJanela.getHours() + 47);
  const fimJanela = new Date();
  fimJanela.setHours(fimJanela.getHours() + 49);

  const consultas = await db.consulta.findMany({
    where: {
      dataHora: { gte: inicioJanela, lte: fimJanela },
      status: "agendada",
      lembrete48h: false, // não reenvia
      paciente: { consentimentoWhatsapp: true },
    },
    include: { paciente: true, profissional: true },
  });

  for (const c of consultas) {
    const horarioFormatado = c.dataHora.toLocaleTimeString("pt-BR", {
      hour: "2-digit",
      minute: "2-digit",
    });
    const dataFormatada = c.dataHora.toLocaleDateString("pt-BR");

    await ZAP.post(`/instances/${process.env.INSTANCE_ID}/messages`, {
      to: c.paciente.telefone,
      type: "buttons",
      buttons: {
        text:
          `Olá ${c.paciente.primeiroNome}! Confirmando sua consulta com ${c.profissional.primeiroNome} ` +
          `em ${dataFormatada} às ${horarioFormatado}. Tudo certo?`,
        buttons: [
          { id: `confirma_${c.id}`, text: "Confirmo" },
          { id: `reagenda_${c.id}`, text: "Preciso reagendar" },
          { id: `cancela_${c.id}`, text: "Não vou poder" },
        ],
      },
    });

    await db.consulta.update({
      where: { id: c.id },
      data: { lembrete48h: true, lembrete48hEm: new Date() },
    });
  }
});

Webhook recebendo resposta

app.post("/webhook/zap", async (req, res) => {
  res.status(200).send("ok");
  if (req.body.type !== "message.received") return;

  const buttonId = req.body.message.body?.buttonId;
  if (!buttonId) return;

  const [acao, consultaId] = buttonId.split("_");
  const consulta = await db.consulta.findUnique({ where: { id: consultaId } });
  if (!consulta) return;

  if (acao === "confirma") {
    await db.consulta.update({
      where: { id: consultaId },
      data: { status: "confirmada", confirmadaEm: new Date() },
    });
    await replyText(req.body.message.from, "Obrigada! Te aguardamos.");
  }

  if (acao === "reagenda") {
    const slots = await buscarSlotsDisponiveis(consulta.profissionalId, 7); // próx 7 dias
    const slotsTexto = slots
      .slice(0, 3)
      .map((s, i) => `${i + 1}. ${s.dataHora.toLocaleString("pt-BR")}`)
      .join("\n");
    await replyText(
      req.body.message.from,
      `Esses são 3 horários disponíveis:\n${slotsTexto}\n\nResponda 1, 2 ou 3.`
    );
    // Salva contexto pra próxima mensagem
    await redis.set(
      `reagenda:${req.body.message.from}`,
      JSON.stringify({ consultaId, slots: slots.slice(0, 3) }),
      "EX",
      3600
    );
  }

  if (acao === "cancela") {
    await db.consulta.update({
      where: { id: consultaId },
      data: { status: "cancelada", canceladaEm: new Date(), canceladaPor: "paciente" },
    });
    await replyText(req.body.message.from, "Sessão cancelada. Quando quiser reagendar é só responder aqui.");
    // Notifica psicólogo internamente
    await notificarProfissional(consulta.profissionalId, `Cancelamento: ${consulta.paciente.primeiroNome} - ${consulta.dataHora}`);
  }
});

LGPD: consentimento gravado

Saúde mental é dado sensível (Art. 11 LGPD). Antes de mandar qualquer mensagem automática, paciente assinou termo de consentimento (presencial ou digital):

// Estrutura do consentimento
{
  "pacienteId": "uuid",
  "consentimentoWhatsapp": true,
  "consentimentoPosSession": false, // opcional, mais sensível
  "aceitouEm": "2026-05-15T14:30:00Z",
  "ip": "200.10.20.30",
  "termoVersao": "v3.2",
  "termoTexto": "Autorizo o uso do meu telefone para lembretes de consulta..."
}

O termo deixa claro: (1) qual a finalidade, (2) que pode revogar a qualquer momento ("opt-out"), (3) que mensagens não conterão diagnóstico, (4) prazo de retenção de mensagens.

Compliance CFP/CFM

  • Resolução CFP 11/2018: atendimento online é permitido, requer cadastro do psicólogo no e-Psi. Mensagens WhatsApp de agendamento não são "atendimento" — são logística.
  • Sigilo (Código de Ética): qualquer dado de paciente em backup, log ou banco precisa estar criptografado em repouso. Use Postgres com pgcrypto ou criptografia de coluna.
  • Prontuário: jamais via WhatsApp. WhatsApp é canal de logística (agendamento/lembrete). Anotações clínicas vão pra prontuário eletrônico próprio.

Casos práticos

Psicólogo autônomo (consultório próprio)

1 instância WhatsApp, calendário Google sincronizado, cron diário 9h. Confirmação 48h + lembrete 2h. Investimento: R$49/mês ZAP API + 1 dia para configurar. ROI: +R$3.500/mês recuperando no-show.

Clínica multi-profissionais

1 instância por profissional (cada psicólogo com seu próprio número). Painel central que orquestra envios. Reagendamento envia para o profissional certo (não cruza agendas). Investimento: R$29-49 por profissional, ROI proporcional.

Hospital/CAPS de saúde mental

Volume alto (500+ consultas/dia), múltiplas equipes (psiquiatria, psicologia, terapia ocupacional). Aqui vale instância dedicada por equipe + relatórios consolidados. Compliance é mais rígido — auditoria interna analisa amostra mensal.

FAQ

Posso enviar prontuário ou anotação clínica via WhatsApp?

Não. WhatsApp não é prontuário (mesmo com criptografia E2E, fica armazenado em servidor fora do seu controle, e backup do paciente vira cópia descontrolada). Use sistema de prontuário eletrônico certificado para isso. WhatsApp é só agendamento e logística.

Como atender paciente menor de idade?

Mensagens vão para o telefone do responsável legal, não do menor. Termo de consentimento é assinado pelo responsável. Se o adolescente tem mais de 16 anos e contrato de psicoterapia foi firmado individualmente (situação rara mas legal), aí o consentimento é dele — porém com cuidado redobrado em mensagens explícitas sobre conteúdo.

WhatsApp tem criptografia E2E?

Tem. Mensagens entre dois usuários trafegam criptografadas. Mas: (1) backup do celular do paciente pode ir pra Google Drive sem criptografia; (2) seu sistema (que dispara via API) tem cópia da mensagem em log. Por isso a regra continua sendo: nunca conteúdo clínico, só logística.

Por quanto tempo posso reter as mensagens?

Defina retenção curta (30-90 dias) para mensagens de logística. Prontuário tem retenção legal própria (20 anos), mas isso vai no prontuário eletrônico — não no banco do bot. Cron diário apaga mensagens antigas.

E se o paciente manda mensagem indicando risco de suicídio?

Bot deve detectar palavras-chave (suicídio, "não aguento mais", "vou me matar") e imediatamente escalonar pra humano com prioridade máxima — não pode ficar na fila normal. Mensagem padrão: "Estou aqui. Vou te conectar com o Dr. X agora. Em emergência, ligue CVV 188 (gratuito, 24h)." E dispara alerta no celular do profissional plantonista.

Pronto para reduzir no-show no consultório? A ZAP API tem 7 dias grátis para você configurar confirmação automática e medir o impacto. Criar conta grátis sem cartão.

Experimente a ZAP API gratuitamente

7 dias de trial sem precisar de cartão. A partir de R$29/mês*.

Criar instância grátis
EE
Equipe Editorial ZAP APIRevisão técnica

Desenvolvedores e especialistas em integrações WhatsApp. Todo conteúdo passa por revisão técnica para garantir precisão e aplicabilidade.

Ver perfil completoDocumentaçãoTrial grátis

Leia também

Vertical · 30 de abr. de 2026 · 12 min

WhatsApp API para clínicas: agendamento, lembretes e conformidade LGPD/CFM

Reduza no-show de 28% para 8% com fluxo completo de confirmação, lembretes e NPS pós-consulta. Templates, ROI e checklist LGPD/CFM.

Vertical · 16 de jun. de 2026 · 10 min

WhatsApp API para petshops e clínicas veterinárias: lembretes, vacina e recompra

Como petshops e veterinárias usam a API de WhatsApp para reduzir faltas e aumentar recorrência: lembrete de banho e tosa, vacina em dia, recompra de ração e pós-consulta.

Vertical · 31 de mai. de 2026 · 11 min

WhatsApp API para dentistas: confirmação de consulta e pós-atendimento

Como clínicas odontológicas usam WhatsApp API para confirmar agendamentos, enviar orientações pré e pós-procedimento e coletar avaliações automaticamente.

Vertical · 22 de mai. de 2026 · 11 min

WhatsApp API para seguradoras: abertura e acompanhamento de sinistro

Como seguradoras usam WhatsApp API para abertura de sinistro, coleta de fotos, acompanhamento de status e agendamento de vistoria sem precisar de app.

Tópicos:Chatbots com IAE-commerceAPI WhatsApp

Explore também

Casos de usoWhatsApp API por segmentoComparativoZAP API vs alternativasPreçosPlanos e o que está inclusoGlossárioTermos técnicos de WhatsApp API
ZAP-API

API REST para WhatsApp com webhooks assinados, Meta Pixel/CAPI e compliance LGPD. Sem aprovação da Meta.

Status operacional🇧🇷 Feito no Brasil

Produto

  • Preços
  • Casos de uso
  • Comparativo
  • Trial grátis
  • Dashboard

Recursos

  • Documentação
  • Blog
  • Glossário
  • RSS Feed

Empresa

  • Sobre
  • Imprensa
  • Termos de uso
  • Privacidade
  • Criar conta
  • Login

Contato

  • [email protected]
  • [email protected]
  • Resposta em até 24h úteis
© 2026 ZAP-API — Todos os direitos reservados·CNPJ 42.130.949/0001-56·Termos·Privacidade

Desenvolvido por PreviusIA