Introducción
Si tu agenda se llena por un lado y queda hueca por otro, el problema no es la demanda: es la asignación de citas. Repartir pacientes entre profesionales sin reglas claras termina en tiempos de espera altos, sobrecarga y cancelaciones.
En este how-to verás cómo definir reglas, balancear carga y contemplar preferencias y excepciones para implementar asignación de citas automatizada. El objetivo: que tú controles el flujo, no al revés, y que el reparto de pacientes sea justo, trazable y fácil de ajustar.
Resumen accionable
- Define primero tus reglas base (especialidad, cobertura, horarios) y documenta criterios excluyentes vs. deseables.
- Elige un método de balanceo (round-robin, ponderado o por capacidad) y fija límites diarios/semanales.
- Transforma preferencias (del paciente y del profesional) en puntajes; así filtras y priorizas sin subjetividad.
- Implementa excepciones y fallback: urgencias, no-shows, feriados, ausencias y derivaciones.
- Automatiza con triggers, acciones, filtros y rutas; registra logs, alertas y reintentos.
- Mantén una planilla de reglas como fuente única de verdad y audítala mensualmente.
- Integra campos estándar en tus flujos para evitar ambigüedades (p. ej., zona horaria y consentimiento).
- Mide con 3 KPIs: ocupación por profesional, tiempo a primera cita y tasa de reprogramación.
Nota: respeta la privacidad y las normativas locales. Esto no es asesoría legal.
Reglas
Antes de abrir el “motor” de asignación, necesitas un marco estable. Las reglas determinan quién puede recibir una cita y en qué condiciones. Empieza separando criterios obligatorios (hard rules) de deseables (soft rules). Las obligatorias filtran (p. ej., especialidad adecuada, licencia vigente, cobertura/seguro aceptado); las deseables ordenan (p. ej., cercanía, idioma, continuidad de atención). Documenta estos criterios en una planilla de reglas para que cualquier cambio sea auditable y replicable sin tocar la automatización.
Trabaja con un esquema de datos consistente para tus citas. Recomendamos incluir estos campos estándar en todos los flujos:
id_cita | fecha_hora_inicio (ISO) | zona_horaria | paciente_nombre | paciente_contacto | profesional | servicio | estado | origen_lead | consentimiento
Convierte tus reglas en lógica operativa:
- Hard rules (filtros): especialidad = requerida; cobertura ∈ aceptadas; horario disponible = true; licencia_activa = true.
- Soft rules (ranking): continuidad (mismo profesional) +3; idioma coincidente +2; distancia < 5 km +1.
- Políticas de ventana: asignar dentro de los próximos X días salvo urgencia.
- Idempotencia: usa
id_citapara evitar asignaciones duplicadas en reintentos. - Trazabilidad: deja registro del “por qué” (regla que asignó, puntaje, alternativas descartadas).
Diagrama ASCII (flujo base)
[Lead entra]
-> [Trigger: nueva solicitud]
-> [Filtros hard] --si falla--> [Fallback: pool general]
-> [Calcular puntajes soft]
-> [Balanceo (método elegido)]
-> [Crear cita + logs + alertas]
Carga
El balanceo de carga evita que un profesional quede saturado mientras otros están ociosos. Define el método según tu operación y datos disponibles. Tres enfoques comunes:
- Round-robin: turnos en secuencia. Simple, justo cuando todos pueden atender el mismo tipo de demanda.
- Ponderado: asigna pesos por seniority, conversión o disponibilidad (p. ej., quien atiende más rápido recibe mayor proporción).
- Por capacidad/SLAs: considera cupos por franja, duración de servicio y metas (ocupación objetivo 80–90%).
Alinea el balanceo con límites: citas máximas por día, buffer de descanso, tolerancia de overbooking (si aplica), y manejo de zonas horarias cuando atiendes múltiples regiones. Registra en logs cada decisión de reparto para ajustar pesos con evidencia.
Tabla comparativa (métodos de balanceo)
| Método | Ventajas | Riesgos | Cuándo usar |
|---|---|---|---|
| Round-robin | Simple, transparente | Ignora duraciones y complejidad | Servicios homogéneos |
| Ponderado | Flexible a rendimiento/capacidad | Requiere calibración periódica | Diferencias de productividad |
| Por capacidad/SLA | Optimiza ocupación y tiempos | Implementación más compleja | Alta variabilidad de servicios |
Tras elegir, monitorea ocupación por profesional y tiempo a primera cita. Si un método se desbalancea, ajusta pesos o agrega un filtro previo (p. ej., derivar procedimientos complejos a quienes tengan slots largos).
Preferencias
Las preferencias aumentan la satisfacción sin romper el balance. Trata ambas caras:
Primero, del paciente: idioma, preferencia de género del profesional, franja horaria, modalidad (presencial/telemedicina), cercanía o continuidad con el mismo profesional. Segundo, del profesional: tipos de servicio preferidos, límites por día, franjas bloqueadas y reglas de derivación. En lugar de reglas rígidas, expresa estas preferencias como puntajes; así podrás balancear justicia y afinidad.
Ejemplo de modelo de puntaje (soft rules):
- Continuidad con profesional anterior: +3
- Idioma coincidente: +2
- Franja preferida disponible: +2
- Distancia < 5 km o telemedicina: +1
- Penalización por sobrecapacidad: −3
Integra este ranking con tu método de carga: primero filtras por hard rules, luego ordenas por puntaje, y finalmente aplicas el balanceo escogido. Si hay empates, usa fecha de última asignación o menor ocupación como desempate.
Excepciones
Ningún motor funciona sin contemplar lo inesperado. Define excepciones con rutas claras:
- Urgencias o prioridad clínica: saltan la cola con un conjunto específico de profesionales “de guardia”.
- No-show y reprogramación: gatillos que reabren el slot y detonan un flujo de espera (waitlist).
- Feriados y ausencias: bloqueos masivos por calendario central (evita reglas repetidas por profesional).
- Servicios especiales: requieren certificaciones; si no hay disponibilidad, usa fallback a una lista de derivados.
- Conflictos de interés: lista negativa (paciente/profesional) como hard rule.
Diagrama ASCII (excepciones y fallback)
[Evento excepción]
-> ¿Urgencia? --sí--> [Cola de guardia]
-> ¿Profesional ausente? --sí--> [Reasignación automática]
-> ¿No-show? --sí--> [Reabrir slot + Waitlist]
-> Si todo falla --> [Equipo de coordinación para resolución manual]
Implementación técnica (triggers, acciones, controles)
- Triggers: nuevo lead, solicitud de agendamiento, cancelación, no-show reportado, cambio de calendario.
- Acciones: buscar disponibilidad, aplicar filtros y ranking, crear cita, notificar, escribir logs.
- Filtros/paths: por especialidad, cobertura, zona horaria, duración del servicio.
- Webhooks: entrada/salida para integrar CRM/EMR; asegúrate de idempotencia usando
id_cita. - Reintentos: exponenciales con límite; si falla, envía alerta al coordinador.
- Logs y alertas: registra regla aplicada, alternativas y tiempos; alerta si ocupación > umbral.
Errores comunes
- Configurar solo round-robin y ignorar duraciones/servicios distintos.
- Mezclar reglas hard y soft sin documentar prioridades.
- No registrar el “por qué” de la asignación (luego no puedes auditar ni mejorar).
- No contemplar zona horaria en telemedicina.
- Carecer de fallback para ausencias y feriados.
- No probar con datos históricos antes de activar en producción.
Al evitarlos y mantener una planilla viva de reglas, tu asignación de citas automatizada evoluciona con el negocio sin sorpresas.
Checklist / Plantilla (versión resumida de la planilla de reglas)
Pestaña Reglas (hard/soft)
- Especialidad ↔ Servicio (hard)
- Cobertura/seguro aceptado (hard)
- Licencia/credencial vigente (hard)
- Ventanas de asignación (hard)
- Continuidad con profesional previo (soft, +3)
- Idioma coincidente (soft, +2)
- Preferencias de franja (soft, +2)
- Penalización por sobrecapacidad (soft, −3)
Balanceo
- Método seleccionado: ☐ Round-robin ☐ Ponderado ☐ Capacidad
- Pesos por profesional / cupos diarios
- Ocupación objetivo (80–90%)
- Límites de overbooking (si aplica)
Excepciones
- Cola de guardia (urgencias)
- Feriados y ausencias sincronizados
- No-show → reabrir slot + waitlist
- Derivaciones y lista negativa
Datos/Logs
- Campos estándar de cita implementados
- Idempotencia por
id_cita - Alertas y reportes semanales
FAQ
1) ¿Cómo priorizo continuidad sin romper el balance?
Asigna +3 por continuidad y compénsalo con penalización por sobrecapacidad. Si el profesional está al 95% de ocupación, la penalización gana y rediriges.
2) ¿Qué hago si varias reglas soft empatan?
Usa desempate por última asignación (quien lleva más tiempo sin recibir una) o por menor ocupación.
3) ¿Cómo testear antes de ir a producción?
Reproduce un mes de datos históricos, corre el motor en “simulación” y compara KPIs: tiempo a primera cita, ocupación y reprogramaciones.
4) ¿Puedo mezclar round-robin con capacidad?
Sí. Aplica un filtro de capacidad mínima por franja y, dentro de los aptos, usa round-robin o pesos.
5) ¿Cómo manejo diferentes zonas horarias?
Normaliza todo en ISO con zona_horaria por registro y valida ventanas locales antes de asignar.
