Contenedor de un proceso. Participante de la interacción. El intercambio entre pools solo se hace por flujos de mensajes. Se puede contraer para ocultar detalles.
Una franja dentro del pool que indica quién ejecuta las tareas (puesto, rol, departamento o sistema de TI).
Tipo no especificado. Se usa en fases tempranas del modelado, cuando aún no se ha decidido el método de ejecución o cuando no es relevante para el objetivo del diagrama. En esencia, un marcador que más tarde se concreta.
Lo ejecuta una persona mediante una interfaz de software: un formulario en el CRM, una pantalla en una app web, una tarea en un gestor de tareas. La diferencia clave con la tarea manual es que la persona trabaja dentro del sistema que monitoriza el estado de la tarea.
Lo ejecuta una persona sin la participación del motor BPM. El sistema no puede detectar automáticamente el inicio ni el fin de este trabajo.
Se ejecuta automáticamente por un programa o servicio. No interviene ninguna persona. Es el tipo más habitual en procesos ejecutables.
Envía un mensaje a un participante externo concreto (otro proceso o sistema) y termina de inmediato, sin esperar respuesta. Patrón «dispara y olvida».
Espera un mensaje entrante de un participante externo. El proceso se detiene en esta tarea hasta que llegue el mensaje.
Variante especial: la Receive instanciadora (instantiated): si una tarea de este tipo es el primer paso del proceso, la propia recepción del mensaje crea una nueva instancia (alternativa al evento de inicio por mensaje).
Ejecuta un script embebido (código) definido directamente dentro del modelo de proceso. A diferencia de la tarea de servicio, el código no llama a un sistema externo: se ejecuta dentro del motor BPM.
Invoca un motor de decisiones (por ejemplo una tabla DMN). Las entradas se evalúan contra un conjunto de reglas y se devuelve una decisión.
Pequeños iconos en el centro inferior del rectángulo de la tarea. Indican el comportamiento — no su tipo.
| Marcador | Significado | Ejemplo |
|---|---|---|
| ↻ Bucle | La tarea se repite mientras se cumpla la condición (una instancia, varias iteraciones) | Revisar el documento → enviar → si se rechaza, repetir |
| ∥ Múlt. inst. en paralelo | Se inician N instancias a la vez — una por elemento de la colección | Enviar la notificación a todos los aprobadores a la vez |
| ≡ Múlt. inst. secuencial | Las mismas N instancias, pero una tras otra | Entrevistar a cada candidato por turno |
| ⏪ Compensación | Tarea de reversión: se ejecuta solo cuando se activa la compensación, para deshacer una acción ya finalizada | «Cancelar reserva» después de que «Reservar» ya se haya ejecutado |
| ~ Ad-hoc | Las tareas dentro del subproceso se ejecutan en cualquier orden, pueden repetirse o saltarse; no se permiten eventos de inicio/fin en su interior | Selección libre de pasos durante la consultoría a un cliente |
| + Subproceso | Actividad compuesta con una secuencia interna oculta; los flujos no cruzan su borde | «Procesamiento del pedido» oculta 10 pasos internos |
Actividad compuesta marcada con «+». Contiene su propia secuencia de pasos. Los flujos no pueden cruzar su borde. Los eventos intermedios se adhieren al borde.
Borde grueso. Referencia a un subproceso global (p. ej. «Compras») que se reutiliza en distintos procesos.
Marcador «~». Las actividades internas pueden ejecutarse en cualquier orden, repetirse o saltarse. No se permiten eventos de inicio/fin en su interior.
Borde discontinuo dentro de un proceso. Se dispara con un evento de inicio mientras el padre esté activo. Interrumpe — cancela al padre. No interrumpe — se ejecuta en paralelo.
Controlan la bifurcación y la convergencia. ¡Una compuerta no es una tarea! La decisión se toma antes de la compuerta.
La compuerta más habitual. Al dividir, activa exactamente una ruta saliente — aquella cuya condición se cumple primero. Si no se cumple ninguna, el proceso falla con un error (por eso conviene definir siempre una rama «por defecto»). Al converger, deja pasar cada token entrante de inmediato, sin esperar a los demás.
Analogía: una bifurcación en la carretera donde tomas un único camino.
Al dividir, activa todas las rutas salientes a la vez, sin condiciones — sin comprobaciones. Al converger, espera tokens por todas las rutas entrantes y solo cuando llegan todas pasa un único token adelante.
Analogía: un jefe reparte tareas entre cinco empleados y espera a que los cinco terminen.
Híbrido entre XOR y AND. Al dividir, activa una o varias rutas según las condiciones — cada condición se evalúa de forma independiente. Al converger, espera tokens solo en las rutas realmente activadas (no en todas, como hace AND).
Analogía: un bufé — tomas un plato, dos o todos, pero nunca cero.
Es fundamentalmente distinta del resto: enruta no por los datos, sino por el evento que ocurra primero. Tras la compuerta se colocan eventos intermedios de espera (temporizador, mensaje, condición, señal). En cuanto uno se dispara, los demás se cancelan.
Analogía: pediste una pizza — si no llega en 60 minutos, llamas a la pizzería; si llega antes, comes.
Se usa cuando la lógica de bifurcación no puede expresarse con las compuertas estándar. La condición de convergencia se define mediante una expresión (por ejemplo, «continuar cuando 3 de 5 ramas hayan terminado» o «cuando llegue la primera respuesta y hayan pasado 10 minutos»).
Un rombo sin marcador. Semánticamente equivalente a la exclusiva (XOR) — el estándar BPMN permite omitir la cruz. Algunos metodólogos lo consideran mala práctica porque resta legibilidad: no queda claro si el autor olvidó el marcador o eligió XOR deliberadamente.
Un evento es algo que ocurre (un hecho), a diferencia de una tarea (acción activa). Se dibujan como círculos.
Catching (marcador sin relleno) — espera. Throwing (relleno) — lanza. Eventos de frontera: interrumpen (continuo) y no interrumpen (discontinuo).
Iconos de bpmn-font (Camunda). «—» = no definido por el estándar.
| Tipo | Inicio | Intermedio | Fin | |||||
|---|---|---|---|---|---|---|---|---|
| Normal | Subpr. ev. | No int. | Captura | Frontera | Frontera no int. | Lanza | ||
| Vacío (None) | — | — | — | — | — | |||
| ✉ Mensaje | ||||||||
| ⏱ Temporizador | — | — | ||||||
| ⚡ Error | — | — | — | — | — | |||
| ▲ Señal | ||||||||
| 📋 Condicional | — | — | ||||||
| ↗ Escalación | — | — | ||||||
| ⬤ Terminar | — | — | — | — | — | — | — | |
| ⏪ Compensación | — | — | — | — | ||||
| ✖ Cancelar | — | — | — | — | — | — | ||
| ➡ Enlace | — | — | — | — | — | — | ||
| ⬠ Múltiple | ||||||||
| ➕ Mult. paralelo | — | — | ||||||
Intercambio con un destinatario concreto: correo, llamada, HTTP, push. Disponible en todas las posiciones.
Fecha/hora, intervalo, cuenta atrás (plazo). Solo catching.
Fallo grave. Catching — solo en frontera. Throwing — solo final.
Espera de una condición externa («el horno se calentó»). Solo catching.
Difusión (frente a mensaje dirigido). Cualquier suscriptor reacciona.
Detiene de inmediato toda la instancia del proceso. Solo final.
¿Y si después de terminar la tarea 3 ya no tiene sentido continuar la tarea 2? Entonces se aplica el siguiente patrón:
«Teletransporte» del flujo. Un par throw + catch sustituye a una flecha larga. Solo intermedio.
Revierte una acción ya ejecutada. La tarea compensadora se vincula mediante una asociación.
Va del subproceso al padre, sin ser un error. Puede ser no interrumpiente.
Solo en el contexto de transacciones. Final — rollback. Frontera — catch.
«Hoja de papel» con la esquina doblada. Representa información que se crea, consume o transfiere entre tareas dentro de una instancia del proceso. Solo existe mientras la instancia esté viva.
Un cilindro. Almacenamiento persistente que sobrevive a la instancia del proceso: base de datos, registro, almacenamiento de archivos. Las tareas lo leen y escriben.
Parámetros del proceso o subproceso en su frontera. Entrada — lo que se aporta desde fuera; salida — lo que se devuelve. Flecha con un triángulo hueco/relleno.
Un comentario conectado a cualquier elemento mediante una línea discontinua. No afecta a la ejecución — solo sirve para aclarar el diagrama al lector.
Rectángulo discontinuo con esquinas redondeadas. Agrupación visual de elementos (por ejemplo, «todas las tareas de logística»). No tiene semántica de ejecución; los flujos pueden cruzar su frontera libremente.
Flecha sólida con punta rellena. Define el orden de ejecución dentro de un mismo pool. No puede cruzar las fronteras del pool.
Flujo condicional (con un pequeño rombo en el origen) — se activa solo si la condición es verdadera. Se usa en las flechas salientes de una tarea sin compuerta.
Flujo por defecto (con una marca en el origen) — la ruta de respaldo de una compuerta XOR/OR o de una bifurcación condicional, que se toma si no se cumple ninguna condición.
Flecha discontinua con punta hueca. Conecta distintos pools — un mensaje intercambiado entre participantes independientes. No se usa dentro de un mismo pool.
Subproceso con doble borde. Semántica ACID: o todas las acciones internas se confirman correctamente, o toda la transacción se revierte mediante un evento Cancel (con compensaciones). Se usa para mantener la consistencia en operaciones distribuidas.
Crea tu primer diagrama BPMN gratis — sin registro ni tarjeta de crédito.
Comenzar a generar diagramas BPMN con IA