Documentation

Everything you need to build, connect, and debug workflows in AsyncNode.

Overview

AsyncNode workflows are directed graphs of nodes. Each workflow starts at exactly one trigger node, flows through any number of action nodes, and runs top to bottom in the order your connections define.

  • Drag a node from the sidebar onto the canvas to add it to your workflow.
  • Connect nodes by dragging from one node's output handle to the next node's input handle.
  • Click a node to open its configuration panel on the right.
  • Save your workflow, then run it manually, via webhook, or on a schedule.
  • Watch execution status and output live in the log panel at the bottom of the builder.

Node Types

Every node lives under one of five categories. Add a node by dragging it from the sidebar, then fill in its configuration panel.

Trigger

Starts the workflow

Trigger Type
Manual, Webhook, or Schedule (Cron)
Interval (sec)
Schedule only — minimum 60 seconds

AI Integration

Calls an AI model

Provider
Anthropic, OpenAI, or Groq
Model
Depends on provider, e.g. claude-sonnet-5, gpt-5.1, llama-3.3-70b-versatile
API Key
Provider API key
Prompt
Supports {{nodeId.field}} references to earlier node output

HTTP Request

Calls an external API

URL
Request URL, required
Method
GET, POST, PUT, PATCH, or DELETE
Headers
Key-value pairs
Body
Key-value pairs

Email

Sends an email over SMTP

SMTP Host / Port
Your mail server
Username / Password
SMTP credentials
To / Subject
Recipient and subject line
Body (HTML)
Supports {{nodeId.field}} references

Slack

Posts a Slack message

Bot Token
xoxb-... bot token
Channel
#channel-name or channel ID
Message
Supports {{nodeId.field}} references

Connecting Nodes

Connections define both execution order and how data moves through your workflow.

To connect two nodes, drag from the small dot on the right edge of a node (its output) to the dot on the left edge of another node (its input).

A few rules keep workflows unambiguous:

  • Every node can have at most one outgoing connection and at most one incoming connection.
  • A node cannot connect to itself.
  • The Trigger node has no input handle — it can only be the start of a workflow and can never receive an incoming connection.

Invalid connections (e.g. dragging a second connection into an already-connected node, or into a trigger) are rejected automatically by the canvas — you'll simply see the connection line snap back.

Passing Data Between Nodes

When a workflow runs, every node's output is kept in memory so any later node can reference it.

Reference an earlier node's output from any text field (Prompt, Body, Message, URL, Headers, etc.) using double curly braces:

Template syntax
{{nodeId.path.to.field}}

nodeId is the ID of the node whose output you want (shown in the Run Log and in the node config panel). path.to.fieldwalks into that node's output object.

The trigger node is always available under the fixed key trigger, regardless of its node ID — this is the only node whose reference key never changes.

Examples
{{trigger.body.email}}          → a field from a webhook's JSON body
{{trigger.query.userId}}        → a query string param from a webhook call
{{node-3.choices.0.message.content}}  → an AI node's model response

If a field's value is exactlyone placeholder, the resolved value keeps its original type (object, number, etc.). If a placeholder is embedded inside a longer string, it's inserted as text.

Triggers

Every workflow starts with exactly one trigger node, set to one of three types.

Manual

Runs the workflow immediately when you click Run in the trigger's config panel. No external input — downstream nodes see the trigger's stored config as-is.

Webhook

Save the workflow to generate a unique webhook URL, shown in the trigger's config panel with a copy button. Any HTTP POST to that URL queues a run.

Webhook URL format
POST {backend_URL}/v1/webhooks/{webhookToken}

The posted body, query string, and headers are all available to later nodes:

{{trigger.body...}}     → JSON body of the POST request
{{trigger.query...}}    → URL query parameters
{{trigger.headers...}}  → request headers

Schedule (Cron)

Set an interval in seconds (minimum 60) and click Start. The workflow then runs automatically on that interval until you click Stop. The panel shows whether the schedule is currently running.

Logs & Debugging

The panel at the bottom of the builder shows what's happening as your workflow runs, in real time.

Selected Node tab

Shows the output of whichever node you last clicked on the canvas, pretty-printed. Useful for checking one node's result without scrolling the full log.

Run Log tab

One row per node in the run, in execution order. A red badge on the tab shows how many nodes failed. Click a row to expand its full output or error.

Status icons used in the Run Log:

  • Running — the node is currently executing
  • Success — the node completed without errors
  • Failed — the node threw an error; expand the row to see the message

Updates stream in live over a websocket as soon as the run starts, so you can watch each node go from running to success/failed without refreshing. Re-opening a workflow also loads the most recent run's log automatically, so you can debug a past run even after leaving the page.