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.
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:
| 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 è 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.
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.
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 come un’esportazione dal database, può caricarlo in uno strumento di Process Mining. La maggior parte degli strumenti segue un percorso simile:
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.
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:
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.
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!
Utilizziamo cookie per migliorare la Sua esperienza di navigazione, offrire contenuti personalizzati e analizzare il traffico. Cliccando su "Accetta tutto", Lei acconsente all'uso dei cookie.