Ir al contenido

Cron Jobs

La función Cron Jobs te permite crear URLs de endpoint únicas que, al activarse, cierran automáticamente todos los registros activos de seguimiento de tiempo para un conjunto específico de estaciones de trabajo. Esto es útil para terminar turnos, cerrar temporizadores no finalizados al final del día o coordinarse con programadores externos (cron del servidor, plataformas de automatización, webhooks programados).

Configuración de la aplicación — Cron Jobs


Cada cron job consta de:

CampoDescripción
NombreUna etiqueta amigable que describe lo que hace el cron job (por ejemplo, “Fin del día — equipo de ensamblaje”). Este nombre también se utiliza como asunto del correo electrónico de resumen.
URL del endpointUna URL única generada automáticamente que contiene un token secreto. Cualquiera con esta URL puede activar el cron job, así que trátala como una credencial.
Correo de notificación (opcional)Si se completa, se envía un correo electrónico de resumen a esta dirección cada vez que se activa el cron job. Déjalo vacío para deshabilitar las notificaciones por correo electrónico.
Estaciones de trabajoUna o más estaciones de trabajo cuyas entradas activas de seguimiento de tiempo se cerrarán cuando se llame a la URL.
Última activaciónMarca de tiempo de la activación exitosa más reciente.

Puedes crear tantos cron jobs como necesites, cada uno con su propio conjunto de estaciones de trabajo y su propia URL. Esto facilita cerrar registros en diferentes horarios para diferentes equipos o departamentos: por ejemplo, un cron job para la línea de ensamblaje a las 4 PM y otro para el taller de pintura a las 6 PM.


Escenarios comunes:

  • Limpieza de fin de turno — detiene automáticamente cualquier entrada de seguimiento de tiempo que un empleado olvidó detener antes de irse.
  • Horarios por equipo — diferentes departamentos terminan en diferentes momentos, así que cada uno obtiene su propio cron job y su propia hora del día.
  • Integración con plataformas de automatización — programa un flujo de trabajo de Zapier, Make.com o similar para llegar a la URL de forma recurrente.
  • Cron del servidor — llama al endpoint desde un cron job de Linux, el Programador de Tareas de Windows o cualquier programador basado en HTTP.

Abre Configuración de la aplicación → Cron Jobs para gestionar la lista.

  1. Haz clic en Añadir cron job.
  2. Dale un Nombre descriptivo: esto también se utiliza como asunto del correo electrónico de notificación.
  3. Opcionalmente introduce un Correo de notificación. Si se completa, se envía un correo electrónico de resumen a esa dirección cada vez que se activa el cron job. Déjalo en blanco para deshabilitar las notificaciones por correo electrónico.
  4. Marca una o más Estaciones de trabajo en la lista. Solo los registros de tiempo activos de esas estaciones de trabajo se cerrarán mediante esta URL.
  5. Haz clic en Guardar.

Una URL de endpoint única se genera automáticamente para ti.

Haz clic en el icono del lápiz junto a un cron job para cambiar su nombre o asignaciones de estación de trabajo. La URL del endpoint se mantiene igual: las integraciones existentes siguen funcionando.

Haz clic en el icono de la papelera y confirma. La URL del endpoint deja de funcionar inmediatamente. Esto es permanente y no se puede deshacer.

Haz clic en el icono de copiar junto a la URL. El icono se convierte en una marca de verificación verde por un momento para confirmar que la URL está en tu portapapeles.


La URL del endpoint acepta tanto solicitudes GET como POST: elige la que sea más fácil para tu programador. No se requiere encabezado de autenticación; el token en la URL es la credencial.

curl

Ventana de terminal
curl https://your-board.example.com/cron/abc123xyz...

crontab de Linux (cerrar turno cada día laborable a las 5 PM)

0 17 * * 1-5 curl -fsS https://your-board.example.com/cron/abc123xyz... > /dev/null

Zapier / Make.com / n8n — usa la acción integrada Webhooks / HTTP Request y apúntala a la URL.

Una activación exitosa devuelve una carga útil JSON como:

{
"success": true,
"closed": 3,
"cron_job": "End of day - assembly"
}

closed es el número de entradas activas de seguimiento de tiempo que se detuvieron.

Si el cron job no tiene estaciones de trabajo asignadas, la respuesta será:

{
"success": true,
"closed": 0,
"message": "No workstations assigned."
}

Cuando se llama al endpoint, el sistema:

  1. Encuentra cada entrada activa de seguimiento de tiempo (un temporizador iniciado sin hora de parada) cuya estación de trabajo está asignada a este cron job.
  2. Establece stopped_at a la hora actual y registra la duración transcurrida.
  3. Escribe una entrada automática de registro en cada tarea afectada, anotada como Auto-closed by cron job: {name}, para que el tiempo registrado se conserve en el registro de la estación de trabajo.
  4. Actualiza la marca de tiempo Última activación del cron job.
  5. Si se establece un Correo de notificación, envía un correo de resumen (ver abajo).

Las entradas que no están activas (temporizadores ya detenidos, o ejecutándose en estaciones de trabajo no en la lista de este cron) no se tocan.


Si el campo Correo de notificación en un cron job está completado, cada activación de ese endpoint envía un correo de resumen a esa dirección.

El correo contiene:

  • Asunto — el Nombre del cron job, exactamente como está configurado.
  • Activado en — la fecha y hora en que se ejecutó la activación.
  • Registros cerrados — una tabla que lista cada entrada activa de seguimiento de tiempo que se cerró, con el nombre del empleado, la estación de trabajo y la duración transcurrida.

Si no se encontraron entradas activas en el momento de la activación, el correo aún se envía pero el cuerpo señala que no se cerraron registros. Esto es útil como un latido para confirmar que el programador está funcionando.

Ejemplo de cuerpo de correo:

Activado en: 2026-05-26 17:00:03

Registros cerrados (2):

EmpleadoEstación de trabajoDuración
Jan KowalskiEnsamblaje 13h 12min
Anna NowakCabina de Pintura45min

Para deshabilitar las notificaciones por correo electrónico, simplemente borra el campo en el cron job y guarda.

La entrega de correo utiliza el mismo transporte de correo (SMTP, etc.) configurado para el resto de la aplicación. Si la entrega falla por alguna razón, el fallo se registra y la respuesta de activación aún devuelve éxito: cerrar los registros de tiempo no se bloquea por problemas de correo.


  • La URL del endpoint contiene un token aleatorio de 40 caracteres y es lo único que se interpone entre Internet pública y la acción. Trátala como una contraseña.
  • Si una URL se filtra, elimina el cron job: eso revoca la URL inmediatamente, y crea uno nuevo para emitir una URL fresca.
  • El endpoint tiene un límite de tasa de 60 solicitudes por minuto por IP para evitar abusos.
  • La acción es por tenant: un token solo afecta a entradas de tiempo pertenecientes al tenant que creó el cron job.

  • Da a cada cron job un nombre que refleje tanto el equipo como el horario (por ejemplo, “5 PM días laborables — ensamblaje”) para que puedas distinguirlos de un vistazo.
  • Usa un cron job diferente por equipo en lugar de uno grande: te da un control más fino sobre los horarios y facilita deshabilitar o cambiar el comportamiento para un solo equipo.
  • Prueba la URL una vez manualmente (desde tu navegador o curl) después de crearla para confirmar que devuelve una respuesta success: true.