Confirmación: Calendly → CRM → WhatsApp

Confirmación es el reto diario de recepción: citas que entran por Calendly, pacientes que no confirman y huecos que cuestan dinero. Un pipeline bien armado entre Calendly → CRM → WhatsApp reduce ausencias, estandariza mensajes y libera tiempo del teléfono.

En este how-to verás, paso a paso, cómo enlazar el webhook de Calendly, normalizar datos en el CRM y orquestar mensajes de confirmación y reconfirmación por WhatsApp usando automatización (p. ej., Zapier/Make). El resultado: menos “no-shows”, más control y reportes claros para tu día a día.

Nota: respeta la privacidad y las normativas locales. Esto no es asesoría legal.

Resumen accionable

  • Conecta Calendly vía webhook para recibir cada evento en tiempo real (creación, reprogramación, cancelación).
  • Normaliza los datos en el CRM con un esquema de cita estándar y deduplicación por id_cita.
  • Define triggers: confirmación inmediata, recordatorio T-24h y reconfirmación T-4h si no hubo respuesta.
  • Usa filtros/paths para diferenciar nuevas vs. reprogramadas vs. canceladas.
  • Envía WhatsApp con plantillas y variables; captura respuesta (Sí/No) y actualiza el estado en el CRM.
  • Implementa idempotencia, reintentos y logs para una automatización robusta.
  • Configura alertas a recepción cuando hay silencio o dudas del paciente.
  • Cierra el ciclo con métricas: tasa de confirmación, reconfirmación y “no-show”.

Webhook

El webhook es el punto de entrada. Cuando alguien agenda en Calendly, el sistema dispara un POST con los datos de la cita. Aquí defines la seguridad, los campos y la lógica de reintentos. Evita leer la agenda por lotes; el push en tiempo real reduce latencia y errores.

Qué necesitas

  • URL receptora (de tu herramienta de automatización o un endpoint propio).
  • Verificación/secret para asegurar que el evento proviene de Calendly.
  • Mapeo de eventos: event.created, event.rescheduled, event.canceled, invitee.no_show (si lo gestionas manualmente desde el CRM).

Campos mínimos a capturar (estándar de agenda)

id_citafecha_hora_inicio (ISO)zona_horariapaciente_nombrepaciente_contactoprofesionalservicioestadoorigen_leadconsentimiento
8f2c…2025-11-03T14:00:00America/Sao_PauloAna López+55 11… / emailDr. SilvaConsulta inicialpendienteCalendlytrue/false

Buenas prácticas

  • Idempotencia: usa id_cita (o uuid del evento) como clave única para evitar duplicados si Calendly reintenta la entrega.
  • Reintentos: responde 2xx solo al guardar; si falla el CRM, devuelve 4xx/5xx para que el emisor reintente.
  • Normalización: convierte siempre a ISO 8601 y fija la zona_horaria.
  • Logs: guarda payloads y respuestas (sin datos sensibles innecesarios).

Diagrama (visión general)

[Calendly Event] 
     |
     v
[Webhook Receiver] --valida--> [Normaliza datos] --upsert--> [CRM]
                                             \
                                              \--enqueue--> [Orquestador de Mensajes]

Tras asegurar que el webhook persiste bien, pasamos al cerebro operativo: el CRM.

CRM

El CRM es tu fuente de verdad. Aquí viven los estados de la cita, las marcas de consentimiento y el histórico de interacción. Una buena estructura permite automatizar sin romper procesos manuales de recepción.

Empieza por un upsert (insertar si no existe, actualizar si existe) usando id_cita. Esto garantiza idempotencia y te deja registrar cambios (p. ej., reprogramación, cancelación). A continuación, define estados claros: pendiente, confirmada, reconfirmar, cancelada, no_show.

Flujo recomendado

  1. Upsert de la cita con todos los campos estándar.
  2. Marcas:
    • consentimiento: imprescindible antes de WhatsApp.
    • opt_out: si el paciente pide no recibir mensajes.
  3. Histórico:
    • ultimo_mensaje_tipo (confirmación, recordatorio, reconfirmación).
    • ultimo_mensaje_ts (timestamp).
  4. Reglas:
    • Si estado = cancelada → romper cualquier cadena de recordatorios.
    • Si profesional cambia → notificar a recepción.

Triggers en el CRM

  • On Create (T0): dispara confirmación inicial por WhatsApp.
  • Scheduled Check (cron): a T-24h y T-4h revisa quién sigue en pendiente para enviar recordatorio/reconfirmación.
  • On Reply: cuando el paciente responde, actualiza estado y levanta alertas si es “No”.

Filtros/paths

  • Path A (nuevas): enviar confirmación y link para cambiar/cancelar.
  • Path B (reprogramadas): destacar nueva hora y pedir reconfirmación.
  • Path C (canceladas): mensaje corto de cancelación y oferta de reagendar.

Esta base permite que WhatsApp trabaje con mensajes consistentes y medibles.

Mensajes

WhatsApp es el canal con mejor lectura. La clave está en las plantillas (texto preaprobado) y en la gestión de respuestas. Procura un tono claro, breve y humano; y evita información clínica sensible.

Nota: respeta la privacidad y las normativas locales. Esto no es asesoría legal.

Plantillas sugeridas (variables entre llaves)

  • Confirmación (T0)
    “Hola, {paciente_nombre}. Soy {clínica}. Tu cita de {servicio} con {profesional} es el {fecha_local} a las {hora_local}.
    ¿Puedes confirmar? Responde 1 para Sí, 2 para Reprogramar, 3 para Cancelar.”
  • Recordatorio (T-24h)
    “Recordatorio: mañana a las {hora_local} te esperamos para {servicio}. Responde 1 para confirmar o 2 si necesitas mover la cita.”
  • Reconfirmación (T-4h)
    “Último toque: tu cita hoy a las {hora_local}. ¿Confirmas asistencia? 1 Sí / 2 Reprogramar.”
  • Cancelación
    “Tu cita ha sido cancelada. Si deseas agendar nuevamente, responde AGENDAR.”

