Come creare un Event Log per il Process Mining

Cosa imparerà

In questa guida imparerà a creare da zero un Event Log per il Process Mining. Vedremo le tre colonne essenziali di ogni Event Log, analizzeremo un esempio reale e mostreremo come costruire il Suo primo Event Log utilizzando sia Excel sia SQL.

Che cos’è un Event Log per il Process Mining?

Correlato: scopra di più sul miglioramento dei processi e trovi i Template di dati per il Suo sistema. Legga anche perché evitiamo i connettori pronti all’uso a favore di semplici Template di dati.

Un Event Log per il Process Mining è una tabella che registra ciò che accade nel processo aziendale. Tiene traccia di ogni passaggio di ciascun caso mentre attraversa i sistemi. Il software di Process Mining utilizza questi dati per mostrare come funziona realmente il processo.

Ogni Event Log richiede tre colonne essenziali:

Colonna Significato Esempio
ID del caso Identificatore univoco che raggruppa gli eventi correlati Ordine n. 12345
Timestamp Momento in cui si è verificato l’evento 15/01/2025 09:30:00
Attività Cosa è accaduto “Ordine effettuato”

Tutto qui. Con queste tre colonne può iniziare a fare Process Mining. Tutto il resto, come nomi dei clienti, valori degli ordini o ID dei dipendenti, è facoltativo. Questi campi aggiuntivi sono chiamati “attributi” e aggiungono contesto all’analisi.

Comprendere la differenza tra eventi e attività

Prima di proseguire, chiariamo un punto che genera spesso confusione.

Un’attività è un tipo di azione, come “Ordine spedito” o “Pagamento ricevuto”. La consideri come una categoria o un’etichetta.

Un evento è una specifica occorrenza di quell’attività. Quando l’ordine n. 12345 viene spedito il 15 gennaio alle 14:30, quello è un evento.

Il Suo Event Log contiene eventi e ogni evento ha un nome di attività. Nella pratica, questi termini vengono spesso utilizzati come sinonimi, e va bene così. Ricordi: le attività descrivono il “che cosa”, mentre gli eventi descrivono “quando è accaduto e a chi”.

Il nostro esempio: il sistema ordini di Pizza Palace

Per rendere pratica questa guida, utilizziamo un sistema fittizio. Immagini di gestire Pizza Palace, una pizzeria locale con un sistema di ordinazione online. I clienti effettuano gli ordini tramite il sito web, il personale prepara le pizze e i conducenti le consegnano.

Il sistema di Pizza Palace dispone di diverse tabelle di database che registrano le varie fasi del processo degli ordini:

  • orders: informazioni di base sull’ordine, ID dell’ordine, cliente e orario dell’ordine
  • order_items: articoli ordinati, pizze, contorni e bevande
  • kitchen_queue: momento di ingresso e uscita degli ordini dalla cucina
  • delivery_assignments: assegnazione dei conducenti e monitoraggio delle consegne
  • payments: registrazioni dell’elaborazione dei pagamenti

L’obiettivo è creare un Event Log che mostri il percorso completo di ogni ordine, dall’inserimento alla consegna.

Tipi di eventi: diretti e dedotti

Quando crea un event log, incontrerà due tipi di eventi:

Eventi diretti

Gli eventi diretti vengono registrati esplicitamente nel sistema. Qualcuno fa clic su un pulsante oppure il sistema registra un’azione, e nel database è presente un timestamp corrispondente.

Esempi di Pizza Palace:

  • Ordine effettuato (timestamp nella tabella orders)
  • Pagamento ricevuto (timestamp nella tabella payments)
  • Consegna completata (timestamp nella tabella delivery_assignments)

Eventi dedotti

Gli eventi dedotti non dispongono di un timestamp proprio, ma è possibile determinare quando si sono verificati utilizzando altri dati.

Esempi di Pizza Palace:

  • “Ordine assegnato al corriere” potrebbe non avere un timestamp proprio, ma la tabella delivery_assignments contiene un campo created_at che indica quando è stata effettuata l’assegnazione
  • “Pizza pronta” può essere dedotto dal momento in cui lo stato della coda di cucina è cambiato in “completato”

La differenza fondamentale è che gli eventi diretti vengono registrati esplicitamente, mentre per gli eventi dedotti è necessario interpretare altri campi dati. Entrambi sono validi e utili per il Process Mining.

Pianificare il Suo event log

