🚀 Schnellstart
In wenigen Minuten zum ersten laufenden Workflow:
-
Account anlegen
Registriere dich unter
/register. Nach der E-Mail-Bestätigung bist du direkt im Dashboard. -
Credentials hinterlegen (optional)
Gehe zu Credentials in der Seitenleiste und füge API-Keys oder OAuth-Tokens für externe Dienste hinzu.
-
Neuen Workflow erstellen
Klicke auf Neuer Workflow, vergib einen Namen und öffne den visuellen Editor.
-
Nodes hinzufügen
Ziehe Nodes aus der Node-Palette auf die Canvas. Verbinde Ausgänge mit Eingängen durch Kanten.
-
Workflow testen & ausführen
Klicke auf Ausführen. Im Execution-Panel siehst du den Live-Status jedes Nodes in Echtzeit.
-
Veröffentlichen
Sobald alles funktioniert, veröffentliche den Workflow. Nur veröffentlichte Workflows können über Webhooks oder Cron ausgelöst werden.
📖 Konzepte
Workflow
Ein gerichteter azyklischer Graph (DAG) aus Nodes und Kanten. Hat Status Draft oder Published.
Node
Eine Verarbeitungseinheit mit Eingängen, Ausgängen und einer Konfiguration. Jeder Node hat einen eindeutigen Typ.
Kante (Edge)
Verbindet den Ausgang eines Nodes mit dem Eingang eines anderen. Bestimmt den Datenfluss.
Execution
Ein einzelner Lauf eines Workflows. Enthält Status, Start-/Endzeit, Eingabedaten und Node-Ergebnisse.
Credential
Verschlüsselt gespeicherter API-Key, OAuth-Token oder Passwort. Wird in Nodes per ID referenziert.
Variable
Daten, die zwischen Nodes fließen. Jeder Node schreibt sein Ergebnis in den gemeinsamen Execution-Context.
Ausführungsmodell
OrchIQ baut aus dem Workflow einen DAG und ermittelt topologische Wellen. Alle Nodes einer Welle werden parallel ausgeführt. Erst wenn alle Nodes einer Welle abgeschlossen sind, startet die nächste.
Datenpfade
Node-Ausgaben sind über Punktnotation zugänglich: nodeName.outputField. In Feldern mit Variablen-Support kannst du ${nodeName.field} verwenden.
Beispiel: Ein HTTP-Node namens fetch gibt ${fetch.body.items} zurück, das ein Loop-Node iterieren kann.
⚙️ Workflows erstellen
Editor-Oberfläche
- Canvas — Ziehe Nodes, pan mit Mausrad/Trackpad, zoom mit Ctrl+Scroll
- Node-Palette — Linke Seitenleiste, alle verfügbaren Node-Typen nach Kategorie
- Node-Konfiguration — Klicke auf einen Node, um seine Einstellungen rechts zu öffnen
- Mini-Map — Rechts unten für große Workflows
Nodes verbinden
Ziehe vom orangen Ausgangs-Handle eines Nodes auf den Eingangs-Handle eines anderen. Eine Kante wird erstellt. Kanten können auch gelöscht werden (Klick → Entf).
Bedingungen (Branches)
Der Condition-Node hat zwei Ausgänge: true und false. Verbinde jeden Ausgang mit einem anderen Zweig des Workflows.
Versionierung
Jeder gespeicherte Stand wird als Version angelegt. Im Versions-Panel kannst du ältere Stände einsehen und wiederherstellen (Rollback).
📊 Ausführen & Monitoring
Execution-Dashboard
Unter Ausführungen findest du alle vergangenen und laufenden Executions mit Status, Dauer und Zeitstempel.
Echtzeit-Status
Während eine Execution läuft, werden Node-Statusänderungen (pending → running → success/failed) per Socket.IO live übertragen und im Editor direkt auf den Nodes angezeigt.
Node-Ergebnisse
Klicke in der Execution-Detailansicht auf einen beliebigen Node, um dessen Eingaben, Ausgaben und Logs zu sehen.
Fehlerbehandlung & Retry
- Schlägt ein Node fehl, stoppt die Execution standardmäßig und markiert alle nachfolgenden Nodes als übersprungen.
- Mit dem Error Handler-Node kannst du Fehler abfangen und gezielt darauf reagieren.
- Executions können manuell erneut ausgelöst werden (gleiche Eingabedaten).
Leerer Output (NO_OUTPUT)
Standardmäßig erwartet OrchIQ, dass jeder Node einen nicht-leeren Output zurückgibt. Gibt ein Node null oder ein leeres Objekt zurück, schlägt die Execution mit Fehlercode NO_OUTPUT fehl.
Ausgenommen sind Nodes, die konstruktionsbedingt keinen Ausgabewert haben: condition, loop, trigger, webhook, timer, email-trigger, error-handler.
🔑 Credentials
Credentials werden verschlüsselt in der Datenbank gespeichert und nie in Klartext im Frontend angezeigt. Jeder Credential-Eintrag hat einen Typ (z. B. API Key, OAuth2, SMTP) und einen Namen.
Credential-Typen
| Typ | Verwendung |
|---|---|
api_key | OpenAI, Anthropic, generische REST-APIs |
bearer-token | HTTP-APIs mit Bearer-Token-Authentifizierung |
basic-auth | HTTP-APIs mit Basic Auth (User + Passwort) |
http-header | Beliebige HTTP-Header (z. B. X-API-Key) |
oauth2 | Gmail, Google Calendar, Google Drive, Google Sheets, Google Docs, Outlook |
smtp | SMTP-Mailserver (Host, Port, User, Passwort) |
imap | IMAP-Postfach (Host, Port, User, Passwort) |
aws | AWS S3 (Access Key ID + Secret) |
ssh | SSH (Host, User, Passwort oder Private Key) |
ollama | Lokale Ollama-Instanz (URL) |
postgres | PostgreSQL-Verbindung (Host, Port, Datenbank, Benutzername, Passwort) |
mongodb | MongoDB-Verbindung (Host, Port, Datenbank, Benutzername, Passwort, Auth-DB) |
mysql | MySQL / MariaDB-Verbindung (Host, Port, Datenbank, Benutzername, Passwort) |
redis | Redis-Verbindung (URL, Passwort, DB-Index) |
qdrant | Qdrant Vektordatenbank (API-Key) |
💾 Variablen & Datenpfade
Der Execution-Context ist ein JSON-Objekt. Jeder Node schreibt sein Ergebnis unter seinem Node-Namen (lowercase, Leerzeichen durch _ ersetzt).
Zugriff auf Ausgaben
Syntax in Konfigurationsfeldern: ${nodeId.path.to.value}
| Beispiel | Bedeutung |
|---|---|
${trigger.data.email} | Feld email aus den Trigger-Eingabedaten |
${http_fetch.body.items[0].id} | Erstes Element der Items-Liste aus HTTP-Response |
${ai_agent.result} | Text-Ausgabe des AI-Agent-Nodes |
${loop.item} | Aktuelles Element im Loop |
Map Variables
Mit dem Map Variables-Node kannst du Werte umbenennen, kombinieren oder neu strukturieren, ohne JavaScript schreiben zu müssen.
🔌 Node-Referenz
Vollständige Beschreibung aller 40+ Node-Typen mit Einstellungen, Eingaben und Ausgaben.
KI & Intelligenz
OpenAI, Anthropic Claude, Ollama — Completions, Chat, Tool-Calling
ai-agentSendet einen Prompt an ein KI-Modell und gibt das Ergebnis zurück. Unterstützt strukturierte JSON-Ausgabe (inkl. JSON-Schema für OpenAI, Anthropic und Ollama v0.5+), Temperature-Kontrolle und verschiedene Anbieter. Tool-Calling und Credentials werden im „Tools"-Tab konfiguriert.
Einstellungen
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
provider | select | Ja | openai · anthropic · ollama · generic |
credentialId | credential | Ja | API-Key für den gewählten Anbieter (nicht bei ollama) |
model | string | Ja | Modellname, z. B. gpt-4o, claude-sonnet-4-6, llama3 |
ollamaUrl | string | Opt | Ollama-Basis-URL, z. B. http://localhost:11434 |
systemMessage | textarea | Opt | System-Prompt; setzt Verhalten und Kontext |
prompt | textarea | Ja | User-Prompt; unterstützt Variablen ${nodeId.field} |
outputFormat | select | Opt | text (Standard) · json · json_schema |
outputSchema | textarea | Opt | JSON-Schema für json_schema-Ausgabe. Bei Ollama (v0.5+) wird das Schema direkt übergeben und erzwingt strukturierte Ausgabe auf Modell-Ebene. |
temperature | number | Opt | 0–2, Standard 0.7 |
maxTokens | number | Opt | Maximale Ausgabe-Tokens |
timeout | number | Opt | Timeout in ms (Standard 30000) |
topP | number | Opt | Nucleus sampling 0–1 |
frequencyPenalty | number | Opt | -2 bis 2 (nur OpenAI) |
presencePenalty | number | Opt | -2 bis 2 (nur OpenAI) |
stopSequences | string | Opt | Kommagetrennte Stop-Sequenzen |
genericUrl | string | Opt | Endpunkt für generic-Provider |
ai-chatMulti-Turn-Chat mit Verlauf. Ideal für gesprächsbasierte Flows, Agenten mit Tool-Calling und interaktive KI-Assistenten. Speichert Konversationsverlauf pro Session-ID. Konfiguration und Tools werden in separaten Tabs angezeigt.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
provider | select | Ja | openai · anthropic · ollama |
credentialId | credential | Ja | API-Key für den Anbieter |
model | string | Ja | Modellname |
sessionId | string | Ja | Eindeutige Session-ID für Verlaufs-Tracking |
userMessage | textarea | Ja | Aktuelle User-Nachricht |
systemMessage | textarea | Opt | System-Prompt (nur erste Nachricht) |
tools | json | Opt | Tool-Definitionen für Function-Calling — konfigurierbar im „Tools"-Tab des Node-Dialogs. Unterstützt HTTP, PostgreSQL, MongoDB, Redis, Qdrant. Pro Tool kann eine Credential ausgewählt werden. |
maxHistoryMessages | number | Opt | Max. Nachrichten im Verlauf (Standard 20) |
maxIterations | number | Opt | Max. Tool-Call-Iterationen (Standard 10) |
temperature | number | Opt | 0–2 |
maxTokens | number | Opt | Maximale Ausgabe-Tokens |
outputFormat | select | Opt | text (Standard) · json · json_schema |
outputSchema | textarea | Opt | JSON-Schema für json_schema-Ausgabe. Bei Ollama (v0.5+) wird das Schema direkt als format-Feld übergeben und strukturiert die Ausgabe auf Modell-Ebene. |
clearHistory | boolean | Opt | Verlauf vor dieser Ausführung löschen |
Trigger & Webhooks
Startpunkte für Workflow-Ausführungen — manuell, HTTP, E-Mail, Timer/Cron
triggerStartpunkt jedes Workflows. Definiert initiale Testdaten für manuelle Ausführungen. Muss der erste Node sein.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
data | json | Opt | Initiale Testdaten (JSON-Objekt) für manuelle Ausführungen |
webhookEmpfängt eingehende HTTP-Requests und startet den Workflow. Die generierte URL wird nach dem Speichern angezeigt.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
path | string | Ja | URL-Pfad, z. B. /my-hook |
method | select | Ja | GET · POST · PUT · DELETE |
token | string | Opt | Bearer-Token zur Absicherung der Webhook-URL |
respond-to-webhookSendet eine HTTP-Antwort an den ursprünglichen Webhook-Aufrufer. Muss nach einem Webhook-Node verwendet werden.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
statusCode | number | Ja | HTTP-Statuscode, z. B. 200, 201, 400 |
body | json | Opt | Antwort-Body (JSON-Objekt) |
headers | json | Opt | Zusätzliche Response-Header |
email-triggerÜberwacht ein IMAP-Postfach per Polling und startet den Workflow bei neuen E-Mails.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
host | string | Ja | IMAP-Server-Hostname |
port | number | Ja | Standard: 993 (SSL) oder 143 |
secure | boolean | Opt | TLS verwenden (Standard: true) |
credentialId | credential | Ja | IMAP-Credentials (User + Passwort) |
mailbox | string | Opt | Postfach-Ordner (Standard: INBOX) |
pollInterval | number | Opt | Polling-Intervall in Sekunden (Standard: 60) |
onlyUnseen | boolean | Opt | Nur ungelesene E-Mails abrufen |
markAsRead | boolean | Opt | E-Mails nach Abruf als gelesen markieren |
maxEmails | number | Opt | Max. E-Mails pro Durchlauf (Standard: 10) |
includeAttachmentContent | boolean | Opt | Anhänge als Base64 einschließen |
timerStartet einen Workflow automatisch nach einem festen Intervall oder einem Cron-Zeitplan. Läuft nur wenn der Workflow veröffentlicht ist. Verteiltes Locking verhindert Doppelausführungen in Multi-Instance-Setups.
Einstellungen
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
scheduleType | select | Ja | interval (jede N Sekunden/Minuten/Stunden/Tage) · cron (5-Feld-Cron-Ausdruck) |
intervalValue | number | Opt | Intervall-Wert (Standard: 5) — nur für interval |
intervalUnit | select | Opt | seconds · minutes · hours · days (Standard: minutes) |
cronExpression | string | Opt | 5-Feld-Cron-Ausdruck, z. B. 0 9 * * 1-5 (werktags 09:00 Uhr) — nur für cron |
telegram-triggerStartet einen Workflow bei eingehenden Telegram-Updates via Bot-Webhook. Unterstützt alle Bot API 7.x Update-Typen (Nachrichten, Callbacks, Polls, Payments, Membership u. v. m.). Der Webhook wird beim Aktivieren des Workflows automatisch bei Telegram registriert.
Einstellungen
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Telegram Bot Token Credential (Bot Token + optionale Base URL) |
allowedUpdates | json | Opt | JSON-Array mit Update-Typen, z. B. ["message","callback_query"]. Leeres Array = alle Typen empfangen. |
message, edited_message, channel_post, callback_query, inline_query, poll, poll_answer, my_chat_member, chat_member, chat_join_request, chat_boost, shipping_query, pre_checkout_query und weitere.
HTTP & API
REST-Anfragen, Datei-Downloads
http-requestFührt einen HTTP POST-Request aus. Für GET-Requests verwende URL-Parameter im Pfad oder den File-Download-Node.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
url | string | Ja | Ziel-URL (Variablen unterstützt) |
headers | json | Opt | Request-Header als JSON-Objekt |
body | json | Opt | Request-Body als JSON-Objekt |
timeout | number | Opt | Timeout in ms (Standard: 30000) |
throwOnError | boolean | Opt | Fehler bei HTTP 4xx/5xx werfen (Standard: true) |
file-downloadLädt eine Datei von einer URL herunter und gibt den Inhalt als Base64 oder Text zurück.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
url | string | Ja | Download-URL |
outputFormat | select | Opt | base64 (Standard) · text |
timeout | number | Opt | Timeout in ms (Standard: 30000) |
Gmail, SMTP, Outlook, IMAP
gmail-sendSendet eine E-Mail über die Gmail API (OAuth2). HTML-Inhalte werden unterstützt.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Gmail OAuth2-Credential |
to | string | Ja | Empfänger-E-Mail(s), kommagetrennt |
subject | string | Ja | Betreff |
body | textarea | Ja | E-Mail-Text (HTML erlaubt) |
cc | string | Opt | CC-Empfänger, kommagetrennt |
bcc | string | Opt | BCC-Empfänger, kommagetrennt |
gmail-listListet E-Mails aus Gmail mit optionalem Suchfilter (Gmail-Suchoperatoren werden unterstützt).
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Gmail OAuth2-Credential |
query | string | Opt | Gmail-Suchanfrage, z. B. from:boss@example.com is:unread |
maxResults | number | Opt | Max. Ergebnisse (Standard: 10) |
smtp-sendSendet E-Mails über einen beliebigen SMTP-Server. Kompatibel mit Mailgun, SendGrid, Postfix usw.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | SMTP-Credential (Host, Port, User, Passwort) |
to | string | Ja | Empfänger, kommagetrennt |
subject | string | Ja | Betreff |
from | string | Opt | Absender-Adresse (überschreibt Credential-Default) |
body | textarea | Ja | E-Mail-Inhalt |
isHtml | boolean | Opt | Body als HTML senden |
cc | string | Opt | CC |
bcc | string | Opt | BCC |
outlook-sendSendet E-Mails über Microsoft 365 / Outlook via Microsoft Graph API (OAuth2).
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Microsoft OAuth2-Credential |
to | string | Ja | Empfänger, kommagetrennt |
subject | string | Ja | Betreff |
body | textarea | Ja | E-Mail-Inhalt |
isHtml | boolean | Opt | HTML-Modus |
cc | string | Opt | CC |
bcc | string | Opt | BCC |
imapFührt IMAP-Operationen auf einzelnen E-Mails durch (lesen, verschieben, löschen, flaggen).
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | IMAP-Credentials |
host | string | Ja | IMAP-Hostname |
port | number | Ja | Port (Standard: 993) |
secure | boolean | Opt | TLS |
operation | select | Ja | markRead · markUnread · move · copy · delete · flag · unflag |
emailUid | string | Ja | UID der Ziel-E-Mail |
mailbox | string | Opt | Quell-Postfach (Standard: INBOX) |
Cloud & Storage
Amazon S3, Nextcloud — Upload, Download, Listen, Ordner-Management
s3-uploadLädt Daten in einen Amazon S3-Bucket. Inhalt kann Base64 oder Text sein.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | AWS-Credential (Access Key + Secret) |
bucket | string | Ja | S3-Bucket-Name |
key | string | Ja | S3-Objektpfad / Dateiname |
content | string | Ja | Dateiinhalt (Base64 oder Text) |
mimeType | string | Opt | Content-Type, z. B. application/pdf |
isBase64 | boolean | Opt | Content ist Base64-kodiert |
s3-downloadLädt ein Objekt aus S3 herunter.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | AWS-Credential |
bucket | string | Ja | Bucket-Name |
key | string | Ja | Objekt-Key |
outputFormat | select | Opt | base64 (Standard) · text |
s3-listListet Objekte in einem S3-Bucket, optional gefiltert nach Präfix.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | AWS-Credential |
bucket | string | Ja | Bucket-Name |
prefix | string | Opt | Pfad-Präfix für Filterung |
maxKeys | number | Opt | Max. Ergebnisse (Standard: 100) |
nextcloud-uploadLädt eine Datei in eine Nextcloud-Instanz hoch (WebDAV).
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Nextcloud-Credential (URL, User, Passwort) |
remotePath | string | Ja | Zielpfad auf Nextcloud, z. B. /Dokumente/bericht.pdf |
content | string | Ja | Dateiinhalt als Base64 oder Text |
isBase64 | boolean | Opt | Inhalt ist Base64-kodiert |
mimeType | string | Opt | Content-Type der Datei |
nextcloud-downloadLädt eine Datei von Nextcloud herunter.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Nextcloud-Credential |
remotePath | string | Ja | Pfad zur Datei auf Nextcloud |
outputFormat | select | Opt | base64 (Standard) · text |
nextcloud-listListet Dateien und Ordner in einem Nextcloud-Verzeichnis.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Nextcloud-Credential |
remotePath | string | Ja | Ordnerpfad, z. B. /Dokumente |
nextcloud-create-folderErstellt einen neuen Ordner auf Nextcloud (inkl. verschachtelter Pfade).
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Nextcloud-Credential |
remotePath | string | Ja | Neuer Ordnerpfad, z. B. /Archiv/2026 |
nextcloud-deleteLöscht eine Datei oder einen Ordner auf Nextcloud.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Nextcloud-Credential |
remotePath | string | Ja | Pfad zur Datei/Ordner |
nextcloud-moveVerschiebt oder benennt eine Datei/Ordner auf Nextcloud um.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Nextcloud-Credential |
fromPath | string | Ja | Quellpfad |
toPath | string | Ja | Zielpfad (inkl. neuem Dateiname) |
Google Calendar, Drive, Sheets, Docs — via OAuth2
google-calendar-createErstellt einen neuen Termin in Google Calendar.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Google OAuth2-Credential |
calendarId | string | Opt | Kalender-ID (Standard: primary) |
summary | string | Ja | Termin-Titel |
start | string | Ja | Startzeit (ISO 8601) |
end | string | Ja | Endzeit (ISO 8601) |
description | textarea | Opt | Beschreibung |
location | string | Opt | Ort |
attendees | string | Opt | E-Mail-Adressen der Teilnehmer, kommagetrennt |
google-calendar-listListet Termine aus Google Calendar in einem Zeitfenster.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Google OAuth2-Credential |
calendarId | string | Opt | Kalender-ID (Standard: primary) |
timeMin | string | Opt | Frühestes Datum (ISO 8601) |
timeMax | string | Opt | Spätestes Datum (ISO 8601) |
maxResults | number | Opt | Max. Ergebnisse (Standard: 10) |
google-drive-uploadLädt eine Datei auf Google Drive hoch.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Google OAuth2-Credential |
fileName | string | Ja | Dateiname auf Drive |
content | string | Ja | Dateiinhalt (Base64 oder Text) |
mimeType | string | Opt | Content-Type |
folderId | string | Opt | Ziel-Ordner-ID auf Drive |
google-drive-downloadLädt eine Datei von Google Drive herunter.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Google OAuth2-Credential |
fileId | string | Ja | Google Drive Datei-ID |
outputFormat | select | Opt | base64 (Standard) · text |
google-drive-listListet Dateien auf Google Drive, optional gefiltert nach Ordner oder Query.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Google OAuth2-Credential |
query | string | Opt | Drive-Suchanfrage (Drive API Query-Syntax) |
folderId | string | Opt | Ordner-ID zur Filterung |
maxResults | number | Opt | Max. Ergebnisse (Standard: 20) |
google-sheets-readLiest Daten aus einem Google Sheets-Tabellenblatt.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Google OAuth2-Credential |
spreadsheetId | string | Ja | Spreadsheet-ID aus der Google Sheets URL |
range | string | Ja | Bereich, z. B. Sheet1!A1:D10 oder A:Z |
majorDimension | select | Opt | ROWS (Standard) · COLUMNS |
google-sheets-writeSchreibt oder aktualisiert Daten in einem Google Sheets-Tabellenblatt.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Google OAuth2-Credential |
spreadsheetId | string | Ja | Spreadsheet-ID |
range | string | Ja | Zielbereich, z. B. Sheet1!A1 |
values | json | Ja | 2D-Array der zu schreibenden Werte, z. B. [["Name","Wert"],["Test",42]] |
valueInputOption | select | Opt | RAW · USER_ENTERED (Standard, interpretiert Formeln) |
google-docs-createErstellt ein neues Google Docs-Dokument mit optionalem Textinhalt.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Google OAuth2-Credential |
title | string | Ja | Dokumenttitel |
content | textarea | Opt | Initialer Textinhalt (wird als Nur-Text eingefügt) |
google-docs-getLiest den Inhalt eines bestehenden Google Docs-Dokuments.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Google OAuth2-Credential |
documentId | string | Ja | Dokument-ID aus der Google Docs URL |
Server
Remote-Befehle via SSH ausführen
ssh-execVerbindet sich per SSH mit einem Remote-Server und führt einen Shell-Befehl aus.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | SSH-Credential (Host, User, Passwort/Key) |
command | textarea | Ja | Auszuführender Shell-Befehl |
timeout | number | Opt | Timeout in ms (Standard: 30000) |
Logik & Steuerung
Bedingungen, Schleifen, Timing, Fehlerbehandlung
conditionVerzweigt den Workflow basierend auf einer Bedingung. Hat zwei Ausgänge: true und false.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
type | select | Ja | simple (Vergleich) · expression (JavaScript) |
leftOperand | string | Opt | Linker Wert für simple-Modus (Variablen unterstützt) |
operator | select | Opt | == · != · > · < · >= · <= · contains · startsWith |
rightOperand | string | Opt | Rechter Vergleichswert |
expression | textarea | Opt | JavaScript-Ausdruck für expression-Modus, muss boolean zurückgeben |
loopIteriert über ein Array und führt den nachfolgenden Teilgraph für jedes Element aus. Die Ergebnisse werden gesammelt.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
inputPath | string | Ja | Datenpfad zum Array, z. B. ${fetch.body.items} |
mergeKombiniert die Ausgaben mehrerer paralleler Zweige zu einem Objekt.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
mode | select | Ja | merge · deep-merge · pick · assign-key |
inputCount | number | Ja | Anzahl der Eingänge (2–10) |
keys | string | Opt | Kommagetrennte Keys für pick-Modus |
assignKey | string | Opt | Schlüsselname für assign-key-Modus |
delayPausiert die Ausführung für eine definierte Zeit oder wartet auf einen externen Webhook-Trigger.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
mode | select | Ja | delay (Zeit-Pause) · webhook (auf externen Call warten) |
delayMs | number | Opt | Wartezeit in Millisekunden (für delay-Modus) |
webhookTimeout | number | Opt | Max. Wartezeit für Webhook in ms |
concurrency-limiterBegrenzt die gleichzeitige Ausführung paralleler Zweige. Nützlich für Rate-Limiting externer APIs.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
maxConcurrent | number | Ja | Max. gleichzeitige Ausführungen |
checkIntervalMs | number | Opt | Prüfintervall in ms (Standard: 500) |
timeoutMs | number | Opt | Max. Wartezeit in ms bevor Fehler |
error-handlerFängt Fehler aus einem vorherigen Node ab und leitet den Workflow in einen Fehlerbehandlungs-Zweig um. Keine Konfigurationsfelder notwendig.
Datentransformation
JavaScript, Variablen-Mapping, PDF, Markdown
javascriptFührt beliebigen JavaScript-Code in einer sicheren VM2-Sandbox aus. Ideal für komplexe Transformationen, die kein vordefinierter Node abdeckt.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
code | code | Ja | JavaScript-Code. return definiert die Ausgabe. Zugriff auf Kontext über input-Objekt. |
require() für native Module. Nur pure JavaScript-Logik und der übergebene input-Kontext.
map-variablesMappt und umbenennt Ausgabe-Felder ohne Code. Definiert als JSON-Objekt mit Ziel-Schlüssel → Quell-Pfad.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
mappings | json | Ja | JSON-Objekt: {"zielKey": "${quellNode.feld}"} |
pdf-extractExtrahiert Text aus einem PDF-Dokument (Base64-kodiert).
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
content | string | Ja | PDF-Inhalt als Base64-String (z. B. aus S3 Download oder File Download) |
pdf-createErstellt ein neues PDF aus einfachem Text.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
text | textarea | Ja | Textinhalt des PDFs |
fontSize | number | Opt | Schriftgröße in Punkt (Standard: 12) |
font | select | Opt | Helvetica · Times-Roman · Courier |
markdown-convertKonvertiert zwischen Markdown und HTML in beide Richtungen.
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
direction | select | Ja | md-to-html · html-to-md |
input | textarea | Ja | Eingabetext (Markdown oder HTML) |
Messaging
Telegram Bot API — Nachrichten, Medien, Chat-Verwaltung
telegramSendet Nachrichten, verwaltet Chats und verarbeitet Dateien über die Telegram Bot API. Unterstützt alle gängigen Bot-API-Operationen in den Bereichen Nachrichten, Dateien, Chats und Callbacks.
Einstellungen
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | Telegram Bot Token Credential |
resource | select | Ja | message · file · chat · callback |
operation | select | Ja | Abhängig von resource — siehe Tabelle unten |
Operationen nach Resource
| Resource | Operationen |
|---|---|
message | sendMessage, editMessageText, deleteMessage, forwardMessage, sendPoll, sendLocation |
file | sendDocument, sendPhoto, sendAudio, sendVideo, getFile |
chat | getChat, getChatMember, getChatMemberCount, banChatMember, unbanChatMember, leaveChat, setChatTitle, pinChatMessage |
callback | answerCallbackQuery |
message, Operation: sendMessage. Weitere Felder: chatId (Ziel-Chat), text (Nachrichteninhalt), parseMode (HTML oder Markdown), disableNotification.
graphql-queryFührt GraphQL-Queries und -Mutations gegen beliebige GraphQL-Endpunkte aus. Unterstützt Variablen, Operation Names und optionale Credential-basierte Authentifizierung (Bearer, API Key, Basic Auth, HTTP Header).
Einstellungen
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
endpoint | string | Ja | URL des GraphQL-Endpunkts — Variablen-Syntax unterstützt |
query | code | Ja | GraphQL-Query oder -Mutation (z. B. query { user { id name } }) |
variables | json | Opt | Variablen als JSON-Objekt, die an die Query übergeben werden |
operationName | string | Opt | Name der Operation bei mehreren Definitionen im Query-Dokument |
credentialId | credential | Opt | Optionale Authentifizierung — kompatibel mit bearer-token, api-key, basic-auth, http-header |
errors-Feld zurückgibt und data leer ist, wird die Node-Ausführung als fehlgeschlagen gewertet.postgres-queryFührt SQL-Queries direkt gegen eine PostgreSQL-Datenbank aus. Unterstützt SELECT sowie DML-Statements (INSERT, UPDATE, DELETE) mit parametrisierten Platzhaltern ($1, $2, …).
Einstellungen
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | PostgreSQL-Credential (Host, Port, Datenbank, Benutzername, Passwort) |
query | textarea | Ja | SQL-Statement — Platzhalter $1, $2 für Parameter verwenden |
params | json | Opt | Parameter als JSON-Array, z. B. ["alice", 30] — werden in der Reihenfolge als $1, $2 eingesetzt |
mongodb-queryFührt MongoDB-Operationen auf einer Collection aus. Unterstützt Lesen, Schreiben, Aktualisieren, Löschen und Aggregation-Pipelines.
Einstellungen
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | MongoDB-Credential (Host, Port, Datenbank, Benutzername, Passwort, Auth-DB) |
database | string | Ja | Name der Zieldatenbank |
collection | string | Ja | Name der Collection |
operation | select | Ja | find · findOne · insertOne · updateOne · deleteOne · aggregate |
filter | json | Opt | MongoDB-Filter-Dokument (für find, findOne, updateOne, deleteOne) |
document | json | Opt | Einfüge- oder Update-Dokument |
pipeline | json | Opt | Aggregation-Pipeline als Array (nur für aggregate) |
limit | number | Opt | Maximale Anzahl zurückgegebener Dokumente (nur für find) |
mysql-queryFührt SQL-Queries direkt gegen eine MySQL- oder MariaDB-Datenbank aus. Unterstützt SELECT sowie DML-Statements mit parametrisierten ?-Platzhaltern.
Einstellungen
| Feld | Typ | Pfl. | Beschreibung |
|---|---|---|---|
credentialId | credential | Ja | MySQL-Credential (Host, Port, Datenbank, Benutzername, Passwort) |
query | textarea | Ja | SQL-Statement — ?-Platzhalter für Parameter verwenden |
params | json | Opt | Parameter als JSON-Array, z. B. ["alice", 30] — werden in der Reihenfolge der ?-Platzhalter eingesetzt |