Skip to main content
GET
Get 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.

Response

The workflow, including its current definition.

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: