After an administrator installs the app, open it from Apps in the Jira top navigation. The app opens as a global page with six tabs: Projects, Dependencies, Roadmap, Summary, BPMN, and UML.
You'll only ever see projects and issues you already have permission to view in Jira. The app does not widen your access.
Lists your projects with per-project statistics. Use the search box to filter by name, and the facet controls to narrow by project lead, status, or date range.
Renders issue dependency links as a graph. Circular dependencies are detected automatically and flagged so you can break the loop before it stalls delivery.
Plots epics on a timeline using their start and due dates. Overlapping date ranges are highlighted to surface potential resource conflicts.
Aggregated metrics across the projects you can see.
The BPMN tab is a full BPMN 2.0 modelling canvas. Diagrams are organised in a library on the left, each one tied to a Jira project.
Any diagram element can be linked to a Jira issue and a Confluence page. Once linked, the element offers one-click navigation to that resource — useful for connecting a process step to the work that implements it.
Use the simulation control to step a token through your process and confirm the paths behave as you expect before relying on them.
Each BPMN diagram has its own Automation Rules panel, where you build the rules and decision tables covered in section 6 and section 7.
The UML tab works the same way as BPMN, but diagrams are written as text using Mermaid syntax rather than drawn on a canvas. The editor is split: Mermaid source on the left, a live preview on the right that updates as you type (briefly debounced, so it doesn't re-render on every keystroke).
Unlike BPMN, the Save button does not wait for you to edit the template first — you can save the starter template as-is if you just want to reserve the diagram name, then come back and flesh it out.
Anything Mermaid supports will render. The most common for UML work:
| Type | Opening keyword |
|---|---|
| Class diagram | classDiagram |
| Sequence diagram | sequenceDiagram |
| State diagram | stateDiagram-v2 |
| Entity relationship | erDiagram |
| Use case diagram | usecaseDiagram |
| Flowchart | flowchart TD |
classDiagram
classA <|-- classB : Inheritance
classC *-- classD : Composition
classE o-- classF : Aggregation
classG <-- classH : Association
classK <.. classL : Dependency
sequenceDiagram
Client->>API: POST /orders
API->>Database: insert order
Database-->>API: order id
API-->>Client: 201 Created
Tip: If the preview goes blank and a red error box appears, the syntax is incomplete — often mid-edit. Your text is never lost; fix the line and the preview returns. For full syntax reference, see the Mermaid documentation.
Use the − / + buttons to zoom the preview, or click the percentage to reset to 100%.
Zoom affects only your view; it isn't saved with the diagram.
The UML tab does not currently have a properties panel, linked-resource attachments, token simulation, or automation rules — those are BPMN-specific, since Mermaid diagrams are plain text rather than a canvas of connected elements. Versioning, revert, and real-time collaboration work identically on both tabs.
BPMN and UML diagrams share the same version model. Every save creates a new, permanently numbered version — nothing is ever overwritten.
v1-draft or approved-2026-Q3). Required.Select any version from the history to open it in the editor. The version you're viewing is shown in the header so you always know whether you're looking at the latest state.
Reverting to an older version does not delete anything. It copies that version's content forward as a brand new version at the top of the history, marked as a revert and recording which version it came from. The full trail stays intact and auditable, and a revert can itself be reverted.
Deleting a diagram from the library removes it and its entire version history. This cannot be undone, and requires edit permission on the associated project.
Every BPMN diagram has its own set of automation rules, managed from the diagram's Automation Rules panel. A rule has four parts, built top to bottom: a trigger (when it runs), conditions (whether it should run this time), an optional decision table (see section 7), and actions (what it does).
Each rule has an Enable / Disable toggle — disabling a rule keeps its configuration without deleting it. Unsaved edits are kept as a local draft in your browser and restored if you navigate away and come back, with a banner reminding you to press Save Rules to make them permanent.
A rule fires when a matching Jira issue event occurs on its diagram's project:
| Trigger | Fires on |
|---|---|
| Issue Created | A new issue is created |
| Issue Updated | Any issue field changes (this is also the fallback when no more specific trigger below matches) |
| Issue Transitioned | The issue's status changes; optionally restrict to a specific To status |
| Priority Changed | The issue's priority field changes |
| Issue Assigned | The issue's assignee field changes |
| Comment Added | A comment is added to the issue |
Not yet functional: Due Date Reached, Sprint Started, and Sprint Completed appear in the trigger list, but the app has no scheduled or sprint-lifecycle event source wired up yet — rules using them will never fire. Don't build on these three until a future release adds the underlying trigger.
Conditions are combined with AND — every condition on the rule must be true. Each condition compares one field to a value:
| Field | Compares against |
|---|---|
| Status, Priority, Issue Type | The name of that field (e.g. "High", "Bug") |
| Assignee | The assignee's display name |
| Labels | The issue's labels, joined together — contains is usually the right operator here, not equals |
| Components | The issue's components, joined together — same note as Labels |
Available operators: equals, does not equal, contains, does not contain, is empty, is not empty, greater than, less than.
Known limitation: the Custom Field condition type does not currently work as a way to check an arbitrary custom field's value — avoid it for now. Stick to Status, Priority, Issue Type, Assignee, Labels, and Components.
Actions run in the order listed, after conditions pass:
| Action | Value / target field |
|---|---|
| Set Field Value | fieldKey:value — e.g. customfield_10010:5 |
| Transition Issue | The target status name, e.g. Done (must be a status reachable from the issue's current status) |
| Add Comment | The comment text |
| Assign To | The assignee's Atlassian account ID — not their name or email |
| Add Label / Remove Label | The label text |
| Create Linked Issue | PROJECTKEY|Issue Type|Summary text |
| Call Webhook | A URL; the app POSTs the issue's key and full issue JSON to it |
Known limitation: Send Notification appears in the action list but is currently a no-op — it doesn't send anything. Use Add Comment or Call Webhook if you need someone notified.
A failed action (for example, transitioning to a status that isn't reachable, or an invalid account ID) is logged on the backend and simply skipped — it does not stop the rest of the rule's actions from running, and it does not surface an error anywhere in the Jira UI. If an automation seems to be partially working, check each action's value carefully rather than assuming a full failure.
A decision table lets one rule produce different outcomes depending on the issue, without writing a separate rule for every case. It sits between a rule's conditions and its actions, inside the Decision Table (DMN) block of the rule editor.
For each input column with a value in a given row, the app maps the column's label to an issue field — "Priority" → the issue's priority name, "Issue Type" → its issue type name, "Status" → its status, "Assignee" → the assignee's display name, "Labels" / "Components" → the joined list — and checks it for an exact, case-insensitive match against the cell's text. A row only matches if every one of its non-empty input cells matches.
| # | Priority (input) | Issue Type (input) | Action (output) |
|---|---|---|---|
| 1 | Highest | Bug | assign:5f8a...accountId |
| 2 | Highest | transition:In Progress | |
| 3 | Bug | Needs triage — please review |
Row 1 only matches Highest-priority bugs. Row 2 matches any Highest-priority issue regardless of type (empty Issue Type cell). Row 3 matches any bug regardless of priority.
A cell in an output column only becomes a real action if that column's label contains the word "action" (case-insensitive) — rename output columns you want to execute to something like "Action" or "Escalation Action". Columns without "action" in the name are evaluated but ignored, which is useful for a purely informational column you just want visible in the table.
Inside an action-labelled output cell, a prefix on the value picks what kind of action it becomes:
| Cell value starts with | Becomes |
|---|---|
transition:<status> | Transition the issue to that status |
assign:<accountId> | Assign the issue to that account ID |
| anything else | Added as a comment, verbatim |
The hit policy controls what happens when more than one row matches the same issue:
| Hit policy | Behaviour |
|---|---|
| First (F) | Uses only the first matching row, top to bottom, and stops there. |
| Unique (U) | Expects exactly one row to match. If more than one matches, no action runs at all — this is silent, not an error you'll see anywhere, so design your rows to be mutually exclusive if you use this policy. |
| Any (A) | Allows multiple matching rows, but only if they all produce the same output values. If they disagree, no action runs (same silent behaviour as Unique's failure case). |
| Collect (C) | Runs the actions from every matching row, not just one. Use this when you deliberately want several outcomes to stack (e.g. both a comment and a transition from two different rows). |
Design tip: because Unique and Any fail silently rather than showing an error, test a new decision table on a sample issue and confirm the expected action actually happened, rather than trusting the table in isolation.
A rule's conditions (section 6) are still evaluated first, as a gate for the whole rule — the decision table only runs for issues that already passed the rule's conditions. Use conditions to scope which issues a rule looks at, and the decision table to branch the outcome for those issues.
Access to a diagram — and its automation rules — follows the Jira project it belongs to. If you can edit issues in that project, you can create, edit, revert, and delete its diagrams and rules. If you can't, diagrams open in a read-only view with editing controls hidden, and the Automation Rules panel shows only a rule count.
If a teammate saves a diagram you have open, a notification appears at the top of the editor. If you have no unsaved changes, the editor refreshes to their version automatically. If you do have unsaved changes, the app will not discard them — instead you'll see a conflict warning with two choices:
If a Jira project is deleted, its diagrams remain but are marked with a warning badge and become read-only, since permissions can no longer be evaluated. Any signed-in user may delete them to clean up.
Saving requires a version name in the Save as field. For a new diagram, it also requires a diagram name that isn't already in use. If neither applies, you may not have edit permission on the project.
This is a Mermaid syntax error, not a saved-data problem. The error text names the line at fault. Your source text is untouched — correct the syntax and the preview re-renders.
Diagram rendering requires a current browser. On Safari, version 17.4 or newer is needed. Updating the browser, or switching to a recent Chrome, Edge, or Firefox, resolves it.
Work through these in order:
assign: decision-table output, did you use an account ID rather than a name?Unsaved work is never silently overwritten — a conflict prompt always appears first. If you chose Reload remote, your unsaved edits were discarded by that choice. Any version that was actually saved is still recoverable from the diagram's history.
Either it was deleted, or it belongs to a project you no longer have access to. Check with your Jira administrator.
Email: felixtrihardjo@gmail.com
Response time: We aim to respond within 5 business days.