Workflows
Workflows are the core of CFFBRW. You write automation in markdown, the AI compiles it into an execution plan, and Cloudflare runs it on the edge.
Creating a Workflow
- Go to Workflows in the sidebar
- Click New Workflow
- Choose Start from Blank or pick a template
- Give your workflow a name
The Markdown Editor
The left pane is a markdown editor. Write your workflow as a series of steps under a ## Steps heading:
# My Workflow
## Steps
### 1. Fetch user data
Get the user profile from https://api.example.com/users/123
### 2. Analyze the data
Using the user data from step 1, summarize their activity in one paragraph.
This step depends on step 1.
### 3. Send notification
Post the summary to the #updates Slack channel.
This step depends on step 2.
Tips for writing good steps:
- Use numbered headings (
### 1.,### 2.) for clarity - Mention dependencies explicitly: "depends on step 1"
- Be specific about URLs, formats, and expected outputs
- The AI is smart about parallelism — if two steps don't depend on each other, it runs them simultaneously
Compiling
Click Compile to translate your markdown into an execution plan. The compilation pipeline runs five stages automatically:
- Enrich — Injects context into the AI prompt: your MCP tools, connector catalog, workspace settings, and any recovery history from past runs.
- Screen (Pro plans) — AI pre-screens your markdown for common issues like missing inputs or ambiguous references before compilation starts.
- Compile — AI generates the execution plan: parses your step descriptions, infers the DAG, classifies each step into a type (
http_request,ai_call,transform,connector, etc.). Uses structured output (the AI fills in a form rather than generating raw JSON) to eliminate formatting errors. - Resolve — Maps any connector steps to exact catalog entries. If the AI described an intent like "send a Slack message," Resolve matches it to the precise Slack connector action and parameter names.
- Validate — Runs 9 semantic checks: dependency references, connector contracts, expression syntax, and more. If validation catches errors, the compiler automatically retries (up to 2 times), feeding the specific errors back to the AI so it can fix them.
Plans are cached by content hash — recompiling the same markdown costs zero AI credits.
After compilation, the right pane shows the DAG view — a visual graph of your steps with color-coded nodes by step type and arrows showing dependencies.
Recompiling with Feedback
After a run completes, you can improve the plan:
- Click Improve Plan on the run results
- Type your feedback (e.g., "step 3 should use POST not GET", "add error handling for the API call")
- Click Send
- The AI recompiles your workflow, incorporating your feedback plus any recovery history from past runs
This creates a new plan version. Old runs always keep their original plan — you can go back and view exactly what ran.
The DAG View
The DAG (Directed Acyclic Graph) shows your workflow's execution plan visually:
- Nodes represent steps, color-coded by type:
- Blue:
http_request - Purple:
ai_call - Green:
transform - Orange:
conditional - Yellow:
loop - Pink:
human_approval - Teal:
mcp_call - Indigo:
connector - Gray:
code,wait
- Blue:
- Arrows show dependencies between steps
- Parallel steps appear side-by-side (no arrows between them)
Click any node to open the Step Detail Drawer with full configuration, input references, and (after a run) the step's output.
Running
Click Run to execute the current plan. The DAG updates in real-time via WebSocket:
- Running steps pulse with a shimmer animation
- Completed steps turn green with a checkmark
- Failed steps turn red
- Skipped steps (from conditional branches) appear at 50% opacity
Each step shows its execution time. Click a node to see the full output.
Variables
Some workflows need runtime variables (API keys, parameters). When you run, a dialog lets you provide variables referenced in your markdown as {VARIABLE_NAME}.
Publishing
Publishing makes your workflow available for:
- API triggers — call via
POST /v1/trigger/:workflowIdwith an API key - Cron schedules — run on a recurring schedule
- Webhook triggers — fire from external services
To publish: go to your workflow → Settings → click Publish.
Note: API keys can only run published workflows. Draft workflows can only be run from the dashboard.
Sharing
Share a read-only view of your workflow:
- Go to workflow Settings → Sharing
- Click Generate Share Link
- Copy the link — anyone with it can view the workflow and its latest run (no login required)
The shared view shows the DAG, step outputs, and execution timeline but does not allow editing or running.
Plan Versions
Every compilation creates a new plan version. You can:
- View the Plan History to see all versions
- See a diff between versions (added, removed, changed steps)
- Old runs always reference their original plan — they never silently change
This means you can safely iterate on your workflow without losing the history of what actually ran.