🕓 Lógica “Fuera de Horario” – Suricata Custom API

🎯 Objetivo

Determinar si el bot se encuentra dentro o fuera del horario laboral para definir el flujo correspondiente en Botpress. Por ejemplo, si el horario es fuera de oficina, el bot debe mostrar un mensaje alternativo o derivar la conversación a otro camino.


🔗 Endpoint

GET https://suricata-custom.com.ar/api/botTiming

⚙️ Parámetros (Query Params)

Parámetro
Tipo
Descripción
Ejemplo

z

number

Zona horaria del merchant (offset respecto a UTC).

-3 para Argentina

ooo

number

Activa la validación “out of office”. Si se envía 1, el endpoint evaluará si el horario actual está fuera del rango definido.

1

l

string

Horario de atención de lunes (HH:mm-HH:mm).

09:00-18:00

ma

string

Horario de atención de martes.

09:00-18:00

mi

string

Horario de atención de miércoles.

09:00-18:00

j

string

Horario de atención de jueves.

09:00-18:00

v

string

Horario de atención de viernes.

09:00-18:00

s

string

Horario de atención de sábado.

09:00-13:00

d

string

Horario de atención de domingo.

00:00-00:00 (sin atención)


🧩 Ejemplo de Request


📤 Ejemplo de Respuesta


🧠 Interpretación del campo ooo

Valor
Significado

0

Dentro del horario laboral

1

Fuera del horario laboral


🔀 Flujo de Lógica en el Bot

  1. El bot realiza el llamado al endpoint botTiming con los horarios configurados.

  2. El campo ooo indica si está fuera del horario de atención.

  3. Si ooo === 1 y el día actual es Saturday o Sunday:

    • Se asigna user.topic_id = 63 (flujo fuera de horario o fin de semana).

    • Se marca user.weekend = true.

  4. En caso contrario, el flujo continúa normalmente.


⚠️ Notas Importantes

  • El parámetro z debe reflejar la zona horaria local del merchant para evitar falsos positivos.

  • Los horarios deben estar en formato HH:mm-HH:mm (24h).

  • Si el rango es 00:00-00:00, se considera sin atención ese día.

  • El endpoint no requiere autenticación.

  • En caso de error o timeout, el bot debe capturar la excepción y continuar el flujo sin interrumpir la conversación.

Last updated