Event log per Process Mining: come crearlo

Cosa imparerai

In questa guida imparerai a creare da zero un event log di Process Mining. Tratteremo le tre colonne indispensabili per ogni event log, vedremo un esempio concreto e ti mostreremo come costruire il tuo primo event log sia con Excel sia con SQL.

Che cos’è un Event Log nel Process Mining?

Risorse correlate: Scopra di più sul miglioramento continuo 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 è, in sostanza, una tabella di dati che registra ciò che accade nel suo processo. Lo immagini come un diario che segue ogni passaggio di ogni caso che attraversa il sistema. Il software di Process Mining legge questo diario e genera diagrammi che mostrano come il processo funziona davvero.

Ogni Event Log richiede tre informazioni essenziali per ciascuna riga:

ColonnaSignificatoEsempio
Case IDUn identificativo univoco che raggruppa gli eventi correlatiOrdine n. 12345
TimestampQuando è avvenuto l’evento2025-01-15 09:30:00
ActivityChe cosa è accaduto”Ordine inserito”

Ecco tutto. Con queste tre colonne può già fare Process Mining. Il resto, come i nominativi dei clienti, il valore dell’ordine o gli ID dei dipendenti, sono informazioni opzionali chiamate “Attributi” che rendono l’analisi più ricca.

Capire la differenza: eventi vs attività

Prima di andare oltre, facciamo chiarezza su un dubbio comune.

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

Un evento è il verificarsi concreto di quell’attività. Quando l’Ordine #12345 viene spedito il 15 gennaio alle 14:30, quello è un evento.

Il tuo event log contiene eventi, ma ogni evento ha un nome di attività. Nella pratica questi termini si usano spesso in modo intercambiabile, e va bene. Ricorda: le attività sono il “cosa” e gli eventi sono il “quando è successo e a chi”.

Il nostro esempio: il sistema ordini di Pizza Palace

Per rendere la guida concreta, lavoriamo su un sistema fittizio. Immagina di gestire Pizza Palace, una pizzeria di quartiere con un sistema di ordini online. I clienti ordinano dal sito, il personale prepara le pizze e gli autisti le consegnano.

Il sistema di Pizza Palace ha diverse tabelle che tracciano parti diverse del flusso d’ordine:

  • orders - Informazioni di base sull’ordine (ID ordine, cliente, ora di creazione)
  • order_items - Cosa è stato ordinato (pizze, contorni, bevande)
  • kitchen_queue - Quando gli ordini entrano ed escono dalla cucina
  • delivery_assignments - Assegnazioni agli autisti e tracciamento della consegna
  • payments - Registrazioni dei pagamenti

Obiettivo: creare un event log che mostri il percorso completo di ogni ordine, dalla creazione alla consegna.

Tipi di eventi: diretti e dedotti

Quando costruisci un event log, incontrerai due tipi di eventi:

Eventi diretti

Gli eventi diretti sono registrati esplicitamente nel tuo sistema. Quando qualcuno fa clic su un pulsante o il sistema registra un’azione, il timestamp è già presente nel database.

Esempi da Pizza Palace:

  • Order placed (timestamp nella tabella orders)
  • Payment received (timestamp nella tabella payments)
  • Delivery completed (timestamp nella tabella delivery_assignments)

Eventi dedotti

Gli eventi dedotti non hanno un timestamp proprio, ma puoi capire quando sono avvenuti in base ad altri dati.

Esempi da Pizza Palace:

  • “Order Assigned to Driver” potrebbe non avere un timestamp, ma la tabella delivery_assignments ha il campo created_at che indica quando è stata effettuata l’assegnazione
  • “Pizza Ready” può essere dedotto dal momento in cui lo stato della coda di cucina passa a “completed”

La differenza principale: gli eventi diretti sono registrati esplicitamente, mentre gli eventi dedotti richiedono di interpretare altri campi del dataset. Entrambi sono validi e utili per il process mining.

Pianificare il tuo event log

Prima di estrarre i dati, definisci quali eventi vuoi catturare. Per Pizza Palace, tracciamo queste attività:

  1. Ordine effettuato – Il cliente invia l’ordine
  2. Pagamento ricevuto – Il pagamento va a buon fine
  3. Ordine inviato in cucina – L’ordine entra in coda di preparazione
  4. Ordine pronto – La cucina marca l’ordine come completato
  5. Assegnato all’autista – Un autista viene assegnato alla consegna
  6. Consegna completata – L’ordine è consegnato al cliente

Per ogni evento, individua:

  • Quale tabella contiene i dati
  • Quale campo fornisce il timestamp
  • Qual è il Case ID (nel nostro caso, l’ID ordine)

Ecco la nostra mappatura:

AttivitàTabella di origineCampo TimestampCampo Case ID
Ordine effettuatoorderscreated_atid
Pagamento ricevutopaymentspayment_timeorder_id
Ordine inviato in cucinakitchen_queuequeue_entry_timeorder_id
Ordine prontokitchen_queuecompleted_timeorder_id
Assegnato all’autistadelivery_assignmentsassigned_atorder_id
Consegna completatadelivery_assignmentsdelivered_atorder_id

Aggiungere attributi di case ed evento

Anche se Case ID, Timestamp e Attività sono obbligatori, gli attributi rendono l’analisi molto più potente. Sono colonne aggiuntive che forniscono contesto.

Attributi del caso

Gli attributi di caso descrivono l’intero ordine e sono uguali per tutti gli eventi dello stesso caso:

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

Attributi di evento

Gli attributi di evento sono specifici per ciascun evento:

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

Consiglio pratico: va benissimo includere tutte le colonne degli attributi in ogni riga, anche se alcune non si applicano a certi eventi. Ad esempio, nella riga “Order Placed” la colonna “Driver Name” può rimanere vuota. Così mantieni un event log semplice e piatto, che gli strumenti di process mining adorano.

Costruire l’event log: la struttura semplice

L’event log finale dovrebbe essere un’unica tabella in cui ogni riga rappresenta un evento. Ecco come apparirà l’event log di Pizza Palace:

Case IDTimestampAttivitàClienteValore ordineAutistaMetodo di pagamento
10012025-01-15 18:30:00Ordine effettuatoJohn Smith45.99
10012025-01-15 18:30:15Pagamento ricevutoJohn Smith45.99Carta di credito
10012025-01-15 18:31:00Ordine inviato in cucinaJohn Smith45.99
10012025-01-15 18:45:00Ordine prontoJohn Smith45.99
10012025-01-15 18:46:00Assegnato all’autistaJohn Smith45.99Maria Garcia
10012025-01-15 19:05:00Consegna completataJohn Smith45.99Maria Garcia
10022025-01-15 18:35:00Ordine effettuatoJane Doe28.50
10022025-01-15 18:35:20Pagamento ricevutoJane Doe28.50PayPal

Nota come gli attributi di caso (Cliente, Valore ordine) si ripetono per ogni evento dello stesso caso. Questa duplicazione è voluta e rende i dati più facili da usare.

Metodo 1: creare un event log in Excel

Se puoi esportare i dati in un foglio di calcolo, puoi costruire un event log manualmente. Questo approccio funziona benissimo per dataset piccoli o quando stai imparando.

Passo 1: Esporta ciascun tipo di evento su un foglio separato

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

Foglio 1: Ordine effettuato

Case IDTimestampAttivitàClienteValore ordine
10012025-01-15 18:30:00Ordine effettuatoJohn Smith45.99
10022025-01-15 18:35:00Ordine effettuatoJane Doe28.50

Foglio 2: Pagamento ricevuto

Case IDTimestampAttivitàClienteValore ordineMetodo di pagamento
10012025-01-15 18:30:15Pagamento ricevutoJohn Smith45.99Carta di credito
10022025-01-15 18:35:20Pagamento ricevutoJane Doe28.50PayPal

Passo 2: Uniforma le colonne

Assicurati che tutti i fogli abbiano le stesse colonne nello stesso ordine. Aggiungi colonne vuote dove serve:

Foglio 1: Ordine effettuato (aggiornato)

