Your first workflow
A good first workflow proves the loop — build, run in development, inspect real outputs — without touching external services at all. This page gives you a prompt to paste and the standard a complete result should meet.
The prompt
Section titled “The prompt”Use Controller AI to create a workflow named “Welcome message.” It should accept a person’s name and return a friendly greeting containing that name. Build and test it in development with two realistic inputs. Do not publish it. Tell me exactly what passed and what still needs attention.
No integrations, no sends — pure input → expression → output. That makes it a safe end-to-end exercise of the whole build machinery: flows, typed inputs, expressions, dev runs, execution inspection.
What happens under the hood
Section titled “What happens under the hood”The coding agent will:
- Create the workflow and a flow with one typed text input.
- Wire an expression that builds the greeting from the input — Controller AI expressions are a restricted JavaScript syntax (template literals, string methods), not a template language.
- Run the flow on the development version with two representative inputs.
- Read the execution results — actual output values, not just statuses.
What a complete result looks like
Section titled “What a complete result looks like”- The workflow and flow that were created or changed.
- The development runs that executed, with their inputs.
- The observed outputs — the actual greeting strings, not a green checkmark.
- Any unresolved node, expression, or type issue.
- Confirmation the workflow remains unpublished.
You can verify independently at any time:
cai workflow statuscai exec listWhere to go from here
Section titled “Where to go from here”- Add a real step: Nodes and components — discovery, connections, configuration order.
- Give it an entry point: Triggers — schedules, webhooks, email, and app events.
- Understand what runs where before publishing anything: Versions and rails and Safety and blast radius.