Analyse van procesknelpunten: een praktische gids
Ontdek hoe analyse van procesknelpunten process mining-data omzet in kansen voor bedrijfsverbetering. Herken patronen, vind knelpunten en verbeter de prestaties…
Wat je leert
In deze gids leer je hoe je vanaf nul een process mining-eventlog maakt. We behandelen de drie essentiële kolommen die elk event log nodig heeft, lopen een praktijkvoorbeeld door en laten zien hoe je met Excel en SQL je eerste event log bouwt.
Gerelateerd: Lees meer over procesverbetering en vind datatemplates voor je systeem. Lees ook waarom we standaardconnectors overslaan en kiezen voor eenvoudige datatemplates.
Een process mining-eventlog is een tabel waarin staat wat er in je bedrijfsproces gebeurt. Het log registreert elke stap van elke case terwijl die door je systemen gaat. Process mining-software gebruikt deze data om te laten zien hoe je proces in werkelijkheid werkt.
Elk event log heeft drie essentiële kolommen nodig:
| Kolom | Betekenis | Voorbeeld |
|---|---|---|
| Case-ID | Een unieke identificatie die gerelateerde gebeurtenissen groepeert | Order #12345 |
| Timestamp | Wanneer de gebeurtenis plaatsvond | 2025-01-15 09:30:00 |
| Activiteit | Wat er gebeurde | “Order geplaatst” |
Dat is alles. Met deze drie kolommen kun je beginnen met process mining. De rest, zoals klantnamen, orderbedragen of medewerker-ID’s, is optioneel. Deze extra velden heten “attributen” en voegen context toe aan je analyse.
Voordat je verdergaat, maken we een veelvoorkomende verwarring duidelijk.
Een activity is een type handeling, zoals “Order Shipped” of “Payment Received”. Zie het als een categorie of label.
Een event is een specifieke keer dat die activity plaatsvindt. Als Order #12345 op 15 januari om 14.30 uur wordt verzonden, is dat een event.
Je event log bevat events en elk event heeft een activitynaam. In de praktijk gebruiken mensen deze termen vaak door elkaar, en dat is prima. Onthoud: activities beschrijven het “wat”, events beschrijven “wanneer het bij wie gebeurde”.
Om deze gids praktisch te maken, gebruiken we een fictief systeem. Stel dat je Pizza Palace beheert, een lokale pizzeria met een online bestelsysteem. Klanten plaatsen bestellingen via de website, medewerkers bereiden de pizza’s en bezorgers leveren ze af.
Het systeem van Pizza Palace heeft verschillende databasetabellen die onderdelen van het bestelproces bijhouden:
Het doel is een event log te maken dat de volledige reis van elke bestelling laat zien, van plaatsing tot bezorging.
Bij het opbouwen van een event log kom je twee typen events tegen:
Directe events worden expliciet in je systeem vastgelegd. Iemand klikt op een knop of het systeem registreert een actie, en de database bevat daarvoor een timestamp.
Voorbeelden uit Pizza Palace:
orders tabel)payments tabel)delivery_assignments tabel)Afgeleide events hebben geen eigen timestamp, maar je kunt op basis van andere data bepalen wanneer ze plaatsvonden.
Voorbeelden uit Pizza Palace:
delivery_assignments tabel bevat een created_at veld dat laat zien wanneer de toewijzing is gedaanHet belangrijkste verschil is dat directe events expliciet worden vastgelegd, terwijl je voor afgeleide events andere datavelden moet interpreteren. Beide typen zijn geldig en bruikbaar voor process mining.
Bepaal voordat je data extraheert welke events je wilt vastleggen. Voor Pizza Palace volgen we deze activiteiten:
Bepaal voor elk event:
Hier is onze mapping:
| Activiteit | Brontabel | Timestampveld | Case ID-veld |
|---|---|---|---|
| Order Placed | orders | created_at | id |
| Payment Received | payments | payment_time | order_id |
| Order Sent to Kitchen | kitchen_queue | queue_entry_time | order_id |
| Order Ready | kitchen_queue | completed_time | order_id |
| Assigned to Driver | delivery_assignments | assigned_at | order_id |
| Delivery Completed | delivery_assignments | delivered_at | order_id |
Case ID, Timestamp en Activity zijn verplicht. Met attributen voeg je context toe via extra kolommen, waardoor je analyse bruikbaarder wordt.
Case-attributen beschrijven de volledige case, of bestelling, en blijven voor elk event in die case hetzelfde:
Eventattributen gelden voor afzonderlijke events:
Praktische tip: Het is prima om elk attribuut in elke rij op te nemen, ook als het niet van toepassing is op een specifiek event. Zo kan je rij voor “Order Placed” een lege kolom “Driver Name” bevatten. Hierdoor blijft je event log een eenvoudige, platte tabel waar process mining-tools makkelijk mee kunnen werken.
Je uiteindelijke event log moet uit één tabel bestaan, met één event per rij. Zo ziet het event log van Pizza Palace eruit:
| Case ID | Timestamp | Activity | Customer | Order Value | Driver | Payment Method |
|---|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Order Placed | John Smith | 45.99 | ||
| 1001 | 2025-01-15 18:30:15 | Payment Received | John Smith | 45.99 | Credit Card | |
| 1001 | 2025-01-15 18:31:00 | Order Sent to Kitchen | John Smith | 45.99 | ||
| 1001 | 2025-01-15 18:45:00 | Order Ready | John Smith | 45.99 | ||
| 1001 | 2025-01-15 18:46:00 | Assigned to Driver | John Smith | 45.99 | Maria Garcia | |
| 1001 | 2025-01-15 19:05:00 | Delivery Completed | John Smith | 45.99 | Maria Garcia | |
| 1002 | 2025-01-15 18:35:00 | Order Placed | Jane Doe | 28.50 | ||
| 1002 | 2025-01-15 18:35:20 | Payment Received | Jane Doe | 28.50 | PayPal | |
| … | … | … | … | … | … | … |
Let op dat case-attributen, zoals Customer en Order Value, voor elk event in dezelfde case worden herhaald. Dat is bewust gedaan, zodat de data makkelijk te gebruiken blijft.
Als je je data naar een spreadsheet kunt exporteren, kun je handmatig een event log maken. Dit werkt goed voor kleine datasets en helpt je de basis te leren.
Maak voor elk activitytype een werkblad:
Werkblad 1: Order Placed
| Case ID | Timestamp | Activity | Klant | Orderwaarde |
|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Order Placed | John Smith | 45.99 |
| 1002 | 2025-01-15 18:35:00 | Order Placed | Jane Doe | 28.50 |
Werkblad 2: Payment Received
| Case ID | Timestamp | Activity | Klant | Orderwaarde | Betaalmethode |
|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:15 | Payment Received | John Smith | 45.99 | Credit Card |
| 1002 | 2025-01-15 18:35:20 | Payment Received | Jane Doe | 28.50 | PayPal |
Zorg dat elk werkblad dezelfde kolommen in dezelfde volgorde heeft. Voeg waar nodig lege kolommen toe:
Werkblad 1: Order Placed (bijgewerkt)
| Case ID | Timestamp | Activity | Klant | Orderwaarde | Bezorger | Betaalmethode |
|---|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Order Placed | John Smith | 45.99 |
Maak een nieuw werkblad “Event Log”. Kopieer en plak alle rijen uit elk activitywerkblad onder elkaar in dit gecombineerde werkblad.
Selecteer al je data en sorteer op:
Zo staan de events binnen elke case in chronologische volgorde en kun je de reis van elke bestelling volgen.
Sla het gecombineerde werkblad op als CSV-bestand. Dit formaat werkt met vrijwel elke process mining-tool.
Excel-tips:
Voor grotere datasets of terugkerende extracties is SQL efficiënter en beter herhaalbaar. De belangrijkste techniek is UNION ALL gebruiken om meerdere queries te combineren in één resultatenset.
UNION ALL voegt de resultaten van meerdere SELECT-statements onder elkaar toe. Elke SELECT voegt rijen toe aan het eindresultaat. Alle SELECT-statements moeten hetzelfde aantal kolommen hebben, met compatibele datatypen.
Dit is een SQL-query die een event log voor Pizza Palace maakt:
-- 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;Zo voeg je meer events toe aan je log:
Bijvoorbeeld om een event “Delivery Attempted” toe te voegen:
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' Begin met de drie verplichte kolommen en een paar belangrijke activities. Nadat je een basis-event log hebt gemaakt en in een process mining-tool hebt geladen, kun je meer events en attributen toevoegen.
Controleer je event log voordat je met de analyse begint op veelvoorkomende problemen:
Houd bij:
Deze documentatie is waardevol als je je event log later moet bijwerken of problemen moet oplossen.
Houd activitynamen in verschillende extracties consistent:
Als je data uit meerdere systemen of regio’s komt, zorg dan dat alle timestamps dezelfde tijdzone gebruiken. UTC is vaak de veiligste keuze voor consistentie.
Sommige events hebben misschien geen eigen timestamp. Een event “Order Approved” kan bijvoorbeeld alleen worden weergegeven door een Boolean-vlag.
Oplossing: Zoek naar gerelateerde timestamps. Misschien vind je een veld “approved_at” of kun je de timestamp “modified_at” gebruiken van het moment waarop de goedkeuringsvlag veranderde.
Als je enkele miljoenen events hebt, kunnen je extractiequeries traag worden of mislukken.
Oplossing:
Zodra je je event log als CSV-bestand of database-export hebt gemaakt, kun je het in een process mining-tool laden. De meeste tools werken ongeveer zo:
Moderne process mining-tools zoals ProcessMind maken dit proces eenvoudig. Upload je event log-data en de tool visualiseert je proces automatisch. Zo worden bottlenecks, varianten en kansen voor verbetering zichtbaar, waarmee je kosten kunt verlagen en processen efficiënter kunt maken.
Een process mining-eventlog maken vereist geen gespecialiseerde tools of diepgaande technische kennis. In de basis organiseer je je process mining-data in een tabel met drie essentiële kolommen: Case ID, Timestamp en Activity.
Of je nu Excel gebruikt voor kleinere datasets of SQL voor grotere en complexere extracties, de uitgangspunten blijven hetzelfde:
Het lastigste deel is niet de technische extractie. Het gaat erom dat je je bedrijfsvoering goed genoeg begrijpt om te weten welke events ertoe doen. Begin met voor de hand liggende events, zoals een geplaatste en een afgeronde bestelling, en voeg details toe naarmate je ontdekt welke inzichten je process mining-tool oplevert.
Klaar om verder te gaan? Bekijk onze pagina’s over continue procesverbetering voor meer informatie over activiteiten en datavereisten voor bekende processen, zoals Purchase to Pay, Order to Cash en Accounts Payable. Deze bronnen bevatten datatemplates voor bekende systemen zoals SAP, Oracle en Microsoft Dynamics. Zo kun je sneller je event log maken.
Vandaag aan de slag
Wacht niet op het perfecte event log. Begin met wat je hebt, leer van de process maps die je maakt en verbeter stap voor stap. Zelfs een eenvoudig event log met basisactivities kan nuttige inzichten geven in hoe je processen echt werken.
Ontdek hoe analyse van procesknelpunten process mining-data omzet in kansen voor bedrijfsverbetering. Herken patronen, vind knelpunten en verbeter de prestaties…
Process mining-connectors kunnen complexiteit, vertraging en vendor lock-in veroorzaken. Ontdek hoe datatemplates de voorbereiding van process mining-data eenvo…
Leer meer over het DMAIC-proces, Six Sigma en lean procesverbeteringstools voor meetbare bedrijfsresultaten.
Vergelijk Celonis voor process mining met ProcessMind en vind software die past bij je processen, budget en doelen.
Krijg meteen toegang, zonder creditcard en zonder wachttijd. Zet de manier waarop je organisatie werkt om in heldere, verbonden procesontwerpen.
Bouw je procesarchitectuur, leg eigenaarschap en beheersmaatregelen vast en breng rollen en verantwoordelijkheden op elk niveau op één lijn.
Start je gratis proefperiode en leg één betrouwbare basis voor het beheren, besturen en continu verbeteren van je processen.
We gebruiken cookies om je ervaring te verbeteren, content te personaliseren en verkeer te analyseren. Door op "Alles accepteren" te klikken, geef je toestemming voor ons gebruik van cookies.