Comment créer un journal d'événements de process mining

Ce que vous allez apprendre

Dans ce guide, vous allez apprendre à créer un journal d’événements de process mining de A à Z. Nous passerons en revue les trois colonnes indispensables à tout journal d’événements, verrons un exemple concret et vous montrerons comment créer votre premier journal d’événements dans Excel et en SQL.

Qu’est-ce qu’un journal d’événements de Process Mining ?

À lire aussi : Découvrez l’amélioration des processus  et trouvez des templates de données pour votre système . Lisez aussi pourquoi nous évitons les connecteurs prêts à l’emploi  au profit de templates de données simples.

Un journal d’événements de Process Mining est tout simplement un tableau de données qui enregistre ce qui s’est passé dans votre processus métier. Voyez-le comme un journal qui retrace chaque étape de chaque cas qui traverse votre système. Le logiciel de Process Mining lit ce journal et crée des schémas visuels montrant comment votre processus fonctionne réellement.

Chaque journal d’événements a besoin de trois informations essentielles par ligne :

ColonneCe que cela signifieExemple
ID du casUn identifiant unique qui regroupe les événements liésCommande n°1, 2, 3, 45
HorodatageQuand l’événement s’est produit2025-01-15 09:30:00
ActivityCe qui s’est passé”Commande créée”

Et c’est tout. Avec ces trois colonnes, vous pouvez déjà faire du Process Mining. Tout le reste — comme le nom du client, le montant de la commande ou l’ID employé — est optionnel : ce sont des “attributs” qui enrichissent votre analyse.

Comprendre la différence : événements vs activités

Avant d’aller plus loin, clarifions un point qui prête souvent à confusion.

Une activité est un type d’action, comme “Order Shipped” ou “Payment Received”. Pensez-y comme à une catégorie ou à un libellé.

Un événement est l’occurrence précise de cette activité. Quand la commande n°1, 2, 3, 45 est expédiée le 15 janvier à 14:30, c’est un événement.

Votre journal d’événements contient des événements, et chaque événement a un nom d’activité. Dans la pratique, on utilise souvent ces termes de manière interchangeable, et ce n’est pas gênant. Retenez simplement : les activités décrivent le “quoi”, et les événements le “quand et pour qui”.

Notre exemple : le système de commandes de Pizza Palace

Pour rendre ce guide concret, partons d’un système fictif. Imaginez que vous gérez Pizza Palace, une pizzeria locale avec un système de commande en ligne. Les clients passent commande sur le site, l’équipe prépare les pizzas et les livreurs les apportent.

Le système Pizza Palace s’appuie sur plusieurs tables qui retracent différentes étapes du processus de commande :

  • orders - Informations de base sur la commande (ID de commande, client, date/heure de création)
  • order_items - Détail des articles commandés (pizzas, accompagnements, boissons)
  • kitchen_queue - Entrée et sortie des commandes en cuisine
  • delivery_assignments - Affectations des livreurs et suivi de livraison
  • payments - Enregistrements du traitement des paiements

Votre objectif : créer un journal d’événements qui montre le parcours complet de chaque commande, de la prise de commande à la livraison.

Types d’événements : directs et déduits

En construisant un journal d’événements, vous rencontrerez deux types d’événements :

Événements directs

Les événements directs sont enregistrés explicitement dans votre système. Quelqu’un a cliqué sur un bouton ou une action a été journalisée par le système, et un horodatage est présent directement dans la base de données.

Exemples chez Pizza Palace :

  • Order placed (horodatage dans la table orders)
  • Payment received (horodatage dans la table payments)
  • Delivery completed (horodatage dans la table delivery_assignments)

Événements déduits

Les événements déduits n’ont pas leur propre horodatage, mais on peut déterminer quand ils se sont produits à partir d’autres données.

Exemples chez Pizza Palace :

  • “Order Assigned to Driver” n’a peut-être pas son propre horodatage, mais la table delivery_assignments contient un champ created_at qui indique quand l’affectation a été créée
  • “Pizza Ready” peut être déduit du moment où le statut de la file d’attente de la cuisine passe à “completed”

Différence essentielle : les événements directs sont enregistrés explicitement, tandis que les événements déduits demandent d’interpréter d’autres champs. Les deux sont valides et utiles en Process Mining.

Planifier votre journal d’événements

Avant d’extraire les données, décidez quels événements vous voulez capturer. Pour Pizza Palace, suivons ces activités :

  1. Commande passée - Le client valide la commande
  2. Paiement reçu - Le paiement est traité avec succès
  3. Commande envoyée en cuisine - La commande entre dans la file de prélèvement.paration
  4. Commande prête - La cuisine marque la commande comme terminée
  5. Affectation à un livreur - Un livreur est désigné pour la livraison
  6. Livraison terminée - La commande est livrée au client

