Node Configuration Details
Using Jinja2 Templates¶
Many node fields support dynamic templating using the ${{var}}:
# Reference another node's output
${{ node_name.output_field }}
# Reach a nested field
${{ node_name.field.subfield }}
# Access variables
${{ variables.my_variable }}
# Access webhook payload data
${{ webhook_trigger.data.event_type }}
Note: The older {{var}} Jinja2 syntax is still supported for backward compatibility, but the new ${{var}} syntax is recommended to avoid conflicts with JSON schemas.
Templates resolve against the node's alias rather than its type, and nested paths are supported, so a value buried inside an incoming payload can be addressed directly. Templating is applied recursively across provider nodes, so an expression placed inside a nested field is resolved along with the rest of the configuration.
Node Outputs¶
Every node exposes its results through a standard output structure, so a value produced by one node is addressed the same way regardless of which node produced it.
Most nodes provide more than one output. String Input returns the cleaned text alongside statistics, a validation status, and a document form of the same text. Web Scraper returns documents. HTTP Client returns the response, status code, content, headers, and a success flag. Connect the output that matches what the receiving node expects.
Code Execution & Monaco Editor¶
Code nodes (Python and JavaScript) feature a built-in Monaco Editor. This provides:
- Syntax highlighting and intelligent auto-completion
- Built-in functions and common module suggestions
- Version-specific syntax diagnostics (e.g., Python 3.6-3.12 warnings)
- Safe execution sandbox with strict module restrictions
The sandbox exposes standard exceptions, OS errors, and warnings, so code can raise and handle errors normally. Only whitelisted modules can be imported:
- Python:
json,math,random,re,datetime,time,itertools,collections,functools,operator,string,decimal,fractions,statistics,base64,hashlib,hmac,secrets,uuid,urllib.parse,html,xml.etree.ElementTree,csv - JavaScript:
crypto,util,url,querystring,path,os
Relative imports are rejected, and importing anything outside the list raises Import of 'x' is not allowed. The incoming value is available as node_data.
Node Naming (Alias)¶
Each node can have a custom alias for easier referencing:
- Must start with a letter
- Can contain letters, numbers, and underscores
- No spaces or special characters
- Used in Jinja2 templates to access node outputs
Nodes receive a default alias when added to the canvas. When a workflow contains two nodes of the same type, rename them so templates stay unambiguous.
Credential Selection¶
For nodes requiring API keys or connections:
- First create the credential in Credentials page
- Select from dropdown in node configuration
- Credentials are encrypted at rest using
CREDENTIAL_MASTER_KEY - They are decrypted securely only during active workflow execution
Each credential field is filtered by service type, so only credentials of the matching type appear in the dropdown. Connections are validated before a credential is saved, and a credential that is in use by a workflow cannot be deleted.
Credentials are never included in an exported workflow. After importing a workflow, open each node that requires a key and select the credential again. Importing a workflow does not overwrite the secrets of credentials that already exist.
Optional Fields¶
Not every field is visible by default. Fields marked optional are hidden to keep the configuration panel readable.
To reveal one, open Add Option at the bottom of the panel and select the field. Tavily's Max Results and Kafka Producer's Acks are examples; both work at their default values, so adding them is only necessary when the default needs changing.
Conditional Fields¶
Some fields appear only when another field has a particular value.
Selecting Basic Auth in Webhook Trigger reveals the Basic Auth Credential field. Choosing Symmetric in Cryptography reveals the Secret Key field, while Asymmetric reveals the key source and PEM fields instead. If an expected field is missing, check the selection it depends on.
Configuration Tabs¶
Nodes with many settings group them into tabs. Basic holds what is needed to run the node; the remaining tabs hold tuning parameters that are safe to leave alone.
HTTP Client uses four tabs: Basic, Auth, Advanced, and Data. Web Scraper, OpenAI Compatible, Vector Store Orchestrator, and Webhook Trigger each use two.
Field Help¶
Fields with a question mark icon show a tooltip describing what the setting does and, where relevant, its valid range.
Input Priority¶
Several nodes accept the same value either from a form field or from a connection. When both are present, the form field takes priority.
String Input, Kafka Producer, Condition, and Parser all behave this way. Leaving the field empty is how you tell the node to use the incoming connection instead.