Prima di estrarre i dati, decida quali eventi desidera acquisire. Per Pizza Palace, monitoriamo le seguenti attività:

  1. Ordine effettuato - Il cliente invia l’ordine
  2. Pagamento ricevuto - Il pagamento viene elaborato correttamente
  3. Ordine inviato alla cucina - L’ordine entra nella coda di preparazione
  4. Ordine pronto - La cucina contrassegna l’ordine come completato
  5. Assegnato al corriere - Un corriere viene assegnato alla consegna
  6. Consegna completata - L’ordine viene consegnato al cliente

Per ogni evento, identifichi:

  • La tabella che contiene i dati
  • Il campo che fornisce il timestamp
  • Il Case ID, che in questo caso corrisponde all’ID dell’ordine

Ecco la nostra mappatura:

Attività Tabella di origine Campo timestamp Campo Case ID
Ordine effettuato orders created_at id
Pagamento ricevuto payments payment_time order_id
Ordine inviato alla cucina kitchen_queue queue_entry_time order_id
Ordine pronto kitchen_queue completed_time order_id
Assegnato al corriere delivery_assignments assigned_at order_id
Consegna completata delivery_assignments delivered_at order_id

Aggiungere Attributi di caso ed evento

Case ID, Timestamp e Activity sono obbligatori. Gli Attributi rendono l’analisi più utile, aggiungendo contesto tramite colonne supplementari.

Attributi di caso

Gli Attributi di caso descrivono l’intero caso, cioè l’ordine, e rimangono invariati per ogni evento appartenente a quel caso:

  • Nome del cliente
  • Valore totale dell’ordine
  • Indirizzo di consegna
  • Numero di articoli ordinati

Attributi di evento

Gli Attributi di evento si applicano ai singoli eventi:

  • Nome del corriere (rilevante solo per gli eventi di consegna)
  • Metodo di pagamento (rilevante solo per gli eventi di pagamento)
  • Postazione di cucina (rilevante solo per gli eventi di cucina)

Suggerimento: È perfettamente accettabile includere ogni Attributo in ogni riga, anche quando non si applica a un evento specifico. Ad esempio, la riga “Ordine effettuato” può contenere una colonna “Nome del corriere” vuota. In questo modo l’event log mantiene un formato tabellare semplice e piatto, facilmente utilizzabile dagli strumenti di Process Mining.

Creare l’event log: la struttura più semplice

L’event log finale dovrebbe essere un’unica tabella, con un evento per riga. Ecco come apparirà l’event log di Pizza Palace:

Case ID Timestamp Activity Cliente Valore ordine Corriere Metodo di pagamento
1001 2025-01-15 18:30:00 Ordine effettuato John Smith 45.99
1001 2025-01-15 18:30:15 Pagamento ricevuto John Smith 45.99 Carta di credito
1001 2025-01-15 18:31:00 Ordine inviato alla cucina John Smith 45.99
1001 2025-01-15 18:45:00 Ordine pronto John Smith 45.99
1001 2025-01-15 18:46:00 Assegnato al corriere John Smith 45.99 Maria Garcia
1001 2025-01-15 19:05:00 Consegna completata John Smith 45.99 Maria Garcia
1002 2025-01-15 18:35:00 Ordine effettuato Jane Doe 28.50
1002 2025-01-15 18:35:20 Pagamento ricevuto Jane Doe 28.50 PayPal

Si noti che gli Attributi di caso, come Cliente e Valore ordine, vengono ripetuti per ogni evento dello stesso caso. Questa duplicazione è intenzionale e rende i dati più semplici da utilizzare.

Metodo 1: creare un event log in Excel

Se può esportare i dati in un foglio di calcolo, può creare manualmente un event log. Questo approccio è adatto a dataset di piccole dimensioni e La aiuta a comprendere i concetti di base.

Passaggio 1: esportare ogni tipo di evento in un foglio separato

Crei un foglio di lavoro per ogni tipo di attività:

Foglio 1: Ordine effettuato

Case ID Timestamp Activity Cliente Valore ordine
1001 2025-01-15 18:30:00 Ordine effettuato John Smith 45.99
1002 2025-01-15 18:35:00 Ordine effettuato Jane Doe 28.50

Foglio 2: Pagamento ricevuto

Case ID Timestamp Activity Cliente Valore ordine Metodo di pagamento
1001 2025-01-15 18:30:15 Pagamento ricevuto John Smith 45.99 Carta di credito
1002 2025-01-15 18:35:20 Pagamento ricevuto Jane Doe 28.50 PayPal

Passaggio 2: standardizzare le colonne

Si assicuri che ogni foglio contenga le stesse colonne nello stesso ordine. Aggiunga le colonne vuote dove necessario:

Foglio 1: Ordine effettuato (aggiornato)

Case ID Timestamp Activity Cliente Valore ordine Corriere Metodo di pagamento
1001 2025-01-15 18:30:00 Ordine effettuato John Smith 45.99

Passaggio 3: unire tutti i fogli

Crei un nuovo foglio “Event Log”. Copi e incolli in questo foglio combinato tutte le righe di ciascun foglio delle attività, una dopo l’altra.

Passaggio 4: ordinare per Case ID e poi per Timestamp

Selezioni tutti i dati e li ordini per:

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

In questo modo gli eventi vengono disposti in ordine cronologico all’interno di ogni caso, consentendoLe di seguire il percorso di ciascun ordine.

Passaggio 5: esportare in CSV

Salvi il foglio combinato come file CSV. Questo formato è compatibile con praticamente ogni strumento di Process Mining.

Suggerimenti per Excel:

  • Utilizzi VLOOKUP o XLOOKUP per recuperare gli Attributi di caso, come il nome del cliente, dal foglio degli ordini
  • Utilizzi un formato data coerente (YYYY-MM-DD HH:MM:SS è la scelta migliore)
  • Rimuova gli eventi duplicati prima dell’esportazione

Metodo 2: creare un event log con SQL

Per dataset di grandi dimensioni o estrazioni ricorrenti, SQL è più efficiente e ripetibile. La tecnica fondamentale consiste nell’utilizzare UNION ALL per combinare più query in un unico set di risultati.

Comprendere UNION ALL

UNION ALL accoda i risultati di più istruzioni SELECT. Ogni SELECT aggiunge righe al risultato finale. Tutte le istruzioni SELECT devono avere lo stesso numero di colonne, con tipi di dati compatibili.

Esempio SQL completo

Ecco una query SQL che crea un event log per 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;

Come estendere questa query

Per aggiungere altri eventi al log:

  1. Copi uno dei blocchi SELECT come modello
  2. Modifichi il nome della tabella sostituendolo con quello della tabella di origine
  3. Aggiorni il campo timestamp indicando la colonna corretta
  4. Modifichi il nome dell’attività in modo che descriva l’evento
  5. Adatti gli Attributi secondo necessità
  6. Aggiunga condizioni WHERE appropriate per filtrare i dati

Ad esempio, per aggiungere un evento “Consegna tentata”:

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'

Best practice per la creazione di un event log

1. Inizi in modo semplice e aggiunga complessità in seguito

Inizi con le tre colonne obbligatorie e alcune attività essenziali. Dopo aver creato un event log di base e averlo caricato in uno strumento di Process Mining, potrà aggiungere altri eventi e Attributi.

2. Convalidi i dati

Prima di iniziare l’analisi, verifichi che il Suo event log non presenti problemi comuni:

  • Timestamp mancanti - Gli eventi privi di timestamp compromettono il Process Mining
  • Eventi duplicati - La registrazione dello stesso evento due volte altera i risultati
  • Eventi fuori sequenza - Un evento “Ordine pronto” precedente a “Ordine effettuato” indica un problema di qualità dei dati
  • Eventi orfani - Eventi con Case ID che non compaiono in altre attività

3. Documenti la Sua estrazione

Prenda nota di:

  • Quali tabelle e audit trail ha utilizzato
  • Quali filtri ha applicato
  • Quando ha eseguito l’estrazione
  • Eventuali ipotesi formulate

Questa documentazione è preziosa quando in seguito dovrà aggiornare o risolvere problemi nel Suo event log.

4. Utilizzi una denominazione coerente

Mantenga coerenti i nomi delle attività nelle diverse estrazioni:

  • “Ordine effettuato” è preferibile all’uso di “Ordine creato” in alcune estrazioni e “Nuovo ordine” in altre
  • Scelga una convenzione di denominazione e la applichi sempre

5. Gestisca i fusi orari

Se i dati provengono da più sistemi o aree geografiche, si assicuri che tutti i timestamp utilizzino lo stesso fuso orario. UTC è spesso la scelta più sicura per garantire la coerenza.

Problemi e soluzioni comuni

Illustrazione dei problemi comuni nella creazione di event log per il Process Mining

Problema: eventi privi di timestamp

Alcuni eventi potrebbero non avere un timestamp proprio. Ad esempio, un evento “Ordine approvato” potrebbe essere rappresentato soltanto da un flag booleano.

Soluzione: cerchi timestamp correlati. Potrebbe trovare un campo “approved_at” oppure utilizzare il timestamp “modified_at”, corrispondente al momento in cui è cambiato il flag di approvazione.

Problema: volume di eventi molto elevato

