Workflows
List Workflows
List compact Discourse Workflow summaries. Requires an admin API key.
Parameters
filterstringtrigger_ typestringtagsArray<string>cursorstringlimitinteger[1, 100]25exclude_ idstringGet Workflow
Get the complete round-trippable workflow graph. GET immediately before updating it.
Body
idstring | integerrequiredWorkflow ID
List Workflow Node Types
List a slim catalog, or pass identifier for schemas, ports, and output contracts. Authoring loop: inspect the slim node catalog, request identifiers for schemas and output keys, resolve entity ids, create from a template or complete graph, GET before edits, test the draft, then publish. Interpolating strings start with =. Filter/if use leftValue/rightValue and output ports true/false. Connection type is the source output key, not always main. Prefer declarative nodes over action:code. Manual runs execute the current draft. Omitting a node on whole-graph update deletes it. nodes and connections must always be sent together.
Parameters
kindstringtriggeractionconditionflowidentifierstringmanually_ triggerable_ onlybooleanResolve Workflow Entity
Resolve category, tag, group, user, badge, chat channel, or data-table ids for workflow parameters.
Parameters
kindstringcategorytagusergroupbadgedata_tablechat_channelrequiredquerystringrequiredList Workflow Templates
List templates or retrieve a complete template graph by id. Authoring loop: inspect the slim node catalog, request identifiers for schemas and output keys, resolve entity ids, create from a template or complete graph, GET before edits, test the draft, then publish. Interpolating strings start with =. Filter/if use leftValue/rightValue and output ports true/false. Connection type is the source output key, not always main. Prefer declarative nodes over action:code. Manual runs execute the current draft. Omitting a node on whole-graph update deletes it. nodes and connections must always be sent together.
Parameters
idstringList Workflow Executions
List global or per-workflow execution history.
Body
workflow_ idstring | integercursorstringlimitinteger[1, 100]25Get Workflow Execution
Poll an execution for status, errors, timing, trigger data, and steps.
Body
idstring | integerrequiredExecution ID
List Workflow Versions
List workflow version history and UUIDs available for restore.
Body
workflow_ idstring | integerrequiredList Workflow Credentials
List workflow credentials with secrets redacted. Credential creation remains in the admin UI.
Parameters
typestringcursorstringlimitinteger[1, 100]25Evaluate Workflow Expression
Evaluate a workflow expression without mutating the forum. Interpolating expressions start with =.
Body
templatestringrequiredworkflow_ idstring | integernode_ idstringCreate Workflow
Create a draft from a complete small graph or template. Prefer a complete graph over blank creation. Authoring loop: inspect the slim node catalog, request identifiers for schemas and output keys, resolve entity ids, create from a template or complete graph, GET before edits, test the draft, then publish. Interpolating strings start with =. Filter/if use leftValue/rightValue and output ports true/false. Connection type is the source output key, not always main. Prefer declarative nodes over action:code. Manual runs execute the current draft. Omitting a node on whole-graph update deletes it. nodes and connections must always be sent together.
Body
namestringrequirednodesArray<object>connectionsArray<object> | objecttagsArray<string>static_ dataobjecttemplate_ idstringUpdate Workflow
GET first. A replace PUT replaces the whole draft graph; omitted nodes are deleted. Use complete nodes+connections or operations[], never both. Authoring loop: inspect the slim node catalog, request identifiers for schemas and output keys, resolve entity ids, create from a template or complete graph, GET before edits, test the draft, then publish. Interpolating strings start with =. Filter/if use leftValue/rightValue and output ports true/false. Connection type is the source output key, not always main. Prefer declarative nodes over action:code. Manual runs execute the current draft. Omitting a node on whole-graph update deletes it. nodes and connections must always be sent together.
Body
idstring | integerrequirednamestringtagsArray<string>timezonestringerror_ workflow_ idstring | integer | nullstatic_ dataobjectpublishedbooleanautosavedbooleannodesArray<object>connectionsArray<object> | objectoperationsArray<object>Delete Workflow
Permanently delete a workflow. Fails when another workflow calls it.
Body
idstring | integerrequiredDiscard Workflow Draft
Replace the draft with its published snapshot. Requires an existing published version.
Body
idstring | integerrequiredRestore Workflow Version
Restore a historical workflow version by UUID into the draft.
Body
workflow_ idstring | integerrequiredversion_ idstring<uuid>requiredRun Workflow Draft
Run the current unpublished draft asynchronously. This can create posts, send chat, or call external HTTP; poll the returned execution id.
Body
workflow_ idstring | integerrequiredtrigger_ node_ idstringrequiredtrigger_ dataobjectRun Workflow Step
Run one non-trigger, non-waiting draft node asynchronously. Requires upstream pin-data or a prior successful run.
Body
workflow_ idstring | integerrequirednode_ idstringrequiredUpdate Workflow Pin Data
Pin test items to a node name, or omit items to unpin it.
Body
workflow_ idstring | integerrequirednode_ namestringrequireditemsArray<object>