Skip to navigation

Get Day slots

View as Markdown

Esta operación permite obtener el desglose detallado de los tramos horarios (slots) disponibles para una fecha específica. El método cuenta con una regla de filtrado dinámico del pasado: si se consulta el día en curso, el backend omitirá automáticamente los intervalos anteriores y solo devolverá aquellos cuya hora sea posterior a la hora actual de la solicitud.

Detalles de la Solicitud

  • Método HTTP: POST

  • URL PRE: https://api.ovac.pre.councilbox.com/graphql

  • URL PRO: https://api.ovac.councilbox.com/graphql

Autenticación

Tipo: API Key**
Header:** x-jwt-token
Ubicación: Header HTTP_
Ejemplo:_ x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...

Referencia de la API

Parámetros de Entrada (Variables)

ParámetroDescripciónRequeridoTipo
companyIdIdentificador único de la entidad en OVAC donde se busca la disponibilidad.SIInteger
statuteIdIdentificador interno en OVAC asociado al trámite específico.NOInteger
dateFecha de consulta en formato UTC bajo el estándar ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ).SIString
reservedModetrue -> Muestra/aísla los tramos reservados por profesionales.
false -> Muestra el horario de atención al público habitual (Valor por defecto).
NOBoolean

Campos de Respuesta (Payload)

La consulta devuelve un array directo de objetos con todos los tramos horarios calculados bajo el campo raíz companyOVACDaySlots:

ParámetroDescripciónTipo
companyOVACDaySlotsArray con la colección de todos los slots horarios calculados para el día.Array
companyOVACDaySlots.lengthDuración de cada intervalo o hueco de cita expresado en minutos.Integer
companyOVACDaySlots.utcHourHora de inicio del slot en formato UTC decimal (ej. 6.0 = 06:00, 6.5 = 06:30, 6.25 = 06:15).Float
companyOVACDaySlots.dateFecha y hora específica de inicio del slot en formato ISO 8601 UTC.String
companyOVACDaySlots.disabledEstado de bloqueo del slot. true: Deshabilitado (no se puede reservar); false: Habilitado.Boolean
companyOVACDaySlots.availabilityNúmero de huecos netos que quedan libres actualmente en este tramo para agendar.Integer
companyOVACDaySlots.assignedUsersArray con los identificadores numéricos de los agentes disponibles en este tramo. En alta concurrencia.Array
companyOVACDaySlots.totalAvailabilityCapacidad máxima o concurrencia total de citas simultáneas configurada para el slot.Integer

💡 Nota Aclaratoria: Gestión de Agentes según el Tipo de Concurrencia

Dependiendo de cómo esté parametrizada la agenda de la entidad o trámite en el backend, la API responderá con lógicas distintas para determinar la ocupación:

  • Baja Concurrencia (assignedUsers): No se realiza una asignación dinámica en tiempo real. El array assignedUsers expone los IDs de los usuarios/agentes que ya se encuentran ocupados con una cita en esa franja. Sirve para descartar de forma preventiva a dichos profesionales.

  • Alta Concurrencia (users): Se computa la disponibilidad activa por agente en tiempo real. El método puede alternar o exponer un array de usuarios completamente disponibles. Este array se ordena automáticamente por carga de trabajo (desde el agente con menos citas hasta el que tiene más) para equilibrar el reparto.

Ejemplos de Código y Peticiones

1. Consulta GraphQL

query CompanyOVACDaySlots (
$companyId: ID!,
$statuteId: ID,
$date: String!,
$reservedMode: Boolean
){
companyOVACDaySlots(
companyId: $companyId,
statuteId: $statuteId,
date: $date,
reservedMode: $reservedMode
)
}

2. Variables de la Petición (JSON Payload)

{
"companyId": "2191",
"statuteId": "",
"date": "2026-05-19T00:00:00.000Z",
"reservedMode": false
}

3. Ejemplo de comando cURL

curl --location "https://api.ovac.pre.councilbox.com/graphql" \
--header "Content-Type: application/json" \
--header "x-jwt-token: {{token}}" \
--data '{"query":"query companyOVACDaySlots ($companyId: ID!, $statuteId: ID, $date: String!, $reservedMode: Boolean){ companyOVACDaySlots(companyId: $companyId, statuteId: $statuteId, date: $date, reservedMode: $reservedMode) }","variables":{"companyId":"2191","statuteId":"","date":"2026-05-19T00:00:00.000Z","reservedMode":false}}'

4. Respuesta Esperada (200 OK)

{
"data": {
"companyOVACDaySlots": [
{
"length": 30,
"utcHour": 14.5,
"date": "2026-05-19T14:30:00.000Z",
"disabled": false,
"availability": 1,
"assignedUsers": [],
"totalAvailability": 1
},
{
"length": 30,
"utcHour": 15.0,
"date": "2026-05-19T15:00:00.000Z",
"disabled": true,
"availability": 0,
"assignedUsers": [],
"totalAvailability": 1
},
{
"length": 30,
"utcHour": 15.5,
"date": "2026-05-19T15:30:00.000Z",
"disabled": true,
"availability": 0,
"assignedUsers": [
3477
],
"totalAvailability": 1
},
{
"length": 30,
"utcHour": 16.0,
"date": "2026-05-19T16:00:00.000Z",
"disabled": false,
"availability": 1,
"assignedUsers": [],
"totalAvailability": 1
}
]
}
}

Nota OpenAPI/Fern: esta operación GraphQL se documenta como /graphql/companyovacdayslots para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es POST /graphql.

Authentication

x-jwt-tokenstring
JWT token obtained from Login.

Request

This endpoint expects an object.
querystringRequired
GraphQL operation
variablesobjectOptional
GraphQL variables

Response

Successful response. GraphQL business errors may be returned inside the JSON errors field while transport status remains HTTP 200.