> ## Documentation Index
> Fetch the complete documentation index at: https://omniloy.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Programación

> Cadencia de llamadas, reintentos, ventanas horarias, feriados y carga masiva

La programación define **cuándo** llama OlivIA. Se configura a nivel de protocolo (`freq_config`) y puede ajustarse por inscripción.

## Configuración de cadencia (freq\_config)

<img src="https://mintcdn.com/omniloy/Q9jZm4-SeFtgd8-M/images/olivia/scheduling.png?fit=max&auto=format&n=Q9jZm4-SeFtgd8-M&q=85&s=ea28b8320f3a35fb62ffa26ab46139f3" alt="Panel de programación" width="1687" height="1423" data-path="images/olivia/scheduling.png" />

| Campo                     | Qué define                                                                                                              |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `start_date` / `end_date` | Rango de fechas del seguimiento (`end_date` opcional).                                                                  |
| `frequency`               | Cadencia base: cada N `días`, `semanas` o `meses`.                                                                      |
| `retry_window`            | Ventana de reintento: cada N `minutos`, `horas` o `días`.                                                               |
| `max_retries`             | Número máximo de reintentos por cuestionario.                                                                           |
| `max_instances`           | Máximo de cuestionarios (o ilimitado).                                                                                  |
| `timezone`                | Zona horaria (IANA) que rige las ventanas.                                                                              |
| Ventanas horarias         | Franjas permitidas: **franjas propias** (con días de la semana permitidos) **o** **perfiles de ventana** reutilizables. |

Los reintentos respetan las franjas y días permitidos, y se detienen al pasar la fecha de fin. Al cerrar un cuestionario, una banda de score puede ajustar automáticamente la cadencia del siguiente (`freq_override`).

## Override por inscripción

Al inscribir un paciente puedes enviar una configuración parcial que se superpone a la del protocolo (por ejemplo, otra cadencia o zona horaria). Ver [Seguimiento (API)](/olivia/es/api/seguimiento).

## Perfiles de ventana

Franjas horarias reutilizables a nivel de organización: un nombre, una máscara de días de la semana y una lista de franjas. Al editar un perfil, el cambio puede propagarse a los protocolos e inscripciones que lo usan.

## Calendario de feriados

Días (o rangos) en los que no se llama. Pueden aplicar a toda la organización o acotarse a protocolos concretos. Cada organización evalúa "hoy" en su propia zona horaria; las llamadas que caen en un día cerrado se omiten.

## Carga masiva

<img src="https://mintcdn.com/omniloy/Q9jZm4-SeFtgd8-M/images/olivia/bulk-upload.png?fit=max&auto=format&n=Q9jZm4-SeFtgd8-M&q=85&s=490e647768562616a03a07e49cd5afb5" alt="Carga masiva de pacientes por CSV" width="1687" height="1080" data-path="images/olivia/bulk-upload.png" />

Para inscribir muchos pacientes a la vez se sube un **CSV** (hasta 10 MB), con una configuración de programación opcional (si no, se usa la de la versión activa).

* Columnas requeridas: `external_id`, `phone`, `language`.
* Opcionales: `first_name`, `last_name`, `preferred_timezone`, `started_at`.
* Proceso en dos fases: **validación previa** (marca cada fila como válida, duplicada o con error) y luego **confirmación**.
