Skip to main content

Incident Triage and Routing

The only multi-branch Coral workflow in this repository assembled one action at a time, with a screenshot after every command. Seventeen stills, 00 through 16, from an empty canvas to a published flow.

FactValue
TenantCypherdyne (darbotlabs / darbot@timelarp.com)
Workflow id29162552-181c-6272-eadf-4638b99c471e
Capturescaptures-2026-06-17/showcase/annotated/00..16
Built2026-06-17
Branches3

Every other workflow record in this repository is either a node-type inventory (see Phase 7, which captured thirteen node types in isolation) or a linear three-step pipeline (see Phase 8). This is the only one that shows a branch being created, configured, and completed.

The pattern​

Start (trigger: text input "incidentText")
-> Variable severity = "unclassified" (String)
-> Classify incidentText into { Critical | Standard | Other }
Critical -> Human review (Outlook approval: Title / Message / Assigned to)
Standard -> Agent (GPT model, free-text triage response)
Other -> Note (sticky: manual-triage fallback, no automated action)

Each branch terminates differently on purpose, and the three endings are the point of the build:

  • Critical blocks on a person. The workflow stops until someone approves.
  • Standard delegates to a model. The workflow continues without a human.
  • Other does nothing automated at all.

The third ending is the unusual one. A Note is a canvas sticky, not a step - it is not wired into the flow and does not execute. Placing one on the Other branch documents, inside the artefact itself, that the branch is deliberately unautomated. The alternative - leaving the branch empty - is indistinguishable from an unfinished workflow.

The Variable node earns its place​

severity = "unclassified" is set before Classify runs, and Classify never writes back to it.

That looks redundant, and in this workflow it is: nothing reads severity downstream. It was included to capture the Variable node's configuration surface

  • name, Type dropdown, Value field - in a realistic position rather than in isolation. The generalisable version of the pattern is a pre-seeded default that downstream branches overwrite, so that a branch which fails to set it still yields a defined value rather than an empty one.

Build order​

17 of 17 steps
#CaptureStep
0000-workflows-list-darbotlabsWorkflows list in the darbotlabs environment; New workflow entry point.
0101-new-blank-canvasBlank canvas with the single Start (trigger) node; left Add palette.
0202-renamed-workflowRename the workflow title to "Incident Triage and Routing".
0303-trigger-input-typesTrigger config: pick an input type.
0404-trigger-input-text-addedText input incidentText added to the trigger.
0505-add-action-catalogAdd-action catalog (Agent / Classify / Variable and the rest).
0606-node-variable-severityVariable node: name=severity, Type=String, Value=unclassified.
0707-add-catalog-after-variableAdd next action after Variable, selecting Classify.
0808-classify-configuredClassify configured with Critical / Standard / Other plus descriptions.
0909-human-review-critical-branchHuman review on the Critical branch (config panel).
1010-human-review-configuredHuman review configured (Channel=Outlook, inputs mapped).
1111-human-review-completeCritical branch complete.
1212-agent-standard-branchAgent node on the Standard branch.
1313-agent-configured-cleanAgent configured, no errors (fit-to-view).
1414-add-catalog-other-branchAdd action on the Other branch.
1515-note-other-branchYellow Note (fallback) on the Other branch.
1616-publishedPublished; success banner, Test enabled.

Branches are completed one at a time - Critical fully configured at 11 before Standard is started at 12. That ordering was not aesthetic. Configuring two branches concurrently means two open config panels competing for the same canvas, and the designer does not handle that well (Phase 8).

Gotchas confirmed during this build​

Agent Output defaults to Text response, and should stay there​

Selecting Structured output or Custom structured output adds required property fields, which triggers "Fix 1 error before publishing" and reinstates the Setup needed badge on a node that was already clean.

await page.getByRole('option', { name: 'Text response' }).click();

Use structured output only when every required property will actually be filled. This behaviour recurred during the Phase 8 rebuild two days later.

Escape closes the panel and commits​

Pressing Escape while an Output dropdown is open closes the entire node panel and commits an unintended value. Click the desired option explicitly.

The Note node is a sticky​

Test id action-item-canvasNote. It is not wired into the flow. Editing it takes a double-click, which focuses a textarea; set the value, then click empty canvas to commit. Clicking away without committing discards the text.

Save and Publish​

The Save button carries test id save-button and is disabled when the workflow is already saved - a disabled Save is the success state, not a failure. Publish via:

await page.getByRole('button', { name: 'Publish', exact: true }).click();

Publish takes roughly eight seconds. Afterwards the tooltip changes to "Republish to re-enable the running flow (no new changes)" and Test enables.

Captures​

17 of 95 captures
Showcase: Workflows list in darbotlabs environment
68. showcaseShowcase: Workflows list in darbotlabs environmentcaptures-2026-06-17/showcase/annotated/00-workflows-list-darbotlabs.png
Showcase: New blank canvas with Start trigger node
69. showcaseShowcase: New blank canvas with Start trigger nodecaptures-2026-06-17/showcase/annotated/01-new-blank-canvas.png
Showcase: Renamed workflow to Incident Triage and Routing
70. showcaseShowcase: Renamed workflow to Incident Triage and Routingcaptures-2026-06-17/showcase/annotated/02-renamed-workflow.png
Showcase: Trigger input type picker
71. showcaseShowcase: Trigger input type pickercaptures-2026-06-17/showcase/annotated/03-trigger-input-types.png
Showcase: Trigger text input incidentText added
72. showcaseShowcase: Trigger text input incidentText addedcaptures-2026-06-17/showcase/annotated/04-trigger-input-text-added.png
Showcase: Add-action catalog
73. showcaseShowcase: Add-action catalogcaptures-2026-06-17/showcase/annotated/05-add-action-catalog.png
Showcase: Variable node severity=unclassified (String)
74. showcaseShowcase: Variable node severity=unclassified (String)captures-2026-06-17/showcase/annotated/06-node-variable-severity.png
Showcase: Add action after Variable -> Classify
75. showcaseShowcase: Add action after Variable -> Classifycaptures-2026-06-17/showcase/annotated/07-add-catalog-after-variable.png
Showcase: Classify configured (Critical/Standard/Other)
76. showcaseShowcase: Classify configured (Critical/Standard/Other)captures-2026-06-17/showcase/annotated/08-classify-configured.png
Showcase: Human review on Critical branch
77. showcaseShowcase: Human review on Critical branchcaptures-2026-06-17/showcase/annotated/09-human-review-critical-branch.png
Showcase: Human review configured (Outlook)
78. showcaseShowcase: Human review configured (Outlook)captures-2026-06-17/showcase/annotated/10-human-review-configured.png
Showcase: Critical branch complete
79. showcaseShowcase: Critical branch completecaptures-2026-06-17/showcase/annotated/11-human-review-complete.png
Showcase: Agent node on Standard branch
80. showcaseShowcase: Agent node on Standard branchcaptures-2026-06-17/showcase/annotated/12-agent-standard-branch.png
Showcase: Agent configured, no errors
81. showcaseShowcase: Agent configured, no errorscaptures-2026-06-17/showcase/annotated/13-agent-configured-clean.png
Showcase: Add action on Other branch
82. showcaseShowcase: Add action on Other branchcaptures-2026-06-17/showcase/annotated/14-add-catalog-other-branch.png
Showcase: Note fallback on Other branch
83. showcaseShowcase: Note fallback on Other branchcaptures-2026-06-17/showcase/annotated/15-note-other-branch.png
Showcase: Published; success banner, Test enabled
84. showcaseShowcase: Published; success banner, Test enabledcaptures-2026-06-17/showcase/annotated/16-published.png

What this build does not prove​

The workflow published. It was never run.

No incident text was ever submitted to the trigger, so Classify has not been observed routing anything, the Outlook approval has not been sent, and the Agent on the Standard branch has not produced a triage response. The three-way branch is confirmed to be constructible and publishable; its routing behaviour is unverified.