Cómo analizar tu proceso: guía práctica de Process Mining
Convierte tus dashboards de Process Mining en conclusiones accionables. Paso a paso para entender tus datos, explorar patrones y detectar mejoras reales.
Lo que aprenderás
En esta guía aprenderás a crear un registro de eventos de minería de procesos desde cero. Veremos las tres columnas imprescindibles que todo registro necesita, revisaremos un ejemplo real y te mostraremos cómo crear tu primer registro de eventos con Excel y con SQL.
Relacionado: Conoce más sobre mejora de procesos y encuentra plantillas de datos para tu sistema. También lee por qué evitamos los conectores “out of the box” y preferimos plantillas de datos sencillas.
Un registro de eventos de minería de procesos es, simplemente, una tabla de datos que registra lo que ocurre en tu proceso de negocio. Piensa en él como un diario que sigue cada paso de cada caso que pasa por tu sistema. El software de minería de procesos lee ese diario y crea diagramas visuales que muestran cómo funciona realmente tu proceso.
Cada fila del registro de eventos necesita tres elementos esenciales:
| Columna | Qué significa | Ejemplo |
|---|---|---|
| Case ID | Identificador único que agrupa eventos relacionados | Order #12345 |
| Timestamp | Momento en que ocurrió el evento | 2025-01-15 09:30:00 |
| Activity | Qué pasó | ”Order Placed” |
Con eso basta. Con solo estas tres columnas puedes empezar a hacer minería de procesos. Todo lo demás, como nombres de cliente, importes de pedido o ID de empleados, son extras opcionales llamados “atributos” que enriquecen el análisis.
Antes de profundizar, aclaremos una confusión común.
Una actividad es un tipo de acción, como “Order Shipped” o “Payment Received”. Piénsala como una categoría o etiqueta.
Un evento es una ocurrencia concreta de esa actividad. Cuando el pedido #12345 se envía el 15 de enero a las 14:30, eso es un evento.
Tu event log contiene eventos, pero cada evento tiene un nombre de actividad. En la práctica, la gente suele usar estos términos indistintamente, y no pasa nada. Solo recuerda: las actividades son el “qué” y los eventos son el “cuándo y a quién le ocurrió”.
Para que la guía sea práctica, trabajemos con un sistema ficticio. Imagina que gestionas Pizza Palace, una pizzería local con pedidos en línea. Los clientes hacen sus pedidos en la web, el equipo prepara las pizzas y los repartidores entregan.
El sistema de Pizza Palace tiene varias tablas que registran distintas partes del proceso de pedido:
Tu objetivo: crear un registro de eventos que muestre el recorrido completo de cada pedido, desde que se registra hasta la entrega.
Al construir un registro de eventos, te encontrarás con dos tipos de eventos:
Los eventos se registran de forma explícita en tu sistema. Alguien hace clic en un botón o el sistema registra una acción, y la base de datos guarda la marca de tiempo.
Ejemplos en Pizza Palace:
orders)payments)delivery_assignments)Los eventos inferidos no tienen su propia marca de tiempo, pero puedes deducir cuándo ocurrieron a partir de otros datos.
Ejemplos de Pizza Palace:
delivery_assignments incluye el campo created_at, que indica cuándo se hizo la asignaciónLa diferencia clave: los eventos directos se registran de forma explícita, mientras que los inferidos requieren interpretar otros campos de datos. Ambos son válidos y útiles para Process Mining.
Antes de extraer los datos, define qué eventos quieres capturar. Para Pizza Palace, vamos a seguir estas actividades:
Para cada evento, identifica:
Así queda nuestro mapeo:
| Activity | Source Table | Timestamp Field | Case ID Field |
|---|---|---|---|
| Order Placed | orders | created_at | id |
| Payment Received | payments | payment_time | order_id |
| Order Sent to Kitchen | kitchen_queue | queue_entry_time | order_id |
| Order Ready | kitchen_queue | completed_time | order_id |
| Assigned to Driver | delivery_assignments | assigned_at | order_id |
| Delivery Completed | delivery_assignments | delivered_at | order_id |
Aunque Case ID, Timestamp y Activity son obligatorios, los atributos vuelven tu análisis mucho más potente. Son columnas adicionales que aportan contexto.
Los atributos del caso describen todo el pedido y son iguales para todos los eventos de ese caso:
Los atributos de evento son específicos de cada evento:
Consejo práctico: Está bien incluir todos los atributos en cada fila, aunque algunos no apliquen a ciertos eventos. Por ejemplo, la fila de “Order Placed” puede tener una columna “Driver Name” vacía. Así mantienes tu registro de eventos en una tabla plana y simple que las herramientas de minería de procesos adoran.
Tu registro de eventos final debe ser una sola tabla en la que cada fila represente un evento. Así se verá el registro de eventos de Pizza Palace:
| Case ID | Timestamp | Activity | Customer | Order Value | Driver | Payment Method |
|---|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Order Placed | John Smith | 45.99 | ||
| 1001 | 2025-01-15 18:30:15 | Payment Received | John Smith | 45.99 | Credit Card | |
| 1001 | 2025-01-15 18:31:00 | Order Sent to Kitchen | John Smith | 45.99 | ||
| 1001 | 2025-01-15 18:45:00 | Order Ready | John Smith | 45.99 | ||
| 1001 | 2025-01-15 18:46:00 | Assigned to Driver | John Smith | 45.99 | Maria Garcia | |
| 1001 | 2025-01-15 19:05:00 | Delivery Completed | John Smith | 45.99 | Maria Garcia | |
| 1002 | 2025-01-15 18:35:00 | Order Placed | Jane Doe | 28.50 | ||
| 1002 | 2025-01-15 18:35:20 | Payment Received | Jane Doe | 28.50 | PayPal | |
| … | … | … | … | … | … | … |
Fíjate cómo los atributos del caso (Customer, Order Value) se repiten en cada evento del mismo caso. Esta duplicación es intencional y facilita trabajar con los datos.
Si puedes exportar tus datos a hojas de cálculo, puedes construir un registro de eventos manualmente. Este método funciona muy bien con conjuntos de datos pequeños o cuando estás aprendiendo.
Crea una hoja de cálculo por tipo de actividad:
Hoja 1: Order Placed
| Case ID | Timestamp | Activity | Customer | Order Value |
|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Order Placed | John Smith | 45.99 |
| 1002 | 2025-01-15 18:35:00 | Order Placed | Jane Doe | 28.50 |
Hoja 2: Payment Received
| Case ID | Timestamp | Activity | Customer | Order Value | Payment Method |
|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:15 | Payment Received | John Smith | 45.99 | Credit Card |
| 1002 | 2025-01-15 18:35:20 | Payment Received | Jane Doe | 28.50 | PayPal |
Asegúrate de que todas las hojas tengan las mismas columnas y en el mismo orden. Añade columnas vacías cuando haga falta:
Hoja 1: Order Placed (actualizada)
| Case ID | Timestamp | Activity | Customer | Order Value | Driver | Payment Method |
|---|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Order Placed | John Smith | 45.99 |
Crea una nueva hoja “Event Log”. Copia y pega todas las filas de cada hoja de actividad en esta hoja combinada, una detrás de otra.
Selecciona todo tu conjunto de datos y ordena por:
Esto coloca los eventos en orden cronológico dentro de cada caso y facilita seguir el recorrido de cada pedido.
Guarda tu hoja combinada como archivo CSV. Este formato funciona con prácticamente cualquier herramienta de Process Mining.
Consejos de Excel:
Para volúmenes grandes o extracciones periódicas, SQL es más eficiente y repetible. La técnica clave es usar UNION ALL para combinar múltiples consultas en un solo conjunto de resultados.
UNION ALL apila los resultados de varios SELECT uno debajo del otro. Cada SELECT se convierte en un conjunto de filas en el resultado final. Todos los SELECT deben tener el mismo número de columnas y tipos de datos compatibles.
Aquí tienes una consulta SQL que crea un registro de eventos de Pizza Palace:
-- Event Log Extraction for Pizza Palace
-- This query combines multiple event types into a single event log
-- Each SELECT block represents one activity type
-- Event 1: Order Placed
-- Source: orders table
-- This captures when customers submit their orders
SELECT
o.id AS case_id, -- The order ID is our case identifier
o.created_at AS timestamp, -- When the order was placed
'Order Placed' AS activity, -- The activity name (hardcoded)
o.customer_name AS customer, -- Case attribute: who ordered
o.total_amount AS order_value, -- Case attribute: order value
NULL AS driver, -- Not applicable for this event
NULL AS payment_method -- Not applicable for this event
FROM orders o
WHERE o.created_at >= '2025-01-01' -- Filter to your desired date range
UNION ALL
-- Event 2: Payment Received
-- Source: payments table
-- This captures successful payment processing
SELECT
p.order_id AS case_id,
p.payment_time AS timestamp,
'Payment Received' AS activity,
o.customer_name AS customer, -- Join to get case attributes
o.total_amount AS order_value,
NULL AS driver,
p.payment_method AS payment_method -- Event-specific attribute
FROM payments p
JOIN orders o ON p.order_id = o.id -- Join to get order details
WHERE p.payment_time >= '2025-01-01'
AND p.status = 'successful' -- Only include successful payments
UNION ALL
-- Event 3: Order Sent to Kitchen
-- Source: kitchen_queue table
-- This captures when the kitchen starts working on the order
SELECT
k.order_id AS case_id,
k.queue_entry_time AS timestamp,
'Order Sent to Kitchen' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
NULL AS driver,
NULL AS payment_method
FROM kitchen_queue k
JOIN orders o ON k.order_id = o.id
WHERE k.queue_entry_time >= '2025-01-01'
UNION ALL
-- Event 4: Order Ready
-- Source: kitchen_queue table (different timestamp field)
-- This is an inferred event based on when the kitchen marked it complete
SELECT
k.order_id AS case_id,
k.completed_time AS timestamp, -- Different timestamp than entry
'Order Ready' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
NULL AS driver,
NULL AS payment_method
FROM kitchen_queue k
JOIN orders o ON k.order_id = o.id
WHERE k.completed_time >= '2025-01-01'
AND k.completed_time IS NOT NULL -- Only include completed orders
UNION ALL
-- Event 5: Assigned to Driver
-- Source: delivery_assignments table
-- This captures when a driver is assigned to deliver the order
SELECT
d.order_id AS case_id,
d.assigned_at AS timestamp,
'Assigned to Driver' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
d.driver_name AS driver, -- Event-specific attribute
NULL AS payment_method
FROM delivery_assignments d
JOIN orders o ON d.order_id = o.id
WHERE d.assigned_at >= '2025-01-01'
UNION ALL
-- Event 6: Delivery Completed
-- Source: delivery_assignments table (different timestamp field)
-- This captures when the order was delivered to the customer
SELECT
d.order_id AS case_id,
d.delivered_at AS timestamp,
'Delivery Completed' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
d.driver_name AS driver,
NULL AS payment_method
FROM delivery_assignments d
JOIN orders o ON d.order_id = o.id
WHERE d.delivered_at >= '2025-01-01'
AND d.delivered_at IS NOT NULL -- Only include completed deliveries
-- Final ordering: by case, then by time
-- This makes the event log easy to read and follow
ORDER BY case_id, timestamp;
Para sumar más eventos a tu registro:
Por ejemplo, para añadir un evento “Delivery Attempted”:
UNION ALL
-- Event 7: Delivery Attempted
-- Add this to track failed delivery attempts
SELECT
d.order_id AS case_id,
d.attempt_time AS timestamp,
'Delivery Attempted' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
d.driver_name AS driver,
NULL AS payment_method
FROM delivery_attempts d
JOIN orders o ON d.order_id = o.id
WHERE d.attempt_time >= '2025-01-01'
Comienza con las tres columnas obligatorias y unas cuantas actividades clave. Cuando tengas un registro de eventos básico cargado en una herramienta de minería de procesos, podrás volver y añadir más eventos y atributos.
Antes de empezar con el análisis, revisa tu registro de eventos para detectar problemas comunes:
Toma nota de:
Esta documentación es clave cuando necesites actualizar o solucionar problemas de tu registro de eventos más adelante.
Mantén los nombres de las actividades coherentes entre extracciones:
Si tus datos provienen de varios sistemas o regiones, asegúrate de que todas las marcas de tiempo estén en la misma zona horaria. UTC suele ser la opción más segura para mantener la consistencia.
A veces el mismo evento se registra en varias tablas. Por ejemplo, tanto tu sistema de pedidos como el ERP pueden registrar cuándo se envía un pedido.
Solución: Elige una única “fuente de la verdad” y usa solo esa. Documenta tu decisión.

