Un disparador crea solicitudes en un servicio sin que nadie las introduzca: en una fecha programada, al leer un buzón de correo, un archivo, etc. La solicitud sigue el mismo camino que una solicitud introducida: el formulario del servicio se rellena (sin mostrarse), el proceso arranca y el solicitante es la cuenta Sistema, salvo que se indique otra cosa.
Los disparadores se configuran en la pestaña Disparadores de la ficha del servicio (menú Administración › Catálogo y flujos de trabajo › Catálogo, luego el servicio). La pestaña aparece una vez guardado el servicio. Está abierta a los Administradores y a los Administradores de Scoop.
Los tipos de disparador disponibles dependen de los módulos instalados.
Ajustes del servicio
- Se puede pedir desde el catálogo (marcado por defecto): desmarcado, el servicio desaparece del catálogo, de la búsqueda y del catálogo sin cuenta, y ya no se puede pedir directamente. Solo sus disparadores crean entonces solicitudes.
- Máximo de solicitudes por ejecución (100 por defecto): cuando una ejecución produciría más solicitudes, no crea ninguna. Queda Bloqueado (límite) y se avisa a los responsables del servicio. El límite protege contra un origen descontrolado. Excepción: un buzón de correo o un vencimiento es una cola que se vacía con el tiempo — la ejecución crea solicitudes hasta el límite y deja el resto para la siguiente.
Guardar aplica los dos ajustes.
Añadir un disparador
Elige el tipo en Añadir un disparador y luego Añadir. La página que se abre pide:
- un Nombre;
- Activo: un disparador nuevo está inactivo por defecto. Configúralo, pruébalo con Vista previa y luego actívalo;
- el Solicitante de las solicitudes creadas: Cuenta Sistema, un Usuario designado o Indicado por el origen (por ejemplo el remitente de un correo; si no, la cuenta Sistema);
- los Ajustes del tipo, propios de cada tipo de disparador.
La lista de disparadores
Para cada disparador, la lista indica su nombre, su tipo, su estado (Activo, Inactivo, Ejecución en curso) y su Última ejecución. Las acciones:
- Editar;
- Activar o Desactivar;
- Ejecutar ahora: lanza una ejecución de inmediato (disparador activo) y abre su registro;
- Vista previa (para los tipos que la ofrecen): muestra lo que recibiría una ejecución, sin crear nada, y avisa si se superaría el límite;
- Registro;
- Eliminar: el disparador y su registro desaparecen definitivamente.
Un tipo marcado Tipo no disponible procede de un módulo desactivado: el disparador sigue guardado pero ya no hace nada.
Temporizador
El tipo Temporizador crea una solicitud en cada vencimiento de una Planificación (cron) de seis campos: segundo, minuto, hora, día, mes, día de la semana. Por ejemplo 0 0 8 * * MON: cada lunes a las 8:00. La hora es la de la zona horaria de la instancia, indicada bajo el campo.
Cada solicitud recibe trigger_date (2026-10-12), trigger_time (08:00) y trigger_datetime (2026-10-12T08:00:00+02:00): un campo del formulario con ese nombre se rellena; si no, el valor pasa a ser una variable de la solicitud. Desactivar o eliminar el disparador desactiva o elimina su tarea en el planificador. Un vencimiento perdido mientras la aplicación estaba detenida no se recupera.
Cuando una pasada del temporizador no tiene éxito, el historial de su tarea en el Planificador lo explica en tu idioma: elementos rechazados (número indicado, la tarea se completa entonces en parte), pasada fallida, límite del servicio superado (número de elementos indicado, ninguna solicitud creada), disparador eliminado (elimina la tarea). El detalle de cada elemento está en el registro del disparador.
Consulta planificada
El tipo Consulta planificada ejecuta una consulta del módulo Consultas según una Planificación (cron) y crea una solicitud por fila del resultado. Elige la consulta entre las que puedes ejecutar y da un valor fijo a cada uno de sus parámetros (@nombre). La ejecución se hace con la cuenta Sistema.
Cada columna rellena el campo del formulario del mismo nombre; si no, pasa a ser una variable de la solicitud. Una columna article.<código> selecciona un artículo. Los valores llegan en un formato neutro: fechas 2026-11-01, marcas de tiempo ISO 8601, números con punto decimal (1250.50), booleanos true/false. Sin filas: no se crea nada. Más filas que el límite: la ejecución se bloquea y se avisa a los responsables.
La consulta debe excluir las filas ya tratadas; si no, cada ejecución vuelve a crear las mismas solicitudes. Los valores de los formularios enviados se leen en la vista dynamicforms.v_submitted_field_values; por ejemplo, con un parámetro @service fijado al identificador del servicio:
SELECT c.code AS contrat, c.ends AS echeance
FROM contracts c
WHERE c.ends < current_date + 30
AND NOT EXISTS (
SELECT 1 FROM dynamicforms.v_submitted_field_values v
WHERE v.catalog_service_id = @service::uuid
AND v.field_slug = 'contrat'
AND v.value = c.code)
Antes de activar el disparador, abre la Vista previa: ejecuta la consulta y muestra, sin crear nada, las filas que se tratarían, en qué se convierte cada columna (campo, artículo o variable) y si la solicitud se aceptaría.
Archivo CSV
El tipo Archivo CSV crea una solicitud por fila de un archivo que subes. En la lista de disparadores, haz clic en Subir un archivo, elige el archivo y luego Vista previa: ves las filas leídas, en qué se convierte cada columna (campo, artículo o variable) y si cada solicitud se aceptaría. No se crea nada antes de Crear las solicitudes.
La primera fila contiene los nombres de las columnas. Separador ; o ,, codificación UTF-8 (con o sin BOM), 5 MB como máximo; un campo entre comillas puede contener el separador o un salto de línea. Cada columna rellena el campo del formulario del mismo nombre o, si no, una variable; article.<código> selecciona un artículo. Más filas que el límite: no se crea nada y se avisa a los responsables.
contrat;echeance;article.badge
C-1001;2026-11-01;1
C-1002;2026-11-15;0
Un archivo con vista previa que nunca se convierte en solicitudes se olvida al cabo de un día. Por la API: POST …/triggers/{id}/csv/preview y luego POST …/triggers/{id}/csv, con el archivo en el campo file.
Buzón de correo
El tipo Buzón de correo crea una solicitud por correo recibido en un buzón consultado por el módulo Buzones de correo. Elige el buzón en la lista; Ver la configuración abre su ficha, Declarar un buzón añade uno. En su configuración, el buzón debe tener el gestor servicecatalog, y un buzón solo puede alimentar un disparador.
Cada correo rellena los campos from, from_name, to, cc, subject, body, body_html, received_at y message_id (si no, variables); sus adjuntos van al campo de archivo adjunto del formulario y las imágenes insertadas en el texto se ignoran. Elige el solicitante Indicado por el origen: el remitente pasa a ser el solicitante si es un usuario conocido y activo; si no, la cuenta Sistema. El límite se aplica a cada consulta del buzón: por encima, los correos más antiguos se tratan primero, los demás en la consulta siguiente.
Una respuesta a un correo ya tratado, o un correo cuyo asunto contiene un número de solicitud entre corchetes (por ejemplo [WF-000123]), no crea una solicitud: se añade como comentario a esa solicitud, con sus adjuntos, aunque esté cerrada. Solo cuentan las solicitudes creadas por este disparador: el número de cualquier otra solicitud se ignora y el correo crea una nueva solicitud.
Atención: la dirección de un remitente se falsifica fácilmente. Limita el buzón a los dominios de confianza con los filtros de inclusión del módulo Buzones de correo. La consulta (tarea MailInboxPolling) está desactivada en la instalación: actívala en el Planificador.
Evento
El tipo Evento crea una solicitud cuando ocurre un evento del producto: un ticket creado o que pasa a un estado, una solicitud cerrada, un objeto de la CMDB modificado… Elige el evento en la lista; los valores que transporta se muestran debajo. Cada valor rellena el campo del mismo nombre; si no, una variable. Los valores anidados tienen nombres con puntos (por ejemplo values.cpu).
La condición, opcional, limita los eventos tenidos en cuenta: una regla por línea, de la forma ruta operador valor, y todas deben ser verdaderas. Operadores: =, !=, contient (sin distinguir mayúsculas ni acentos), > y < (números). Ejemplo: eventType = StatusChanged.
Un mismo evento nunca crea dos solicitudes. El límite del servicio se aplica por minuto: por encima, los eventos se ignoran y se anotan en el registro, con una sola alerta. Una solicitud que no se puede crear se anota en el registro, sin efecto en la acción de origen.
Un disparador que escucha las solicitudes de su propio servicio (su creación, un cambio de estado, su cierre) no se repite sin fin: como con el tipo Solicitud de otro servicio, una cadena se detiene en la profundidad 5 (variable chain_depth). El rechazo se anota en el registro y se envía una alerta a los responsables. El fin de una ejecución de un disparador Evento, Umbral superado o Solicitud de otro servicio nunca se toma como evento.
Umbral superado
El tipo Umbral superado vigila un valor numérico que transporta un evento, por ejemplo la cantidad de un artículo en stock. Elige el evento, el valor vigilado (quantity), el operador (<, <=, >, >=) y el umbral. El elemento vigilado es la ruta del valor que identifica el artículo o la alerta (stockItemId); vacío, es el sujeto del evento.
Se crea una solicitud cuando el valor supera el umbral para un elemento, y nada más mientras siga de ese lado: otra bajada por debajo del mínimo no crea una segunda solicitud. Cuando el valor vuelve al otro lado, el disparador se rearma; el siguiente cruce crea una nueva solicitud. Cada elemento tiene su propio estado. Un evento sin valor numérico se ignora.
Solicitud de otro servicio
El tipo Solicitud de otro servicio encadena dos servicios: cuando una solicitud del servicio de origen alcanza uno de los estados de negocio indicados (sus códigos, separados por comas), o se cierra si marcas la casilla, se crea una solicitud de este servicio. Recibe los valores de la solicitud de origen (mismo nombre, mismo campo; si no, variable), más source_request_id, source_request_number, source_status y chain_depth.
Con el solicitante Indicado por el origen, la nueva solicitud conserva al solicitante del origen si sigue activo; si no, la cuenta Sistema. Una solicitud de origen solo dispara una vez para un mismo estado, aunque lo alcance de nuevo. Una cadena (A crea B, que crea A…) se detiene en la profundidad 5: el rechazo queda en el registro y se envía un aviso a los responsables.
Vencimiento
El tipo Vencimiento crea una solicitud unos días antes, o después, de una fecha: el fin de un contrato o el fin de garantía de un activo. Elige el vencimiento, el desfase en días (-30 = treinta días antes) y la hora de comprobación (planificación, como el temporizador).
Cada elemento da una sola solicitud para un vencimiento dado: las comprobaciones siguientes no la vuelven a crear. Si la fecha cambia (contrato prorrogado), se crea una nueva solicitud en su momento para la nueva fecha. Un día de comprobación perdido se recupera durante siete días. La solicitud recibe los valores del elemento, más due_date y days_before. Más elementos que el límite: los vencimientos más próximos primero, los demás en la comprobación siguiente.
Crear para una parte de las líneas
En la vista previa de una consulta planificada o de un archivo CSV, cada línea tiene una casilla. Marca las líneas que quieras (o Marcar todo) y haz clic en Crear para la selección: se crea una solicitud por cada línea marcada, tal como aparecía en la vista previa. Una línea rechazada por la validación no se puede marcar; el motivo aparece en la columna Validación. El límite se aplica a las líneas marcadas. La selección vale 15 minutos y solo sirve una vez: después, haz una nueva vista previa. El registro indica un lanzamiento manual y quién lo hizo.
Webhook / API
El tipo Webhook / API permite que una herramienta externa (n8n, Zapier, Make, Power Automate, una herramienta de supervisión, un script) cree una solicitud por llamada. Elige el modo de autenticación y el límite de llamadas por minuto (60 por defecto), guarda y haz clic en Generar un nuevo secreto. El secreto se muestra una sola vez: cópialo enseguida. Generar otro deja inutilizable el anterior; tras cambiar de modo, genera uno nuevo.
- Token portador: la herramienta envía el encabezado
Authorization: Bearer <secreto>a la dirección mostrada. - URL secreta: para una herramienta que no sabe poner encabezados, llama a la dirección seguida de
/<secreto>. - Firma HMAC: para una herramienta que firma según Standard Webhooks (encabezados
webhook-id,webhook-timestamp,webhook-signature); una firma de más de 5 minutos se rechaza.
La herramienta envía JSON o un formulario codificado (1 MB como máximo). Cada clave rellena el campo del mismo nombre; si no, una variable. Un JSON anidado da nombres con puntos, por ejemplo ticket.priority o items.0.name. La pantalla muestra ejemplos curl para cada modo.
Respuestas: 202 con el número de la solicitud, 422 si los datos se rechazan, 401 secreto incorrecto, 404 disparador desconocido o desactivado, 413 contenido demasiado grande, 429 demasiadas llamadas. Si la herramienta vuelve a enviar el mismo encabezado Idempotency-Key (o webhook-id) en 24 horas, recibe la misma respuesta y no se crea una segunda solicitud.
Una integración que ya tiene cuenta puede llamar a la API POST /api/v1/catalog/triggers/<id>/fire con su token, sin secreto de disparador.
El registro
El registro lista las ejecuciones, de la más reciente a la más antigua: Inicio, Estado, elementos Recibidos, solicitudes Creadas, elementos Rechazados. Elige una ejecución para ver sus elementos: el origen de cada uno y la solicitud creada o los errores que la rechazaron.
| Estado | Significado |
|---|---|
| Correcto | Cada elemento dio su solicitud (una ejecución sin elementos es correcta) |
| Terminado con rechazos | Al menos un elemento fue rechazado (dato no válido); los demás dieron su solicitud |
| Error | Error técnico, por ejemplo un origen inaccesible |
| Bloqueado (límite) | Demasiados elementos: ninguna solicitud creada |
| Omitido (ejecución en curso) | Ya había otra ejecución del mismo disparador en curso |
Las ejecuciones de más de 90 días se eliminan cada noche con la tarea programada PurgeServiceTriggerRuns, que se puede desactivar en el planificador.
Avisos
Una ejecución bloqueada por el límite, un elemento rechazado o un error técnico envían un único aviso por ejecución a los responsables del servicio (las personas y los miembros de los grupos indicados en la pestaña General), según las preferencias de notificación de cada uno. El aviso enlaza con el registro de la ejecución. Un buzón o un vencimiento que acumula más elementos que el límite envía un aviso de retraso, como mucho una vez cada 24 horas: sube el límite o busca el origen de la afluencia.
Exportar e importar
Un servicio exportado lleva sus disparadores, sin sus secretos (contraseñas, tokens) ni su usuario designado. Al importarlos, llegan desactivados: la importación indica lo que queda por volver a introducir antes de activarlos.
Ver también
- «Administrar el catálogo de servicios»: la ficha de un servicio y sus responsables.
- «Supervisar las solicitudes»: las solicitudes creadas por un disparador muestran sus datos en su ficha.