Product Types
Element types that document user needs, product structure and discovery artefacts.
Product types document user needs, product structure, and discovery artefacts — personas, problems, stories, releases, experiments, and the feedback and insights that feed them. In the editor they live under Types → Domains → Product. Stories, journeys, and feedback name their persona in a persona field, or you can draw a connection from the Persona element on canvas.
Every type below can be a bpmn:task or — once it has children — a bpmn:subProcess container; types marked container by default are placed as containers. All of them accept the universal attributes. In the tables, dai:-prefixed keys are attributes on the element; keys marked † are stored as <dai:field key="…"> children (see Where values go).
There are 16 types in this category: Criteria, Epic, Experiment, Feature, Feedback, Hypothesis, Insight, Journey, Metric, Outcome, Persona, Problem, Release, Roadmap, Story, To-do.
Criteria
dai:type="dai.types.product.criteria" · no dai:stepType
The conditions work must meet to count as done: acceptance criteria, success criteria, a definition of done or exit criteria. Connect it to the Feature, Story or Release it applies to.
| Key | Label | Input | Values / notes |
|---|---|---|---|
criteriaType † | Type | select | acceptance · success · done · exit; default acceptance |
dai:format | Format | select | checklist · gherkin; default checklist |
dai:acceptanceCriteria | Conditions | textarea | - [ ] … or Given … When … Then … |
dai:owner | Owner | text | Responsible person or team |
dai:notes | Notes | textarea |
Epic
dai:type="dai.types.product.epic" · dai:stepType="epic"
A large body of work grouping multiple features or stories under a common strategic theme. Epics represent a significant product investment and typically span multiple sprints or quarters.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:status | Status | select | draft · active · complete · cancelled |
dai:theme | Strategic Theme | text | The strategic initiative this epic advances |
dai:goal | Goal | textarea | What outcome does this epic achieve? Why does it matter to the business and users? |
dai:owner | Owner | text | Product owner or team |
dai:notes | Notes | textarea |
<bpmn:task id="Task_epic" name="Reporting exports" dai:type="dai.types.product.epic" dai:stepType="epic"
dai:status="active" dai:theme="Analyst productivity"
dai:goal="Let analysts move data out of the product without engineering help." />
Experiment
dai:type="dai.types.product.experiment" · dai:stepType="experiment"
A product experiment or A/B test — a structured hypothesis with a success metric, audience, and captured result. Essential for product teams running continuous discovery.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:status | Status | select | draft · running · complete · abandoned |
dai:hypothesis | Hypothesis | textarea | We believe that [change] will result in [outcome] because [rationale]. |
dai:audience | Audience | text | Who is included in this experiment? (e.g. “New users, 50/50 split”) |
dai:successMetric | Success Metric | text | What measurement determines success? (e.g. “≥10% increase in activation rate”) |
dai:result | Result | textarea | What did you learn? Was the hypothesis validated or invalidated? |
dai:notes | Notes | textarea |
<bpmn:task id="Task_exp" name="Guided report starter" dai:type="dai.types.product.experiment" dai:stepType="experiment"
dai:status="running"
dai:hypothesis="We believe that a guided report starter will result in higher activation because new users currently churn before their first report."
dai:audience="Trial signups, 50/50 split" dai:successMetric="≥10% increase in first-week report creation" />
Feature
dai:type="dai.types.product.feature" · dai:stepType="feature"
A discrete product capability that delivers value to users. The core unit of product delivery — sits above user stories and below epics in the agile hierarchy.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:status | Status | select | idea · planned · in-progress · shipped · deprecated |
dai:valueStatement | Value Statement | textarea | This feature enables users to… |
dai:acceptanceCriteria | Acceptance Criteria | textarea | What conditions must be true for this feature to be considered complete? |
dai:owner | Owner | text | Product owner or team |
dai:notes | Notes | textarea |
<bpmn:task id="Task_feature" name="CSV export" dai:type="dai.types.product.feature" dai:stepType="feature"
dai:status="in-progress"
dai:valueStatement="This feature enables users to export any report as a CSV file in two clicks."
dai:acceptanceCriteria="Every report surface has an Export button with format and column options." />
Feedback
dai:type="dai.types.product.feedback" · dai:stepType="feedback"
User feedback or insight as a distinct input artifact. Feeds into Personas, Stories, and Experiments — captures what users said, felt, or did as a first-class node in the product process.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:source | Source | select | user-interview · survey · support-ticket · analytics · social · other |
sentiment † | Sentiment | select | positive · negative · neutral · mixed |
persona † | Persona | text | Which user or persona segment? |
dai:theme | Theme | text | e.g. onboarding friction, missing feature |
dai:notes | Notes | textarea | Summarise the feedback and any direct quotes. |
<bpmn:task id="Task_feedback" name="Export took too many clicks" dai:type="dai.types.product.feedback" dai:stepType="feedback"
dai:source="support-ticket" dai:theme="export friction"
dai:notes="Three tickets this week: 'I had to rebuild my column selection every export.'">
<bpmn:extensionElements>
<dai:fields>
<dai:field key="sentiment">negative</dai:field>
</dai:fields>
</bpmn:extensionElements>
</bpmn:task>
Hypothesis
dai:type="dai.types.product.hypothesis" · no dai:stepType
A testable belief about a change and its effect: we believe [change] for [who] will [result]; we will know when [signal]. Unlike an Assumption it is not taken as true; an Experiment is how you test it.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:hypothesis | Statement | textarea | We believe … for … will … We’ll know when … |
dai:successMetric | Signal | text | e.g. activation +10% |
confidence † | Confidence | select | low · medium · high |
dai:status | Status | select | untested · testing · validated · invalidated; default untested |
dai:owner | Owner | text | Responsible person or team |
dai:notes | Notes | textarea |
Insight
dai:type="dai.types.product.insight" · no dai:stepType
A learning drawn from research, feedback or data, and what it means for the product. Feedback is the raw input; an Insight is the conclusion.
| Key | Label | Input | Values / notes |
|---|---|---|---|
evidence † | Evidence | textarea | |
dai:source | Sources | text | e.g. 12 interviews, Q3 NPS survey |
implication † | Implication | textarea | What we should do differently |
confidence † | Confidence | select | low · medium · high |
dai:theme | Theme | text | |
dai:notes | Notes | textarea |
Journey
dai:type="dai.types.product.journey" · dai:stepType="journey"
A user journey map — the sequence of steps a persona takes to achieve a goal. Documents touchpoints, pain points, and opportunities to improve the experience.
| Key | Label | Input | Values / notes |
|---|---|---|---|
persona † | Persona | text | Which persona takes this journey?; Type the name of a Persona, or draw a connection from a Persona element on canvas to this Journey to link them. |
dai:goal | Goal | text | What is the persona trying to achieve? |
dai:steps | Steps | textarea | 1. Discovers the product via search 2. Visits landing page 3. Signs up for trial … |
dai:painPoints | Pain Points | textarea | Where does the experience break down or frustrate the user? |
dai:opportunities | Opportunities | textarea | Where can the experience be improved or delightful moments created? |
dai:notes | Notes | textarea |
<bpmn:task id="Task_journey" name="New user onboarding" dai:type="dai.types.product.journey" dai:stepType="journey" dai:goal="Reach first successful report within one session."
dai:steps="1. Discovers the product via search 2. Visits landing page 3. Signs up for trial 4. Connects a data source 5. Builds first report">
<bpmn:extensionElements>
<dai:fields>
<dai:field key="persona">Alex the Analyst</dai:field>
</dai:fields>
</bpmn:extensionElements>
</bpmn:task>
Metric
dai:type="dai.types.product.metric" · dai:stepType="product-metric"
A product- or feature-level metric. Distinct from the business KPI (organisation- or initiative-level) — product metrics track north-star signals, engagement, retention, and conversion at the feature or experiment level.
| Key | Label | Input | Values / notes |
|---|---|---|---|
metricType † | Type | select | north-star · engagement · retention · conversion · revenue · other |
currentValue † | Current Value | text | e.g. 42%, 1,200 DAU |
dai:target | Target | text | e.g. 60%, 2,000 DAU |
cadence † | Cadence | select | daily · weekly · monthly · quarterly |
dai:owner | Owner | text | Who is accountable for this metric? |
dai:notes | Notes | textarea | How is this metric measured and why does it matter? |
<bpmn:task id="Task_metric" name="Weekly active exporters" dai:type="dai.types.product.metric" dai:stepType="product-metric" dai:target="2,000">
<bpmn:extensionElements>
<dai:fields>
<dai:field key="metricType">engagement</dai:field>
<dai:field key="currentValue">1,200</dai:field>
<dai:field key="cadence">weekly</dai:field>
</dai:fields>
</bpmn:extensionElements>
</bpmn:task>
Outcome
dai:type="dai.types.product.outcome" · no dai:stepType
The change in user or customer behaviour the product aims for, and how you will measure it. A Key Result is a number for an Objective; AI/ML → Output is something produced.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:audience | Who | text | |
behaviourChange † | Behaviour change | textarea | What people will do differently |
dai:successMetric | Measured by | text | |
dai:target | Target | text | |
dai:status | Status | select | not-started · in-progress · achieved · missed; default not-started |
dai:owner | Owner | text | Responsible person or team |
dai:notes | Notes | textarea |
Persona
dai:type="dai.types.product.persona" · dai:stepType="persona"
A research-based user archetype representing a segment of the target audience. Grounds product decisions in real user needs and connects to Stories, Features, and Journeys.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:role | Role | text | Job title or life role; Connect this Persona to Stories, Features, and Journeys on canvas by drawing connections from this element to link them to this user archetype. |
dai:age | Age Range | text | e.g. 28–35 |
dai:goals | Goals | textarea | What are they trying to achieve? |
dai:frustrations | Frustrations | textarea | What gets in their way? |
dai:behaviours | Behaviours | textarea | How do they currently solve the problem? |
dai:quote | Quote | text | A representative verbatim quote |
dai:notes | Notes | textarea |
<bpmn:task id="Task_persona" name="Alex the Analyst" dai:type="dai.types.product.persona" dai:stepType="persona"
dai:role="Data Analyst" dai:age="28-40"
dai:goals="Export report data to share with stakeholders who don't have system access."
dai:frustrations="Manual copy-paste from tables is error-prone and slow."
dai:quote="I just need to get this into Excel without reformatting everything." />
Problem
dai:type="dai.types.product.problem" · no dai:stepType
A user or customer problem worth solving: who has it, the evidence for it, how often and how badly it hurts, and how people cope today.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:audience | Who has it | text | |
evidence † | Evidence | textarea | Interviews, tickets, data |
dai:frequency | Frequency | select | rare · occasional · frequent · constant |
dai:severity | Severity | select | low · medium · high · critical |
workaround † | Current workaround | textarea | |
dai:owner | Owner | text | Responsible person or team |
dai:notes | Notes | textarea |
Release
dai:type="dai.types.product.release" · no dai:stepType · container by default
A versioned delivery to users. Contains the Features and Stories that ship in it; Roadmap stays the longer planning view.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:version | Version | text | e.g. 2.4.0 |
releaseDate † | Release date | text | e.g. 2026-12-01 |
dai:status | Status | select | planned · in-progress · released · rolled-back; default planned |
channel † | Channel | select | beta · ga · hotfix · internal |
releaseNotes † | Release notes | textarea | |
dai:owner | Owner | text | Responsible person or team |
dai:notes | Notes | textarea |
Roadmap
dai:type="dai.types.product.roadmap" · dai:stepType="roadmap" · container by default
A planning container that sequences Epics, Features, and Milestones over a planning horizon. It is placed as a container — a bpmn:subProcess once it holds children — so you can nest what ships when, in what order. For a single versioned delivery, use Release; Roadmap stays the longer planning view.
| Key | Label | Input | Values / notes |
|---|---|---|---|
horizon † | Horizon | text | e.g. H1 2026, Q3–Q4 2025 |
theme † | Theme | text | e.g. Growth, Platform stability |
status † | Status | select | draft · active · archived |
dai:notes | Notes | textarea | Describe the goals and constraints of this roadmap period. |
<bpmn:subProcess id="Roadmap_1" name="H1 2026" dai:type="dai.types.product.roadmap" dai:stepType="roadmap"
dai:notes="Focus on exports and sharing; platform work only where it unblocks delivery.">
<bpmn:extensionElements>
<dai:fields>
<dai:field key="horizon">H1 2026</dai:field>
<dai:field key="theme">Analyst productivity</dai:field>
<dai:field key="status">active</dai:field>
</dai:fields>
</bpmn:extensionElements>
<bpmn:task id="Task_epic" name="Reporting exports" dai:type="dai.types.product.epic" dai:stepType="epic" … />
</bpmn:subProcess>
Story
dai:type="dai.types.product.story" · dai:stepType="story"
A user story defining a desired outcome from a specific persona’s perspective. Acceptance criteria make it testable; priority makes it actionable.
| Key | Label | Input | Values / notes |
|---|---|---|---|
persona † | Persona | text | Which persona does this story belong to?; Type the name of a Persona, or draw a connection from a Persona element on canvas to this Story to link them. |
dai:notes | Story | textarea | As a [persona], I want [goal] so that [reason]. |
dai:priority | Priority | select | must · should · could · wont |
dai:status | Status | select | backlog · ready · in-progress · done · rejected |
dai:acceptanceCriteria | Acceptance Criteria | textarea | What conditions must be true for this story to be considered done? |
dai:storyPoints | Story Points | number | Effort estimate; min 0 |
<bpmn:task id="Task_story" name="Export report as CSV" dai:type="dai.types.product.story" dai:stepType="story" dai:priority="must" dai:status="in-progress"
dai:notes="As Alex, I want to export any report as a CSV file so that I can share the data with stakeholders in Excel."
dai:acceptanceCriteria="All visible columns are included. Dates are ISO 8601. File downloads immediately on click.">
<bpmn:extensionElements>
<dai:fields>
<dai:field key="persona">Alex the Analyst</dai:field>
</dai:fields>
</bpmn:extensionElements>
</bpmn:task>
To-do
dai:type="dai.types.product.todo" · no dai:stepType
A small action item for the team. Not user value like a Story, and not a defect like Software → Issue.
| Key | Label | Input | Values / notes |
|---|---|---|---|
dai:assignee | Assignee | text | |
dueDate † | Due | text | e.g. 2026-11-01 |
done † | Done | boolean | default false |
dai:priority | Priority | select | high · medium · low |
dai:notes | Notes | textarea |
See also
- Examples — the CSV-export feature models a persona, story, requirement, endpoint, tests, and an issue as one delivery slice