Lógica de orquestación

  • Recepción de respuesta: interpreta 1/2/3 o palabras clave (“sí”, “no”, “agendar”).
    • 1estado = confirmada; registra timestamp.
    • 2 → envía link de reprogramación; estado = reconfirmar hasta que haya nueva hora.
    • 3estado = cancelada y marca motivo si se provee.
  • Silencio: si no hay respuesta a T-24h, agenda T-4h; si sigue sin respuesta a T-2h, crea alerta para llamada manual.
  • Consentimiento: si consentimiento = false, no envíes WhatsApp. Alternativas: email o SMS.

Confiabilidad

  • Idempotencia de mensajes: usa una message_key compuesta (id_cita + tipo_mensaje + ventana) para no duplicar envíos si hay reintentos.
  • Reintentos: backoff exponencial (p. ej., 1m, 5m, 15m) ante errores 5xx del proveedor.
  • Logs/alertas: guarda message_id, estado de entrega (enviado, entregado, leído) y dispara alerta si 5xx sostenidos > N minutos.

Mini-diagrama de orquestación

[CRM cita pendiente]
      |
      v
[Motor de mensajes] --plantilla--> [WhatsApp Provider] --entrega--> [Paciente]
      |                                                        |
      |<------------------- webhook de respuesta --------------|
      v
[Actualiza estado CRM] --si silencio--> [Tareas recepción]

Tras implementar, habrás reducido fricción sin perder el toque humano gracias a la intervención de recepción cuando se detecta silencio o intención de reprogramar.

Exceções

Siempre habrá casos que salen del carril. Define paths claros para evitar bloqueos y sorpresas.

Primero, describe 1–2 párrafos antes de las listas. Las excepciones típicas vienen de datos incompletos, cambios de última hora del profesional y errores de entrega de WhatsApp. Un buen sistema detecta, marca y direcciona a recepción con contexto para resolver rápido. En especial, maneja horarios y zonas para pacientes de otras ciudades/países.

Catálogo de excepciones y manejo

  • Número inválido / Opt-out: marca opt_out = true; cambia a email/SMS; notifica a recepción.
  • Cambio de profesional/servicio: regenera mensaje resaltando la novedad; solicita reconfirmación explícita.
  • Reprogramación múltiple: tras N intentos en 30 días, etiqueta contacto como “baja prioridad” y ofrece alternativa (p. ej., lista de espera).
  • Choque horario (time zone): recalcula hora local del paciente; si hay inconsistencia, alerta manual.
  • WhatsApp caído: conmutación a SMS; registra incidente y reintenta luego.
  • No-show reportado: cambia a no_show; dispara encuesta breve y bloquea nuevos recordatorios para esa cita.

Después de mapear estas excepciones, vuelve a probar el flujo principal con datos reales para asegurar que ninguna regla colisione con los triggers de confirmación y reconfirmación.

Errores comunes

  • Depender solo del email cuando el paciente ya prefiere WhatsApp.
  • No unificar id_cita, causando duplicados y mensajes repetidos.
  • Enviar mensajes fuera de horario razonable (sin ventana local).
  • Ignorar el consentimiento y las políticas de mensajería.
  • No separar recordatorio de reconfirmación, perdiendo señal de intención.
  • Falta de alertas ante silencio: nadie llama y el hueco queda vacío.

Un pipeline sólido combina automatización con supervisión: la máquina hace lo repetitivo, recepción interviene donde agrega valor (dudas, excepciones, empatía).

Checklist de pruebas (versión resumida del asset)

  1. Webhook entrega eventos created/rescheduled/canceled y valida secret.
  2. CRM upsert por id_cita con todos los campos estándar.
  3. Estados cambian correctamente con respuestas 1/2/3 y con reprogramaciones.
  4. Temporizadores ejecutan T-24h y T-4h según zona horaria del paciente.
  5. Plantillas insertan variables {nombre, servicio, fecha, hora}.
  6. Idempotencia evita mensajes duplicados por reintentos.
  7. Logs capturan message_id + delivery; alertas ante silencio a T-2h.
  8. Excepciones: opt-out, número inválido, caídas del proveedor y no-show.
  9. Métricas: tasa de confirmación, reconfirmación y ausencias por profesional/servicio.

FAQ

1) ¿Puedo usar Zapier para todo el flujo?
Sí. Con un webhook de entrada, filtros/paths y acciones de WhatsApp (vía proveedor compatible), cubres confirmación, recordatorios y reconfirmación.

2) ¿Cómo manejo pacientes internacionales?
Convierte siempre a ISO 8601, guarda zona horaria y calcula la hora local antes de enviar. Añade validación de número con prefijo internacional.

3) ¿Qué hago si el paciente responde con texto libre?
Implementa reglas simples (regex: “sí”, “no”, “cambiar”, “reprogramar”). Si no hay coincidencia, crea tarea para llamada manual.

4) ¿Qué métricas debo mirar cada semana?
Confirmación T0, reconfirmación T-4h, “no-show”, y tiempo medio de respuesta. Segmenta por profesional y servicio.

5) ¿Es necesario el consentimiento explícito para WhatsApp?
Sí, guarda consentimiento y ofrece opt-out. Ajusta plantillas a la normativa local.

Autor - Jonathan Silva
Jonathan Silva

Soy Jonathan Silva, experto en automatización no-code para clínicas. Ayudo a reducir no-show y ganar eficiencia conectando Zapier, Make y datos accionables.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima