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…
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.
Correlati: Scopri di più sul miglioramento dei processi e trova i modelli di dati per il tuo sistema. Leggi anche perché evitiamo i connettori out-of-the-box a favore di semplici modelli di dati.
Un event log di Process Mining è semplicemente una tabella che registra ciò che è accaduto nel tuo processo. Pensalo come un diario che traccia ogni passaggio di ogni caso che attraversa il sistema. Il software di Process Mining legge questo diario e crea diagrammi che mostrano come il processo funziona davvero.
Ogni event log deve contenere tre informazioni essenziali per riga:
| Colonna | Significato | Esempio |
|---|---|---|
| Case ID | Un identificativo univoco che raggruppa gli eventi correlati | Ordine n. 12345 |
| Timestamp | Quando è avvenuto l’evento | 2025-01-15 09:30:00 |
| Activity | Che cosa è successo | ”Ordine effettuato” |
Tutto qui. Con solo queste tre colonne puoi iniziare a fare Process Mining. Tutto il resto, come nomi dei clienti, valore dell’ordine o ID dei dipendenti, sono extra opzionali chiamati “attributi” che arricchiscono l’analisi.
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”.
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:
Obiettivo: creare un event log che mostri il percorso completo di ogni ordine, dalla creazione alla consegna.
Quando costruisci un event log, incontrerai due tipi di eventi:
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:
orders)payments)delivery_assignments)Gli eventi dedotti non hanno un timestamp proprio, ma puoi capire quando sono avvenuti in base ad altri dati.
Esempi da Pizza Palace:
delivery_assignments ha il campo created_at che indica quando è stata effettuata l’assegnazioneLa 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.
Prima di estrarre i dati, definisci quali eventi vuoi catturare. Per Pizza Palace, tracciamo queste attività:
Per ogni evento, individua:
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 in cucina | kitchen_queue | queue_entry_time | order_id |
| Ordine pronto | kitchen_queue | completed_time | order_id |
| Assegnato all’autista | delivery_assignments | assigned_at | order_id |
| Consegna completata | delivery_assignments | delivered_at | order_id |
Anche se Case ID, Timestamp e Attività sono obbligatori, gli attributi rendono l’analisi molto più potente. Sono colonne aggiuntive che forniscono contesto.
Gli attributi di caso descrivono l’intero ordine e sono uguali per tutti gli eventi dello stesso caso:
Gli attributi di evento sono specifici per ciascun evento:
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.
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 ID | Timestamp | Attività | Cliente | Valore ordine | Autista | 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 in 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 all’autista | 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 | |
| … | … | … | … | … | … | … |
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.
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.
Crea un foglio di lavoro per ogni tipo di attività:
Foglio 1: Ordine effettuato
| Case ID | Timestamp | Attività | 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 | Attività | 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 |
Assicurati che tutti i fogli abbiano le stesse colonne nello stesso ordine. Aggiungi colonne vuote dove serve:
Foglio 1: Ordine effettuato (aggiornato)
| Case ID | Timestamp | Attività | Cliente | Valore ordine | Driver | Metodo di pagamento |
|---|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Ordine effettuato | John Smith | 45.99 |
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.
Seleziona tutti i tuoi dati e ordina per:
In questo modo gli eventi risultano in ordine cronologico all’interno di ogni caso, e puoi seguire facilmente il percorso di ciascun ordine.
Salva il foglio unificato come file CSV. È un formato compatibile con praticamente tutti gli strumenti di process mining.
Consigli per Excel:
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.
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.
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;
Per aggiungere altri eventi al tuo log:
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'
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.
Prima di iniziare l’analisi, controlla l’event log e verifica i problemi più comuni:
Annota sempre:
Questa documentazione torna utilissima quando dovrai aggiornare o risolvere problemi al tuo event log.
Mantieni i nomi delle attività coerenti tra un’estrazione e l’altra:
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.
A volte lo stesso evento viene tracciato in più tabelle. Ad esempio, sia il sistema ordini sia l’ERP possono registrare quando un ordine viene spedito.
Soluzione: Scegli una fonte come “single source of truth” e usa solo quella. Documenta la tua scelta.

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.
Se hai diversi milioni di eventi, le query possono diventare lente o andare in errore durante l’estrazione.
Soluzione:
Una volta creato l’event log come file CSV o export dal database, sei pronto a caricarlo in uno strumento di Process Mining. La procedura, in genere, è questa:
Gli strumenti moderni di Process Mining come ProcessMind rendono il tutto semplice: fai l’upload dell’event log e lo strumento visualizza automaticamente il processo, mettendo in luce colli di bottiglia, varianti e opportunità di miglioramento.
Creare un event log per il Process Mining non richiede strumenti specializzati né competenze tecniche avanzate. In sostanza, stai organizzando i tuoi dati in una tabella con tre colonne essenziali: Case ID, Timestamp e Attività.
Che tu usi Excel per dataset più piccoli o SQL per estrazioni più grandi e complesse, i principi restano gli stessi:
La parte più difficile non è l’estrazione tecnica: è conoscere il processo abbastanza bene da capire quali eventi contano. Parti da quelli evidenti (ordine effettuato, ordine completato) e aggiungi dettagli man mano che scopri insight con il tuo strumento di Process Mining.
Vuoi approfondire? Esplora le nostre pagine sul miglioramento continuo dei processi dove trovi dettagli su attività e requisiti dati per processi come Purchase to Pay, Order to Cash e Accounts Payable. Troverai anche modelli di dati per sistemi diffusi come SAP, Oracle e Microsoft Dynamics: un ottimo punto di partenza per creare il tuo event log.
Inizia oggi
Non aspettare l’event log perfetto. Parti da ciò che hai, impara dalle mappe di processo che crei e itera. Anche un event log semplice, con attività di base, può svelare insight sorprendenti su come funzionano davvero i tuoi processi.
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…
Promettono avvio rapido nel Process Mining, ma i connettori pronti all'uso creano complessità, ritardi e lock‑in. Meglio i data template.
Guida completa su come usare i dati per ottimizzare i processi e trasformare il business.
Celonis o ProcessMind? Confronto 2025: scopri quale process mining software si adatta meglio alla tua azienda.
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!