Skip to main content
A function node is a workflow step that runs a built-in function instead of a model. Declare it under function_nodes:
Arguments come from prefilled_params, the run’s variables, and the JSON outputs of the nodes in input_filter, in that order of priority. See Passing data between nodes.

trigger_message_processor

Runs a function and outputs what it returns.
message_processor is an older name for the same function.

datasource_execute_query

Runs a dynamic query saved on a datasource. Output: one key per result set in the query, each a list of rows, for example {"order": [{…}], "lines": [{…}, {…}]}. An empty list means no match.
The default limit is 10 rows. A query that should return more silently stops at 10. Prefill limit when you need more.

datasource_insert_rows

Inserts rows into one table through the datasource API, which also records them in the audit trail when it is enabled. A common shape is a function that builds the row (and checks it), followed by the insert:

datasource_insert_multi

Inserts into several tables of one datasource in a single transaction: all succeed or none do. PostgreSQL only.
Known issue (#448): the datasource nodes report failures as their output text (“Insert failed (400): …”) instead of stopping the run. A run whose insert failed can still finish successfully, and a passthrough after it hides the failure. Until this changes, check that writes landed (for example, read the row back in your application, or check the audit trail), and validate rows in a function before inserting them.

datasource_download_file

Loads one file from a file-storage datasource (S3, GCS, Azure Blob). Output:
  • Images (PNG, JPEG, GIF, WebP) and videos come out as media. An agent that selects this node with input_filter sees the image or video.
  • Other files: JSON {"path", "content_type", "size_bytes", "encoding", "content"}, with the text itself for UTF-8 files and base64 otherwise.
This is the recommended way to give agents files: the workflow decides which files the model sees, and the agent answers in one call. See Images, documents and video.

fetch_configuration

Reads a configuration document, the JSON your workflow’s rules live in.
Output: the document. A function that lists rules in its input_filter reads it as input.node_outputs.rules[0]. A missing configuration stops the run with an error naming it.

passthrough

Re-emits the output of the last node in its input_filter, unchanged.
Use it as the final node when the real last step runs for its side effect (saving, sending), so the run still returns the result you want. See the output of a run.

trigger_api_service

Calls an endpoint defined under API Services.

send_email

Sends an email from a mailbox connected under Emails.