Pour chaque événement, identifiez :

  • La table qui contient les données
  • Le champ qui porte l’horodatage
  • Ce qui fait office de ID du cas (ici, l’ID de commande)

Voici notre correspondance :

ActivityTable sourceChamp HorodatageChamp ID du cas
Commande passéeorderscreated_atid
Paiement reçupaymentspayment_timeorder_id
Commande envoyée en cuisinekitchen_queuequeue_entry_timeorder_id
Commande prêtekitchen_queuecompleted_timeorder_id
Affectation à un livreurdelivery_assignmentsassigned_atorder_id
Livraison terminéedelivery_assignmentsdelivered_atorder_id

Ajouter des attributs de cas et d’événement

ID du cas, Horodatage et Activity sont obligatoires, mais les attributs rendent votre analyse bien plus puissante. Ce sont des colonnes supplémentaires qui apportent du contexte.

Attributs de cas

Les attributs de cas décrivent l’ensemble du cas (commande) et sont identiques pour tous les événements de ce cas :

  • Nom du client
  • Montant total de la commande
  • Adresse de livraison
  • Nombre d’articles commandés

Attributs d’événement

Les attributs d’événement sont spécifiques à chaque événement :

  • Nom du livreur (pertinent uniquement pour les événements de livraison)
  • Méthode de paiement (pertinente uniquement pour les événements de paiement)
  • Poste de cuisine (pertinent uniquement pour les événements de cuisine)

Astuce : Vous pouvez sans problème inclure toutes les colonnes d’attributs à chaque ligne, même si certaines ne s’appliquent pas. Par exemple, la ligne ”« Order Placed »” peut avoir une colonne “Driver Name” vide. Cela garde votre journal d’événements sous forme de table à plat, simple, que les outils de process mining adorent.

Construire le journal d’événements : structure simple

Votre journal d’événements final doit être une seule table où chaque ligne représente un événement. Voici à quoi ressemblera le journal d’événements de Pizza Palace :

ID du casHorodatageActivityClientMontant de la commandeLivreurMode de paiement
10012025-01-15 18:30:00Commande passéeJohn Smith45.99
10012025-01-15 18:30:15Paiement reçuJohn Smith45.99Carte bancaire
10012025-01-15 18:31:00Commande envoyée en cuisineJohn Smith45.99
10012025-01-15 18:45:00Commande prêteJohn Smith45.99
10012025-01-15 18:46:00Affectation à un livreurJohn Smith45.99Maria Garcia
10012025-01-15 19:05:00Livraison terminéeJohn Smith45.99Maria Garcia
10022025-01-15 18:35:00Commande passéeJane Doe28.50
10022025-01-15 18:35:20Paiement reçuJane Doe28.50PayPal

Remarquez que les attributs de cas (Client, Montant de la commande) se répètent à chaque événement dans le même cas. Cette duplication est volontaire et rend les données faciles à analyser.

Méthode 1 : créer un journal d’événements dans Excel

Si vous pouvez exporter vos données vers un tableur, vous pouvez créer un journal d’événements manuellement. Cette méthode fonctionne très bien pour de petits jeux de données ou pour apprendre.

Étape 1 : Exporter chaque type d’événement sur une feuille distincte

Créez une feuille de calcul par type d’activité :

Feuille 1 : « Order Placed »

ID du casHorodatageActivityCustomerOrder Value
10012025-01-15 18:30:00« Order Placed »John Smith45.99
10022025-01-15 18:35:00« Order Placed »Jane Doe28.50

Feuille 2 : Payment Received

ID du casHorodatageActivityCustomerOrder ValuePayment Method
10012025-01-15 18:30:15Payment ReceivedJohn Smith45.99Credit Card
10022025-01-15 18:35:20Payment ReceivedJane Doe28.50PayPal

Étape 2 : Harmoniser les colonnes

Assurez-vous que toutes les feuilles partagent les mêmes colonnes dans le même ordre. Ajoutez des colonnes vides si nécessaire :

Feuille 1 : « Order Placed » (mise à jour)

ID du casHorodatageActivityCustomerOrder ValueDriverPayment Method
10012025-01-15 18:30:00« Order Placed »John Smith45.99

Étape 3 : Combiner toutes les feuilles

Créez une nouvelle feuille “Journal d’événements”. Copiez et collez toutes les lignes de chaque feuille d’activité dans cette feuille combinée, les unes à la suite des autres.

Étape 4 : Trier par ID du cas puis par Horodatage

