TL;DR: Conecte los botones de confirmar, reprogramar y cancelar al PMS en vivo y ofrezca los turnos cancelados a la lista de espera antes de la hora de la cita. Recuperar el sillón vacío es writeback más ocupación de lista de espera, no cadencia. Corra una muestra de dos semanas en un plan gratuito, un sillón, y cuente las horas recuperadas.
Dueños de clínicas e integradores prueban un caso de recordatorio bidireccional con WhatsApp API en un plan gratuito y miden horas de sillón recuperadas. Los avisos unidireccionales a T-24h siguen perdiendo horas médicas ya reservadas.
Recepción ya dedica horas a llamar para confirmar. La mitad no contesta. El resto confirma y aun así no llega, mientras el turno sigue marcado como ocupado y los pacientes de la lista de espera no pueden tomarlo. Tratar un recordatorio enviado como una hora médica recuperada es el primer error. La hora se recupera cuando cambia el calendario y otra persona se sienta.
Cuánto cuesta de verdad una inasistencia
Un tick de WhatsApp enviado deja el sillón facturado. El calendario sigue mostrando ocupado.
Hemos visto equipos de recepción tratar un tick T-24h entregado como una hora recuperada y, a las 10:00, mirar el sillón vacío. Dantas (2018) situó la inasistencia promedio en salud cerca del 23%. La tasa de apertura del mensaje no le paga al dentista.
Llame al ciclo recuperación de sillas vacías: escriba la respuesta del paciente en el calendario en vivo y ocupe el turno liberado antes de la hora de la cita. Una inasistencia dental diaria en la banda de $150--$350 facturados ronda los $39k--$91k al año una vez se cuenta el overhead de 1.4--1.8×. Las filas de dermatología y medicina general de la tabla muestran el mismo patrón a distinto precio de turno.
| Especialidad | Rango de silla vacía | Lo que el operador pierde de verdad |
|---|---|---|
| Consulta dental | $150--$350 facturados; 1.4--1.8× costo real; $150--$300/hora de overhead | Una inasistencia diaria ≈ $39k--$91k/año |
| Consulta de dermatología | $150--$200; inasistencia en literatura 7.8--31% | Los turnos de procedimiento siguen necesitando un aviso tardío después de la primera confirmación |
| Medicina general | 20 visitas/día a $150; 7% de inasistencia | ≈ $55k/año por FTE a partir de una tasa pequeña |
Un estudio de recordatorios en consultorios dentales de 2013, sobre 1.6 millones de 21.5 millones de citas (email, SMS y voz), reportó una caída relativa de inasistencias de alrededor del 23%. El trabajo Cochrane de SMS frente a no enviar nada encontró un risk ratio de 1.14 para la asistencia. Los RCT de WhatsApp son mixtos: un ensayo en Brasil llegó a p=0.032; los de México e India, no. Trate la hora bloqueada como la unidad que recupera.
Por qué los recordatorios unidireccionales siguen perdiendo horas médicas
Puede empezar con envíos masivos unidireccionales a T-24h desde el número personal de un empleado. Así es exactamente como se rompe.
Los proyectos que omiten el writeback siguen llamando después del ping de WhatsApp, porque el tablero sigue viéndose lleno. El paciente dice que sí por teléfono, o ignora el mensaje, y aun así no llega. El turno sigue marcado como ocupado, así que la lista de espera no puede tomarlo.
Use writeback bidireccional más lista de espera, no envíos masivos T-24h desde el teléfono de un empleado. Un hilo personal también muere cuando esa persona se va. Nada cambia en el PMS cuando el paciente escribe «no puedo ir» en un chat privado.
Una cohorte de 12 clínicas en Indore firmada por un proveedor (interés comercial declarado; texto del vendedor, sin aleatorización) siguió a 12 prestadores y más de 8,400 citas de junio a diciembre de 2024. La inasistencia promedio pasó del 31% al 10% con recordatorios de WhatsApp y confirmación y reprogramación interactivas. Trate esas cifras como un caso comercial.
| Enfoque | Efecto en inasistencias | Tiempo de ocupación | Minutos de personal | ¿Bot requerido? |
|---|---|---|---|---|
| T-24h unidireccional | Ignorar o cancelar por teléfono deja la hora bloqueada; la fuga se queda en la banda del ~30% | Ninguno. La lista de espera nunca ve un turno libre | Recepción sigue llamando; muchas confirmaciones igual no llegan | No |
| T-24h + T-2h bidireccional + writeback | Confirmar / reprogramar / cancelar llega al PMS; el T-2h contradictorio se detiene | El turno se libera en el tablero. Todavía nadie lo recibe | Bajan las llamadas para quienes ya tocaron Confirmar | No. Tres botones tipo SÍ/NO |
| Bidireccional + lista de espera | El mismo writeback, y un paciente de reemplazo puede sentarse | Afirmación del proveedor: menos de 3 minutos. Patrón de ingeniería: cascada SÍ/NO de 15 minutos. No hay estudio independiente de 2--4 clínicos | El menor tiempo de sillón ocioso si la cascada realmente se ejecuta | No |
Los envíos masivos de recordatorios sin vía de respuesta también se parecen a outreach masivo para los filtros de spam del lado servidor de WhatsApp. La confirmación y la reprogramación interactivas le dan al hilo una respuesta. Suba el volumen de forma gradual en un número recién conectado. Más de 3,000 clientes activos usan Whapi.Cloud en producción cada día; el patrón seguro es una conversación real con vía de respuesta. Siga la guía de Whapi.Cloud para evitar bloqueos de cuenta cuando conecte el número de la clínica.
La cadencia que sí funciona: confirmación, T-24h y T-2h
La confirmación de reserva, el T-24h y el T-2h son el piso. Cada aviso tiene un solo trabajo. Omita cualquier aviso cuyo trabajo ya esté hecho.
El mensaje de reserva captura el consentimiento y guarda una vía de respuesta. El T-24h todavía tiene horas para ocupar una cancelación. El T-2h atrapa a quienes nunca tocaron Confirmar. Si el T-24h ya confirmó, no dispare el T-2h. Las reservas del mismo día omiten el T-24h. Las primeras visitas y los turnos de procedimiento conservan ambos avisos temporizados. Los controles que ya confirmaron al reservar pueden correr solo el T-2h.
Los recordatorios nativos del PMS suelen ser email o SMS. WhatsApp queda montado como un webhook adicional sobre ese calendario. El reloj vive en su cola de jobs. Proteja cada envío con el estado.
Cuándo falla la cadencia de 24h y 2h
La cadencia falla cuando el T-2h dispara después de que la cita ya se movió.
En la práctica, los equipos que omiten la comprobación de estado envían T-2h para un turno que ya se movió a las 09:15. El paciente reprogramó por la mañana. El job T-2h se encoló ayer contra las 10:00. A las 08:00 el ping sale igual, con la hora vieja. Envíe solo mientras el estado siga siendo scheduled.
WhatsApp no tiene un tipo nativo de invitación de calendario, así que su cola es dueña del reloj. Los menús telefónicos hacen más fácil no presentarse que reprogramar. Los botones del T-24h tienen que ser más fáciles que ese árbol, o la gente ignora ambos y el higienista se queda ocioso 60--90 minutos después de una cancelación del mismo día.
Confirmaciones bidireccionales sin montar un bot de pacientes
Las respuestas SÍ/NO confirman o liberan el turno sin un chatbot. Tres botones bastan. Un bot de pacientes es producto extra que no necesita.
No cubriremos cómo montar un chatbot de pacientes, reemplazar el PMS ni el onboarding oficial de WhatsApp. Esta guía se detiene en recordatorio, respuesta, writeback y lista de espera.
Envíe fecha, hora y nombre de la clínica. Nunca envíe diagnósticos ni historias clínicas. No hay un camino de BAA para productos de WhatsApp. El cifrado de extremo a extremo no equivale a un programa HIPAA. Deje el PHI en la historia. Ponga solo la logística de la visita en el ping.
POST https://gate.whapi.cloud/messages/interactive con los campos requeridos to (teléfono o Chat ID), type (button), body (objeto con text) y action (con buttons). Cada botón usa type: quick_reply, un title y un id. WhatsApp permite hasta tres. Mapee los ids a confirm:{appointmentId}, reschedule:{appointmentId} y cancel:{appointmentId}. La entrega de botones depende de las actualizaciones del cliente de WhatsApp; consulte las notas actuales sobre el estado de los botones antes de asumir que todos los equipos los van a renderizar. El fallback es POST /messages/text con to y body (string) requeridos, y luego parsear YES / NO / CANCEL en el webhook de entrada. La forma para copiar y pegar está en la guía de Whapi.Cloud enviar un mensaje con botones.
Capture el consentimiento antes del primer envío. La confirmación de reserva es el momento correcto. Guarde el opt-in contra el registro del paciente. Déjelo fuera del cuerpo del mensaje.
// 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 | Confirmación de reserva | T-24h | T-2h |
|---|---|---|---|
| Paciente nuevo | Sí, con consentimiento | Sí | Sí, salvo que el T-24h ya haya confirmado |
| Control | Sí | Opcional si ya confirmó | Sí |
| Procedimiento | Sí | Sí | Sí. Alto costo de turno |
| Mismo día | Sí | Omitir | Sí, si aún hay tiempo para ocupar |
Qué recordatorios no debe enviar
Silencie recordatorios cuando ya hay confirmación, cancelación o el paciente se dio de baja.
No envíe T-2h después de un Confirmar de T-24h. No envíe ningún aviso cuando el estado ya no es scheduled. Detenga el outbound después del opt-out. Deduplique con una clave de idempotencia de appointment_id más el nombre del aviso, para que un job reintentado no dispare dos veces.
Una reserva cancelada que igual recibe T-2h es cómo las clínicas enseñan a los pacientes a ignorar el número. Proteja el job. Luego borre los avisos encolados cuando el writeback quede registrado.
El turno ocupado recupera la hora que el recordatorio solo libera
Después del writeback de cancelación, ofrezca el turno liberado a la lista de espera. Un recordatorio que libera la hora la deja ociosa hasta que alguien se sienta.
Una cancelación del mismo día deja al higienista ocioso. Sin relleno de lista de espera el sillón muere 60--90 minutos. Los materiales del proveedor afirman un relleno en menos de 3 minutos. Un patrón de ingeniería habitual es una cascada SÍ/NO de 15 minutos sobre el pool de lista de espera. No hay una medición independiente de tiempo de ocupación en una clínica de 2--4 clínicos, así que trate esos números como rangos de proveedor y de ingeniería.
Escriba primero la cancelación o la reprogramación en el PMS. Luego elija al siguiente paciente de la lista de espera que calce el turno (tipo de visita, prestador, duración). Envíe la misma forma interactiva: tomar el turno, o pasar. Si pasa, siga al siguiente nombre dentro de la ventana que queda. No ofrezca un turno que sigue marcado como ocupado. Así es como se hace una doble reserva.
Mida el tiempo de ocupación. La tasa de inasistencia sin tiempo de ocupación es una métrica de vanidad: canceló al fantasma y igual le pagó al dentista por sentarse.
Qué debe emitir su scheduler y qué debe devolver WhatsApp al PMS
Cancelar sin writeback al calendario deja la hora médica bloqueada. WhatsApp es la vía de respuesta. El PMS sigue siendo el sistema de registro.
El patrón que más vemos es una respuesta de cancelación que nunca llega al calendario. Los integradores deben tratar el contrato como eventos de entrada, writeback de estado de salida, jobs idempotentes. Lea la superficie HTTP en la documentación de la API de Whapi.Cloud antes de inventar un segundo calendario.
- El PMS emite
appointment.created,appointment.updatedyappointment.cancelledcon id de cita, teléfono del paciente, hora de inicio, tipo de visita y estado actual. WhatsApp no reemplaza el HMS. - Su cola de jobs guarda una clave de idempotencia (
appointment_id+ nombre del aviso) y dispara T-24h / T-2h solo mientras el estado seascheduled. - POST
/messages/interactive(o POST/messages/textcomo fallback) desde el número conectado de la clínica. - PATCH
https://gate.whapi.cloud/settingscon un arraywebhooks. Cada ítem necesitaurl. Definaeventsdesde GET/settings/eventsen lugar de adivinar nombres. POST/settings/webhook_testcontype,urlymoderequeridos antes del primer recordatorio en vivo. - En el mensaje de entrada, mapee el
iddel botón o el texto YES/NO/CANCEL a confirmar, reprogramar o cancelar. Ignore duplicados del mismoid. - Escriba ese estado de vuelta al PMS. Borre o complete el job T-2h encolado cuando llegue Confirmar.
- Si el writeback es cancelación, inicie la oferta de lista de espera antes de la hora de la cita. Si es reprogramación, emita un nuevo
appointment.createdy programe un par nuevo de avisos.
Si no quiere un listener a medida, los conectores nativos de Make y n8n de Whapi.Cloud se suscriben al mismo webhook de entrada y actualizan el PMS. El contrato no cambia. Un webhook reintentado sin clave de idempotencia es cómo los pacientes de lista de espera terminan con doble reserva.
¿Puede enviar recordatorios desde el número de la clínica que los pacientes ya tienen?
Envíe recordatorios desde el número de WhatsApp que los pacientes ya guardan. Un remitente nuevo parece un extraño.
El celular personal de recepción es el camino rechazado: el hilo muere cuando esa persona se va, y nada se escribe de vuelta. En la WhatsApp Business API oficial, un remitente WABA es un número de negocio nuevo que necesita plantillas outbound aprobadas. En Whapi.Cloud, usted escanea un código QR y adjunta el número de la clínica que los pacientes ya tienen guardado, porque el gateway usa sockets de sesión web sobre esa cuenta de WhatsApp existente.
El plan gratuito alcanza para probar el escaneo y un puñado de envíos interactivos. Los pacientes ya tienen ese número en contactos. Mantenga la app del teléfono y la API en la misma línea para que recepción siga viendo el hilo.
Cuánto cuesta de verdad el volumen de recordatorios
El P&L de sillas vacías eclipsa el costo del volumen de recordatorios en cada especialidad.
Cuente mensajes para que finanzas no se sorprenda. Mida las horas recuperadas en el tablero. Las cifras de abajo son ilustrativas.
| Reservas diarias | Avisos | Msgs / 22 días | Utility oficial (ilustrativo) | Tarifa plana por número |
|---|---|---|---|---|
| 10 | 2 | 440 | ≈ $1.76 | Suscripción / número / mes |
| 30 | 2 | 1,320 | ≈ $5.28 | Suscripción / número / mes |
| 30 | 3 | 1,980 | ≈ $7.92 | Suscripción / número / mes |
En la WhatsApp Business API oficial, el utility de EE. UU. se factura por conversación (ilustrativo $0.004/msg). En Whapi.Cloud, una tarifa plana por número conectado al mes significa que el volumen de recordatorios no suma una línea por conversación.
Haga una prueba de dos semanas que pueda desmentir el relato del proveedor
Una prueba de dos semanas rastrea horas de sillón recuperadas. El conteo de mensajes no decide el caso.
La banda 31-a-10 del proveedor salió de seis meses y más de 8,400 citas. Dos semanas en un sillón no van a reproducir esa curva. Dos semanas sí pueden refutar el circuito: ¿el confirmar, reprogramar y cancelar volvieron al PMS, y el turno liberado se ofreció a tiempo? Escanee el QR en el número de la clínica y corra el ciclo sobre una muestra pequeña de reservas. El sandbox es gratis para siempre, con 5 conversaciones activas al mes y 150 mensajes al día. Eso es una prueba de un sillón. Una prueba de carga de 30 reservas al día necesita un número de pago.
Evalúe la muestra en horas de sillón recuperadas. Por cada reserva cancelada o reprogramada, anote si el writeback quedó registrado, si salió una oferta de lista de espera antes de la hora original, y si alguien se sentó. Compare la tasa de inasistencia con las dos semanas previas, pero trate un vaivén de unos pocos días como ruido. Deje los minutos de llamadas de recepción como línea secundaria.
Los dueños e integradores que prueben este caso de WhatsApp API en un plan gratuito deberían salir con horas de sillón recuperadas en una muestra pequeña, o con un fallo claro si el writeback nunca quedó registrado. El T-24h unidireccional sigue perdiendo la hora. Recuperar sillas vacías es botones, writeback al calendario y ocupación de lista de espera. Si el tablero sigue mostrando fantasmas ocupados después de cancelaciones por WhatsApp, deje de sumar avisos y arregle el writeback. Conecte el número de la clínica, envíe tres botones, escriba la respuesta en el PMS y ofrezca el turno liberado.