Algunos eventos pueden no tener su propia marca de tiempo. Por ejemplo, un “Order Approved” puede ser solo un indicador booleano.
Solución: Busca marcas de tiempo relacionadas. Tal vez exista un campo “approved_at”, o puedes usar el “modified_at” cuando cambió el indicador “approved”.
Si tienes varios millones de eventos, tus consultas pueden ser lentas o fallar al extraer.
Solución:
Una vez que tengas tu registro de eventos como archivo CSV o exportación desde la base de datos, ya puedes cargarlo en una herramienta de minería de procesos. La mayoría de las herramientas siguen un proceso similar:
Las herramientas modernas de minería de procesos como ProcessMind hacen este paso muy sencillo. Basta con subir tu registro de eventos: la herramienta lo visualizará automáticamente y mostrará cuellos de botella, variaciones y oportunidades de mejora.
Crear un registro de eventos de minería de procesos no requiere herramientas especializadas ni conocimientos técnicos profundos. En el fondo, se trata de organizar tus datos en una tabla con tres columnas esenciales: Case ID, Timestamp y Activity.
Tanto si usas Excel para conjuntos de datos pequeños como SQL para extracciones más grandes y complejas, los principios son los mismos:
Lo más difícil no es la extracción técnica, sino entender tu proceso lo suficiente como para saber qué eventos importan. Empieza por los obvios (pedido creado, pedido completado) y ve añadiendo detalle a medida que descubras nuevos hallazgos con tu herramienta de minería de procesos.
¿Listo para profundizar? Explora nuestras páginas de mejora continua de procesos, donde encontrarás información detallada sobre actividades y requisitos de datos para procesos populares como Compra a pago, Pedido a cobro y Cuentas por pagar. Estos recursos incluyen plantillas de datos para sistemas conocidos como SAP, Oracle y Microsoft Dynamics, para que avances más rápido en la creación de tu registro de eventos.
Empieza hoy
No esperes al registro de eventos perfecto. Empieza con lo que tienes, aprende de los mapas de proceso que generes y ve iterando. Incluso un registro de eventos sencillo con actividades básicas puede revelar hallazgos sorprendentes sobre cómo funcionan realmente tus procesos.
Convierte tus dashboards de Process Mining en conclusiones accionables. Paso a paso para entender tus datos, explorar patrones y detectar mejoras reales.
Los conectores prometen extracción fácil, pero traen complejidad, retrasos y dependencia. Preferimos plantillas de datos.
Aprende cómo mejorar tus procesos usando data para optimizar y transformar tu negocio. Ejemplos prácticos.
Compara Celonis y ProcessMind en Process Mining 2025. Encuentra el mejor software para tus procesos y presupuesto.
Acceso instantáneo, sin tarjeta, sin esperas. Descubre cómo mapping, mining y simulación logran decisiones ágiles y smart.
Explora cada función, descubre insights clave y mejora tus operaciones desde el primer día.
Inicia tu prueba gratis y usa Process Intelligence al máximo, con mejoras reales en menos de 30 días.