Un Workflow es un conjunto de reglas automatizadas del tipo «si… entonces…».
Una analogía: imagine que en el móvil pone una alarma para las 8 de la mañana cada día. La alarma es el Workflow más simple: si se cumple la condición (son las 8), se ejecuta automáticamente (suena).
Los Workflow de NocoBase siguen la misma idea:

- Disparador: la entrada al Workflow. Por ejemplo, «alguien creó un ticket nuevo» o «se actualizó cierto registro».
- Evaluación condicional: paso de filtrado opcional. Por ejemplo, «solo continuar si el responsable no está vacío».
- Acción a ejecutar: el paso que realmente trabaja. Por ejemplo, «enviar una notificación» o «actualizar un Field».
Las acciones de un Workflow pueden encadenar varios nodos. Tipos de nodos comunes:
- Control de flujo: condiciones, ramificaciones paralelas, bucles, retardo
- Operaciones de datos: crear, actualizar, consultar, eliminar
- Notificaciones y externos: notificaciones, peticiones HTTP, cálculos
Tipos de disparadores
NocoBase ofrece varios tipos de disparadores que se eligen al crear el Workflow:
| Disparador | Descripción | Escenario típico |
|---|---|---|
| Evento de tabla de datos | Se dispara al añadir, actualizar o eliminar datos | Notificación de nuevo ticket, registro de cambios de estado |
| Tarea programada | Se dispara según expresión Cron o tiempo fijo | Generar informes diarios, limpieza periódica de datos |
| Evento posterior a una acción | Se dispara después de que el usuario realiza una operación en la interfaz | Enviar notificación al enviar formulario, registrar log de operación |
| Aprobación | Inicia un flujo de aprobación, admite múltiples niveles | Aprobaciones de vacaciones, de compras |
| Acción personalizada | Vinculado a un botón personalizado, se dispara al hacer clic | Archivado con un solo clic, operaciones por lotes |
| Evento previo a una acción | Intercepta la operación, se ejecuta de forma síncrona y luego deja pasar | Validar antes de enviar, autocompletar Field |
| Empleados de IA | Proporciona el Workflow como herramienta para los empleados de IA | Que la IA ejecute operaciones de negocio automáticamente |
6.2 Escenario 1: Notificar al responsable cuando se crea un ticket
Necesidad: cuando alguien crea un ticket y especifica al responsable, el sistema envía automáticamente un mensaje interno al responsable para que sepa que «tiene trabajo».
Paso 1: Crear el Workflow
Abra el menú de configuración de plugins en la esquina superior derecha y vaya a Gestión de Workflow.

Haga clic en Nuevo y, en el cuadro de diálogo:

- Nombre: «Notificar al responsable de nuevo ticket»
- Tipo de disparador: Evento de tabla de datos (Evento de recogida)

Tras enviar, haga clic en el enlace Configurar de la lista para entrar en la interfaz de edición del flujo.

Haga clic en la tarjeta del disparador en la parte superior para abrir el cajón de configuración:

Tabla de datos: seleccione fuente de datos principal / «Tickets»

Momento del disparo: seleccione «Después de añadir o actualizar datos»

Field que han cambiado: marque «Responsable (Assignee)» — solo se dispara si el Field Responsable cambia, evitando notificaciones innecesarias por modificaciones de otros Field (al añadir datos, todos los Field se consideran cambiados, así que la creación de un ticket también dispara)

Solo se dispara si se cumplen estas condiciones: modo «Cumplir cualquiera de las condiciones del grupo»; añada dos condiciones:
fk_responsableno está vacíoResponsable / IDno está vacío
¿Por qué configurar dos condiciones? Porque en el momento del disparo, en el formulario puede haber solo la clave externa (assignee_id) sin que se haya consultado el objeto relacionado, o haber objeto relacionado pero la clave externa esté vacía. Las dos condiciones en relación OR garantizan que basta con que se haya especificado responsable para disparar.

Precarga de datos relacionados: marque «Responsable» — el nodo de notificación posterior necesitará información del responsable, por lo que debe precargarse en el disparador

Enviar

Haga clic en guardar. Así, el disparador ya incluye la evaluación de condiciones — solo se dispara si el responsable no está vacío, sin necesidad de añadir un nodo de evaluación condicional adicional.
Paso 3: Añadir el nodo de notificación
Haga clic en + debajo del disparador y seleccione el nodo Notificación.



Abra la configuración del nodo de notificación; el primer ítem es seleccionar el canal de notificación, pero aún no hemos creado canales y la lista desplegable está vacía. Vamos a crear uno primero.


Paso 4: Crear un canal de notificación
NocoBase admite varios tipos de canales:
| Tipo de canal | Descripción |
|---|---|
| Mensaje interno | Notificación dentro del navegador, push en tiempo real al centro de notificaciones del usuario |
| Correo electrónico | Envío por SMTP, requiere configurar servidor de correo |
Este tutorial usa el canal más sencillo: Mensaje interno.
- Abra la configuración de plugins en la esquina superior derecha y vaya a Gestión de notificaciones.
- Pulse Nuevo canal.

Tipo de canal: Mensaje interno, escriba un nombre (p. ej., «Mensajería interna del sistema»).

Channel name: sys_in_app_messages
Channel display name: System in-App Messages


Paso 5: Configurar el nodo de notificación
Vuelva a la página de edición del Workflow y abra la configuración del nodo de notificación.
El nodo de notificación tiene los siguientes ajustes:
- Canal de notificación: seleccione la «Mensajería interna del sistema» recién creada

Destinatarios: pulse seleccionar Consultar usuarios → «id = Variable del disparador / Datos disparados / Responsable / ID»




Título: escriba el título de la notificación, p. ej., «Tiene un nuevo ticket por procesar». Admite insertar variables, por ejemplo añadir el título del ticket: Nuevo ticket: {{Datos disparados / Título}}


Contenido: escriba el cuerpo de la notificación; igualmente puede insertar variables que referencien la prioridad, descripción y demás Field del ticket


{{{$context.data.tq_titulo}}}
{{{$context.data.description}}}
- Guardamos

- Ahora debemos obtener el URL de la pagina de ver el detalle el tiquete
- para esto ingresamos en un nuveo tab a http://10.0.100.90:13000/admin/ihfjd2n573k

Página de detalles de escritorio: introduzca la ruta URL de la página de detalles del ticket. Cómo obtenerla: en el frontend abra el popup de detalles de cualquier ticket y copie la ruta de la barra del navegador, con un formato similar a /admin/camcwbox2uc/view/d8f8e122d37/filterbytk/353072988225540. Pegue la ruta en el cuadro de configuración; la cifra que sigue a filterbytk/ es el ID del ticket; reemplace esa parte con la variable de ID de los datos disparados (selector de variable → Datos disparados → ID). Una vez configurado, al pulsar la notificación en la lista, el usuario saltará directamente a la página de detalles del ticket y se marcará como leída
- en otras palabras copíamos la URL remplazando el parametro que esta despues del «filterbytk» y que el el ID real del tiquete por una variable

/admin/ihfjd2n573k/view/e6a634e3b01/filterbytk/
- Volvemos a nuestro flujo y en esta parte pegamos la URL «Details page for desktop»



Continuar al fallar el envío: opcional; si lo marca, el Workflow no se interrumpirá aunque falle el envío de la notificación

Tras enviarse la notificación, el responsable la verá en el centro de notificaciones de la esquina superior derecha; las no leídas tendrán un punto rojo de aviso. Al pulsar la notificación se navegará a los detalles del ticket.
- NOTA: abajo tiene un boton para probar

- Podemos agregar los datos
Responsable /ID:
Titulo: prueba
ID tiquete: 372762436042752
Descripcion: contenido

- Y probamos

Paso 6: Probar y habilitar
El flujo completo del escenario 1 tiene solo dos nodos: disparador (con filtrado por condición) → notificación. Sencillo y directo.
Antes de habilitarlo, los Workflow ofrecen la función Ejecución manual para probar el flujo con datos concretos:
- Haga clic en el botón Ejecutar de la esquina superior derecha (no el interruptor de habilitar)

