Update workflow
Updates a workflow. Send only the fields you want to change.
Anything you leave out keeps its stored value, so a rename is just {"name": "..."}. Changing definition saves a new immutable version and the workflow runs it from then on; earlier versions stay readable through List workflow versions. Pass change_summary to label what changed.
Renaming to a name another live workflow already uses returns a 409. An invalid definition returns a 422 with the validation errors, and nothing is saved.
Updating does not change whether the workflow is running. It also rewrites the workflow’s file in the app’s code.
This endpoint is limited to 30 requests per minute.
Authorizations
Personal API key.
Path Parameters
ID of the app whose workflows you want to work with.
ID of the workflow, as returned in id by List workflows.
Body
New name. Leave it out to keep the current one.
"Email me new signups"
New description. Leave it out to keep the current one.
"Sends an email whenever a User record is created."
New definition. Sending one saves a new version. Leave it out to keep the current one.
New trigger, same shape as on create. Leave it out to keep the current one.
Note describing this change, kept in the version history.
"Send to the ops alias instead"
Response
The updated workflow.
ID of the workflow.
"68b1c0d4e7b91d003c45a1f2"
ID of the app the workflow belongs to.
"6820f3a4e7b91d003c45a1f2"
Name of the workflow.
"Email me new signups"
Whether the workflow runs: active, inactive, or archived.
"active"
Name of the workflow's file in the app's code. null on workflows saved before files were kept.
"email-me-new-signups"
What the workflow is for.
"Sends an email whenever a User record is created."
Why Base44 stopped the workflow itself, as a fixed code: consecutive_failures, end_condition_reached, migration_activation_failed, or workflows_not_available. null when you set the status yourself.
"consecutive_failures"
Version the workflow runs today, as the SHA-256 hash of that definition. null until a definition is saved.
"9f2c1a7b3e5d84f60c1b2a9e7d4f8c3b6a5e2d1f0c9b8a7e6d5c4b3a2f1e0d9c"
What starts the workflow. The trigger sits under config, keyed by trigger_type.
Which app surface the workflow was authored against.
When the workflow last started running. null before its first run.
"2026-08-25T09:12:44Z"
How that run ended: success, failed, or cancelled. null before the first run. Note this is a different set of values from a run's own status, which reports completed rather than success.
"success"
Runs that have failed in a row. Resets on the next success.
0
Runs the workflow has started, ever.
48
Runs that finished successfully, ever.
44
Runs that ended in an error, ever.
3
When the workflow was created.
"2026-07-02T11:04:00Z"
When the workflow was last changed.
"2026-08-20T16:31:00Z"
Email of whoever created the workflow.
"you@example.com"
The steps the workflow runs, as a CNCF Serverless Workflow v1.0 document. null when no version has been saved yet. Only this endpoint returns it; the list endpoint does not.