Se dispone di diversi milioni di eventi, le query di estrazione potrebbero essere lente o non riuscire.

Soluzione:

  • Aggiunga filtri per data per limitare il periodo di estrazione
  • Esegua l’estrazione in batch, un mese alla volta, e combini i file in seguito
  • Valuti l’utilizzo di strumenti ETL dedicati per le estrazioni su larga scala

E adesso? Carichi il Suo event log in uno strumento di Process Mining

Dopo aver creato l’event log come file CSV o esportazione di database, è pronto per caricarlo in uno strumento di Process Mining. La maggior parte degli strumenti segue un processo simile:

  1. Carichi il file oppure colleghi lo strumento di Process Mining ai dati estratti.
  2. Mappi le colonne (Case ID, Timestamp, Activity)
  3. Configuri gli eventuali Attributi aggiuntivi
  4. Generi la mappa del processo

Gli strumenti moderni di Process Mining, come ProcessMind, rendono questo processo semplice. Carichi i dati del Suo event log e lo strumento visualizzerà automaticamente il processo, mettendo in evidenza colli di bottiglia, varianti e opportunità di miglioramento che possono contribuire a ridurre i costi e ottimizzare i processi operativi.

Conclusione

Creare un event log per il Process Mining non richiede strumenti specializzati né una conoscenza tecnica approfondita. In sostanza, si tratta di organizzare i dati del Process Mining in una tabella con tre colonne essenziali: Case ID, Timestamp e Activity.

Che utilizzi Excel per dataset più piccoli o SQL per estrazioni più ampie e complesse, i principi rimangono gli stessi:

  1. Identifichi gli eventi che desidera monitorare
  2. Individui il timestamp per ogni tipo di evento
  3. Riunisca tutto in un’unica tabella
  4. Aggiunga Attributi per arricchire l’analisi

La parte più difficile non è l’estrazione tecnica, ma comprendere le operazioni aziendali abbastanza bene da sapere quali eventi siano rilevanti. Inizi dagli eventi più evidenti, come l’inserimento e il completamento di un ordine, e aggiunga dettagli man mano che scopre quali informazioni emergono dalle mappe di processo create con il Suo strumento di Process Mining.

Vuole approfondire? Consulti le nostre pagine sul miglioramento continuo dei processi per informazioni dettagliate sulle attività e sui requisiti dati dei processi più diffusi, come Purchase to Pay, Order to Cash e Accounts Payable. Queste risorse includono Template di dati per sistemi noti come SAP, Oracle e Microsoft Dynamics, offrendole un punto di partenza concreto per creare il Suo event log.

Inizi oggi

Non aspetti di avere l’event log perfetto. Inizi dai dati disponibili, impari dalle mappe di processo che crea e migliori progressivamente. Anche un event log semplice, con attività di base, può rivelare informazioni utili sul funzionamento reale dei Suoi processi.

Articoli correlati

Riceva nella Sua casella di posta insight di esperti sul Process Mining e sull’ottimizzazione dei Workflow
Analisi dei colli di bottiglia dei processi: guida pratica

Analisi dei colli di bottiglia dei processi: guida pratica

Scopra come l’analisi dei colli di bottiglia dei processi trasformi i dati di Process Mining in opportunità di miglioramento aziendale. Esplori i pattern, indiv…

Perché rinunciamo ai connettori pronti all'uso

Perché rinunciamo ai connettori pronti all'uso

I connettori per il Process Mining possono aggiungere complessità e ritardi, oltre a creare dipendenza dal fornitore. Scopra come i Template di dati semplifican…

Miglioramento dei processi lean: una guida basata sui dati

Miglioramento dei processi lean: una guida basata sui dati

Scopra il processo DMAIC, il processo Six Sigma e gli strumenti per il miglioramento dei processi lean, così da ottenere risultati aziendali misurabili.

Alternative a Celonis: confronti gli strumenti di Process Mining

Alternative a Celonis: confronti gli strumenti di Process Mining

Confronti il Process Mining di Celonis con ProcessMind per trovare il software più adatto ai Suoi processi, al Suo budget e ai Suoi obiettivi.

Progettazione. Analisi. Miglioramento.

Ottenga subito l’accesso, senza carta di credito né attese. Trasformi il modo in cui opera la Sua organizzazione in una progettazione dei processi chiara e connessa.

Costruisca l’architettura dei processi, definisca responsabilità e controlli e allinei ruoli e responsabilità a ogni livello.

Inizi la prova gratuita e crei un’unica base affidabile per governare, gestire e migliorare continuamente i processi.