Action Nodes
Built-in action nodes for HTTP requests, web search, code execution, image generation, and flow control
Action nodes perform discrete operations: fetching data, running code, generating images, branching on conditions, and looping over arrays. Each node has typed inputs (wired from previous nodes or typed directly) and named outputs (available to downstream nodes).
HTTP Request
Sends an HTTP request to any URL and returns the response.
| Input | Required | Description |
|---|---|---|
| URL | Yes | The full URL to send the request to |
| Method | Yes | HTTP method: GET, POST, PUT, PATCH, DELETE |
| Headers | No | Key-value pairs added as request headers |
| Body | No | Request body (JSON, form data, or raw text) |
| Response Type | No | How to parse the response: json (default), text, or file |
| Output | Type | Description |
|---|---|---|
response | any | Parsed response body |
statusCode | number | HTTP status code |
file | WorkflowFile | The downloaded file, only when Response Type is file |
Web Search
Searches the web and returns a list of results.
| Input | Required | Description |
|---|---|---|
| Query | Yes | The search query |
| Max Results | No | Number of results to return (1-100, default 10) |
| Output | Type | Description |
|---|---|---|
results | array | Array of result objects, each with title, url, snippet |
resultCount | number | Number of results returned |
RSS Feed
Fetches and parses an RSS or Atom feed.
| Input | Required | Description |
|---|---|---|
| URL | Yes | The RSS/Atom feed URL |
| Max Items | No | Maximum number of feed items to return (1-100, default 20) |
| Output | Type | Description |
|---|---|---|
items | array | Array of feed items, each with title, link, description, pubDate, author |
feedTitle | string | The feed's title |
feedDescription | string | The feed's description |
itemCount | number | Number of items returned |
Custom Code
Executes a JavaScript snippet. Use this for data transformation, string manipulation, math, or any deterministic logic that doesn't require an AI call.
| Input | Required | Description |
|---|---|---|
| Code | Yes | JavaScript code to execute. Previous node outputs are available as global variables named after the node (e.g. trigger.outputs.formData). Use dg.log(), dg.warn(), dg.error() for debug output visible in the execution log. |
| Output | Type | Description |
|---|---|---|
result | any | The value returned by the last expression in your code, or the value of return |
Custom Code nodes run in a sandboxed Node.js environment. They have no access to the file system, network (use HTTP Request for that), or external modules. Execution is synchronous and has a timeout.
Example:
const items = trigger.outputs.formData.items;
return items.filter((i) => i.status === 'open').map((i) => i.title);
Image Generation
Generates an image from a text prompt using an AI image model.
| Input | Required | Description |
|---|---|---|
| Model | Yes | The image generation model to use |
| Prompt | Yes | Text description of the image to generate |
| Output | Type | Description |
|---|---|---|
image | WorkflowFile | The generated image as a workflow file |
revisedPrompt | string | The prompt as interpreted by the model (some models rewrite prompts) |
Data Table Nodes
Data table nodes read from and write to persistent Data Tables. Unlike node outputs, data table content persists across workflow runs.
Get Rows
Retrieves rows matching optional filter conditions.
| Input | Required | Description |
|---|---|---|
| Table | Yes | The data table to read from |
| Filters | No | Column conditions to filter rows |
| Sort By | No | Column to sort results |
| Sort Direction | No | asc or desc |
| Limit | No | Max rows to return |
| Output | Type | Description |
|---|---|---|
rows | array | Matching rows as objects |
rowCount | number | Number of rows returned |
Insert Row
Adds a new row to a data table.
| Input | Required | Description |
|---|---|---|
| Table | Yes | The target data table |
| Row Data | Yes | Column → value mapping for the new row |
| Output | Type | Description |
|---|---|---|
rowId | string | ID of the newly inserted row |
row | object | The full inserted row |
Update Rows
Updates all rows that match a filter.
| Input | Required | Description |
|---|---|---|
| Table | Yes | The target data table |
| Filters | Yes | Conditions identifying rows to update |
| Updates | Yes | Column values to set on matched rows |
| Output | Type | Description |
|---|---|---|
updatedCount | number | Number of rows modified |
Delete Rows
Removes all rows that match a filter.
| Input | Required | Description |
|---|---|---|
| Table | Yes | The target data table |
| Filters | Yes | Conditions identifying rows to delete |
| Output | Type | Description |
|---|---|---|
deletedCount | number | Number of rows removed |
Flow Control Nodes
Condition
Evaluates a JavaScript expression and routes execution to one of multiple branches depending on the result.
Each branch has a name and a condition expression. The first branch whose expression evaluates to true is taken. An optional default branch runs if no other branch matches.
Example conditions:
// Branch "High priority"
trigger.outputs.priority === 'high';
// Branch "Needs review"
agent1.outputs.score < 0.7;
Loop Start / Loop End
Iterates over an array, running the enclosed nodes once for each item.
Loop Start inputs:
| Input | Required | Description |
|---|---|---|
| Array | Yes | The array to iterate. Reference a previous node output that is an array. |
Within the loop body, the Loop Start node exposes:
item: the current iteration's valueindex: zero-based index of the current item
Connect the last node in the loop body back to Loop End to close the loop.
Loop End outputs:
| Output | Type | Description |
|---|---|---|
results | array | Array of each iteration's output (collected from the node connected to Loop End) |
iterationCount | number | Total number of iterations |
Subworkflow Call
Calls another workflow (that has a Subworkflow Trigger) as if it were a function. Execution pauses until the subworkflow completes, then resumes with its outputs.
| Input | Required | Description |
|---|---|---|
| Workflow | Yes | The subworkflow to call |
| Parameters | Depends | Input values expected by the subworkflow's trigger |
Outputs are whatever the subworkflow's trigger defines as its return values.