Seleccione un ticket existente como datos del disparador


Si en el selector de tickets se muestra el id, en Fuente de datos > Tabla de datos > Tickets, configure la columna «Título» como Field título.



Pulse los tres puntos de la esquina superior derecha y elija Historial de ejecución. Aquí verá el registro de la ejecución que acabamos de hacer; al verlo, podrá ver los detalles de la ejecución, incluyendo la situación del disparo, los detalles de cada nodo y los parámetros.

- Consultarla


Parece que el ticket de antes era para Alice. Cambiemos a la cuenta de Alice — ¡recibida con éxito!
Una vez confirmado que el flujo funciona bien, pulse el interruptor Habilitar/Deshabilitar de la esquina superior derecha y ponga el Workflow en estado habilitado.

Atención: una vez que el Workflow se ha ejecutado (incluida la ejecución manual), pasa a estado de solo lectura (gris) y no se puede editar más. Si necesita modificarlo, pulse «Copiar a nueva versión» en la esquina superior derecha y siga editando en la versión nueva. La versión antigua se deshabilitará automáticamente.

Vuelva a la página de tickets, cree uno nuevo y recuerde seleccionar a un responsable. Luego cambie a la cuenta del responsable y revise el centro de notificaciones — debería ver una notificación nueva.
podemos crear un tiquete y ver como sale al notificacion

- para ver las notificaciones


6.3 Escenario 2: Registrar automáticamente la fecha de finalización al cambiar de estado
Necesidad: cuando el estado del ticket pasa a «Completado», el sistema rellena automáticamente el Field «Fecha de finalización» con la fecha y hora actuales. Así no hay que registrarlo a mano y no se olvida.
Si aún no ha creado el Field «Fecha de finalización» en la tabla de tickets, vaya a Gestión de tablas → Tickets y añada un Field de tipo Fecha llamado «Fecha de finalización». Para los pasos consulte el método de creación de Field del Capítulo 2; aquí no se repiten.

Paso 1: Crear el Workflow
Vuelva a la página de gestión de Workflow y pulse Nuevo:
- Nombre: «Registrar automáticamente la fecha al completar el ticket»
- Tipo de disparador: Evento de acción personalizada (se dispara cuando el usuario hace clic en el botón vinculado al Workflow)
- Modo de ejecución: síncrono
Sobre síncrono y asíncrono:
- Asíncrono: tras la operación, podemos seguir haciendo otras cosas; el Workflow se ejecuta automáticamente y nos notifica el resultado
- Síncrono: tras la operación, la interfaz queda en espera hasta que finalice el Workflow para poder hacer otra cosa

Paso 2: Configurar el disparador
Abra la configuración del disparador:
- Tabla de datos: seleccione «Tickets»
- Modo de ejecución: seleccione Modo de fila única (cada vez se procesa solo el ticket sobre el que se ha hecho clic)

Paso 3: Añadir un nodo de evaluación condicional
A diferencia del disparador de evento de tabla de datos, que ya incluye la condición, aquí debemos añadir un nodo de evaluación condicional manualmente:



Recomendamos elegir «Continuar por «Sí» y «No» por separado», para facilitar futuras ampliaciones.
- Condición: Datos disparados → Estado distinto de Completado (es decir, solo pasarán los tickets aún no completados; los ya completados no se procesan de nuevo)



Paso 4: Añadir el nodo de actualización de datos
En la rama «Sí» de la evaluación, pulse + y seleccione el nodo Actualizar datos:




Así un solo nodo realiza a la vez «cambiar el estado» y «registrar la fecha», sin necesidad de configurar valores de Field por separado en el botón.
Paso 5: Crear el botón de acción «Completar»
El Workflow está configurado, pero el «evento de acción personalizada» debe vincularse a un botón de acción específico para dispararse. Crearemos un botón «Completar» dedicado en la columna de acciones de la lista de tickets:
- Entre en modo UI Editor; en la columna de acciones de la tabla de tickets, pulse «+» y seleccione el botón de acción «Disparar Workflow»
