Skip to content

Workflows ​

A workflow is a map you draw: which agent works first, what decides the next step, where fixed logic runs, and how the work ends. This page covers the canvas, feeding data between steps, running, versions and publishing. Each step kind is explained in Workflow steps.

At a glance ​

WhereSidebar → Build → Workflows
WhoViewer: look (read-only canvas). Author: build, save, run. Approver/Admin: also publish
Before you beginAt least one published agent. The canvas offers only published agents, or create one from a step

1. What it is and why it matters ​

One agent does one job. Real work is several jobs in order, with decisions in between: classify the request, then, only if it is urgent, draft a reply; read the documents, then check coverage, then decide. A workflow puts those jobs on a map so that:

  • the order and the decisions are visible, not buried in code;
  • every run follows the same path for the same facts;
  • each run is recorded step by step, so you can see exactly why it ended where it did.

2. Key ideas ​

IdeaMeaning
StepOne box on the canvas. Kinds: Trigger, Agent, Read documents, Condition, Python step, App step, End
Arrow"When this step finishes, go there." A run follows arrows from the Trigger to an End
CaseThe input of one run, what the person starting it types or uploads
Input mappingFor each value a step needs, where it comes from: the case, an earlier step, a fixed value, or a secret
RunOne pass through the workflow for one case
Draft / LiveRuns from the editor always test the newest draft. Publishing marks one version as the released (live) one

3. Create a workflow ​

  1. Click Workflows, then New workflow.
  2. Type a name over Untitled workflow at the top.
  3. Pick a starting shape:
TemplateShapeGood for
One agentTrigger → Agent → EndThe simplest case
Triage and routeTrigger → Agent → Condition → Agent → End, plus a second EndClassify, then handle each kind differently
Start from a blank TriggerJust the TriggerYou know what you want

Screenshot: Starting shapesNew workflow templates

Every step can be changed once it is on the canvas.


4. Know the canvas ​

Screenshot: A workflow on the canvasThe canvas

Screenshot: The canvas with a step selectedThe canvas

AreaUse
Library → StepsEvery step kind, grouped Start · AI · Logic · People · Actions · Finish
Library → AgentsThe project's published agents; picking one adds a step with it already chosen
Library → AppsConnected app actions, for App steps
Canvas toolbarSelect (V), Pan (H or hold Space), zoom, Fit to screen (F), Tidy up (L), flow direction (left→right or top→bottom), map
Step settingsClick a step. Rename it at the top; ⋯ for Duplicate / Delete; Esc to close
Issues (top bar)The count of problems; each is also shown on its step

Add, connect and remove steps ​

ToDo
Add a step after the selected oneClick it in the Library
Add a step anywhereDrag it from the Library onto the canvas
Add any step by nameCtrl K / ⌘K
Add a step between two othersClick the + on the arrow (Add a step here)
Connect two stepsDrag from the edge of one step to the next
Duplicate / deleteHover the step and use the small toolbar, or ⋯ in its settings. Ctrl/⌘ D duplicates
Undo / redoCtrl/⌘ Z / Ctrl/⌘ Shift Z

The canvas refuses arrows that make no sense, an arrow out of an End, or a loop back to an earlier step, and says why.


5. Feed each step its data (input mapping) ​

An agent declares the inputs it needs (for example request). In the step's settings, under Inputs, you say where each value comes from.

SourceChoose whenExample
From the caseThe person starting the run provides itcase field request
Output of a stepAn earlier step produced itSupport Triage → priority
A fixed valueIt is the same on every runen-GB
A stored secretIt is a credential from the Vaultsecret://project/payer_key
  • Only steps before this one can supply values. If a list says "No steps before this one", connect the arrows first.
  • A required input with no source is an issue that blocks running: "Support Triage" needs "request", and nothing supplies it.
  • Some text fields accept a template mixing words and fields, e.g. Please review {{ $.case.member_id }}. Use Insert field to add a reference. Secrets are never allowed inside a template, because templates can appear in logs.

6. Check the workflow is healthy ​

Studio checks the map as you build. Problems are counted in the top bar and shown on the step. You can save with issues, but you cannot run or publish until they are fixed.

MessageFix
Every workflow needs exactly one Trigger stepKeep one Trigger
Every workflow needs at least one End stepAdd an End
"X" is never reached. Connect it, or remove itDraw an arrow into it
"X" has no next step. Every path must reach an End stepDraw an arrow out of it
"X" has no agent selectedChoose an agent
"X" needs "input", and nothing supplies itMap the input
Path "P" of "X" has no rulesAdd a rule, or remove the path
"X" declares no outputs, so later steps cannot map from itDeclare the Python step's outputs
"X" has no app chosenComplete the App step
…fixed to vN, which is deprecatedChoose Latest or another version

7. Run a workflow ​

Run saves your changes, then tests the newest draft. Nothing is published by running.

  1. Click Run.
  2. If any step reads from the case, the Run workflow window asks for those fields:
    • Fields, one box per field. Text, a number, or JSON all work.
    • JSON, the whole case at once.
    • A Read documents step adds a place to drop files.
  3. Click Run. Your last answers are remembered for next time.

Screenshot: Starting a runThe Run workflow window

The canvas shows each step's progress, and the run bar and run panel open below.

Screenshot: A finished runA completed run

The run bar ​

ShowsMeaning
StatusQueued · Running · Waiting for review · Completed · Failed · Cancelled
Ended at Done · completedWhich End the run reached, and its outcome
6/6 steps · timeProgress and elapsed time
Started by…Who ran it
Open the reviewWhen the run is waiting for a person
CancelWhile the run is going
Open in TemporalAdmins only; an engineering link

The run panel ​

The left list shows each step in the order it ran: Completed, Failed, Skipped (with why, for example Not on the chosen path), or still running. Click a step to see what it received and returned. For an agent step you also see its answer, the tool calls it made and, under What happened, its live log or full trace.


8. Publish a workflow ​

  1. Save your changes.
  2. Run the workflow and let the run finish.
  3. Click Publish vN. The dialog shows what changes from the live version (or, for a first release, the number of steps) and confirms that a test run of exactly this version finished.
  4. Click Publish vN.

Screenshot: PublishingThe publish dialog

The Publish button is blocked, with the reason on hover, until all of these are true:

Reason you may seeMeaning
Save and run your changes before publishing themThere are unsaved changes
Fix the issues on the canvas first§6 is not clean
Run this version and let it finish before publishing itA finished test run of exactly this version is required
An approver or admin publishes workflowsYour role cannot publish
Nothing new to publishNo new draft

As for agents, the person who saved a version cannot publish it unless the installation allows self-approval.

Moving steps only. If you only rearranged the layout, the publish dialog says "Nothing about how it runs, only its layout moved.", and the version number does not change.


9. Versions ​

Click the version badge (e.g. v1 live ▾) beside the name.

Screenshot: The Versions listVersions

  • Each version shows when it was saved, by whom, whether a test run finished, and how many runs it has (click to see them).
  • Restore puts an older version back on the canvas, to save as the next draft.
  • A published version is never edited. Changing a live workflow creates a new draft; the live one keeps its place until the new one is published.

10. Review past runs (the Runs view) ​

Click Runs (beside Editor) to see every run of this workflow.

Screenshot: The Runs view, with one step openRuns view

ControlDoes
SearchCase input or run id
Anyone · Source · Date, status chipsFilter runs
Overview · Steps · What it usedA run's summary; each step's result; the agents and tools it used
Re-runStart a new run with the same input
ComparePut two runs side by side
DownloadThe run as JSON
OpenThe full trace in Traces

Runs started from the editor are labelled Test.


11. Organise workflows ​

Screenshot: Build → WorkflowsWorkflows list

The Workflows list has folders, search, filters and a card or table view. Each workflow's ⋯ menu offers Duplicate… and Download YAML; Import from a file… is under the ▾ beside New workflow. See Organising and moving work.


12. Troubleshooting ​

SymptomLikely causeFix
Library → Agents is emptyNo agent is publishedPublish one, or create one from a step
The step's card says Draft · not publishedIts agent is saved but not publishedOpen the step → Test & publish, then publish
Publish v1 & use is missing after a passing testYou are an Author, the model has no price, or you wrote this version and the installation needs a second personAsk an Approver to publish it from the agent's Publish tab
Fill from the workflow says there is no finished runThe workflow has not been saved and runSave it and run it once
Run is greyedIssues on the canvas, or you are a ViewerFix the issues; ask an Admin for Author
A run is refused at once with a reasonBudget used up, an agent's model unpriced, an MCP server not allowed, or Temporal not configuredRead the message; see Spend or ask an Admin
Input list says No steps before this oneNothing is connected upstreamDraw the arrows first
A step failedBad data, a tool error, an unpublished agentClick the step in the run panel and read its error
A run sits at Waiting for reviewAn agent asked for a personAnswer it in Reviews
The run used an old agent versionThe step is fixed to a versionChoose Latest in the step
The Run window does not ask for a field your Python code readsIt asks only for fields that an input mapping readsUse the JSON tab to include it
Publish refused although you ran itThe run did not finish, or you changed something after itRun again and let it finish

Copyright © 2026 elsai foundry.