Product
Event Storming Tool

The Collaborative Event Storming Tool Your Team Needs

Follow this walkthrough to map your first workflow
and use AI to generate a draft.
A screenshot of an Event Storming session for an e-commerce platform on a digital whiteboard.

Searching for the right Event Storming tool?

Whiteboards get messy and are hard to use with remote teams. Qlerify is an online Event Storming tool that adds structure to your sessions and uses AI to speed up the design process.

To get started, log in to Qlerify or sign up for free, create a project, and follow the steps below. This guide walks you through a Software Design-level Event Storming session in Qlerify.

For a deeper introduction to the method, read Event Storming - The Complete Guide.

Step 1: Create a new workflow

Create a new, empty workflow and open it. You will see a blank workspace similar to the image below. From here you can click Add start point, Generate workflow with AI or Start with MCP, or open the workflow settings.

For more details about this view, click the question mark icon.

A screenshot of a new, empty Qlerify workflow. The canvas offers three starting options: 'Add start point', 'Generate workflow with AI' and 'Start with MCP'. Green callouts point to the 'Workflow settings' icon (gear) and the 'Help' icon (question mark) in the top toolbar.

Step 2: Review card types

Open the workflow settings by clicking the cogwheel above the diagram, then select the Cards tab.

Each new workflow comes with a default set of card types that you can use for Big Picture, Process Modeling, and Software Design-level Event Storming. You can add, update, and remove card types as needed. The default set includes:

Settings panel showing card type settings with options for type name, backlog visibility, AI use, and domain model role.

The Given-When-Then (GWT) and User Story card types are not part of standard Event Storming. You can use GWTs to extend a Software Design session, but this example leaves both out.

So update the Card Type Settings as follows:

  • Show in backlog: Make Problem and Opportunity visible in the backlog by clicking the eye icon to remove the strikethrough, so you can plan them into releases in Step 8.
  • Use AI: Clear Given-When-Then and Read Model, and select Problem and Opportunity. The AI then generates problems and opportunities instead of GWTs and read models.
  • Domain Model Role: Make sure these roles are selected in the dropdown:
    • For the Command card type, select Command.
    • For the Aggregate Root card type, select Aggregate Root.
  • Rename the Aggregate Root card type to Aggregate, since this is an Event Storming session rather than a full domain model. Update its description to:
    • "The aggregate that the command is invoked on in this step of the process."
A detailed view of the Qlerify 'Card Type Settings', showing the editable description for the 'Aggregate' card type. The description field is open and contains the explanatory text: "The aggregate that the command is invoked on in this step of the process." This demonstrates how users can add custom help text for each card in their workflow.
Note: Qlerify uses card types with the Domain Model Role Command, Read Model, or Aggregate Root to group commands and events around aggregates at the end of the Software Design session.
Note: If you find the term Aggregate confusing, rename it to something like "Entity" or "Information Object".

Finally, review the description of each card type by clicking Show description, and update it if needed. The descriptions are used in AI prompts. Then close the settings to return to the workflow diagram.

Step 3: Generate with AI

Several LLMs (large language models) are available. This example uses Claude Sonnet 5. You can choose the model in the workflow settings, under the AI tab.

On the blank canvas, click Generate workflow with AI (the button is hidden once the workflow contains events). Below the prompt box, click the example "The CRM process used by Salesforce". You can edit the prompt to add detail:

  • Simple prompt: "The CRM process used by Salesforce"
  • Detailed prompt: "The CRM process used by Salesforce, including the steps: Lead created by Sales Person, Lead qualified by Sales Manager, Opportunity created by Sales Person, etc."

Next, clear the Generate Command Attributes with AI and Generate Entities with AI checkboxes. These are used for Event Modeling and Domain-Driven Design. Then click Generate workflow.

The 'Generate workflow with AI' dialog in Qlerify in its initial state. The prompt box is empty and offers two example prompts to try, 'The CRM process used by Salesforce' and 'The e-commerce order process used by Amazon', plus a 'More examples' menu. Below it, the card types Problem, Opportunity, Command and Aggregate are selected. A green callout points to the Salesforce example, and a 'Deselect' callout points to the 'Generate Command Attributes with AI' and 'Generate Entities with AI' checkboxes.

The result may look similar to the example below, though output varies considerably between runs.

A screenshot of an AI-generated Event Storming diagram in Qlerify for a CRM sales process. Swimlanes represent roles such as 'Sales Rep', 'Sales Manager', 'Customer', 'Legal Team' and 'Finance'. Orange event cards run from 'Lead Created' through 'Lead Qualified', 'Opportunity Created' and 'Opportunity Approved' to 'Quote Approved'.

Step 4: Collaborate

Go through the workflow step by step with your team and confirm that each step is correct. Invite team members to the project to co-edit in real time. Sometimes it works better if one person operates the tool while the others contribute verbally, depending on the situation and your facilitation style.

Start with the first event, "Lead Created", and follow these steps:

  1. Review the event: Is it correct, or should another event come before it? Rearrange events with drag and drop. To add events manually or with AI, use the menu that appears below a selected event.
A close-up of the Qlerify diagram editor with the 'Lead Created' event selected and its toolbar shown below it. Green callouts point to the 'Add Event' and 'Add Event with AI' icons.
  1. Check the actor or role: Swimlanes represent actors or roles. If the swimlanes are wrong, you can:
    • Rename swimlanes
    • Reorder swimlanes
    • Add swimlanes with the Add lane button below the diagram
    • Drag and drop events between swimlanes
A screenshot of the Qlerify editor highlighting how to manage swimlanes within a diagram. In a CRM process workflow, two green callout boxes point to key features: the first box, labeled 'Rename swimlane,' points to the title of the 'Sales Rep' lane, while the second, 'Reorder swimlane (visible on hover),' points to the up-and-down arrow icons used to change a lane's vertical position.
  1. Open the sidebar: If the event is correct, select it and open the sidebar.
A screenshot of Qlerify with the diagram dimmed and the sidebar open for the 'Lead Created' event. A green callout labels the 'Sidebar'. It lists the event's cards, including Problem ('Incomplete lead info'), Opportunity ('Automate lead capture'), Command ('Create Lead') and Aggregate ('Lead').
  1. In the sidebar, update the command name if needed. You can also change the AI-generated aggregate name.
Note: When you edit the aggregate, a combo box lets you generate entities. Skip that for now and enter the aggregate name as free text.
  1. Identify hotspots (problems and opportunities): Discuss with your team which problems and opportunities exist in this step. Add them manually or with AI. You can revisit all cards later.
  2. Decisions / Policies: In the original Event Storming method, a policy (purple card, or "lie detector") follows each event. In Qlerify, we use Decisions / Policies only at branching points in the process. This departs from the original method, but in our experience it works well.
A Qlerify diagram with a diamond-shaped decision in the 'Sales Manager' lane asking 'Lead status is qualified?'. A 'Yes' path leads to 'Opportunity Created' and a 'No' path leads to 'Lead Closed'. A callout explains that these path labels appear only after a decision and should answer its question.
  1. Alternative approach to decisions: Instead of placing a decision after an event, add a GWT condition to the next event that states what must be true for the workflow to continue.
A screenshot of Qlerify with the 'Opportunity Created' event selected and its details open in the sidebar. A Given-When-Then card states that an opportunity can only be created for a lead the Sales Manager has qualified. A callout summarizes: "The selected event 'Opportunity Created' can only happen if the lead is qualified."

Step 5: Iterate

Repeat Step 4 for each event to refine the workflow. You do not need to finish in one session; you can return to the workflow later with different groups of people.

Things to keep in mind:

  • Complete the happy path first, then the most important alternative paths.
  • Qlerify places start points and the first event of each group at the far left or directly after a vertical divider (a group boundary). Every other event sits one step to the right of its parent. The fixed layout takes some getting used to, but you never have to rearrange boxes and lines by hand.
A screenshot of a complex Qlerify diagram that is organized into 'Phase 1' and 'Phase 2' using a vertical divider. The diagram maps two parallel workflows: a sales process and a customer support process. A callout points to the dividing line, explaining it is a 'Vertical divider, can be dragged horizontally'. Another callout explains a layout rule: 'Starting points displayed fully to the left or after a vertical divider'.
  • To add a start point, click Add start point below the diagram. This adds a new swimlane with a start point in its first group. To place one elsewhere, hover over any cell, open its menu, and choose Add start point here. Start points can be merged with existing events as needed.
A screenshot of a customer support workflow in Qlerify. Below the diagram are the 'Add lane', 'Add start point' and 'Add group' buttons, with a callout explaining that 'Add start point' adds a new lane with a start point in its first group. An open cell menu shows 'Add start point here', 'Add group before' and 'Add group after'.
  • To add a group, click Add group below the diagram, then click where the group should start. You can also add a group next to an existing one from any cell's menu with Add group before or Add group after. To align events horizontally, stack them at the start of a group. We recommend using groups to divide the canvas into phases or stages.
A screenshot of a Qlerify workflow demonstrating the 'Group' feature. A sales process is organized into two groups, visually represented as 'Phase 1' and 'Phase 2' and separated by a vertical line. A callout box above explains the concept: "Groups separated by a draggable vertical divider."

Step 6 (Optional): Read models and commands

Qlerify also supports defining entities, read model attributes, and command attributes. For details, see our guides to Event Modeling and Domain-Driven Design.

Step 7: Aggregates view and bounded contexts

Open the Domain Model tab below the workflow diagram to see commands and events grouped by aggregate.

The view may look like the image below. Each command (blue box) has its event to the right, at the same height. This gives you a summary of your aggregates and the commands available on each.

A screenshot of the 'Domain Model' view in Qlerify, which organizes the system's logic into a structured table with columns for 'Role', 'Command', 'Aggregate', and 'Resulting event'. A green callout box points to the 'Select bounded context' button under the 'Lead' aggregate, used to assign parts of the model to a bounded context.

Next, assign a bounded context to each aggregate by clicking Select bounded context. After you create and select bounded contexts, for example Lead Management and CRM, the view may look like this:

A screenshot of Qlerify's Domain Model organized into two bounded contexts, 'Lead Management' and 'CRM', each shown as a separate box. Callouts mark the bounded context name, the 'Push Spec' tab, and the control for changing an aggregate's bounded context.

Each bounded context box has two tabs: Domain View and Push Spec. Use Push Spec to push the bounded context's domain model specification to a GitHub repository.

Step 8: Wrap up

You have now captured the workflow and the foundation of its domain model.

Finally, plan the problems, opportunities, and GWTs you identified into releases. Use the Backlog or the User Story Map tab below the workflow; this example uses the User Story Map:

  1. Assign each item to a release.
  2. Use the filter above the diagram to focus on one or more releases and see how the planned improvements affect the end-to-end workflow.
A screenshot of the User Story Map feature in Qlerify, which links a process diagram to a release plan. The top half of the screen displays a sales workflow, while the bottom half organizes related work items (like problems and features) into horizontal lanes for 'Release 1' and 'Release 2'. A callout identifies the 'Release 1' lane as the "First release," and another highlights the menu option to "Change release" for a work item.
Best practices for Event Storming
  • Capture events that represent one state change in one system.
  • Exclude events that do not affect a system. For example, "Customer Welcomed to Meeting" matters socially but is unlikely to trigger a system command.
  • Split broad events into separate state changes. For example, instead of "Order Processed", use "Order Validated", "Payment Captured", and "Order Packed".
An abstract diagram showing four parallel, horizontal sequences of colored squares. Each row represents a different workflow or timeline using various colors like green, orange, blue, and purple, and the sequences vary in length and complexity.

Getting Started with Event Storming

We have extensive experience with Event Storming and built Qlerify as a cloud-based tool for the method. Sign up today.

We offer open and custom Event Storming courses in partnership with NFI. More information: Event Storming Course

We also facilitate on-site and remote Event Storming workshops.

Contact us via the form in the footer to discuss how Event Storming can help your organization.

Read our blog post about Event Storming in Swedish.