Case IDTimestampAttivitàClienteValore ordineDriverMetodo di pagamento
10012025-01-15 18:30:00Ordine effettuatoJohn Smith45.99

Passo 3: Unisci tutti i fogli

Crea un nuovo foglio “Event Log”. Copia e incolla tutte le righe da ciascun foglio di attività in questo foglio unificato, una dopo l’altra.

Passo 4: Ordina per Case ID, poi per Timestamp

Seleziona tutti i tuoi dati e ordina per:

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

In questo modo gli eventi risultano in ordine cronologico all’interno di ogni caso, e puoi seguire facilmente il percorso di ciascun ordine.

Passo 5: Esporta in CSV

Salva il foglio unificato come file CSV. È un formato compatibile con praticamente tutti gli strumenti di process mining.

Consigli per Excel:

  • Usa VLOOKUP/XLOOKUP (CERCA.VERT/CERCA.X) per recuperare gli attributi di caso (es. nome cliente) dal foglio degli ordini
  • Usa un formato data/ora coerente (YYYY-MM-DD HH:MM:SS è l’ideale)
  • Rimuovi eventuali eventi duplicati prima di esportare

Metodo 2: creare un event log con SQL

Per dataset più grandi o estrazioni periodiche, SQL è più efficiente e ripetibile. La tecnica chiave è usare UNION ALL per unire più query in un unico set di risultati.

Capire UNION ALL

UNION ALL impila i risultati di più istruzioni SELECT una sopra l’altra. Ogni SELECT diventa un blocco di righe nel risultato finale. Tutte le SELECT devono avere lo stesso numero di colonne con tipi di dato compatibili.

Esempio SQL completo

Qui sotto trovi una query SQL che genera 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 tuo log:

  1. Copia uno dei blocchi SELECT come modello
  2. Cambia il nome della tabella con la tabella sorgente
  3. Aggiorna il campo timestamp con la colonna corretta
  4. Modifica il nome dell’attività per descrivere l’evento
  5. Adatta gli attributi secondo necessità
  6. Aggiungi le condizioni WHERE appropriate per filtrare i dati

Ad esempio, per aggiungere 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'

Best practice per creare un event log

1. Parti dal semplice, aggiungi complessità più avanti

Inizia con le tre colonne obbligatorie e poche attività chiave. Una volta creato e caricato con successo un event log di base in uno strumento di Process Mining, potrai tornare ad arricchirlo con ulteriori eventi e attributi.

2. Valida i tuoi dati

Prima di iniziare l’analisi, controlla l’event log e verifica i problemi più comuni:

  • Timestamp mancanti - Eventi senza timestamp compromettono il process mining
  • Eventi duplicati - Lo stesso evento registrato due volte altera i risultati
  • Eventi fuori sequenza - Un “Order Ready” prima di “Order Placed” segnala problemi di qualità dei dati
  • Eventi orfani - Eventi con case ID che non compaiono in altre attività

3. Documenta la tua estrazione

Annota sempre:

  • Quali tabelle hai usato
  • Quali filtri hai applicato
  • Quando hai eseguito l’estrazione
  • Quali ipotesi hai fatto

Questa documentazione torna utilissima quando dovrai aggiornare o risolvere problemi al tuo event log.

4. Usa una nomenclatura coerente

Mantieni i nomi delle attività coerenti tra un’estrazione e l’altra:

  • Meglio usare sempre “Order Placed” invece di alternare “Order Created” e “New Order”
  • Definisci una convenzione di naming e seguila

5. Gestisci i fusi orari

Se i dati provengono da più sistemi o regioni, assicurati che tutti i timestamp siano nello stesso fuso orario. UTC è spesso la scelta più sicura per mantenere la coerenza.

Sfide comuni e come risolverle

Illustrazione delle sfide più comuni nella creazione di event log per il Process Mining

Sfida: eventi senza timestamp

Alcuni eventi potrebbero non avere un proprio timestamp. Per esempio, “Order Approved” potrebbe essere solo un flag booleano.

Soluzione: Cerca timestamp collegati. Magari esiste un campo “approved_at”, oppure puoi usare il timestamp “modified_at” del momento in cui il flag “approved” è cambiato.

