Skip to main content
PUT
Update workflow

Authorizations

Authorization
string
header
required

Personal access token, sent as Authorization: Bearer <token>.

Path Parameters

app_id
string
required

ID of the app whose workflows you want to work with.

workflow_id
string
required

ID of the workflow, as returned in id by List workflows.

Body

application/json
name
string | null

New name. Leave it out to keep the current one. Must be unique among the app's workflows that are not archived, so renaming to one another live workflow already uses is rejected.

Example:

"Email me new signups"

description
string | null

New description. Leave it out to keep the current one.

Example:

"Sends an email whenever a User record is created."

definition
Definition · object | null

New definition. Leave it out to keep the current one. One that differs from the current definition is saved as a new immutable version, and the workflow runs it from then on. An invalid definition is rejected with the validation errors, and nothing is saved.

Example:
trigger
Trigger · object | null

New trigger. Leave it out to keep the current one. See Triggers for its shape.

Example:
change_summary
string | null

Note describing this change, kept in the version history. This is only recorded when definition actually changes, since that's what creates the version it's attached to.

Example:

"Send to the ops alias instead"

Response

The updated workflow.

id
string
required

ID of the workflow.

Example:

"68b1c0d4e7b91d003c45a1f2"

app_id
string
required

ID of the app the workflow belongs to.

Example:

"6820f3a4e7b91d003c45a1f2"

name
string
required

Name of the workflow.

Example:

"Email me new signups"

status
string
required

Whether the workflow runs: active, inactive, or archived. See Workflow status for what each means and how it changes.

Example:

"active"

social_post
WorkflowSocialPost · object | null

Current post content for a social publishing workflow, or null when no linked post is available.

file_key
string | null

Name of the workflow's file in the app's code. This is null on workflows saved before files were kept.

Example:

"email-me-new-signups"

description
string | null

What the workflow is for.

Example:

"Sends an email whenever a User record is created."

status_reason
string | null

Why Base44 changed the workflow's status on its own, as one of consecutive_failures, end_condition_reached, migration_activation_failed, or workflows_not_available. This is null when you changed the status yourself. See Workflow status for what each code means.

Example:

"consecutive_failures"

current_version_id
string | null

Version the workflow runs today, as the SHA-256 hash of that definition. This is null until a definition is saved.

Example:

"9f2c1a7b3e5d84f60c1b2a9e7d4f8c3b6a5e2d1f0c9b8a7e6d5c4b3a2f1e0d9c"

trigger
Trigger · object

What starts the workflow. The trigger sits under config, keyed by trigger_type.

Example:
app_type_context
App Type Context · object | null

Caller-specific context captured when the workflow was created, such as the conversation that authored it. This API never sets it, so a workflow you create through it starts with null. Updating a workflow through this API doesn't clear an existing value either, so a workflow originally authored through the Base44 app editor or a superagent keeps its context here even after an API update.

Example:
last_run_at
string<date-time> | null

When the workflow last started running, as an ISO 8601 UTC timestamp. This is null before its first run.

Example:

"2026-08-25T09:12:44Z"

last_run_status
string | null

How the workflow's most recent run ended: success, failed, or cancelled. This is null before the first run. See Workflow status for how this compares to a run's own status.

Example:

"success"

consecutive_failures
integer
default:0

Runs that have failed in a row. Resets on the next success.

Example:

0

total_runs
integer
default:0

Runs the workflow has started, ever.

Example:

48

successful_runs
integer
default:0

Runs that finished successfully, ever.

Example:

44

failed_runs
integer
default:0

Runs that ended in an error, ever.

Example:

3

created_date
string<date-time> | null

When the workflow was created, as an ISO 8601 UTC timestamp.

Example:

"2026-07-02T11:04:00Z"

updated_date
string<date-time> | null

When the workflow was last changed, as an ISO 8601 UTC timestamp.

Example:

"2026-08-20T16:31:00Z"

created_by
string | null

Email of whoever created the workflow.

Example:

"you@example.com"

definition
Definition · object | null

The steps the workflow runs, as a CNCF Serverless Workflow v1.0 document. This is null when no version has been saved yet. Only this endpoint returns it. List workflows leaves it out.

Example: