Skip to content

Node reference

Every node a graph can use, one page each: what it takes, what it returns, when to reach for it, and a graph that uses it. The field tables come from the registry the canvas inspector reads, so they list the fields the node takes. The groups match the canvas palette, and the ? beside a step’s kind in the inspector opens its page here.

Node Kind What it does
Trigger trigger Start this graph from an event: a bus subscription or a webhook the graph owns.
Node Kind What it does
HTTP request http Make an HTTP request to an external service.
Shell command shell Run a shell command on an agent; its spool output set values become the node’s output.
Polyglot script code Run a script in your language of choice on an agent.
Sub-workflow workflow Run another workflow and wait for it.
Transform transform Reshape a value with JavaScript: build the output field by field, or write the expression yourself.
Node Kind What it does
Switch switch Route to one branch by evaluating conditions in order.
Fan out fan_out Run a body once per item, in parallel.
Wait wait Pause the run for a fixed duration, or until a signal arrives.
Approval approval Pause for a human to approve or reject before continuing.
Wait for event event Wait until a matching event arrives on the project bus.
Emit event emit Publish an event onto the project bus.
State cell state Read or write a durable state cell, or settle a race between runs.

Each action of a connector is a node of its own, typed <connector>.<action>. The actions of one connector share its with fields and its credential. Connectors covers credentials, connector versions and script actions. Google Sheets authenticates as a Google account a project member connected under Settings > Connections > Connected accounts; name that account as the step’s credential.

Node Kind What it does
Send message matrix.send_message Posts a message to a Matrix room, as the account whose access token the credential holds.
Node Kind What it does
Create message anthropic.messages Sends one prompt to the Claude Messages API and returns the reply.
Node Kind What it does
Chat completion openai-compatible.chat Sends one prompt to any API that speaks OpenAI’s /chat/completions (OpenAI, Mistral, Ollama, vLLM, LM Studio, LiteLLM) and returns the reply.
Node Kind What it does
Post message slack.post_message Posts a message to a Slack channel, as the bot whose token the credential holds.
Node Kind What it does
Send message telegram.send_message Sends a plain-text message to a Telegram chat, group or channel, as a bot.
Node Kind What it does
Set commit status github.set_commit_status Sets a commit status on GitHub: the check with a pending, green or red mark beside a commit and on its pull request.
Report a run’s status github.report_run_status Turns a run’s lifecycle event into a GitHub commit status: run.started posts pending, run.succeeded success, run.failed failure and run.cancelled error.
Node Kind What it does
Set commit status gitea.set_commit_status Sets a commit status on a Gitea or Forgejo server: the check mark beside a commit and on its pull request.
Report a run’s status gitea.report_run_status Turns a run’s lifecycle event into a commit status on Gitea or Forgejo: run.started posts pending, run.succeeded success, run.failed failure and run.cancelled error.
Node Kind What it does
Send SMS 46elks.send_sms Sends a text message through 46elks, for the alert that has to reach someone who isn’t looking at a screen.
Send SMS (dry run, nothing sent) 46elks.send_sms_dryrun Checks and prices a text message with 46elks without sending it.
Node Kind What it does
Read rows as objects google-sheets.read_rows Reads the rows under a sheet’s header row as objects keyed by the header, a chunk at a time, however long the table is.
Append rows google-sheets.append_rows Adds rows below a sheet’s table, once, even when the step is retried.
Update or append a row by key google-sheets.update_row_by_key Finds the row whose key column holds a key and writes the given cells into it, or appends a new row when there is none.
Read range google-sheets.read_range Reads a block of cells in A1 notation and returns it as a list of rows, each a list of cells.
Update range google-sheets.update_range Writes a list of rows into a block of cells, starting at the range you give.
Clear range google-sheets.clear_range Empties a block of cells and keeps their formatting.
Get spreadsheet details google-sheets.get_spreadsheet Returns a spreadsheet’s title, locale and time zone, and each sheet’s properties: its title, id, position and size.
Create spreadsheet google-sheets.create_spreadsheet Creates a new spreadsheet in the connected account’s Drive and returns its id and address.
Add sheet google-sheets.add_sheet Adds a sheet (a tab) to an existing spreadsheet.

A node in a graph document is id, type and config, where config is what each page here lists. Beside config a node also takes:

  • note: why the step is there
  • if: a CEL condition; the node is skipped unless it is true
  • continue_on_error: a failure is recorded and the run carries on
  • retry, timeout, requires, agent: for nodes that run on an agent (http, shell, code, and every connector action)
  • concurrency: a lease group, with {{ … }} holes

Values in config can be computed: { $expr: "<cel>" } keeps the value’s type and { $template: "text {{ cel }}" } builds a string. Both read nodes.<id>.output, input, vars and run.