Sélectionnez toutes vos données et triez par :

  1. ID du cas (ascendant)
  2. Horodatage (ascendant)

Cela place les événements dans l’ordre chronologique dans chaque cas, ce qui facilite le suivi du parcours de chaque commande.

Étape 5 : Exporter en CSV

Enregistrez votre feuille combinée au format CSV. Ce format fonctionne avec la quasi-totalité des outils de Process Mining.

Conseils Excel :

  • Utilisez VLOOKUP ou XLOOKUP pour récupérer des attributs de cas (comme le nom du client) depuis votre feuille de commandes
  • Utilisez des formats de date cohérents (YYYY-MM-DD HH:MM:SS fonctionne très bien)
  • Supprimez les événements en double avant l’export

Méthode 2 : créer un journal d’événements avec SQL

Pour des volumes importants ou des extractions régulières, SQL est plus efficace et reproductible. L’astuce clé consiste à utiliser UNION ALL pour combiner plusieurs requêtes en un seul jeu de résultats.

Comprendre UNION ALL

UNION ALL empile les résultats de plusieurs instructions SELECT les unes au-dessus des autres. Chaque SELECT devient un ensemble de lignes dans le résultat final. Tous les SELECT doivent renvoyer le même nombre de colonnes avec des types compatibles.

Exemple SQL complet

Voici une requête SQL qui crée un journal d’événements pour Pizza Palace :

-- Journal d'événements Extraction for Pizza Palace
-- This query combines multiple event types into a single journal d'événements
-- Each SELECT block represents one activity type

-- Événement 1 : Commande passée
-- 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 horodatage,                -- 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 horodatage,
    '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 horodatage,
    '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 horodatage 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 horodatage,            -- Different horodatage 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 horodatage,
    '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 horodatage field)
-- This captures when the order was delivered to the customer
SELECT 
    d.order_id AS case_id,
    d.delivered_at AS horodatage,
    '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 journal d'événements easy to read and follow
ORDER BY case_id, horodatage;

Comment étendre cette requête

Pour ajouter de nouveaux événements à votre journal :

  1. Copiez l’un des blocs SELECT comme modèle
  2. Changez le nom de la table pour votre table source
  3. Mettez à jour la colonne de horodatage avec la bonne colonne
  4. Modifiez le nom d’activité pour décrire l’événement
  5. Ajustez les attributs si nécessaire
  6. Ajoutez des conditions WHERE appropriées pour filtrer les données

Par exemple, pour ajouter un événement “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 horodatage,
    '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'

Bonnes pratiques pour créer un journal d’événements

1. Commencez simplement, complexifiez ensuite

Démarrez avec les trois colonnes requises et quelques activités clés. Une fois un journal d’événements simple créé et chargé dans un outil de process mining, vous pourrez revenir ajouter d’autres événements et attributs.

2. Validez vos données

Avant de lancer l’analyse, passez en revue votre journal d’événements pour repérer les problèmes courants :

  • Horodatages manquants - Des événements sans horodatage empêchent l’analyse de processus mining
  • Événements en double - Le même événement enregistré deux fois fausse vos résultats
  • Événements hors séquence - Un “Order Ready” avant ”« Order Placed »” indique un problème de qualité des données
  • Événements orphelins - Des événements dont l’ID de cas n’apparaît dans aucune autre activité

3. Documentez votre extraction

Prenez des notes sur :

  • Les tables et les pistes d’audit utilisées
  • Les filtres appliqués
  • La date et l’heure de l’extraction
  • Les éventuelles hypothèses formulées

Cette documentation sera précieuse lorsque vous devrez mettre à jour ou analyser votre journal d’événements plus tard.

4. Harmonisez les noms

Maintenez des noms d’activités cohérents d’une extraction à l’autre :

  • Mieux vaut utiliser ”« Order Placed »” que de varier entre “Order Created” et “New Order”
  • Définissez une convention de nommage et tenez-vous-y

5. Gérez les fuseaux horaires

Si vos données proviennent de plusieurs systèmes ou régions, assurez-vous que tous les horodatages utilisent le même fuseau horaire. UTC est souvent le choix le plus sûr pour garantir la cohérence.

Difficultés courantes et solutions

Illustration des difficultés courantes lors de la création de journaux d'événements de process mining

Défi : événements sans horodatage

Certains événements n’ont pas leur propre horodatage. Par exemple, un “Order Approved” peut n’être qu’un booléen.

Solution : Cherchez des horodatages liés. Il existe peut-être un champ “approved_at”, ou vous pouvez utiliser l’horodatage “modified_at” au moment où l’indicateur approuvé a changé.

