← API reference
CANONICAL TYPE REFERENCE

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.

agent

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_task

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.

assert

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.

condition

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.

csv_parse

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.

custom_workflow_action

Custom Action — Runs one of your installation's custom actions. Use it to reuse a Lua-backed action your team has defined.

delay

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.

file_check

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_copy

File Copy — Copies a file, within a folder or between folders. Use it to archive or hand files on without changing them.

file_delete

File Delete — Deletes a file from a folder. Use it to clean up after processing.

file_list

File List — Lists the files in a folder. Use it with for-each to process every file that has arrived.

file_read

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_wait

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_write

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.

for_each

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.

graphql

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.

http_call

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_request

HTTP Request — Sends an HTTP request to a connected device. Use it to talk to a device's own web interface.

impose_pdf

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_plan

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.

integration_action

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.

invoke_edge_app

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.

join

Join — Waits for all incoming branches and combines their results into one. Use it after parallel branches whose results you need together.

json_parse

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.

log

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.

logic

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.

merge

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.

message

Message — Sends a notification to a person or a group. Use it to tell people something happened or that they need to act.

microsql

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.

ml_predict

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.

mqtt_publish

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.

pdf_preflight

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_render

PDF Render — Renders one page of a PDF as an image. Use it to make proofs or thumbnails.

pdf_separations

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.

producibility_audit

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.

regex

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.

run_report

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.

script

Script — Runs a Lua script, either saved in your script library or written inline. Use it for logic the other nodes do not cover.

set_variable

Set Variable — Sets workflow variables from literal values or {{ … }} expressions. Use it to keep a value that several later steps need.

split

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.

sql_query

SQL Query — Runs a SQL query on a connected device's database and returns the rows. Use it to read data held on equipment.

switch

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.

task

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.

transform

Transform — Builds new values from inputs and earlier results. Use it to reshape data or compute fields before passing them on.

yaml_parse

YAML — 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.