Sfida: volume di eventi molto elevato

Se hai diversi milioni di eventi, le query possono diventare lente o andare in errore durante l’estrazione.

Soluzione:

  • Aggiungi filtri per data per limitare il periodo di estrazione
  • Estrai in batch (un mese alla volta) e unisci i file in seguito
  • Valuta l’uso di strumenti ETL dedicati per estrazioni su larga scala

E adesso? Carichi l’Event Log in uno strumento di Process Mining

Una volta creato l’Event Log come file CSV o come un’esportazione dal database, può caricarlo in uno strumento di Process Mining. La maggior parte degli strumenti segue un percorso simile:

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

Gli strumenti moderni di Process Mining, come ProcessMind , rendono il tutto semplice. Le basta caricare l’Event Log e lo strumento visualizza automaticamente il processo, evidenziando colli di bottiglia, variazioni e opportunità di miglioramento.

Conclusioni

Creare un Event Log per il Process Mining non richiede strumenti specializzati né competenze tecniche avanzate. In sostanza, si tratta di organizzare i dati in una tabella con tre colonne fondamentali: Case ID, Timestamp e Activity.

Che usi Excel per dataset piccoli o SQL per estrazioni più grandi e complesse, i principi restano gli stessi:

  1. Identificare gli eventi da monitorare
  2. Reperire il Timestamp per ogni tipo di evento
  3. Riunire tutto in un’unica tabella
  4. Aggiungere Attributi per arricchire l’analisi

La parte più impegnativa non è l’estrazione tecnica, ma comprendere a fondo il processo per capire quali eventi contano davvero. Parta dagli eventi evidenti (ordine inserito, ordine completato) e aggiunga via via più dettagli man mano che scopre gli spunti offerti dallo strumento di Process Mining.

Vuole approfondire? Visiti le nostre pagine sul miglioramento continuo dei processi , dove trova informazioni dettagliate su attività e requisiti dei dati per processi diffusi come Purchase to Pay , Order to Cash  e Accounts Payable . Troverà anche template di dati per sistemi noti come SAP, Oracle e Microsoft Dynamics, così da accelerare la creazione del suo Event Log.

Inizi oggi

Non aspetti l’Event Log perfetto. Parta da ciò che ha, impari dalle mappe di processo che crea e iteri. Anche un Event Log essenziale con attività di base può rivelare spunti sorprendenti su come funzionano davvero i suoi processi.

Articoli correlati del blog

Ricevi consigli degli esperti su process mining e ottimizzazione del workflow direttamente nella tua inbox
Come analizzare il tuo processo: guida pratica agli insight

Come analizzare il tuo processo: guida pratica agli insight

Trasforma le dashboard di Process Mining in insight operativi. Un approccio passo per passo per capire i dati, esplorare gli schemi e trovare vere opportunità d…

Perché evitiamo i connettori pronti all'uso (e cosa facciamo al loro posto)

Perché evitiamo i connettori pronti all'uso (e cosa facciamo al loro posto)

Promettono avvio rapido nel Process Mining, ma i connettori pronti all'uso creano complessità, ritardi e lock‑in. Meglio i data template.

Guida Strategica al Miglioramento dei Processi Data-Driven

Guida Strategica al Miglioramento dei Processi Data-Driven

Guida completa su come usare i dati per ottimizzare i processi e trasformare il business.

Alternative a Celonis Process Mining: perché ProcessMind è la scelta smart

Alternative a Celonis Process Mining: perché ProcessMind è la scelta smart

Celonis o ProcessMind? Confronto 2025: scopri quale process mining software si adatta meglio alla tua azienda.

Sfida te stesso: raggiungi miglioramenti nei processi in meno di 30 giorni!

Accesso immediato, senza carta di credito e senza attese. Scopri come mapping, mining e simulation lavorano insieme per decisioni più smart e veloci.

Esplora ogni funzione, trova insight preziosi e semplifica le tue operations dal primo giorno.

Prova gratis Process Intelligence ora e vedi miglioramenti reali in meno di 30 giorni!