Skip to main content
The composable workflow editor includes an AI assistant that can build, edit, explain, and debug the current workflow graph. Tell it what you want, such as “send a Slack digest when new pricing signals are extracted,” and it can add blocks, configure fields, connect nodes, and lay out the canvas.
The Workflow AI Assistant is available in the composable workflow editor for v2 workflows. Legacy template workflows do not have this chat panel.

Where to Find It

Open a composable workflow at /workflows/v2/:id. The assistant lives in the right-side Chat panel next to the canvas. Agent edits are the same kind of in-memory editor changes you could make manually. They do not persist until you click Save. When the agent is working, the editor may show:
  • An animated busy ring around the canvas.
  • An agent cursor over the node being edited.
  • Tool-call rows in chat showing what changed.

What You Can Ask

The assistant can help with:
  • Build from scratch: “Create a weekly Slack digest of severe customer signals.”
  • Edit a workflow: “Replace the webhook with a Slack message to #customer-alerts.”
  • Explain a graph: “What does this workflow do?”
  • Debug a failed run: “Why did the latest test fail?”
  • Generate filters: “Only include external customer signals with negative sentiment from enterprise accounts.”

Tool Surface

The assistant uses a bounded tool set. Some tools run on the server, and others mutate the in-memory editor state in the browser.
ToolWhat It Does
list_block_typesReads the server block registry, including block names, categories, output fields, and config schemas.
get_recent_runsReads recent runs for the current workflow, optionally filtered by status.
get_runReads detailed per-node output and errors for one run.
get_workflowReads the current in-memory graph, name, and description.
add_nodeAdds a block from the catalog to the canvas.
update_node_configSets one config field with a literal, ref, or template value.
update_node_nameRenames a block.
remove_nodeRemoves a block and its edges.
connect_nodesAdds an edge, rejecting cycles, duplicates, and self-loops.
remove_edgeRemoves a connection.
auto_layoutTidies the canvas after structural edits.
generate_signal_filterConverts a natural-language signal filter into the JSON filter envelope used by workflow signal blocks.

Filters and Variables

For signal workflows, ask in plain language:
Only high-severity churn risk signals from external customers this month.
The assistant calls generate_signal_filter, stores the returned filter as a literal config value, and the normal signal filter UI can render it later. For other fields, the assistant uses:
  • Refs for direct upstream values, such as a trigger’s callId.
  • Templates for text with multiple values, such as a Slack message body.
  • Resource literals for connected resources, such as a selected Slack channel.

Debugging Runs

Use Run History for visual inspection, or ask the assistant to inspect recent runs. It can read run status, run-level errors, node-level errors, and truncated node output. If you click Fix with agent from a run or node error, BuildBetter sends that failure context into the chat so the assistant can propose and apply graph edits.

What the Assistant Will Not Do

  • It will not save the workflow. You choose when to click Save.
  • It will not enable or disable the workflow.
  • It will not invent blocks outside the registered block catalog.
  • It will not execute arbitrary JavaScript.
  • It does not bypass integration requirements for Slack, webhooks, or external APIs.
The assistant can edit the graph, but testing still uses real action blocks. Review destinations before running a test.
Start with “Build a workflow that…” for the first draft, then ask for one specific refinement at a time. The assistant can inspect the current graph between turns, so incremental edits are easier to review.