BPMN is the flowss studio for modelling business processes in standard BPMN 2.0 notation. It is a full visual modeller: you drag events, tasks, gateways, pools and lanes onto a canvas, connect them with sequence flows, and fill in the runtime details a Camunda 8 engine needs (job types, forms, assignments, input and output mappings) in a properties panel. Around the modeller sit the tools that make a process trustworthy: two independent linters with one-click repairs, a deadlock check, a token-flow simulator with batch experiments and a cost model, an event-log miner that discovers a process from your data, AI that drafts and reviews processes, a readable process handbook export, per-diagram version history, comments and live collaboration. You open it at /bpmn. This page is a complete tour of every control in the studio.
At a glance
| Item | Detail |
|---|---|
| Address | /bpmn. A share link opens at /bpmn?d=...; a template deep link opens at /bpmn?template=<id> |
| Who can open it | Signed-in accounts on Starter, Plus, Ultra or Enterprise. A signed-out visitor is asked to sign in first; Free accounts are sent to /pricing |
| Notation | BPMN 2.0, with the Camunda 8 (Zeebe) extensions in the properties panel |
| Modes | Design, Implement, Play |
| Inspector tabs | Properties, Variables, Source XML |
| Health checks | Problems (bpmnlint, 16 rules) and Compliance (an independent structural check), merged into one status badge, plus a deadlock (soundness) check |
| Templates | 35 canonical processes in Browse templates |
| Ways in | New blank diagram, templates, .bpmn / .xml files, pasted XML, photo of a sketch, event-log mining (CSV), the universal import, share links, Send to from another studio |
| Exports | .bpmn XML, SVG, PNG (2x), PDF (one A4 page), PNG to clipboard, process handbook as HTML or Markdown |
| Saving | Automatic, a moment after each change, in your browser and your Library |
| Version history | Up to 20 saved versions per diagram, with a "what would change" comparison before restoring |
| AI | The flowss BPMN Agent: Quick generate and refine, a review-only analyst, photo to BPMN, Fix with the flowss BPMN Agent, and multi-step modelling as the Process architect |
| Collaboration | Element-anchored comments; live sessions with one active editor at a time ("the pen") |
Plans and access
BPMN is one of the workstations that opens from Starter upwards. Inside the studio, AI and live collaboration follow the platform-wide rules.
| What | Free | Starter | Plus | Ultra | Enterprise |
|---|---|---|---|---|---|
| Open the BPMN studio | No (sent to /pricing) | Yes | Yes | Yes | Yes |
| Modelling, linting, simulation, mining, exports, versions, comments | No | Yes | Yes | Yes | Yes |
| The flowss BPMN Agent (generate, refine, analyst, photo, Fix with the flowss BPMN Agent, Process architect) | No | With your own AI key | Hosted AI points or your own key | Hosted AI points or your own key | Hosted AI points or your own key |
| Host a live session | No | No | Yes, up to 3 people (you included) | Yes, no cap | Yes, no cap |
| Join someone else's live session | No (Free cannot open BPMN) | Yes | Yes | Yes | Yes |
| Voice and screenshare in a live session | No | No | No | Yes | Yes |
On the plans that can open BPMN there is no limit on how many diagrams you keep in the studio. Comments are not plan-gated inside the studio: anyone who can open BPMN can comment on their own diagrams. See Plans and what they include, AI points and limits and Bring your own AI key.
The screen
BPMN uses the flowss "islands" layout: the canvas fills the window and the controls float over it in small groups, so most of the screen is your diagram. A tour of the workspace explains the layout shared by every studio; here is what each island holds in BPMN.
| Where | Island | What it holds |
|---|---|---|
| Top left | Identity | The studio switcher, the diagram title (click to rename, ▾ to switch diagrams), the status badge (save state and health) and the ⋮ file menu |
| Top right | People | Comments (with a count), Play the simulation / Stop the simulation, and Share |
| Left edge | Rail | The modelling palette (tools, elements) and the Implement toggle at its foot |
| Bottom centre | Prompt | "Describe or change the process…" with Quick and Agent modes, an attach button and suggestion chips. During Play, the simulation controls take its place |
| Bottom right | View | Undo, redo, zoom, a light/dark switch, the layout switch and the help menu |
| Right edge | Drawer | One surface at a time: the Inspector, the Comments panel, or the flowss BPMN Agent — Process architect. Opening one puts the others away |
| Over the selection | Selection toolbar | Colour, Properties, Comment, a one-click fix when one exists, runtime wiring chips in Implement, and More actions |
On a phone-width screen the rail moves into a dock along the bottom and the inspector becomes a bottom sheet.
When the canvas holds only the starting event of a new diagram (and you are in Design mode), a card reads Describe or drag a process with the line "Drag a shape from the rail, or describe the process in the prompt below.", a Templates… button, and links to Open a .bpmn file and Mine an event log. The prompt shows three starter chips: Insurance claim, Order to cash and Approval flow; each sends a full request (for example "Order-to-cash with payment and shipment swimlanes") to the AI. The card disappears as soon as the diagram has content, something is selected, or an import banner is showing. The chips can be hidden for good with Hide suggestions.
Diagrams in your workspace
The studio holds several diagrams at once, like tabs. The diagram on the canvas is the "open" one; the others wait in the switcher behind the title.
Switching, creating and renaming
- Click the ▾ beside the title to open the switcher. It lists every diagram (the open one is ticked), offers New diagram at the foot, and has duplicate and delete actions on each row. Once you have more than seven diagrams a Find a diagram search box appears at the top.
- Click a row to open that diagram. With more than one diagram you can also press ⌥⌘← and ⌥⌘→ (Alt+Ctrl+arrow on Windows) to step to the previous or next one.
- To rename the open diagram, click its title, type, and press Enter or click away. Titles are limited to 80 characters. An empty title is not saved.
Everything that brings in a new diagram opens it in its own tab rather than replacing what you have: New blank diagram, a template, an opened file, pasted XML, a share link, an import from another studio and a mined process. Nothing you are working on is overwritten.
Duplicating and deleting
Duplicate current diagram (in the ⋮ menu, or the duplicate button on a switcher row) copies the open diagram, including its latest edits, into a new tab next to it.
Delete diagram… (in the ⋮ menu) asks for confirmation. For a diagram called Order flow, the dialog is titled Delete "Order flow"? and explains that the diagram is removed from the workspace along with its saved versions, comments and simulation setup, and that it moves to the library trash, where it can still be recovered. Press Delete or Cancel. If it is your only diagram, deleting it starts a fresh blank one. If a live session is sharing the diagram you delete, you leave the session ("Left the live session — the diagram it was sharing was deleted here").
The delete action on a switcher row asks through your browser's own confirmation box instead ("Delete “Order flow”? This cannot be undone."). It does the same thing as the menu item: the diagram's versions, comments and simulation setup are removed, and the diagram itself goes to the library trash.
Saving
Saving is automatic. About a third of a second after your last change, the diagram is written to your browser and to its record in your Library, so a drag of many small moves costs one save. The status badge shows saving, then saved. The diagram is also saved when you switch to another diagram, close the page, or switch away from the browser tab. Its popover shows how many diagrams are in the workspace.
If the browser's storage for the site is full, the badge turns to an error, and you see "Couldn't save — this browser's storage for the site is full. Your work is still on screen: export it (.bpmn) or delete a diagram to free space." Before giving up, the studio trims older version snapshots and tries again; if that works you see "Storage was full — dropped N older version snapshot(s) to make room for your diagram".
If you have the same diagram open in two browser tabs, they reconcile instead of overwriting each other. A tab with no unsaved work follows the newer copy. A tab with unsaved work of its own keeps it, and the other tab's copy is saved as a version whose title ends in "— saved in another tab".
For syncing between devices, see Cloud sync, offline work and devices.
The ⋮ file menu
Every document verb lives in the ⋮ menu beside the title, in the same order every flowss studio uses. Each row is also a ⌘K command with the same name.
| Section | Rows |
|---|---|
| New and open | New blank diagram, Open .bpmn file…, Duplicate current diagram |
| Templates | Browse templates |
| Import ▸ | Photo → BPMN, Mine process from event log, Import from paste, link or camera |
| Export ▸ | Export PNG (⇧⌘P), Export SVG (⇧⌘S), Export PDF, Copy PNG to clipboard, Export BPMN 2.0 XML, Export process handbook (HTML), Export process handbook (Markdown) |
| Send | Send to another studio… |
| History | Open versions, Save version |
| Document | BPMN 2.0 · Camunda 8 (opens the BPMN learn track) |
| Danger | Delete diagram… |
Some verbs live only in ⌘K: Copy share link, Fit diagram to view, Undo, Redo, Keyboard shortcuts, Toggle comments, and the live-session verbs (Share live (collaborate), Copy live session link, Leave live session, Take or request the pen, Join voice (beta), Leave voice, Share your screen (voice)).
Warning: Diagrams, versions, comments and simulation setups are kept in this browser first. If you clear this site's data or work in a private window, anything that has not synced to your account can be lost. Export important diagrams as .bpmn from time to time.
Modelling on the canvas
The canvas is the bpmn-js modeller, the same engine behind the Camunda Modeler, so its gestures will be familiar if you have used that tool. Behind the diagram is a dot grid that moves with the canvas as you pan and zoom.
The tool rail
The rail is regrouped into three sets plus the mode toggle. Each entry is a real button with a name, reachable with the keyboard (Tab to the rail, arrow keys between tools).
| Group | Tool | What it does |
|---|---|---|
| Navigate | Hand tool (H) | Pan the canvas by dragging |
| Navigate | Lasso tool (L) | Drag a free shape to select several elements |
| Navigate | Create or remove space (S) | Drag to push elements apart or pull them together |
| Navigate | Connect (C) | Draw a connection between any two elements |
| Flow | Events — start, intermediate, end | Click for a menu of Start event, Intermediate or boundary event and End event. Dragging the button straight out places a start event |
| Flow | Gateway | An exclusive gateway (change its type afterwards with the replace menu) |
| Flow | Task | A task (change it to a user, service, script task and so on with the replace menu) |
| Flow | Sub-process | An expanded sub-process |
| Containers | Data — object, store | Click for Data object or Data store. Dragging out places a data object |
| Containers | Pool | A participant pool (add lanes from its context pad) |
| Containers | Group | A visual group |
| Mode | Implement — the runtime wiring | Switches between Design and Implement (see below) |
Placing, connecting and editing elements
- Click a rail entry and then click on the canvas to place it, or drag it straight onto the canvas.
- Select an element to see its context pad to the right of it. It offers the next elements you can append (they are connected automatically), the wrench for replace (change a task into a user task, a gateway into a parallel gateway, an event into a timer event and so on), connect, and delete.
- Double-click an element or press E to edit its label in place.
- Drag a selected element to move it; connected flows follow.
- Press ⌘F (Ctrl+F) to search for an element by name.
The selection toolbar
When something is selected (other than a label), a small toolbar floats just above it. It hides while you drag, zoom or scroll and while Play is running. Press Alt+F10 to move keyboard focus into it.
| Control | What it does |
|---|---|
| Colour | Opens eight swatches (Slate, Blue, Teal, Green, Amber, Red, Purple, Pink) and Clear colour. Colours are stored as standard BPMN colour attributes, so they survive a round trip through .bpmn and show in other tools that support coloured BPMN |
| Properties (⌘.) | Opens the inspector on the Properties tab for this element |
| Comment | Opens the Comments panel, ready to comment on this element |
| Fix button | Appears when a linter finding about this element has a repair (for example Append end event). Its tooltip says whether it is a mechanical one-undo-step repair or one that needs your judgement |
| Wiring chips | In Implement mode only: up to two chips showing the element's runtime wiring (for example "Job type: payment-service"). Clicking one opens Properties |
| More actions (⋯) | Align (with two or more selected): Align left, Align centre, Align right, Align top, Align middle, Align bottom. Distribute (with three or more): Distribute horizontally, Distribute vertically. Then Copy (⌘C) and Delete (⌫) |
Zoom and navigation
The view island in the bottom-right corner holds Undo (⌘Z) and Redo (⇧⌘Z), Zoom out (⌘−), the zoom percentage and Zoom in (⌘+), a light/dark switch, a classic/modern layout switch, and Help. The percentage opens a menu with Zoom to fit, Zoom to 100% (⌘0), Zoom to selection, Full screen and Hide interface (⌥Z); on a phone, where the island has no room for the zoom buttons, the same menu also carries Zoom in and Zoom out. Help opens Keyboard shortcuts and Help centre.
Zoom to fit fits the whole diagram into the part of the canvas the islands do not cover, and never enlarges beyond 100%, so a small process opens at natural size. Zoom to selection frames the selected elements a little closer (up to 150%). Diagrams fit to the view automatically when they are opened or imported.
Design, Implement and Play
The studio has three modes. Design and Implement are toggled by the button at the foot of the rail; Play is the button beside Share. Your last mode (Design or Implement) and inspector tab are remembered between visits; Play is never restored on arrival.
Design
The default mode for drawing the process: palette, canvas, and the properties of whatever is selected.
Implement
Implement shows the runtime wiring of the process. Switching to it opens the inspector on the Variables tab, headed by an Implementation list of every runtime-facing attribute in the model. Each chip names the element and its wiring, and clicking a chip selects that element. The selected element's own wiring also appears as chips on its selection toolbar.
| Wiring kind | Label shown |
|---|---|
| Zeebe task definition | Job type |
| Linked or embedded form | Form |
| Call activity target | Calls process |
| User task assignment | Assignee |
| Message subscription | Correlation key |
| Script | Script |
If nothing is wired yet, the list says "Nothing wired to a runtime yet — select a task and set its job type, form or assignment in Properties." The inspector stays open if you switch back to Design.
Play
Play runs a token-flow simulation over the canvas. It is covered in detail in Simulating a process below.
The inspector
The inspector is the drawer on the right edge, titled Inspector, with three tabs. Open it with Properties on the selection toolbar, ⌘. (Ctrl+.), or ⌘K and the tab name. You can resize it by dragging its edge; it reopens on the tab you used last.
Properties
The BPMN properties panel for the selected element (or for the process when nothing is selected), with the Camunda 8 (Zeebe) providers. Depending on the element it shows groups such as General (id and name), Documentation, and the Zeebe implementation details: task definition (job type and retries), input and output mappings, assignment, forms, called process, message and correlation, timer definitions and conditions. Whatever you set here is written into the BPMN XML and appears on the Variables tab and in the handbook.
Variables
Every process variable the diagram reads or writes, grouped by variable name, with a count per variable. Each entry is tagged in (an input mapping), out (an output mapping or result) or cond (used in a condition), shows the element and the expression, and selects that element when clicked.
| Control | What it does |
|---|---|
| Filter box ("Filter by name, origin, or expression…") | Narrows the list by variable name, element or expression |
| Written by selection | Shows only variables written by an input/output mapping on the selected element. With nothing selected it says "Select an element on the canvas to see what it writes." |
When the model has no variables you see "No process variables" and a hint to add input/output mappings, script results or flow conditions in Properties. A model larger than 4 MB is not read at all; the tab then says "The model was not read" with the reason, rather than claiming there are no variables.
Source XML
The BPMN 2.0 XML the canvas is producing, live, with its size ("BPMN 2.0 · N KB · read-only"). It is read-only: change the diagram on the canvas, or export the XML, edit it in another tool and bring it back with Open .bpmn file… (it opens as a new tab).
Checking your diagram
Two independent checkers read every diagram as you work, and their findings are merged into one number on the status badge beside the title. Click the badge (or press ⇧⌘M) to open the status popover.
The status popover
| Section | What it shows |
|---|---|
| Save state | Saving, saved or the storage error, with "N diagrams in this workspace" or the reason for the error |
| Fix N safe | Shown only when at least one safe repair exists. Applies every safe repair at once; each repair is one undo step. You see "Applied N fixes — undo reverses each", or "No safe fixes could be applied" |
| Problems | The bpmnlint findings on the live canvas. Each row names the element (click it to select the element and scroll to it), the message, and either a fix button or a one-sentence next step. With no findings it reads "No problems." |
| Compliance | Shown only when the second, structural checker has found something bpmnlint has not already reported. Hovering a row highlights the element in rose on the canvas; clicking it scrolls there |
| Readiness | Where the diagram stands overall, on the platform's five-step scale (Empty, Draft, Sound, Reviewed, Publishable), including the result of the deadlock check |
When both checkers report the same issue about the same element (for example, a process with no end event), it is counted once and the Problems row is tagged "· compliance too". The badge's number always equals the two sections added together.
If the bpmnlint ruleset could not load (for example you went offline for a moment), the Problems section warns "bpmnlint didn't run — these rows come from the built-in walker, which never grades an error". The next check tries again.
One-click repairs
| Finding | Fix button | Safe for "Fix N safe"? |
|---|---|---|
| A path dead-ends without an end event, or a process has no end event | Append end event | Yes |
| Two identical sequence flows connect the same pair | Remove duplicate | Yes |
| A gateway with one way in and one way out | Remove & reconnect | Yes (one undo step) |
| An element with no name | Name it (opens the label editor) | No |
| An element with no connections at all | Delete it | No |
A fix that cannot apply because the diagram changed under it says "Couldn't apply the fix — the diagram changed under it; the list will refresh".
Problems rules (bpmnlint)
| Rule | Severity | What to do |
|---|---|---|
| Start event required | Error | Add a start event (circle) and connect it to your first task |
| End event required | Error | Add an end event (bold circle) so every path finishes somewhere |
| No disconnected elements | Error | Drag a sequence flow from a neighbouring element onto this one |
| No duplicate sequence flows | Error | Two identical flows connect the same pair — delete one |
| Label required | Warning | Double-click the element and give it a name |
| No implicit start | Warning | Connect a start event into this element so the process has one explicit beginning |
| No implicit end | Warning | Connect this element onward to an end event |
| Single blank start event | Warning | Keep one unnamed start event; name, type or remove the others |
| Superfluous gateway | Warning | The gateway has one way in and one way out; delete it and connect the flows directly |
| Fake join | Warning | Route the joining flows through a gateway instead of straight into the task |
| Conditional flows | Warning | Give each flow out of the split a condition (Properties, Condition), or mark one as default |
| Sub-process blank start event | Warning | Use a plain (blank) start event inside the sub-process |
| No overlapping elements | Warning | Drag the overlapping elements apart |
| Event sub-process typed start event | Warning | Give the event sub-process's start event a type (message, timer, error…) |
| No implicit split | Warning | Route the outgoing flows through a gateway so the split is explicit |
| Superfluous termination | Warning | A plain end event is enough here |
The studio also adds informational notes the ruleset does not cover, such as "Element is not connected", "Element is an implicit end" and "Element is an implicit start", and a recommendation to name unnamed start and end events.
Compliance rules
| Finding | Severity |
|---|---|
| Process has no start event | Error |
| Process has no end event | Error |
| Sequence flow has no source or target, or points at one that does not exist | Error |
| Sub-process has nodes but no start event | Warning |
| A split whose paths meet again at a different kind of gateway, or are never joined | Error or warning, depending on the case |
| Exclusive gateway with more than one unlabelled outgoing flow | Warning |
| Element with no incoming or outgoing sequence flow | Warning |
| Element with no name | Info |
Each Compliance row includes its own suggested fix in a second line, and a severity tag (error, warn or info). Rows about the whole process rather than one element cannot be highlighted on the canvas.
The deadlock check
Separately from the linters, the studio searches the process graph for deadlocks, for example an exclusive split whose paths feed a parallel join (which jams every case). The verdict feeds the readiness reading and is handed to the flowss BPMN Agent's analyst as a fact. It reads the same graph that Play simulates, so a deadlock it reports is one you can watch happen.
Simulating a process (Play)
Press Play the simulation in the people island to run your process as moving tokens over the canvas. The prompt is replaced by the simulation's transport controls, the right edge shows live analytics, and the selection toolbar is switched off. Press the same button (now Stop the simulation) or the exit control to return to Design. If the canvas is empty, Play shows "Add a start event and some tasks to your process, then press Play to watch it run."
Transport controls
| Control | What it does |
|---|---|
| Reset | Restarts the simulation from the current canvas |
| Step | Advances one step |
| Play / Pause | Runs or pauses the animation |
| Inject a new instance | Starts another case at the start event |
| Speed slider | 0.25x to 4x in 0.25 steps (desktop only; phones run at 1x) |
| Sim setup | Opens the setup panel: durations, branch weights, arrivals, cost rates |
| Analyze | Opens the batch-experiment panel |
| Rebuild the simulation from the current canvas | Picks up edits you made while Play was open |
| Exit simulation | Returns to Design |
Live analytics
| Reading | Meaning |
|---|---|
| Elapsed | Simulated seconds so far |
| In flight | Tokens currently moving |
| Waiting at joins | Tokens parked at a join waiting for their partner branches (shown in amber, only when non-zero) |
| Completed | Cases that reached an end |
| Avg cycle time | Mean time from a case's start to its last token finishing |
| Bottleneck | The busiest element, also ringed in amber on the canvas |
When every case finishes you see "All N instances completed". If some did not, you see "Run over with X/Y completed" and why: cases aborted by the token cap (a runaway loop) or cases that ended without reaching an end event. If every live token is stuck at a join, the panel says "Every token is waiting at a join that can't fire — check the gateway pairing."
If the simulation could not carry part of your model into the run (for example a timer written in a form it cannot price, or a boundary event with no rate), an amber "N modelled details not in this run" note lists each one, so you know what the numbers leave out.
Sim setup
Every field writes straight into the setup, which is saved with the diagram and rebuilds the simulation. An empty field means "use the default".
| Section | Fields |
|---|---|
| Arrivals | New instance every N seconds (empty means off) |
| Tasks & timers | For each task and timer: time in seconds (default 1.6 s for a task; a timer uses the duration in the model) and a cost per hour |
| Lane rates | A cost per hour for each lane (shown when the process has lanes) |
| Branch weights (%) | For each decision gateway, a relative weight per outgoing flow ("auto" by default; the default flow is marked). A flow labelled "30%" on the canvas is picked up automatically |
| Exception rates | For each boundary event, the percentage of visits on which it fires. Left empty ("dwell"), the event races its host on time alone, which can only ever come out as never or always |
Other defaults: 1.1 s to travel a flow and 0.35 s at a gateway. Exclusive gateways choose one branch by weight, parallel gateways fork and wait for all branches, inclusive gateways fork a weighted subset and wait only for branches that can still arrive. A sub-process is simulated as a single step.
Analyze
Analyze pushes a batch of cases through the process instantly, without animation, and reports the distribution.
- Set Cases (1 to 500; default 100) and Every (s), the gap between arrivals (defaults to your arrival setting, or 1.5 s).
- Press Run. A progress line shows cases completed and ticks; Cancel stops it.
- Read the results.
| Result block | Contents |
|---|---|
| Header | "X/Y completed", or "did not finish · X/Y" when the run hit its budget with work still in flight (numbers then cover completed cases only) |
| Cycle time | p50 (median), p90, p99, Mean, Min · Max, Throughput per minute. Percentiles are real observed cycle times |
| Bottlenecks | The top five elements by time, each with a bar split into busy time and time waiting at a join, and its share. The Heat map checkbox shades the canvas by load |
| Cost | Total (batch), Per completed case and the top cost rows, once you set cost rates in Sim setup |
AI in BPMN
All AI features need either hosted AI points (Plus and up) or your own AI key (Starter and up). See AI in flowss.
Quick mode: generate and refine
Type in the prompt ("Describe or change the process…") with Quick selected and press Enter. On a blank diagram the flowss BPMN Agent drafts a complete BPMN 2.0 process with gateways, lanes and events; once there is a diagram, the same prompt refines it ("add a parallel gateway after triage"). The conversation opens in the flowss BPMN Agent sheet above the prompt, with your requests, the agent's notes and a Try row of follow-up suggestions.
Tip: Save a version (⋮ › Save version) before a large AI change. The toast's Undo only lasts while the toast is on screen.
Because an AI result replaces the whole diagram, ⌘Z cannot undo it. Instead, each change by the agent shows a toast "The flowss BPMN Agent's revision was applied — ⌘Z can't reverse an import, but this can." with an Undo button that puts the previous diagram back. Each request is charged as one standard AI call. While the flowss BPMN Agent is working the sheet shows "Working…" and the prompt is disabled, but you can still switch diagrams; a reply that arrives for a diagram you have left is not applied (see Troubleshooting).
If a request fails (for example you are out of points, or the flowss BPMN Agent returned no diagram source), a red banner at the top of the canvas says why, with a Dismiss button.
The analyst
Once the diagram has content, the prompt's chips (shown when you click into the prompt) and the flowss BPMN Agent sheet offer the analyst, labelled "Analyst — reviews, never edits". On an empty diagram the analyst says "Model a process first — the analyst reviews what's on the canvas".
| Action | What it reviews |
|---|---|
| Review soundness | Reports the decided deadlock verdict, then discusses what a search cannot: whether the counterexample is realistic, missing exception paths, loops a real case cannot leave |
| Audit exceptions | Tasks and interactions that can fail or time out with no boundary event, error path, escalation or timeout |
| Suggest improvements | Unnecessary hand-offs between lanes, steps that could run in parallel, rework loops, approvals gating low-risk paths, steps nobody downstream uses |
The analyst is given the same facts you see (the Problems rows, Compliance findings, element counts and the deadlock verdict) and never changes your diagram; its three suggestions can be sent as ordinary refine requests.
Photo to BPMN
Choose ⋮ › Import › Photo → BPMN, or the attach button (Attach a file) on the prompt, and pick an image file of a sketched process. The flowss BPMN Agent recreates it as BPMN with full diagram layout, replacing the open diagram's content. Unlike a Quick-mode change, a photo import offers no Undo toast, so save a version first if you want to keep what is there; ⌘Z cannot undo an import. This is a vision request and costs twice a standard request. If the photo is read as some other kind of diagram, you see "Photo was recognised as engine, not BPMN. Try the relevant workstation instead."
Fix with the flowss BPMN Agent
When an import fails, or succeeds with dropped references, an amber banner at the top of the canvas explains why and offers Fix with the flowss BPMN Agent, which sends the original file and the error to the agent and asks for a version that imports cleanly while keeping your intent. The repaired diagram arrives with the same Undo toast as any change by the flowss BPMN Agent ("The flowss BPMN Agent's repair was applied…"). Dismiss hides the banner.
The Process architect (Agent mode)
In Agent mode the flowss BPMN Agent works as the Process architect. Switch the prompt to Agent and send a request, or choose flowss BPMN Agent — Process architect with ⌘K. A panel titled flowss BPMN Agent opens on the right, with the subtitle "A BPMN 2.0 specialist — it models pools, lanes, gateways and flows step by step, keeping the diagram interchange valid so it always renders." Its own field reads "Describe the process to model — e.g. 'an order-to-cash flow with a credit-check gateway'…". It works through several tool-assisted steps, shows its progress, and applies the result through the same door as any AI change (so the Undo toast appears). An agent run is a multi-step request and is priced as one; see AI points and limits. Example requests it suggests:
- "Model an order-to-cash process with a credit-check exclusive gateway"
- "Add an escalation path if approval takes more than 2 days"
- "Split this into two pools: Customer and Fulfilment, with message flows"
A run is tied to the diagram it started on. If you switch to another diagram while it runs, the result is not applied to the wrong one; you are told to switch back and run it again. The panel is being redesigned; the behaviour described here is what it does. See The flowss Studio Agent and its modes for how agents work across flowss.
Templates
⋮ › Browse templates (or Templates… on the empty canvas) opens BPMN templates: "35 canonical processes — click to load. Each opens in its own tab." The template you loaded last is highlighted.
| Template | What it models |
|---|---|
| Insurance Claim | End-to-end insurance claim approval with a gateway and tasks |
| Loan Approval | Loan approval with an exclusive gateway, service task and message events |
| Pizza Order | The classic BPMN teaching example, with parallel cook and bake |
| Employee onboarding | Offer accepted, then IT provisioning, buddy and paperwork, then ready |
| Leave request | Submit, manager approval, HR record or send back |
| Expense approval | Receipt, policy check, over-threshold approval, reimburse |
| Order fulfilment | Order, pay, pick, pack, ship, close |
| Customer support ticket | Open, triage, solvable?, fix or escalate, close |
| Incident handling | Alert, page, mitigate, postmortem |
| Procurement 3-way match | PO, goods received, invoice, match, pay |
| Hiring loop | Application, screen, interview, offer, hired |
| Software release | Code complete, tests, staging, QA approval, production |
| Loan application | Apply, credit check, underwriting, approve or decline |
| Data pipeline run | Extract, transform, validate, load (or alert) |
| online payment | Customer payment flow with validation gateways |
| leave request | Employee, manager and HR leave-approval workflow |
| customer support ticket | Support ticket lifecycle with an escalation gateway |
| order fulfilment | End-to-end fulfilment from order to ship |
| refund process | Customer-initiated refund with finance approval |
| Order-to-cash with credit check and dunning | Order validation, credit check with a credit-hold review, ship and invoice, then cash applied or a 30/60/90-day dunning cycle to collections; three lanes and message flows to the customer |
| Procure-to-pay with three-way match | Requisition, approval, PO, goods and invoice receipt in parallel, a three-way match with a variance loop, then payment and remittance |
| Employee onboarding through probation | Signed offer to confirmed employment: parallel preparation, day-one induction, a timer-driven 30-day check-in and an end-of-probation decision |
| ITIL incident management with major-incident path | Log, prioritise by impact × urgency, first-line fix, escalation with a resolution timer, a separate major-incident path and auto-closure |
| Loan origination with DMN decision and manual underwriting | A business-rule task evaluates a DMN decision (approve, refer or decline), manual underwriting for referrals, and an offer that is signed or lapses after 30 days |
| Customer support escalation (Tier 1 → Tier 2 → engineering) | Tiered support with a 2-hour escalation timer, a hand-off to engineering and an event-based wait for the customer |
| Invoice approval with timer escalation | Capture, duplicate check, GL coding, approver routing and a 3-day interrupting timer that escalates to the finance manager |
| Hiring collaboration with candidate and screening provider | A collaboration of three pools exchanging ten message flows, with a 7-day offer timer |
| Emergency department patient intake and triage (ESI) | Registration, nurse triage, ESI level, immediate care for ESI 1–2 and a timer-driven re-triage loop for ESI 3–5 |
| Insurance claim from first notice of loss to settlement | FNOL, cover check, fraud scoring with SIU referral, parallel documents and inspection, reserving, and a settlement negotiation loop |
| Software release with parallel quality gates and canary rollout | Four quality gates in parallel, change approval, a canary with a 30-minute bake timer, then promotion or rollback |
| Returns and refunds (RMA) with inspection grading | Eligibility, RMA and label, a 14-day arrival timer, inspection grading and a refund |
| KYC / AML customer onboarding with screening and EDD | Identity verification, sanctions, PEP and adverse-media screening, risk rating, enhanced due diligence and MLRO approval |
| ITIL change enablement (standard, normal and emergency) | Standard, normal (CAB) and emergency (ECAB) change paths, with a backout path and review |
| Quote follow-up with an event-based gateway | Waits for acceptance, a decline or 14 days, with up to two follow-ups before the opportunity is lost |
| Month-end financial close with timer start | A monthly timer start, sub-ledger closes in parallel, reconciliations, consolidation, review and period lock |
The timings, payment terms and service levels in the processes from Order-to-cash onwards are illustrative, and most of their descriptions say so. Replace them with your own before you rely on the model.
The same templates appear in the template gallery; clicking one there opens BPMN with it loaded in a new tab.
Bringing processes in
| Way in | How | Opens as |
|---|---|---|
A .bpmn or .xml file | ⋮ › Open .bpmn file… | A new tab named after the file |
| Pasted BPMN XML | Press ⌘V on the canvas with BPMN XML on the clipboard (text starting <?xml, <bpmn:definitions or <definitions) | A new tab, "Pasted diagram" |
| A photo | ⋮ › Import › Photo → BPMN, or the attach button on the prompt | Replaces the open diagram's content. ⌘Z cannot undo this, so save a version first if you want to keep the current diagram |
| An event log | ⋮ › Import › Mine process from event log | A new tab |
| Anything else | ⋮ › Import › Import from paste, link or camera, the universal import (paste, a URL, a photo or the camera, converted for you). See Importing and converting | A new tab, "Imported diagram" |
| A share link | Open a /bpmn?d=... link | A new tab, "Shared diagram" |
| Another studio | Send to from that studio | A new tab |
Copying and pasting elements within the canvas (⌘C, ⌘V) works as normal and does not trigger an import.
When a file imports with problems, the amber banner says what happened, starting with the file's name: "… failed to import: …" for a file that could not be read at all, or "… imported with N warnings — references that couldn't be resolved were dropped: …" when some references in the file pointed at elements that do not exist. After a failed import you are put back on the diagram you had open; the new tab stays in the switcher with the original bytes so that Fix with the flowss BPMN Agent (or a manual repair) has something to work on. Missing incoming and outgoing references that a file was allowed to omit are repaired automatically, so a valid file does not flood Problems with false "not connected" findings.
The file picker accepts .bpmn and .xml files. If the browser cannot read the file, you see "Couldn't read" with the file's name and the reason, ending "— pick it again".
Mining a process from an event log
Process mining discovers a process map from records of what actually happened. Choose ⋮ › Import › Mine process from event log (or Mine an event log on the empty canvas). The dialog explains: "A CSV of case · activity · timestamp rows becomes a discovered BPMN map — it opens as its own tab."
- Click Open CSV (accepts
.csv,.tsvand.txt) or paste rows into the box. The first line must be a header, for examplecase,activity,timestamp. - Under Column roles, check the detected columns: Case id, Activity, Timestamp (all required) and Resource (optional). The detector shows its confidence, or "not detected — pick the columns yourself".
- Adjust the Noise filter: keep all paths, light, medium or strong. Stronger settings hide rare paths. The map is re-discovered live, with a plain-language description and counts of cases, events, activities, edges kept and variants.
- If some rows could not be used, expand "N rows dropped — why" to see each row and its reason (the first 20 are listed, then "… and N more").
- Press Open as new tab (or Cancel). The new tab is named after the file, for example "orders (mined)", or "Mined process" for pasted rows, and you see "Discovered process opened in its own tab".
Frequencies and durations come from the log; nothing is estimated. If no traces can be built you see "No traces could be built from these roles — check the dropped-row reasons below."
Exporting and sharing
All exports are in ⋮ › Export. Files are named after the diagram title.
| Export | What you get |
|---|---|
| Export PNG (⇧⌘P) | A 2x raster on a white background. If the diagram is too large for a browser canvas at 2x, the scale is reduced and the toast says so; export SVG for full resolution |
| Export SVG (⇧⌘S) | Vector image |
| Export PDF | The 2x raster fitted onto one A4 page, portrait or landscape to suit the diagram's shape |
| Copy PNG to clipboard | The same picture as Export PNG, ready to paste |
| Export BPMN 2.0 XML | A .bpmn file you can open in Camunda Modeler or any BPMN 2.0 tool |
| Export process handbook (HTML) | A self-contained, readable document (<title>-handbook.html): the diagram itself, then Overview, Roles & responsibilities (one row per lane), Steps (type, lane, from and to, notes from each element's documentation), Decisions (each gateway as a table of branch, condition and destination, with the default marked) and the Compliance report |
| Export process handbook (Markdown) | The same handbook as Markdown (<title>-handbook.md), for wikis and pull requests, without the embedded diagram |
Pictures always use the light document palette, whatever your theme, so they read on white pages and slides. Element colours you chose are kept.
Share (people island) opens the Share popover:
- Copy link copies a link that contains the whole diagram, compressed, and confirms "Share link copied" with an Open button. Anyone who opens it gets their own copy in a new tab (they need to be signed in on a plan that includes BPMN; a signed-out visitor is asked to sign in first and then lands on the diagram). Because the diagram travels inside the link, treat it as public. Links longer than about 8 KB are refused by servers, so a large diagram shows "This diagram is too large for a share link (N KB — links over 8 KB are refused by servers). Export it as .bpmn, or use Share live." instead of copying.
- Live session starts or manages a live session (see below). How live sessions work opens the explanation.
- Send converts the diagram and opens it in another studio. ⋮ › Send to another studio… opens the same menu. See Moving work between studios.
For embedding and other formats across flowss, see Exporting your work.
Version history
Each diagram keeps its own history of up to 20 saved versions, stored in your browser.
- Choose ⋮ › Save version to snapshot the diagram now ("Version saved").
- Choose ⋮ › Open versions to open the Versions panel. It lists each version with its title, date, time and size, and has a Save current button. With none saved yet it reads "No saved versions yet. Save one to snapshot the current diagram."
- Click Changes on a version to see what restoring it would do: "Restoring would make N changes", listing elements it Adds back, Removes, Renames, Retypes, elements with Changed details (conditions, documentation, lanes, Zeebe wiring and more), and a flow summary (added, removed, rewired, renamed). Each list shows five entries and "+ N more". A version that differs only in layout says "No structural changes — this version differs only in layout or formatting."
- Click Restore. If your current diagram has content, you are asked "Restore this version?" ("Your current diagram will be replaced. Save it as a version first if you want to keep it.") with Restore and Cancel. A successful restore says "Version restored" and also brings back the version's title.
The studio also saves versions for you in two situations: before a live session overwrites diverging local work (its title ends in "— before live session"; the three most recent are kept) and when another browser tab changed the same diagram. When storage runs out, older versions are trimmed to the five most recent before your diagram is ever refused. See Version history and undo.
Comments
Comments are threads attached to diagram elements. They are saved with the diagram (without changing the .bpmn file) and sync live during a live session.
- Select an element and press Comment on the selection toolbar, or open Comments in the people island.
- Type in the box ("Say something… (⌘↵ to post)") and press ⌘Enter. With nothing selected, the panel says "Select an element on the canvas to comment on it."
- Each thread shows the element it is about; click that chip to select the element. Reply ("Reply… (⌘↵ to post)"), resolve or reopen, or delete the thread.
A comment longer than 2,000 characters is trimmed ("Comment trimmed to 2,000 characters"). A thread keeps 50 messages; past that its oldest replies are removed ("Thread is full — its oldest replies were removed"). A diagram keeps 200 threads; past that the oldest thread is removed ("Comment limit reached — the oldest thread was removed to make room"). The Comments button's count is the number of threads on the open diagram. See Comments and review.
Live collaboration
A live session lets others join the diagram you are working on from a link. BPMN uses a "pen" model: one person edits at a time and everyone else watches the diagram update live. Hosting a session needs Plus (up to 3 people, you included) or Ultra and Enterprise (no cap). The seat count is the host's, but each guest still has to be able to open the BPMN studio: the link leads to /bpmn, so a guest must be signed in on Starter or above (a Free account is sent to the pricing page instead of the session). If your plan cannot host, Start live session is shown locked with a sentence naming the plan that unlocks it.
- Open Share and choose Start live session. The invite link is copied: "Live link copied — anyone who opens it lands in this diagram with you".
- Once someone else has joined, a banner under the top islands shows who has the pen. When someone else has it you see their name followed by "has the pen — watching live. The holder's next update replaces edits you make here." with Request the pen (which changes to "Pen requested…"). When you have it you see You have the pen (with a count of anyone waiting) and Release. When nobody has it, "The pen is free — the next person to edit takes it." with Take the pen. The holder gets a toast such as "Sam asks for the pen" with a Grant button.
- Use Copy live link or Leave session ("Your diagram stays as it is") in the Share popover. Voice is per person and needs Ultra or Enterprise: Join voice (peer-to-peer, beta), then Mute microphone / Unmute microphone, Share your screen / Stop sharing your screen and Leave voice.
A session is pinned to one diagram. If you switch to another tab, incoming edits are not applied there, and a message tells you live edits are still arriving for the shared diagram and to switch back to that tab to follow along; switching back catches you up. Before the session overwrites local edits you made without the pen, the studio saves them as a version. See Live collaboration.
Keyboard shortcuts
Press ? for the in-studio cheat sheet.
| Action | Mac | Windows / Linux |
|---|---|---|
| Undo | ⌘Z | Ctrl+Z |
| Redo | ⇧⌘Z | Ctrl+Shift+Z or Ctrl+Y |
| Copy, paste | ⌘C, ⌘V | Ctrl+C, Ctrl+V |
| Select all | ⌘A | Ctrl+A |
| Delete selection | Delete or Backspace | Delete or Backspace |
| Move selection | Arrow keys | Arrow keys |
| Edit label | E or double-click | E or double-click |
| Hand (pan) tool | H | H |
| Lasso | L | L |
| Space tool | S | S |
| Global connect | C | C |
| Replace element | R | R |
| Find element | ⌘F | Ctrl+F |
| Zoom in, out | ⌘+, ⌘− | Ctrl++, Ctrl+− |
| Reset zoom | ⌘0 | Ctrl+0 |
| Pan canvas | ⌘ plus arrow keys | Ctrl plus arrow keys |
| Export PNG | ⇧⌘P | Ctrl+Shift+P |
| Export SVG | ⇧⌘S | Ctrl+Shift+S |
| Inspector | ⌘. | Ctrl+. |
| Focus the prompt | ⌘/ | Ctrl+/ |
| Document status | ⇧⌘M | Ctrl+Shift+M |
| Previous, next diagram | ⌥⌘←, ⌥⌘→ | Alt+Ctrl+←, Alt+Ctrl+→ |
| Selection toolbar | Alt+F10 | Alt+F10 |
| Hide interface | ⌥Z | Alt+Z |
| Command palette | ⌘K | Ctrl+K |
| Keyboard shortcuts | ? | ? |
⌘K also takes you to any screen by name: Design, Implement, Play, Properties, Variables, Source XML, Problems, Compliance, Comments, flowss BPMN Agent and flowss BPMN Agent — Process architect. See Keyboard shortcuts for platform-wide keys.
Tips
- Start from a template or the flowss BPMN Agent, then use Fix N safe to clear the mechanical problems before you look at the rest.
- Label every outgoing flow of an exclusive gateway with its condition; the Compliance check, the handbook's decision tables and the simulator all read those labels. Writing "30%" on a flow also sets its simulated branch weight.
- Use Changes in Versions before restoring; it tells you exactly what would come back and what would be lost.
- Set cost rates on lanes in Sim setup, then run Analyze with 200 to 500 cases to compare two versions of a process.
- Put the purpose of each task in its Documentation field in Properties; the handbook export turns it into readable step notes.
- If Analyze reports "did not finish" and the live analytics show tokens waiting at a join, look for an exclusive split feeding a parallel join.
Limits and known constraints
- BPMN needs a Starter plan or above; Free accounts cannot open it.
- Diagrams and their versions, comments and simulation setups are stored in your browser first. A browser's storage for a site is limited (typically around 5 MB), and version snapshots are the largest thing kept. Export important diagrams as
.bpmn. - Up to 20 versions per diagram; when storage is short they are trimmed to 5.
- Share links are limited to about 8 KB; larger diagrams must be exported or shared live.
- PNG and PDF exports are rasters; very large diagrams are exported below 2x. SVG has no resolution limit.
- The Source XML tab is read-only.
- The Variables tab and the handbook do not read models larger than 4 MB.
- Live sessions have one editor at a time; there is no simultaneous co-editing in BPMN. Guests need an account that can open BPMN (Starter or above).
- The Problems list falls back to a simpler built-in check, which never grades anything an error, if the bpmnlint ruleset cannot load.
- AI changes replace the whole diagram and cannot be undone with ⌘Z; use the toast's Undo or a saved version.
- The simulator treats a sub-process as a single step, uses fixed or configured service times, and leaves unpriced boundary events out of the run (it lists them).
- Analyze runs at most 500 cases per batch.
Troubleshooting
| You see | What it means and what to do |
|---|---|
| You are sent to the pricing page when opening /bpmn | Your plan does not include BPMN. Upgrade to Starter or above |
| "The modeler is still loading — try again in a moment." | You clicked an export before the canvas finished loading. Wait a second and try again |
| "Couldn't save — this browser's storage for the site is full…" | Export the diagram as .bpmn, then delete diagrams you no longer need. Some private browsing windows block storage entirely |
| "This tab's stored diagram failed to load, so edits here are NOT being saved over it…" | The saved copy could not be opened, so the studio protects it. Use Fix with the flowss BPMN Agent in the banner, or open a replacement file |
| "… failed to import: …" (after the file or diagram name) | The file is not valid BPMN 2.0 with a diagram section. Use Fix with the flowss BPMN Agent, or export it again from the source tool |
| "The stored diagram failed to import: …" | The diagram saved for this tab could not be opened when the studio started. Use Fix with the flowss BPMN Agent in the banner, or open a replacement file |
| "… imported with N warnings — references that couldn't be resolved were dropped" | Some references in the file pointed at missing elements and were removed. Check the diagram, or use Fix with the flowss BPMN Agent to repair from the original |
| "… didn't import — its stored XML is broken" (after the diagram's name) | That tab's saved content is damaged; you stay on the previous diagram. The tab keeps its content for a repair |
| "The rejected import couldn't be undone on screen — reload the page; your saved diagram is untouched." | A failed import emptied the canvas and the studio could not redraw your diagram. Reload; nothing stored was changed |
| "… was for a diagram that has since been closed — nothing was changed." | A result from the flowss BPMN Agent (Quick, Process architect or photo) arrived after you deleted the diagram it was for |
| "Couldn't save the version — this browser's storage for the site is full…" | Export the diagram (.bpmn) or delete a diagram, then save the version again |
| "… was also changed in another tab. That tab's copy is saved in Versions — this tab keeps yours." | The same diagram was edited in two browser tabs. Compare and restore from ⋮ › Open versions if you want the other copy |
| "Couldn't bank a backup of your local diagram before the live session overwrites it — storage is full…" | Export the diagram (.bpmn) right away if you want to keep your local edits |
| "Model a process first — the analyst reviews what's on the canvas" | The analyst needs a diagram with content |
| "The pen lives inside a live session — hit "Share live" first" or "Screensharing rides the voice call — join Voice first" | Start a live session (and join voice) before using these ⌘K verbs |
| "This diagram is too large for a share link…" | Export it as .bpmn, or start a live session |
| "The clipboard is only available on a secure (https) page." | Copying needs a secure page; use the export instead |
| "Exported PNG (N×) — this diagram is too large for 2× in a browser canvas…" | Expected for very large diagrams. Use Export SVG for full resolution |
| "The flowss BPMN Agent's revision was for "A" and you're now on "B" — it wasn't applied…" (or the same about its result or a photo) | You switched diagrams while the flowss BPMN Agent was working. Switch back to "A" and run it again |
| "Photo was recognised as …, not BPMN" | The photo looks like another kind of diagram; open it in the studio it suggests |
| "bpmnlint didn't run — these rows come from the built-in walker…" | The rule engine failed to load; the next edit retries. Reload the page if it persists |
| "Couldn't apply the fix — the diagram changed under it…" | The list refreshes; apply the fix again from the new row |
| "Nothing to write up yet — model a process first" | The handbook needs more than an empty diagram |
| "Couldn't load the handbook builder…" | A network hiccup or an updated site. Reload the page and try again |
| "Every token is waiting at a join that can't fire…" | Your gateways are mismatched, for example an exclusive split joined by a parallel gateway |
| "No traces could be built from these roles…" | The selected columns do not form cases. Check the column roles and the dropped-row reasons |
| "Voice rides a live session — hit "Share live" first" | Start a live session before joining voice |
| "This diagram is too large to sync live…" | Your edits stay in your copy until the diagram is smaller |
| "One diagram couldn't be reopened…" | A diagram listed in your workspace has no content on this device (deleted, or never synced here) |
For anything else, see Troubleshooting and FAQ.
Related pages
- BPMN learn track: a seven-minute guided introduction
- The BPMN engine reference and Process, operations and quality engines
- Weave for free-form process maps without BPMN semantics
- Sketch for drawing a process by hand before modelling it
- Your library and Version history and undo
- Moving work between studios
- Live collaboration and Comments and review
- AI in flowss, AI points and limits and Bring your own AI key
- Exporting your work
- Plans and what they include
