Skip to content

Input nodes

Workflow entry points: triggers (cron, webhook, manual, form, chat, MCP-server) and static-input helpers.

27 nodes.


chat_trigger — Chat Trigger

Receive chat messages via POST /api/chat/:workflowId. Pairs naturally with agent_orchestrator.

Config fields

FieldTypeRequiredValues
pathstringno
authModestringnopublic | session | bearer
secretRefobjectno
persistMessagesbooleanno
sessionNamespacestringno
welcomeMessagestringno

Example config

json
{
  "path": "support",
  "authMode": "session",
  "persistMessages": true,
  "sessionNamespace": "chat-support",
  "welcomeMessage": "How can I help today?"
}

discord_trigger — Discord Trigger

Webhook-based trigger validated with Ed25519 signature (X-Signature-Ed25519 + X-Signature-Timestamp).

Config fields

FieldTypeRequiredValues
pathstringno
publicKeystringyes

Example config

json
{
  "path": "discord-interactions",
  "publicKey": "<application public key (hex)>"
}

error_trigger — Error Trigger

Fires when a designated production workflow fails. Configure target workflows in their Error Workflow setting.

Config fields

No configurable fields.

Example config

json
{}

file_trigger — File Trigger

Watches a filesystem path (polling) and fires on created/modified/deleted files.

Config fields

FieldTypeRequiredValues
watchPathstringyes
eventsarray<string>no
patternstringno
recursivebooleanno
pollIntervalSecondsnumberno
activebooleanno

Example config

json
{
  "watchPath": "./data/inbox",
  "events": [
    "created",
    "modified"
  ],
  "pattern": "*.csv",
  "recursive": false,
  "pollIntervalSeconds": 30,
  "active": true
}

form_trigger — Form Trigger

Public HTML form that starts a workflow. GET /api/forms/:path renders the form, POST submits.

Config fields

FieldTypeRequiredValues
pathstringyes
titlestringno
descriptionstringno
submitLabelstringno
authModestringnopublic | session
successMessagestringno
fieldsarray<object>yes

Example config

json
{
  "path": "feedback",
  "title": "Submit feedback",
  "description": "Tell us what you think.",
  "submitLabel": "Send",
  "authMode": "public",
  "successMessage": "Thanks — your response was recorded.",
  "fields": [
    {
      "name": "name",
      "label": "Name",
      "type": "text",
      "required": true
    },
    {
      "name": "email",
      "label": "Email",
      "type": "email",
      "required": true
    },
    {
      "name": "message",
      "label": "Message",
      "type": "textarea",
      "required": true
    }
  ]
}

github_webhook_trigger — GitHub Webhook Trigger

Webhook trigger that validates the X-Hub-Signature-256 header.

Config fields

FieldTypeRequiredValues
pathstringno
secretRefobjectno

Example config

json
{
  "path": "github-events"
}

google_drive_trigger — Google Drive Trigger

Poll a Google Drive folder for new or modified files using an access token.

Config fields

FieldTypeRequiredValues
secretRefobjectno
folderIdstringyes
querystringno
pollIntervalSecondsnumberno

Example config

json
{
  "folderId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "pollIntervalSeconds": 60
}

google_sheets_trigger — Google Sheets Trigger

Polling trigger that detects new rows since the last run.

Config fields

FieldTypeRequiredValues
spreadsheetIdstringyes
rangestringyes
authTypestringnoaccessToken | apiKey
secretRefobjectno
pollIntervalSecondsnumberno

Example config

json
{
  "spreadsheetId": "1abcDEF",
  "range": "Sheet1!A:Z",
  "authType": "accessToken",
  "pollIntervalSeconds": 60
}

imap_email_trigger — IMAP Email Trigger

Poll an IMAP inbox for new messages (requires imapflow — stubbed if missing).

Config fields

FieldTypeRequiredValues
hoststringyes
portnumberyes
securebooleanno
userstringyes
secretRefobjectno
mailboxstringno
pollIntervalSecondsnumberno

Example config

json
{
  "host": "imap.example.com",
  "port": 993,
  "secure": true,
  "user": "user@example.com",
  "mailbox": "INBOX",
  "pollIntervalSeconds": 60
}

kafka_trigger — Kafka Trigger

Consume messages from a Kafka topic (requires 'kafkajs' — emits NOT_IMPLEMENTED if missing).

Config fields

FieldTypeRequiredValues
brokersarray<string>yes
topicstringyes
groupIdstringyes
fromBeginningbooleanno
secretRefobjectno
activebooleanno

Example config

json
{
  "brokers": [
    "localhost:9092"
  ],
  "topic": "events",
  "groupId": "ai-orchestrator",
  "fromBeginning": false,
  "active": true
}

manual_trigger — Manual Trigger

Start the workflow manually from the editor or via POST /api/triggers/manual/:workflowId.

Config fields

FieldTypeRequiredValues
testDataanyno
labelstringno

Example config

json
{
  "label": "Run manually",
  "testData": {
    "user_prompt": "Hello"
  }
}

mcp_server_trigger — Expose as MCP Tool

Turn this workflow into an MCP tool that other agents (including other L2M agents) can invoke. Serves a manifest at GET /api/mcp-server/:path/manifest and accepts calls at POST /api/mcp-server/:path/invoke. Downstream nodes receive the tool arguments as input.

Config fields

FieldTypeRequiredValues
pathstringyes
toolNamestringyes
toolDescriptionstringno
inputSchemaobjectno
authModestringnopublic | bearer
secretRefobjectno

Example config

json
{
  "path": "helper",
  "toolName": "query_knowledge_base",
  "toolDescription": "Answer a question using the knowledge base.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "question": {
        "type": "string"
      }
    },
    "required": [
      "question"
    ]
  },
  "authMode": "public"
}

mqtt_trigger — MQTT Trigger

Subscribe to an MQTT topic (requires 'mqtt' — emits NOT_IMPLEMENTED if missing).

Config fields

FieldTypeRequiredValues
brokerUrlstringyes
topicstringyes
qosnumberno
clientIdstringno
secretRefobjectno
activebooleanno

Example config

json
{
  "brokerUrl": "mqtt://localhost:1883",
  "topic": "sensors/+/data",
  "qos": 1,
  "active": true
}

postgres_trigger — PostgreSQL Trigger

Polling trigger: execute a SELECT periodically and emit new rows.

Config fields

FieldTypeRequiredValues
hoststringyes
portnumberno
databasestringyes
userstringyes
secretRefobjectno
sslbooleanno
querystringyes
pollIntervalSecondsnumberno

Example config

json
{
  "host": "localhost",
  "port": 5432,
  "database": "postgres",
  "user": "postgres",
  "query": "SELECT * FROM events WHERE created_at > NOW() - interval '1 minute'",
  "pollIntervalSeconds": 60
}

rabbitmq_trigger — RabbitMQ Trigger

Consume messages from a RabbitMQ queue (requires 'amqplib' — emits NOT_IMPLEMENTED if missing).

Config fields

FieldTypeRequiredValues
urlstringyes
queuestringyes
prefetchnumberno
secretRefobjectno
activebooleanno

Example config

json
{
  "url": "amqp://localhost",
  "queue": "events",
  "prefetch": 1,
  "active": true
}

redis_trigger — Redis Trigger

Subscribe / blocking-pop trigger (polling fallback with BLPOP).

Config fields

FieldTypeRequiredValues
urlstringno
secretRefobjectno
modestringyessubscribe | blpop
channelstringno
keystringno
timeoutSecondsnumberno

Example config

json
{
  "url": "redis://localhost:6379",
  "mode": "subscribe",
  "channel": "events"
}

rss_trigger — RSS / Atom Trigger

Poll an RSS or Atom feed and fire the workflow for new items (deduplicated by GUID).

Config fields

FieldTypeRequiredValues
feedUrlstringyes
pollIntervalSecondsnumberno
maxItemsPerTicknumberno
headersobjectno
activebooleanno

Example config

json
{
  "feedUrl": "https://example.com/feed.xml",
  "pollIntervalSeconds": 300,
  "maxItemsPerTick": 20,
  "active": true
}

schedule_trigger — Schedule Trigger

Triggers workflow execution automatically from a cron schedule.

Config fields

FieldTypeRequiredValues
cronExpressionstringyes
timezonestringyes
activebooleanyes

Example config

json
{
  "cronExpression": "0 9 * * *",
  "timezone": "America/Toronto",
  "active": true
}

slack_trigger — Slack Trigger

Webhook-based trigger that validates Slack signing secret. Point Slack Events at /api/webhooks/slack/:workflowId.

Config fields

FieldTypeRequiredValues
pathstringno
signingSecretRefobjectno
replayToleranceSecondsnumberno

Example config

json
{
  "path": "slack-events",
  "replayToleranceSeconds": 300
}

sse_trigger — SSE Trigger

Connects to a Server-Sent Events URL and fires the workflow for each event.

Config fields

FieldTypeRequiredValues
urlstringyes
eventNamestringno
authModestringnonone | bearer
secretRefobjectno
reconnectDelaySecondsnumberno
maxEventsPerMinutenumberno
activebooleanno

Example config

json
{
  "url": "https://example.com/sse",
  "authMode": "none",
  "reconnectDelaySeconds": 5,
  "maxEventsPerMinute": 60,
  "active": true
}

stripe_webhook_trigger — Stripe Webhook Trigger

Webhook-based trigger that validates Stripe signatures. Point Stripe at /api/webhooks/stripe/:workflowId.

Config fields

FieldTypeRequiredValues
pathstringno
signingSecretRefobjectno
replayToleranceSecondsnumberno

Example config

json
{
  "path": "stripe-events",
  "replayToleranceSeconds": 300
}

sub_workflow_trigger — Sub-Workflow Trigger

Entry point for workflows invoked as sub-workflows via Execute Workflow node.

Config fields

FieldTypeRequiredValues
descriptionstringno
inputSchemaobjectno

Example config

json
{
  "description": "Sub-workflow entry point"
}

system_prompt — System Prompt

Static system prompt node.

Config fields

FieldTypeRequiredValues
textstringyes

Example config

json
{
  "text": "You are an assistant that answers with concise factual output."
}

telegram_trigger — Telegram Trigger

Webhook-based trigger validated by X-Telegram-Bot-Api-Secret-Token. Point setWebhook at /api/webhooks/telegram/:workflowId.

Config fields

FieldTypeRequiredValues
pathstringno
signingSecretRefobjectno

Example config

json
{
  "path": "telegram-events"
}

text_input — Text Input

Provides static input text for a workflow run.

Config fields

FieldTypeRequiredValues
textstringyes

Example config

json
{
  "text": "What is the latest release?"
}

user_prompt — User Prompt

Static user prompt node.

Config fields

FieldTypeRequiredValues
textstringyes

Example config

json
{
  "text": "Summarize this context."
}

webhook_input — Webhook Input

Injects webhook payload into workflow context.

Config fields

FieldTypeRequiredValues
pathstringno
methodstringnoPOST | GET | PUT | PATCH | DELETE
passThroughFieldsarray<string>no
authModestringnonone | bearer_token | hmac_sha256
authHeaderNamestringno
signatureHeaderNamestringno
timestampHeaderNamestringno
secretRefobjectno
replayToleranceSecondsnumberno
idempotencyEnabledbooleanno
idempotencyHeaderNamestringno
responseModestringnoonReceived | lastNode | responseNode
responseCodenumberno
responseHeadersobjectno
responseBodystringno

Example config

json
{
  "path": "agent-demo",
  "method": "POST",
  "passThroughFields": [
    "system_prompt",
    "user_prompt",
    "session_id",
    "variables"
  ],
  "authMode": "none",
  "authHeaderName": "authorization",
  "signatureHeaderName": "x-webhook-signature",
  "timestampHeaderName": "x-webhook-timestamp",
  "replayToleranceSeconds": 300,
  "idempotencyEnabled": false,
  "idempotencyHeaderName": "idempotency-key",
  "responseMode": "lastNode",
  "responseCode": 200
}