



La historia
Recepción necesitaba que cada paciente que agenda en línea recibiera una confirmación de inmediato, y una forma segura de avisar a miles de pacientes cuando la clínica cambió de dirección.
La automatización es una AWS Lambda sin dependencias que corre cada cinco minutos con EventBridge. Lee las citas nuevas de Google Calendar con una cuenta de servicio de solo lectura y envía una plantilla aprobada de WhatsApp con la fecha, la ubicación y botones para llegar y para escribir a recepción. Los envíos fallidos se reintentan y nunca se envía dos veces. Los webhooks de Meta reportan entregado, leído, fallido y bajas, cada uno verificado por firma.
El panel es una pequeña app en Hono dentro de un contenedor Docker endurecido. El personal importa CSVs exportados de Excel, revisa un análisis antes de guardar nada y lanza difusiones que se envían en lotes con límite diario, se pausan ante errores y continúan donde se quedaron. Quien responde BAJA queda excluida para siempre.
La privacidad definió el diseño: el sistema guarda la menor cantidad posible de datos de pacientes, los logs no llevan nombres ni teléfonos y cada acción del personal queda en una bitácora de auditoría.
Lo más destacado
De la cita al WhatsApp en minutos
Google Calendar → Lambda → WhatsApp Cloud API con envíos idempotentes, reintentos y una alarma de CloudWatch que avisa por correo.
Motor de difusiones
Lotes cada cinco minutos con límite diario, pausa y reanudación, estado por destinatario y manejo permanente de bajas.
Importación de CSV tolerante
Soporta UTF-8 y la codificación de Excel en Windows, detecta columnas, une duplicados y atiende solicitudes ARCO.
Acceso blindado
Cuentas solo por invitación con inicio de sesión en dos pasos, dos roles y varias capas de protección contra abuso en un despliegue endurecido.
AWS con mínimo privilegio
Infraestructura como código en CloudFormation, cada pieza solo con los permisos que necesita y secretos fuera del código.

