Update workflow
Changed on<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Updates a workflow. Send only the fields you want to change. Pass change_summary to label what changed.
Anything you leave out keeps its stored value. Sending a definition that differs from the current one saves it as a new immutable version, and the workflow runs that version from then on. Earlier versions stay readable through List workflow versions.
Updating does not change whether the workflow is running.
This is only allowed from the app's main branch.
<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time. Send only the fields documented here. Other request fields are not supported and their behavior can change.</Warning>
Request
- Base URL: https://app.base44.com
- URL: https://app.base44.com/api/apps/{app_id}/workflows/{workflow_id}
- Auth: HTTP bearer
Path parameters
ID of the app whose workflows you want to work with.
ID of the workflow, as returned in id by List workflows.
Request body
Example request
{
"name": "Email me new signups",
"description": "Sends an email whenever a User record is created.",
"definition": {
"do": [],
"document": {
"dsl": "1.0.0",
"name": "notify",
"version": "1.0.0"
}
},
"trigger": {
"config": {
"cron_expression": "0 9 * * *",
"timezone": "UTC",
"trigger_type": "scheduled"
}
},
"change_summary": "Send to the ops alias instead"
}Response
The updated workflow.
Example response
{
"social_post": {
"platform": "linkedin",
"title": "Meet our new app",
"body": "Our new app is ready to try.",
"hashtags": [
"launch"
]
},
"id": "68b1c0d4e7b91d003c45a1f2",
"app_id": "6820f3a4e7b91d003c45a1f2",
"file_key": "email-me-new-signups",
"name": "Email me new signups",
"description": "Sends an email whenever a User record is created.",
"status": "active",
"status_reason": "consecutive_failures",
"current_version_id": "9f2c1a7b3e5d84f60c1b2a9e7d4f8c3b6a5e2d1f0c9b8a7e6d5c4b3a2f1e0d9c",
"trigger": {
"config": {
"cron_expression": "0 9 * * *",
"timezone": "UTC",
"trigger_type": "scheduled"
}
},
"app_type_context": {
"anchor_message_id": "68b1c0d4e7b91d003c45a1f2",
"conversation_id": "0195f2a1-4c3e-7b21-9f0d-2a5c8e1b4d77"
},
"last_run_at": "2026-08-25T09:12:44Z",
"last_run_status": "success",
"total_runs": 48,
"successful_runs": 44,
"failed_runs": 3,
"created_date": "2026-07-02T11:04:00Z",
"updated_date": "2026-08-20T16:31:00Z",
"created_by": "you@example.com",
"definition": {
"do": [],
"document": {
"dsl": "1.0.0",
"name": "notify",
"version": "1.0.0"
}
}
}Changes
- info
added the optional property
to the response with the status
- info
- info
the endpoint scheme security
PersonalAccessTokenAuthwas added to the API
- info