Zum Inhalt springen
DeutschlandGPT
Nodes

Action Nodes

Built-in nodes for HTTP requests, web search, delays, code, images, data tables, secrets and flow control

Action and flow nodes do the work between trigger and result: fetch data, run code, wait, branch, loop and call other workflows. Each node has inputs, which you type in or fill with variables, and named outputs that later nodes can use.

Settings Every Node Shares

Action, integration and agent nodes have two settings at the bottom of their panel:

  • Error handling: Stop workflow (default) ends the run when the node fails. Use error output activates the node's error output instead, so you can connect a fallback path.
  • Approval required: the run pauses before this node until someone approves it. See Approvals.
Node settings with error handling and the Approval required switch

Actions

HTTP Request

Sends an HTTP request and returns the response.

InputRequiredDescription
URLYesThe URL to call
MethodYesGET (default), POST, PUT, PATCH or DELETE
HeadersNoKey-value pairs sent as request headers
Request BodyNoBody for POST, PUT and PATCH
Response TypeNoAuto (text/JSON) (default) or File (binary)
File NameNoName of the downloaded file when the response type is File (binary)
OutputTypeDescription
responseanyThe response body. null when the response type is File
statusCodenumberHTTP status code
fileWorkflowFileThe downloaded file, only for response type File
  • With Auto (text/JSON), a binary response (a PDF, an image, a ZIP) fails the node with a message to switch the response type to File (binary). A file is stored up to 100 MB.
  • Sending the token of a Get Auth Credentials node: see Get Auth Credentials.

Searches the web.

InputRequiredDescription
Search QueryYesWhat to search for
Max ResultsNoNumber of results, 1 to 100 (default 10)
OutputTypeDescription
resultsarrayThe search results
resultCountnumberNumber of results returned

Delay

Pauses the run for a duration or until a point in time, then continues. Nothing keeps running while it waits.

InputRequiredDescription
Wait ModeYesFor a duration (default) or Until a specific time
DurationDependsHow long to wait, for the duration mode
UnitDependsSeconds, Minutes (default), Hours or Days
Resume AtDependsThe point in time to continue, for the until mode
OutputTypeDescription
resumedAtstringISO timestamp at which the run continued

If Resume At is already past, the run continues at once. A single Delay can wait at most 90 days. A longer wait fails the node.

RSS Feed

Fetches and parses an RSS or Atom feed.

InputRequiredDescription
Feed URLYesThe feed address
Max ItemsNoMaximum number of items, 1 to 100 (default 10)
OutputTypeDescription
itemsarrayFeed items, each with title, link, description, content and pubDate
feedTitlestringThe feed's title
feedDescriptionstringThe feed's description
itemCountnumberNumber of items returned

Code

Runs JavaScript. Use it for filtering, sorting, string handling, calculations and other logic that needs no AI.

InputRequiredDescription
CodeYesThe JavaScript to run
OutputTypeDescription
resultanyThe value your code returns
  • Your code must return a value. That value becomes result.

  • Outputs of earlier nodes are available as global variables under their variable name, for example formTrigger.outputs.formData. Do not use the {{…}} syntax here.

  • async and await work, and fetch is available for HTTP calls.

  • fetchAs('jira', '/rest/api/3/myself') calls a connected service with its credentials, exactly like the Authenticated Request node, and returns a response with status, ok, headers, text(), json() and bytes(). It uses a connection that another node of the same workflow already uses. If the workflow uses several connections of one service, name one: fetchAs('jira@<site or account of the connection>', …). The credentials never reach your code. A redirect to another host, as a download link answers with, is followed without the credentials; await res.bytes() then holds the file. Responses are limited to 10 MB.

  • dg.log(), dg.debug(), dg.warn() and dg.error() write to the node's log in the execution history. console.log() works too.

  • Besides standard JavaScript, these helpers are built in:

    • atob() and btoa() for Base64 (Latin-1 text only, as in the browser), and Buffer for bytes and other encodings, for example Buffer.from(text, 'utf8').toString('base64') or Buffer.from(b64, 'base64').toString('utf8').
    • TextEncoder and TextDecoder, including the options fatal and ignoreBOM.
    • JSZip to read and write ZIP files. Word, Excel and PowerPoint files are ZIP files too, so you can read the text of a downloaded document: const zip = await JSZip.loadAsync(await response.bytes()); const xml = await zip.file('word/document.xml').async('string');. Password-protected ZIP files cannot be opened.
    • setTimeout() and clearTimeout(), for example to wait between two requests. A timer has to fire within 60 seconds of the start, and at most 1,000 timers can be pending at once.
    • require('buffer') and require('jszip') return the same libraries.
  • The code runs in an isolated sandbox. There is no file system, no npm packages and no import; require() knows only the two names above. FormData and Blob are not available.

  • Limits per run:

    • 60 seconds of computing time, and 5 minutes in total including the time spent waiting for requests and timers.
    • 512 MB of memory.
    • A result of at most 10 MB.
    • The first 1,000 log lines or 1 MB of log text are kept.

    Over the time, memory or result limit, the run stops with an error that names the limit. Log lines beyond the limit are dropped with a notice.

JS
const items = formTrigger.outputs.formData.items;
return items.filter((i) => i.status === 'open').map((i) => i.title);

Image Generation

Generates an image from a text prompt.

InputRequiredDescription
ModelYesThe image model
PromptYesDescription of the image
OutputTypeDescription
imageWorkflowFileThe generated image
revisedPromptstringThe prompt as the model interpreted it, if the model rewrites prompts

Data Tables

The sub-view Integrations → Data Tables in the node picker holds four nodes: Data Table: Get Rows, Insert Row, Update Rows and Delete Rows. Their inputs and outputs, and the three further nodes of the Data Table integration, are documented on the Data Table integration page.

Secret Stores

The sub-view Integrations → Secret Stores reads values from your Secret Stores:

  • Get All Secrets: input Secret Store, output variables, an object of all keys and values
  • Get Single Secret: inputs Secret Store and Variable Key, output value

Later nodes reference these outputs like any other variable, for example {{getAllSecrets.outputs.variables.API_KEY}}. Values marked as secret are passed on as references and only resolved when the next node runs, so the node outputs and the execution history show a reference instead of the value.

Flow

Condition

Routes the run into one of several branches. Each branch has a label and a condition. The first branch whose condition is true runs.

A condition is a JavaScript-like expression with variables:

JS
{{webSearch.outputs.results.length}} > 0
{{httpRequest.outputs.statusCode}} === 200
{{aiAgent.outputs.result.sentiment}} !== "negative"
{{code.outputs.result.flag}} === true

Write the variable without quotes. Text values are compared as text, with the comparison value in quotes ("negative"); numbers and booleans without quotes (200, true). Text that is exactly a number, true, false or null is compared as that value, so "200" equals 200. A variable inside a regular expression (/…/) is not supported; to search text, use .includes("…").

Instead of an expression you can write the condition in plain language with the AI Prompt mode; an AI model then decides whether it holds. That costs tokens.

There is no automatic default branch. To catch everything else, add a last branch with the expression true.

OutputTypeDescription
matchedConditionIdstringID of the branch that matched, or null
matchedConditionLabelstringLabel of the branch that matched, or null
evaluationErrorsarrayBranches whose condition could not be evaluated, each with conditionLabel and error. Such a branch counts as not true; a variable that does not exist stops the workflow with an error

Loop

Adding a loop places a Loop Start and a Loop End node. The nodes between them run once per item.

Loop Start takes an Array and provides per iteration:

OutputTypeDescription
currentItemanyThe current item
currentIndexnumberZero-based index of the item
itemsarrayAll items
totalnumberNumber of items
isFirstbooleanWhether this is the first item
isLastbooleanWhether this is the last item

Loop End takes an Iteration Result, the value to collect from each pass, and returns:

OutputTypeDescription
resultsarrayThe collected iteration results
countnumberNumber of iterations

Subworkflow

Calls another workflow that starts with a Subworkflow Trigger and waits for it to finish. Choose the workflow and fill in the parameters its trigger defines.

The called workflow must be deployed, active and in the same workspace. Calls can be nested up to 10 levels deep. If the subworkflow pauses for an approval, the calling run pauses too.

The node's outputs contain the outputs of the subworkflow's nodes, grouped by node, for example {{subworkflow.outputs.<node>.<field>}}. The Variables panel shows the exact paths. Costs inside the subworkflow count toward the calling run.

Was this page helpful?