Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

DAI Studio

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.

KeyLabelInputValues / notes
criteriaType †Typeselectacceptance · success · done · exit; default acceptance
dai:formatFormatselectchecklist · gherkin; default checklist
dai:acceptanceCriteriaConditionstextarea- [ ] … or Given … When … Then …
dai:ownerOwnertextResponsible person or team
dai:notesNotestextarea

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.

KeyLabelInputValues / notes
dai:statusStatusselectdraft · active · complete · cancelled
dai:themeStrategic ThemetextThe strategic initiative this epic advances
dai:goalGoaltextareaWhat outcome does this epic achieve? Why does it matter to the business and users?
dai:ownerOwnertextProduct owner or team
dai:notesNotestextarea
<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.

KeyLabelInputValues / notes
dai:statusStatusselectdraft · running · complete · abandoned
dai:hypothesisHypothesistextareaWe believe that [change] will result in [outcome] because [rationale].
dai:audienceAudiencetextWho is included in this experiment? (e.g. “New users, 50/50 split”)
dai:successMetricSuccess MetrictextWhat measurement determines success? (e.g. “≥10% increase in activation rate”)
dai:resultResulttextareaWhat did you learn? Was the hypothesis validated or invalidated?
dai:notesNotestextarea
<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.

KeyLabelInputValues / notes
dai:statusStatusselectidea · planned · in-progress · shipped · deprecated
dai:valueStatementValue StatementtextareaThis feature enables users to…
dai:acceptanceCriteriaAcceptance CriteriatextareaWhat conditions must be true for this feature to be considered complete?
dai:ownerOwnertextProduct owner or team
dai:notesNotestextarea
<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.

KeyLabelInputValues / notes
dai:sourceSourceselectuser-interview · survey · support-ticket · analytics · social · other
sentiment †Sentimentselectpositive · negative · neutral · mixed
persona †PersonatextWhich user or persona segment?
dai:themeThemetexte.g. onboarding friction, missing feature
dai:notesNotestextareaSummarise 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.

KeyLabelInputValues / notes
dai:hypothesisStatementtextareaWe believe … for … will … We’ll know when …
dai:successMetricSignaltexte.g. activation +10%
confidence †Confidenceselectlow · medium · high
dai:statusStatusselectuntested · testing · validated · invalidated; default untested
dai:ownerOwnertextResponsible person or team
dai:notesNotestextarea

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.

KeyLabelInputValues / notes
evidence †Evidencetextarea
dai:sourceSourcestexte.g. 12 interviews, Q3 NPS survey
implication †ImplicationtextareaWhat we should do differently
confidence †Confidenceselectlow · medium · high
dai:themeThemetext
dai:notesNotestextarea

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.

KeyLabelInputValues / notes
persona †PersonatextWhich 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:goalGoaltextWhat is the persona trying to achieve?
dai:stepsStepstextarea1. Discovers the product via search 2. Visits landing page 3. Signs up for trial …
dai:painPointsPain PointstextareaWhere does the experience break down or frustrate the user?
dai:opportunitiesOpportunitiestextareaWhere can the experience be improved or delightful moments created?
dai:notesNotestextarea
<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.

KeyLabelInputValues / notes
metricType †Typeselectnorth-star · engagement · retention · conversion · revenue · other
currentValue †Current Valuetexte.g. 42%, 1,200 DAU
dai:targetTargettexte.g. 60%, 2,000 DAU
cadence †Cadenceselectdaily · weekly · monthly · quarterly
dai:ownerOwnertextWho is accountable for this metric?
dai:notesNotestextareaHow 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.

KeyLabelInputValues / notes
dai:audienceWhotext
behaviourChange †Behaviour changetextareaWhat people will do differently
dai:successMetricMeasured bytext
dai:targetTargettext
dai:statusStatusselectnot-started · in-progress · achieved · missed; default not-started
dai:ownerOwnertextResponsible person or team
dai:notesNotestextarea

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.

KeyLabelInputValues / notes
dai:roleRoletextJob 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:ageAge Rangetexte.g. 28–35
dai:goalsGoalstextareaWhat are they trying to achieve?
dai:frustrationsFrustrationstextareaWhat gets in their way?
dai:behavioursBehaviourstextareaHow do they currently solve the problem?
dai:quoteQuotetextA representative verbatim quote
dai:notesNotestextarea
<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.

KeyLabelInputValues / notes
dai:audienceWho has ittext
evidence †EvidencetextareaInterviews, tickets, data
dai:frequencyFrequencyselectrare · occasional · frequent · constant
dai:severitySeverityselectlow · medium · high · critical
workaround †Current workaroundtextarea
dai:ownerOwnertextResponsible person or team
dai:notesNotestextarea

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.

KeyLabelInputValues / notes
dai:versionVersiontexte.g. 2.4.0
releaseDate †Release datetexte.g. 2026-12-01
dai:statusStatusselectplanned · in-progress · released · rolled-back; default planned
channel †Channelselectbeta · ga · hotfix · internal
releaseNotes †Release notestextarea
dai:ownerOwnertextResponsible person or team
dai:notesNotestextarea

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.

KeyLabelInputValues / notes
horizon †Horizontexte.g. H1 2026, Q3–Q4 2025
theme †Themetexte.g. Growth, Platform stability
status †Statusselectdraft · active · archived
dai:notesNotestextareaDescribe 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.

KeyLabelInputValues / notes
persona †PersonatextWhich 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:notesStorytextareaAs a [persona], I want [goal] so that [reason].
dai:priorityPriorityselectmust · should · could · wont
dai:statusStatusselectbacklog · ready · in-progress · done · rejected
dai:acceptanceCriteriaAcceptance CriteriatextareaWhat conditions must be true for this story to be considered done?
dai:storyPointsStory PointsnumberEffort 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.

KeyLabelInputValues / notes
dai:assigneeAssigneetext
dueDate †Duetexte.g. 2026-11-01
done †Donebooleandefault false
dai:priorityPriorityselecthigh · medium · low
dai:notesNotestextarea

See also

  • Examples — the CSV-export feature models a persona, story, requirement, endpoint, tests, and an issue as one delivery slice