WorkflowNodeType
The kind of work a workflow node performs. Values are contributed by the host: the platform's own node kinds plus any the active vertical registers.
agentAgent — Sends a prompt to an AI agent and returns its reply. Use it for free-form work such as summarising, classifying or drafting text from earlier steps.
agent_taskAgent Task — Lets an AI agent resolve a task by choosing one of the task's outcomes. Use it to automate a decision that would otherwise go to a person, optionally falling back to one.
assertAssert — Checks that a condition holds. By default a failed check stops the run with your message; set softFail to continue and report the result instead. Use it to guard against bad data before later steps act on it.
conditionCondition — Tests a condition and continues down the true or false branch. Use it for a simple either/or decision; use switch for more than two outcomes.
csv_parseCSV — Turns CSV text into a list of records, or a list of records into CSV text. Use it after reading a CSV file or response, or before writing one.
custom_workflow_actionCustom Action — Runs one of your installation's custom actions. Use it to reuse a Lua-backed action your team has defined.
delayDelay — Waits for a set time before continuing. Use it to space out calls to an external service or to wait before checking a result again.
file_checkFile Check — Checks whether a file exists in a folder. Use it to decide what to do next depending on whether a file has arrived.
file_copyFile Copy — Copies a file, within a folder or between folders. Use it to archive or hand files on without changing them.
file_deleteFile Delete — Deletes a file from a folder. Use it to clean up after processing.
file_listFile List — Lists the files in a folder. Use it with for-each to process every file that has arrived.
file_readFile Read — Reads a file from a folder. Use it to load a file's content for later steps, such as parsing CSV or JSON.
file_waitFile Wait — Waits until a file appears in a folder. Use it when a later step depends on a file that another system delivers.
file_writeFile Write — Writes content to a file in a folder. Use it to save a result, such as a CSV export or a generated document.
for_eachFor Each — Runs a nested step once for every item in a list, and collects the results. Use it to process each order, row or file in turn.
graphqlGraphQL — Runs a query or change against the CoCoCo API. Use it to read or update any record the workflow's identity has access to.
http_callHTTP Call — Calls an external web address. Use it to reach another system's API; your installation's HTTP access policy decides which addresses are allowed.
http_requestHTTP Request — Sends an HTTP request to a connected device. Use it to talk to a device's own web interface.
impose_pdfImpose PDF — Places source PDF pages onto press sheets according to an imposition plan, and stores the print-ready PDF on the component. Use it after impose-plan, or with saved imposition specs.
impose_planImpose Plan — Works out how to impose a job's pages on press sheets and returns the recommended plan. Use it to compare options, or feed the plan to impose-pdf.
integration_actionIntegration Action — Runs an action from an installed integration. Use it to work with a connected system, such as sending an order to an accounting package.
invoke_edge_appInvoke Edge App — Calls a function in an edge app running on one of your controllers. Use it to trigger work on equipment in the building.
joinJoin — Waits for all incoming branches and combines their results into one. Use it after parallel branches whose results you need together.
json_parseJSON — Turns JSON text into structured data, or structured data into JSON text. Use it to read an API response or a JSON file, or to prepare JSON to send.
logLog — Writes a message to the run's log and passes its input on unchanged. Use it to record what happened, or to help understand a run later.
logicLogic — Combines several conditions into one result with a gate such as and or or. Use it when a branch depends on more than one test.
mergeMerge — Continues as soon as whichever incoming branches ran have finished, and combines their results. Use it after branches where only some will run, such as the two sides of a condition.
messageMessage — Sends a notification to a person or a group. Use it to tell people something happened or that they need to act.
microsqlMicroSQL — Runs a query against your reporting data and returns the rows. Use it to fetch figures for a later step, such as totals for a notification.
ml_predictML Prediction — Gets a prediction from one of your trained models. Use it to estimate a value, such as a job's run time, or to forecast a series.
mqtt_publishMQTT Publish — Publishes a message to your MQTT broker, or to one connected device. Use it to signal equipment or other systems that listen for messages.
pdf_preflightPDF Preflight — Checks a component's artwork PDF against print requirements and reports any problems. Use it before production so faulty files are caught early.
pdf_renderPDF Render — Renders one page of a PDF as an image. Use it to make proofs or thumbnails.
pdf_separationsPDF Separations — Renders each ink of a PDF page as its own greyscale image, stored as files. Use it to check what each printing plate will carry.
producibility_auditProducibility Audit — Checks whether a job can be produced as planned, flagging time overruns, waste and low yield. Use it to catch problems before or during production.
regexRegex — Matches, extracts, replaces or splits text using a regular expression. Use it to pull a job number out of a file name or to clean up text.
run_reportRun report — Starts a published report and returns its run ID; the report is produced separately. Use it to generate documents or exports as part of a workflow.
scriptScript — Runs a Lua script, either saved in your script library or written inline. Use it for logic the other nodes do not cover.
set_variableSet Variable — Sets workflow variables from literal values or {{ … }} expressions. Use it to keep a value that several later steps need.
splitSplit — Starts every outgoing branch at the same time, each with the same input. Use it for independent work that can run in parallel; bring the branches back together with join.
sql_querySQL Query — Runs a SQL query on a connected device's database and returns the rows. Use it to read data held on equipment.
switchSwitch — Chooses one of several branches: the first case whose condition holds wins, with an optional default. Use it for decisions with more than two outcomes.
taskTask — Creates a task for a person or team and waits until it is resolved. Use it when a step needs a human decision or action.
transformTransform — Builds new values from inputs and earlier results. Use it to reshape data or compute fields before passing them on.
yaml_parseYAML — Turns YAML text into structured data, or structured data into YAML text. Use it to read or write YAML files.
View exact SDL
"""
The kind of work a workflow node performs. Values are contributed by the host: the platform's own node kinds plus any the active vertical registers.
"""
enum WorkflowNodeType {
"""
Agent — Sends a prompt to an AI agent and returns its reply. Use it for free-form work such as summarising, classifying or drafting text from earlier steps.
"""
agent
"""
Agent Task — Lets an AI agent resolve a task by choosing one of the task's outcomes. Use it to automate a decision that would otherwise go to a person, optionally falling back to one.
"""
agent_task
"""
Assert — Checks that a condition holds. By default a failed check stops the run with your message; set `softFail` to continue and report the result instead. Use it to guard against bad data before later steps act on it.
"""
assert
"""
Condition — Tests a condition and continues down the `true` or `false` branch. Use it for a simple either/or decision; use `switch` for more than two outcomes.
"""
condition
"""
CSV — Turns CSV text into a list of records, or a list of records into CSV text. Use it after reading a CSV file or response, or before writing one.
"""
csv_parse
"""
Custom Action — Runs one of your installation's custom actions. Use it to reuse a Lua-backed action your team has defined.
"""
custom_workflow_action
"""
Delay — Waits for a set time before continuing. Use it to space out calls to an external service or to wait before checking a result again.
"""
delay
"""
File Check — Checks whether a file exists in a folder. Use it to decide what to do next depending on whether a file has arrived.
"""
file_check
"""
File Copy — Copies a file, within a folder or between folders. Use it to archive or hand files on without changing them.
"""
file_copy
"""
File Delete — Deletes a file from a folder. Use it to clean up after processing.
"""
file_delete
"""
File List — Lists the files in a folder. Use it with `for-each` to process every file that has arrived.
"""
file_list
"""
File Read — Reads a file from a folder. Use it to load a file's content for later steps, such as parsing CSV or JSON.
"""
file_read
"""
File Wait — Waits until a file appears in a folder. Use it when a later step depends on a file that another system delivers.
"""
file_wait
"""
File Write — Writes content to a file in a folder. Use it to save a result, such as a CSV export or a generated document.
"""
file_write
"""
For Each — Runs a nested step once for every item in a list, and collects the results. Use it to process each order, row or file in turn.
"""
for_each
"""
GraphQL — Runs a query or change against the CoCoCo API. Use it to read or update any record the workflow's identity has access to.
"""
graphql
"""
HTTP Call — Calls an external web address. Use it to reach another system's API; your installation's HTTP access policy decides which addresses are allowed.
"""
http_call
"""
HTTP Request — Sends an HTTP request to a connected device. Use it to talk to a device's own web interface.
"""
http_request
"""
Impose PDF — Places source PDF pages onto press sheets according to an imposition plan, and stores the print-ready PDF on the component. Use it after `impose-plan`, or with saved imposition specs.
"""
impose_pdf
"""
Impose Plan — Works out how to impose a job's pages on press sheets and returns the recommended plan. Use it to compare options, or feed the plan to `impose-pdf`.
"""
impose_plan
"""
Integration Action — Runs an action from an installed integration. Use it to work with a connected system, such as sending an order to an accounting package.
"""
integration_action
"""
Invoke Edge App — Calls a function in an edge app running on one of your controllers. Use it to trigger work on equipment in the building.
"""
invoke_edge_app
"""
Join — Waits for all incoming branches and combines their results into one. Use it after parallel branches whose results you need together.
"""
join
"""
JSON — Turns JSON text into structured data, or structured data into JSON text. Use it to read an API response or a JSON file, or to prepare JSON to send.
"""
json_parse
"""
Log — Writes a message to the run's log and passes its input on unchanged. Use it to record what happened, or to help understand a run later.
"""
log
"""
Logic — Combines several conditions into one result with a gate such as `and` or `or`. Use it when a branch depends on more than one test.
"""
logic
"""
Merge — Continues as soon as whichever incoming branches ran have finished, and combines their results. Use it after branches where only some will run, such as the two sides of a condition.
"""
merge
"""
Message — Sends a notification to a person or a group. Use it to tell people something happened or that they need to act.
"""
message
"""
MicroSQL — Runs a query against your reporting data and returns the rows. Use it to fetch figures for a later step, such as totals for a notification.
"""
microsql
"""
ML Prediction — Gets a prediction from one of your trained models. Use it to estimate a value, such as a job's run time, or to forecast a series.
"""
ml_predict
"""
MQTT Publish — Publishes a message to your MQTT broker, or to one connected device. Use it to signal equipment or other systems that listen for messages.
"""
mqtt_publish
"""
PDF Preflight — Checks a component's artwork PDF against print requirements and reports any problems. Use it before production so faulty files are caught early.
"""
pdf_preflight
"""
PDF Render — Renders one page of a PDF as an image. Use it to make proofs or thumbnails.
"""
pdf_render
"""
PDF Separations — Renders each ink of a PDF page as its own greyscale image, stored as files. Use it to check what each printing plate will carry.
"""
pdf_separations
"""
Producibility Audit — Checks whether a job can be produced as planned, flagging time overruns, waste and low yield. Use it to catch problems before or during production.
"""
producibility_audit
"""
Regex — Matches, extracts, replaces or splits text using a regular expression. Use it to pull a job number out of a file name or to clean up text.
"""
regex
"""
Run report — Starts a published report and returns its run ID; the report is produced separately. Use it to generate documents or exports as part of a workflow.
"""
run_report
"""
Script — Runs a Lua script, either saved in your script library or written inline. Use it for logic the other nodes do not cover.
"""
script
"""
Set Variable — Sets workflow variables from literal values or `{{ … }}` expressions. Use it to keep a value that several later steps need.
"""
set_variable
"""
Split — Starts every outgoing branch at the same time, each with the same input. Use it for independent work that can run in parallel; bring the branches back together with `join`.
"""
split
"""
SQL Query — Runs a SQL query on a connected device's database and returns the rows. Use it to read data held on equipment.
"""
sql_query
"""
Switch — Chooses one of several branches: the first case whose condition holds wins, with an optional default. Use it for decisions with more than two outcomes.
"""
switch
"""
Task — Creates a task for a person or team and waits until it is resolved. Use it when a step needs a human decision or action.
"""
task
"""
Transform — Builds new values from inputs and earlier results. Use it to reshape data or compute fields before passing them on.
"""
transform
"""
YAML — Turns YAML text into structured data, or structured data into YAML text. Use it to read or write YAML files.
"""
yaml_parse
}One stable address across all schema views. Follow a field’s type to explore connections between domains.