The editor
The workflow editor walked through tab by tab, plus the configuration panel reference.

workflow.js centre, the tool tabs right.Opening a workflow (Create workflow, or Edit from a row's ⋯ menu), drops you into a drawer with Configuration on the left and the tool tabs on the right. Whether there is a code column between them depends on your workspace.
Code editing is switched off in almost every workspace. It is enabled only for the parent organisation, so unless you are working there, you will not see the middle column at all: the editor shows Configuration and the tool tabs, and the banner reads:
Code editing is switched off for this workspace. Workflows here are generated and updated by the AI builder. It can be switched on if you want to write workflow code yourself; ask fastn to enable it.
Everything else on this page still applies. You change a workflow's behaviour by talking to the agent instead of typing into the file, and you still configure, test, wire connectors, edit the contract, publish and deploy exactly as described below. If you want to write workflow code yourself, ask fastn to switch it on.
The walkthrough below assumes the code column is present. This is roughly the order you move through it.
Set up Configuration
Under Identity, give it a Name (required) and, on a new workflow, a Slug: the slug is fixed once the workflow exists, so choose it deliberately. Description is free text. Under Execution, pick an Execution tier: Instant runs synchronously and caps at 30s, Standard returns 202 and runs up to 15 min, Long returns 202 and runs up to 36 h. The Execution timeout slider is then constrained to that tier.
Full ranges and defaults are in the Configuration panel reference below.
Decide what happens when a run fails
Retry policy is off by default; turning it on exposes Max attempts, Initial interval (ms), Backoff coefficient and Max interval (ms). It only retries transient failures: code errors, data errors and out-of-memory never retry. Escalate on timeout is a separate toggle that retries one tier up on a timeout, and is hidden on the Long tier.
Write the function
The middle column is one <slug>.js file exporting export default async function (ctx). You reach the request through ctx.input and ctx.headers, and connected systems through ctx.connectors and fastn.*. A new workflow is scaffolded for you:
This step is the one that does not apply in most workspaces. With code editing off (the default everywhere but the parent organisation), the file is generated and updated by the AI builder, and you describe the change you want to the agent rather than editing it here. Skip to the next step; everything from there on is identical.
The editor
Opening a workflow opens a drawer laid out as configuration on the left, the tool tabs on the right, and (where code editing is enabled), the code editor between them. That middle column is labelled <slug>.js and JavaScript · export default async function(ctx). A workspace without code editing gets the same drawer minus that column.
Along the top: Discard, the workflow name, Close tab, Save workflow and Publish. Closing with unsaved edits asks first: Discard unsaved changes? / "This workflow has edits that have not been saved. Closing the tab throws them away." / Keep editing / Discard changes.

Configuration panel
Identity
Name
Required. Empty saves are refused with Name is required.
Slug
Required when you create the workflow, and cannot be changed afterwards.
Description
What it does. The agent writes one; edit freely.
Execution
Execution tier
Instant (default) (synchronous, result inline, max 30s. Standard), asynchronous via Temporal, returns 202, max 15 min. Long: asynchronous, returns 202, max 36 h.
Execution timeout
A slider constrained to the tier: 1s–30s, 5s–15min, or 30s–36h. Defaults are 30s, 2.0m and 15.0m respectively.
Status
A toggle, on by default, and shown only on workflows that already exist. Off stops new runs without deleting anything.
WHEN A RUN FAILS
The Retry policy toggle is off by default. Its own description sets the boundary: it retries transient failures, and code errors, data errors and out-of-memory never retry. Turning it on exposes four fields.
Max attempts
1–10
3
Initial interval (ms)
—
5000
Backoff coefficient
—
2
Max interval (ms)
—
60000
Escalate on timeout is a separate toggle, off by default and hidden on the Long tier. On timeout it retries one tier up (instant → standard) and an escalated instant run returns a queued execution id to poll rather than a synchronous result.
PUBLISH & DEPLOY (existing workflows only)
Publish snapshot: freezes the current code and configuration as a version.
Deploy to environment: sends a published version to an environment.
Underneath: a row showing the environment's current status.
Last updated
Was this helpful?