Défi : volume d’événements très élevé

Si vous avez plusieurs millions d’événements, vos requêtes peuvent être lentes ou planter lors de l’extraction.

Solution :

  • Ajoutez des filtres de date pour limiter la période d’extraction
  • Extrayez par lots (un mois à la fois), puis fusionnez les fichiers
  • Envisagez d’utiliser des outils ETL dédiés pour les extractions à grande échelle

Et après ? Chargez votre journal d’événements dans un outil de Process Mining

Une fois votre journal d’événements généré sous forme de fichier CSV ou d’export de base de données, vous êtes prêt à l’importer dans un logiciel de Process Mining. La plupart des outils suivent une logique similaire :

  1. Chargez votre fichier ou connectez l’outil à vos données extraites.
  2. Mappez vos colonnes (ID du cas, Horodatage, Activity).
  3. Configurez les attributs supplémentaires.
  4. Générez votre cartographie de processus.

Les outils modernes comme ProcessMind  simplifient grandement cette étape. Importez simplement vos données, et l’outil visualise automatiquement votre processus, révélant les points de blocage, les variantes et les opportunités d’optimisation pour réduire vos coûts opérationnels.

Conclusion

Créer un journal d’événements pour le Process Mining ne nécessite pas d’outils complexes ni de connaissances techniques pointues. L’idée est simplement d’organiser vos données de Process Mining dans un tableau comportant trois colonnes essentielles : ID du cas, Horodatage et Activity.

Que vous utilisiez Excel pour des petits volumes ou SQL pour des extractions plus lourdes, les principes restent identiques :

  1. Identifiez les événements que vous souhaitez suivre
  2. Trouvez l’horodatage pour chaque type d’événement
  3. Centralisez le tout dans un tableau unique
  4. Ajoutez des attributs pour enrichir votre analyse

La partie la plus délicate n’est pas l’extraction technique, mais la compréhension de votre fonctionnement métier pour savoir quels événements comptent vraiment ! Commencez par les plus évidents (commande passée, commande expédiée) et affinez le niveau de détail au fur et à mesure que vous progressez avec votre outil de Process Mining.

Envie d’aller plus loin ? Explorez nos pages sur l’amélioration continue des processus . Vous y trouverez des détails sur les activités et les données requises pour des processus standards comme le cycle achat-paiement (Achats au paiement (P2P)) , le cycle vente-encaissement (Order-to-Cash)  et la comptabilité fournisseurs (Comptes fournisseurs) . Ces ressources incluent des templates de données pour des systèmes comme SAP, Oracle et Microsoft Dynamics, afin de vous faire gagner du temps dans la création de votre journal d’événements.

Lancez-vous dès aujourd'hui

N’attendez pas d’avoir l’journal d’événements parfait. Partez de ce que vous avez, apprenez de vos cartographies de processus et progressez par itérations. Même un journal d’événements simple peut révéler des points de blocage surprenants sur la réalité de vos opérations.

Articles de blog associés

Recevez des conseils d'experts en Process Mining et optimisation de workflow directement dans votre boîte de réception
Analyser votre processus : guide pratique Process Mining

Analyser votre processus : guide pratique Process Mining

Transformez vos dashboards Process Mining en actions. Méthode pas à pas pour lire vos données et trouver des opportunités d'amélioration.

Pourquoi nous évitons les connecteurs prêts à l'emploi (et ce que nous faisons à la place)

Pourquoi nous évitons les connecteurs prêts à l'emploi (et ce que nous faisons à la place)

Les connecteurs promettent une extraction facile pour le process mining, mais apportent souvent complexité, retards et dépendance technologique. Découvrez notre…

Guide Stratégique pour l’Amélioration des Processus Data-Driven

Guide Stratégique pour l’Amélioration des Processus Data-Driven

Guide complet pour optimiser vos processus avec les données et transformer votre entreprise.

Alternatives Celonis Process Mining : pourquoi ProcessMind se démarque ?

Alternatives Celonis Process Mining : pourquoi ProcessMind se démarque ?

Comparez Celonis et ProcessMind pour 2025. Découvrez le logiciel de process mining le plus adapté à vos besoins et à votre budget.

Relevez le défi : améliorez vos processus en moins de 30 jours !

Accès immédiat et sans carte bancaire. Découvrez comment cartographie, mining « what-if »mulation fonctionnent ensemble pour des décisions plus rapides et mieux informées.

Explorez chaque fonctionnalité, découvrez des analyses approfondies et optimisez vos opérations dès le premier jour.

Lancez votre essai gratuit et tirez pleinement parti de le Process Intelligence, constatez des résultats concrets en moins de 30 jours !