Cómo crear un event log de Process Mining

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.

¿Qué es un registro de eventos de minería de procesos?

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:

ColumnaQué significaEjemplo
Case IDIdentificador único que agrupa eventos relacionadosOrder #12345
TimestampMomento en que ocurrió el evento2025-01-15 09:30:00
ActivityQué 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.

Entiende la diferencia: eventos vs actividades

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ó”.

Nuestro ejemplo: el sistema de pedidos de Pizza Palace

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:

  • orders - Información básica del pedido (ID del pedido, cliente, hora de creación)
  • order_items - Qué se pidió (pizzas, acompañamientos, bebidas)
  • kitchen_queue - Cuándo entran y salen los pedidos de cocina
  • delivery_assignments - Asignación de repartidores y seguimiento de entregas
  • payments - Registros del procesamiento de pagos

Tu objetivo: crear un registro de eventos que muestre el recorrido completo de cada pedido, desde que se registra hasta la entrega.

Tipos de eventos: directos vs inferidos

Al construir un registro de eventos, te encontrarás con dos tipos de eventos:

Eventos directos

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:

  • Order placed (timestamp en la tabla orders)
  • Payment received (timestamp en la tabla payments)
  • Delivery completed (timestamp en la tabla delivery_assignments)

Eventos inferidos

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:

  • “Order Assigned to Driver” quizá no tenga marca de tiempo propia, pero la tabla delivery_assignments incluye el campo created_at, que indica cuándo se hizo la asignación
  • ”Pizza Ready” puede inferirse cuando el estado de la cola de cocina cambia a “completed”

La 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.

Planifica tu registro de eventos

Antes de extraer los datos, define qué eventos quieres capturar. Para Pizza Palace, vamos a seguir estas actividades:

  1. Order Placed - El cliente envía el pedido
  2. Payment Received - El pago se procesa con éxito
  3. Order Sent to Kitchen - El pedido entra a la cola de preparación
  4. Order Ready - Cocina marca el pedido como completo
  5. Assigned to Driver - Se asigna un repartidor para la entrega
  6. Delivery Completed - El pedido se entrega al cliente

Para cada evento, identifica:

  • Qué tabla contiene los datos
  • Qué campo aporta la marca de tiempo
  • Cuál es el Case ID (en nuestro caso, el ID del pedido)

Así queda nuestro mapeo:

ActivitySource TableTimestamp FieldCase ID Field
Order Placedorderscreated_atid
Payment Receivedpaymentspayment_timeorder_id
Order Sent to Kitchenkitchen_queuequeue_entry_timeorder_id
Order Readykitchen_queuecompleted_timeorder_id
Assigned to Driverdelivery_assignmentsassigned_atorder_id
Delivery Completeddelivery_assignmentsdelivered_atorder_id

Añadir atributos de caso y de evento

Aunque Case ID, Timestamp y Activity son obligatorios, los atributos vuelven tu análisis mucho más potente. Son columnas adicionales que aportan contexto.

Atributos del caso

Los atributos del caso describen todo el pedido y son iguales para todos los eventos de ese caso:

  • Nombre del cliente
  • Valor total del pedido
  • Dirección de entrega
  • Número de artículos pedidos

Atributos del evento

Los atributos de evento son específicos de cada evento:

  • Nombre del repartidor (solo relevante para eventos de entrega)
  • Método de pago (solo relevante para eventos de pago)
  • Estación de cocina (solo relevante para eventos de cocina)

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.

Construir el registro de eventos: la estructura simple

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 IDTimestampActivityCustomerOrder ValueDriverPayment Method
10012025-01-15 18:30:00Order PlacedJohn Smith45.99
10012025-01-15 18:30:15Payment ReceivedJohn Smith45.99Credit Card
10012025-01-15 18:31:00Order Sent to KitchenJohn Smith45.99
10012025-01-15 18:45:00Order ReadyJohn Smith45.99
10012025-01-15 18:46:00Assigned to DriverJohn Smith45.99Maria Garcia
10012025-01-15 19:05:00Delivery CompletedJohn Smith45.99Maria Garcia
10022025-01-15 18:35:00Order PlacedJane Doe28.50
10022025-01-15 18:35:20Payment ReceivedJane Doe28.50PayPal

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.

Método 1: crear un registro de eventos en Excel

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.

Paso 1: Exporta cada tipo de evento a una hoja aparte

Crea una hoja de cálculo por tipo de actividad:

Hoja 1: Order Placed

Case IDTimestampActivityCustomerOrder Value
10012025-01-15 18:30:00Order PlacedJohn Smith45.99
10022025-01-15 18:35:00Order PlacedJane Doe28.50

Hoja 2: Payment Received

Case IDTimestampActivityCustomerOrder ValuePayment Method
10012025-01-15 18:30:15Payment ReceivedJohn Smith45.99Credit Card
10022025-01-15 18:35:20Payment ReceivedJane Doe28.50PayPal

Paso 2: Estandariza las columnas

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 IDTimestampActivityCustomerOrder ValueDriverPayment Method
10012025-01-15 18:30:00Order PlacedJohn Smith45.99

Paso 3: Combina todas las hojas

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.

Paso 4: Ordena por Case ID y luego por Timestamp

Selecciona todo tu conjunto de datos y ordena por:

  1. Case ID (ascendente)
  2. Timestamp (ascendente)

Esto coloca los eventos en orden cronológico dentro de cada caso y facilita seguir el recorrido de cada pedido.

Paso 5: Exporta a CSV

Guarda tu hoja combinada como archivo CSV. Este formato funciona con prácticamente cualquier herramienta de Process Mining.

Consejos de Excel:

  • Usa VLOOKUP o XLOOKUP para traer atributos del caso (como el nombre del cliente) desde tu hoja de pedidos
  • Mantén formatos de fecha consistentes (YYYY-MM-DD HH:MM:SS suele funcionar mejor)
  • Elimina cualquier evento duplicado antes de exportar

Método 2: crear un registro de eventos con SQL

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.

Qué es UNION ALL

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.

Ejemplo SQL completo

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;

Cómo ampliar esta consulta

Para sumar más eventos a tu registro:

  1. Copia uno de los bloques SELECT como plantilla
  2. Cambia el nombre de la tabla por tu tabla de origen
  3. Actualiza el campo de timestamp a la columna correcta
  4. Cambia el nombre de la actividad para describir el evento
  5. Ajusta los atributos según necesites
  6. Añade condiciones WHERE adecuadas para filtrar los datos

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'

Mejores prácticas para crear un registro de eventos

1. Empieza simple y añade complejidad después

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.

2. Valida tus datos

Antes de empezar con el análisis, revisa tu registro de eventos para detectar problemas comunes:

  • Marcas de tiempo faltantes - Los eventos sin marca de tiempo impiden la minería de procesos
  • Eventos duplicados - El mismo evento registrado dos veces distorsiona los resultados
  • Eventos fuera de orden - Un “Order Ready” antes de “Order Placed” indica problemas de calidad de datos
  • Eventos huérfanos - Eventos con IDs de caso que no aparecen en otras actividades

3. Documenta tu extracción

Toma nota de:

  • Qué tablas usaste
  • Qué filtros aplicaste
  • Cuándo ejecutaste la extracción
  • Qué supuestos hiciste

Esta documentación es clave cuando necesites actualizar o solucionar problemas de tu registro de eventos más adelante.

4. Usa nombres consistentes

Mantén los nombres de las actividades coherentes entre extracciones:

  • “Order Placed” es mejor que alternar entre “Order Created” y “New Order”
  • Define una convención de nombres y síguela siempre

5. Gestiona las zonas horarias

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.

Retos comunes y soluciones

Reto: el mismo evento desde varias fuentes

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.

Ilustración de retos comunes al crear registros de eventos de minería de procesos

Reto: eventos sin marca de tiempo

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”.

Reto: volumen muy alto de eventos

Si tienes varios millones de eventos, tus consultas pueden ser lentas o fallar al extraer.

Solución:

  • Añade filtros por fecha para acotar el periodo de extracción
  • Extrae por lotes (un mes a la vez) y combina los archivos después
  • Considera usar herramientas ETL especializadas para extracciones a gran escala

¿Qué sigue? Carga tu registro de eventos en una herramienta de minería de procesos

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:

  1. Sube tu archivo o conecta la herramienta de minería de procesos a los datos extraídos.
  2. Mapea tus columnas (Case ID, Timestamp, Activity)
  3. Configura los atributos adicionales
  4. Genera tu mapa de proceso

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.

Conclusión

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:

  1. Identifica los eventos que quieres registrar
  2. Encuentra el timestamp para cada tipo de evento
  3. Reúne todo en una sola tabla
  4. Añade atributos para enriquecer el análisis

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.

Posts relacionados del blog

Recibe insights de expertos en process mining y optimización de workflows en tu email
Cómo analizar tu proceso: guía práctica de Process Mining

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.

Por qué evitamos los conectores listos para usar (y qué hacemos en su lugar)

Por qué evitamos los conectores listos para usar (y qué hacemos en su lugar)

Los conectores prometen extracción fácil, pero traen complejidad, retrasos y dependencia. Preferimos plantillas de datos.

Guía Estratégica para Mejorar Procesos con Data

Guía Estratégica para Mejorar Procesos con Data

Aprende cómo mejorar tus procesos usando data para optimizar y transformar tu negocio. Ejemplos prácticos.

Alternativas a Celonis: descubre ProcessMind en 2025

Alternativas a Celonis: descubre ProcessMind en 2025

Compara Celonis y ProcessMind en Process Mining 2025. Encuentra el mejor software para tus procesos y presupuesto.

Desafía tus límites: mejora procesos en menos de 30 días

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.