TL;DR: Ligue botões de confirmar, reagendar e cancelar ao PMS ao vivo e ofereça os horários cancelados à lista de espera antes da consulta. Recuperar cadeira vazia é writeback mais preenchimento da lista, não cadência. Rode uma amostra de duas semanas no plano grátis, uma cadeira, e conte as horas recuperadas.
Donos de clínica e integradores testam um caso de lembrete bidirecional via API de WhatsApp no plano grátis e medem horas de cadeira recuperadas. Lembretes unidirecionais T-24h continuam a desperdiçar horários já marcados.
A recepção já gasta horas ligando para confirmar. Metade não atende. O resto confirma e mesmo assim falta, enquanto o horário continua marcado — e a lista de espera não consegue pegá-lo. Tratar um lembrete enviado como hora recuperada é o primeiro erro. A hora se recupera quando o calendário muda e outra pessoa senta.
O que um no-show realmente custa
Um visto de WhatsApp enviado deixa a cadeira faturada. O calendário ainda mostra ocupado.
Já vimos equipes de recepção tratar um visto T-24h entregue como hora recuperada e, às 10h, olhar a cadeira vazia. Dantas (2018) situou o no-show médio em saúde perto de 23%. Taxa de abertura do ping não paga o dentista.
Chame o loop de recuperação de cadeira vazia: grave a resposta do paciente no calendário ao vivo e preencha o horário liberado antes da consulta. Um no-show odontológico por dia na faixa de $150--$350 faturados dá cerca de $39k--$91k por ano, contando overhead de 1.4--1.8×. As linhas de dermatologia e clínico geral na tabela repetem o mesmo padrão, com preços de horário diferentes.
| Especialidade | Faixa da cadeira vazia | O que o operador realmente perde |
|---|---|---|
| Consulta odontológica | $150--$350 faturados; custo real 1.4--1.8×; overhead de $150--$300/hora | Um no-show por dia ≈ $39k--$91k/ano |
| Consulta de dermatologia | $150--$200; não comparecimento na literatura 7.8--31% | Horários de procedimento ainda precisam de um toque tardio depois da primeira confirmação |
| Painel de clínico geral | 20 consultas/dia a $150; 7% de no-show | ≈ $55k/ano por FTE a partir de uma taxa pequena |
Um estudo de 2013 sobre lembretes em clínicas odontológicas, cobrindo 1.6 milhão de 21.5 milhões de consultas (e-mail, SMS e voz), relatou uma queda relativa de cerca de 23% nos no-shows. O trabalho Cochrane comparando SMS com nenhum lembrete encontrou risco relativo de 1.14 para comparecimento. RCTs de WhatsApp são mistos: um ensaio no Brasil chegou a p=0.032; ensaios no México e na Índia, não. Trate a hora bloqueada como a unidade que você recupera.
Por que lembretes de uma via ainda desperdiçam horários do médico
Talvez você comece com disparos unidirecionais T-24h pelo celular pessoal da equipe. Veja exatamente onde isso quebra.
Projetos que pulam o writeback tendem a continuar ligando depois do ping no WhatsApp, porque a agenda ainda parece cheia. O paciente diz sim no telefone, ou ignora o ping, e mesmo assim não vem. O horário continua marcado, então a lista de espera não consegue pegá-lo.
Use writeback em duas vias mais lista de espera, não disparos T-24h de uma via pelo celular da equipe. Um thread pessoal também morre quando aquela pessoa sai. Nada muda no PMS quando o paciente escreve "não posso ir" num chat privado.
Uma coorte de 12 clínicas em Indore, escrita pelo próprio fornecedor (interesse comercial declarado; texto do vendor, sem randomização), acompanhou 12 profissionais e mais de 8,400 consultas de junho a dezembro de 2024. O no-show médio saiu de 31% para 10% depois de lembretes de WhatsApp com confirmação e reagendamento interativos. Trate esses números como caso comercial.
| Abordagem | Efeito no no-show | Tempo de preenchimento | Minutos da equipe | Precisa de bot |
|---|---|---|---|---|
| T-24h de uma via | Ignorar ou cancelar por telefone deixa a hora bloqueada; o desperdício fica na faixa de ~30% | Nenhum. A lista de espera nunca vê horário livre | A recepção continua ligando; muitas confirmações ainda viram no-show | Não |
| T-24h + T-2h em duas vias + writeback | Confirmar / reagendar / cancelar cai no PMS; o T-2h contraditório para | O horário libera na agenda. Ninguém o recebe ainda | As ligações caem para quem já tocou em Confirmar | Não. Três botões no estilo SIM/NÃO |
| Duas vias + lista de espera | O mesmo writeback, e um paciente substituto pode sentar | Afirmação do fornecedor: menos de 3 minutos. Padrão de engenharia: cascata SIM/NÃO de 15 minutos. Sem estudo independente com 2--4 clínicos | Menor tempo de cadeira ociosa se a cascata de fato dispara | Não |
Disparos de lembrete de uma via, sem caminho de resposta, também parecem disparo em massa para os filtros de spam do servidor do WhatsApp. Confirmação e reagendamento interativos dão uma resposta ao thread. Suba o volume aos poucos num número recém-conectado. Mais de 3,000 clientes ativos usam a Whapi.Cloud em produção todos os dias; o padrão seguro é uma conversa real, com caminho de resposta. Siga o guia da Whapi.Cloud para evitar banimento de conta ao conectar o número da clínica.
Cadência que funciona: confirmação, T-24h e T-2h
Confirmação da marcação, T-24h e T-2h são o mínimo. Cada toque tem um trabalho. Pule qualquer toque cujo trabalho já foi feito.
A mensagem da marcação captura o consentimento e guarda um caminho de resposta. O T-24h ainda tem horas para preencher um cancelamento. O T-2h pega quem nunca tocou em Confirmar. Se o T-24h já confirmou, não dispare o T-2h. Marcações no mesmo dia pulam o T-24h. Primeiras consultas e horários de procedimento mantêm os dois toques programados. Retornos que já confirmaram na marcação podem rodar só o T-2h.
Lembretes nativos do PMS costumam ser e-mail ou SMS. O WhatsApp entra como webhook complementar em cima desse calendário. O relógio mora na sua fila de jobs. Proteja cada envio com status.
Quando a cadência de 24h e 2h falha
A cadência falha quando o T-2h dispara depois que a consulta já mudou.
Na prática, times que pulam a guarda de status enviam T-2h para um horário que já mudou às 09:15. O paciente reagendou de manhã. O job T-2h foi enfileirado ontem contra as 10:00. Às 08:00 o ping ainda sai com o horário antigo. Envie só enquanto o status continuar agendado.
O WhatsApp não tem tipo nativo de convite de calendário, então a fila é dona do relógio. URAs tornam mais fácil faltar do que reagendar. Os botões do T-24h precisam ser mais fáceis do que essa árvore — senão as pessoas ignoram os dois e o higienista fica ocioso 60--90 minutos depois de um cancelamento no mesmo dia.
Confirmação em duas vias sem montar um bot de pacientes
Respostas SIM/NÃO confirmam ou liberam o horário sem chatbot. Três botões bastam. Um bot de pacientes é produto extra que você não precisa.
Não vamos tratar de montar um chatbot de pacientes, substituir o PMS nem do onboarding oficial do WhatsApp. Este guia para em lembrete, resposta, writeback e lista de espera.
Envie data, horário e nome da clínica. Nunca envie diagnósticos nem prontuário. Não existe caminho de BAA para produtos de WhatsApp. Criptografia ponta a ponta não equivale a um programa HIPAA. Deixe o PHI no prontuário. Coloque só a logística da visita no ping.
POST https://gate.whapi.cloud/messages/interactive com os campos obrigatórios to (telefone ou Chat ID), type (button), body (objeto com text) e action (com buttons). Cada botão usa type: quick_reply, um title e um id. O WhatsApp permite até três. Mapeie os ids para confirm:{appointmentId}, reschedule:{appointmentId} e cancel:{appointmentId}. A entrega dos botões depende das atualizações do cliente WhatsApp; consulte as notas atuais sobre o status dos botões antes de assumir que todo aparelho vai renderizá-los. O fallback é POST /messages/text com to e body obrigatórios (string) e, em seguida, parsear YES / NO / CANCEL no webhook de entrada. O formato para copiar e colar está no how-to da Whapi.Cloud para enviar mensagem com botões.
Capture o consentimento antes do primeiro envio. A confirmação da marcação é o momento certo. Guarde o opt-in no registro do paciente. Deixe isso fora do corpo da mensagem.
// POST https://gate.whapi.cloud/messages/interactive
const res = await fetch('https://gate.whapi.cloud/messages/interactive', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.WHAPI_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
to: patientChatId,
type: 'button',
body: { text: 'Tue 19 Aug, 10:00, North Clinic. Confirm, reschedule, or cancel.' },
action: {
buttons: [
{ type: 'quick_reply', title: 'Confirm', id: 'confirm:' + appointmentId },
{ type: 'quick_reply', title: 'Reschedule', id: 'reschedule:' + appointmentId },
{ type: 'quick_reply', title: 'Cancel', id: 'cancel:' + appointmentId }
]
}
})
});
// if you skip the status === scheduled guard before this POST, T-2h still fires after a 09:15 reschedule and the patient gets two times
| Tipo de visita | Confirmação da marcação | T-24h | T-2h |
|---|---|---|---|
| Paciente novo | Sim, com consentimento | Sim | Sim, a menos que o T-24h já tenha confirmado |
| Retorno | Sim | Opcional se já confirmado | Sim |
| Procedimento | Sim | Sim | Sim. Horário caro |
| Mesmo dia | Sim | Pular | Sim, se ainda der tempo de preencher |
Lembretes que você não deve enviar
Suprima lembretes quando já estiver confirmado, cancelado ou o paciente tiver optado por sair.
Não envie T-2h depois de um Confirmar no T-24h. Não envie nenhum toque quando o status deixar de ser agendado. Pare o envio depois do opt-out. Deduplique com uma chave de idempotência de appointment_id mais o nome do toque, para um job reexecutado não pingar duas vezes.
Uma marcação cancelada que ainda recebe T-2h é o jeito de ensinar o paciente a ignorar o número. Proteja o job. Depois apague os toques enfileirados quando o writeback chegar.
O horário preenchido recupera a hora que o lembrete só libera
Depois do writeback de cancelamento, ofereça o horário liberado à lista de espera. Um lembrete que libera a hora ainda a deixa ociosa até alguém sentar.
Um cancelamento no mesmo dia deixa o higienista ocioso. Sem reposição pela lista de espera, a cadeira morre por 60--90 minutos. Materiais de fornecedor afirmam preenchimento em menos de 3 minutos. Um padrão comum de engenharia é uma cascata SIM/NÃO de 15 minutos pela lista. Não há medição independente de tempo de preenchimento numa clínica de 2--4 clínicos, então trate esses números como faixas de vendor e de engenharia.
Grave cancelamento ou reagendamento no PMS primeiro. Depois escolha o próximo paciente da lista que cabe no horário (tipo de visita, profissional, duração). Envie o mesmo formato interativo: aceitar o horário ou passar. Se passar, vá ao próximo nome dentro da janela que restar. Não ofereça um horário que ainda está marcado. É assim que se marca em dobro.
Meça o tempo de preenchimento. Taxa de no-show sem tempo de preenchimento é métrica de vaidade: você cancelou o fantasma e ainda pagou o dentista para sentar.
O que o agendador precisa emitir (e o que o WhatsApp precisa gravar de volta)
Cancelar sem gravar no calendário deixa a hora do médico bloqueada. O WhatsApp é o caminho de resposta. O PMS continua sendo o sistema de registro.
O padrão que mais encontramos é uma resposta de cancelamento que nunca chega ao calendário. Integradores devem tratar o contrato como eventos na entrada, writeback de status na saída, jobs idempotentes. Leia a superfície HTTP na documentação da API da Whapi.Cloud antes de inventar um segundo calendário.
- O PMS emite
appointment.created,appointment.updatedeappointment.cancelledcom id da consulta, telefone do paciente, horário de início, tipo de visita e status atual. O WhatsApp não substitui o HMS. - Sua fila de jobs guarda uma chave de idempotência (
appointment_id+ nome do toque) e dispara T-24h / T-2h só enquanto o status forscheduled. - POST
/messages/interactive(ou fallback POST/messages/text) a partir do número da clínica conectado. - PATCH
https://gate.whapi.cloud/settingscom um arraywebhooks. Cada item precisa deurl. Definaeventsa partir de GET/settings/eventsem vez de adivinhar nomes. POST/settings/webhook_testcomtype,urlemodeobrigatórios antes do primeiro lembrete ao vivo. - Na mensagem de entrada, mapeie o
iddo botão ou o texto YES/NO/CANCEL para confirmar, reagendar ou cancelar. Ignore duplicatas do mesmoid. - Grave esse estado de volta no PMS. Apague ou conclua o job T-2h enfileirado quando o Confirmar chegar.
- Se o writeback for cancelamento, inicie a oferta da lista de espera antes do horário da consulta. Se for reagendamento, emita um novo
appointment.createde agende um par novo de toques.
Se você não quiser um listener próprio, os conectores nativos da Whapi.Cloud para Make e n8n assinam o mesmo webhook de entrada e atualizam o PMS. O contrato não muda. Um webhook reexecutado sem chave de idempotência é o jeito de marcar a lista de espera em dobro.
Dá para enviar lembretes pelo número da clínica que o paciente já tem?
Envie lembretes pelo número de WhatsApp que o paciente já salvou. Um remetente novo parece desconhecido.
O celular pessoal da recepção é o caminho rejeitado: o thread morre quando aquele funcionário sai, e nada grava de volta. Na WhatsApp Business API oficial, o remetente WABA é um número comercial novo que precisa de templates de saída aprovados. Na Whapi.Cloud, você escaneia um QR code e acopla o número da clínica que o paciente já tem salvo, porque o gateway usa sockets de sessão web nessa conta de WhatsApp existente.
O plano grátis basta para testar o scan e uns envios interativos. Os pacientes já têm esse número nos contatos. Mantenha o app do celular e a API na mesma linha para a recepção continuar vendo o thread.
Quanto o volume de lembretes realmente custa
O P&L da cadeira vazia esmaga o custo de volume de lembretes em qualquer especialidade.
Conte as mensagens para o financeiro não se surpreender. Pontue as horas recuperadas na agenda. Os números abaixo são ilustrativos.
| Marcações/dia | Toques | Msgs / 22 dias | Utility oficial (ilustrativo) | Tarifa fixa por número |
|---|---|---|---|---|
| 10 | 2 | 440 | ≈ $1.76 | Assinatura / número / mês |
| 30 | 2 | 1,320 | ≈ $5.28 | Assinatura / número / mês |
| 30 | 3 | 1,980 | ≈ $7.92 | Assinatura / número / mês |
Na WhatsApp Business API oficial, utility nos EUA é cobrada por conversa (ilustrativo $0.004/msg). Na Whapi.Cloud, uma tarifa fixa por número conectado por mês significa que o volume de lembretes não soma uma linha por conversa.
Faça um piloto de duas semanas capaz de refutar a narrativa do fornecedor
Um piloto de duas semanas acompanha horas de cadeira recuperadas. Contagem de mensagens não decide o caso.
A faixa 31-para-10 do fornecedor veio de seis meses e mais de 8,400 consultas. Duas semanas numa cadeira não reproduzem essa curva. Duas semanas testam o encanamento: confirmar, reagendar e cancelar gravaram de volta, e o horário liberado foi oferecido a tempo? Escaneie o QR no número da clínica e rode o loop numa amostra pequena de marcações. O sandbox é grátis para sempre, com 5 conversas ativas por mês e 150 mensagens por dia. Isso prova uma cadeira. Um teste de carga de 30 marcações por dia precisa de um número pago.
Pontue a amostra em horas de cadeira recuperadas. Para cada marcação cancelada ou reagendada, registre se o writeback chegou, se uma oferta da lista de espera saiu antes do horário original e se alguém sentou. Compare a taxa de no-show com as duas semanas anteriores, mas trate oscilação de poucos dias como ruído. Mantenha os minutos de ligação da recepção como linha secundária.
Donos de clínica e integradores que testarem este caso de API de WhatsApp no plano grátis devem sair com horas de cadeira recuperadas numa amostra pequena — ou com um fracasso claro se o writeback nunca chegou. T-24h de uma via ainda desperdiça a hora. Recuperação de cadeira vazia é botões, writeback no calendário e preenchimento da lista de espera. Se a agenda ainda mostra fantasmas marcados depois de cancelamentos no WhatsApp, pare de adicionar toques e conserte o writeback. Conecte o número da clínica, envie três botões, grave a resposta no PMS e ofereça o horário liberado.









