Aktionsknoten
Eingebaute Knoten für HTTP-Anfragen, Websuche, Verzögerungen, Code, Bilder, Datentabellen, Geheimnisse und Ablaufsteuerung
Aktions- und Ablaufknoten erledigen die Arbeit zwischen Trigger und Ergebnis: Daten abrufen, Code ausführen, warten, verzweigen, wiederholen und andere Workflows aufrufen. Jeder Knoten hat Eingaben, die Sie eintippen oder mit Variablen füllen, und benannte Ausgaben für spätere Knoten. Die Namen der Ein- und Ausgaben zeigt der Builder auch in der deutschen Oberfläche auf Englisch.
Einstellungen, die jeder Knoten hat
Aktions-, Integrations- und Agentenknoten haben unten in ihrem Panel zwei Einstellungen:
- Fehlerbehandlung: Workflow stoppen (Standard) beendet die Ausführung, wenn der Knoten fehlschlägt. Fehlerausgabe verwenden aktiviert stattdessen den Fehlerausgang des Knotens, an den Sie einen Ausweichpfad anschließen.
- Genehmigung erforderlich: Die Ausführung hält vor diesem Knoten an, bis jemand genehmigt. Siehe Genehmigungen.
Aktionen
HTTP-Anfrage
Sendet eine HTTP-Anfrage und gibt die Antwort zurück.
| Eingabe | Erforderlich | Beschreibung |
|---|---|---|
| URL | Ja | Die aufzurufende URL |
| Method | Ja | GET (Standard), POST, PUT, PATCH oder DELETE |
| Headers | Nein | Schlüssel-Wert-Paare, die als Header gesendet werden |
| Request Body | Nein | Body für POST, PUT und PATCH |
| Response Type | Nein | Auto (text/JSON) (Standard) oder File (binary) |
| File Name | Nein | Name der heruntergeladenen Datei beim Antworttyp File (binary) |
| Ausgabe | Typ | Beschreibung |
|---|---|---|
response | any | Der Antwort-Body. null beim Antworttyp File |
statusCode | number | HTTP-Statuscode |
file | WorkflowFile | Die heruntergeladene Datei, nur beim Antworttyp File |
- Bei
Auto (text/JSON)lässt eine binäre Antwort (ein PDF, ein Bild, ein ZIP) den Knoten mit dem Hinweis fehlschlagen, den Antworttyp aufFile (binary)zu stellen. Eine Datei wird bis 100 MB gespeichert. - Das Token eines Knotens Get Auth Credentials mitschicken: siehe Get Auth Credentials.
Websuche
Durchsucht das Web.
| Eingabe | Erforderlich | Beschreibung |
|---|---|---|
| Search Query | Ja | Wonach gesucht wird |
| Max Results | Nein | Anzahl der Ergebnisse, 1 bis 100 (Standard 10) |
| Ausgabe | Typ | Beschreibung |
|---|---|---|
results | array | Die Suchergebnisse |
resultCount | number | Anzahl der gelieferten Ergebnisse |
Verzögerung
Hält die Ausführung für eine Dauer oder bis zu einem Zeitpunkt an und setzt sie dann fort. Während der Wartezeit läuft nichts weiter.
| Eingabe | Erforderlich | Beschreibung |
|---|---|---|
| Wait Mode | Ja | For a duration (Standard) oder Until a specific time |
| Duration | Je nach Modus | Wie lange gewartet wird, im Modus Dauer |
| Unit | Je nach Modus | Seconds, Minutes (Standard), Hours oder Days |
| Resume At | Je nach Modus | Der Zeitpunkt, zu dem es weitergeht, im Modus Zeitpunkt |
| Ausgabe | Typ | Beschreibung |
|---|---|---|
resumedAt | string | ISO-Zeitstempel, zu dem die Ausführung weiterlief |
Liegt Resume At bereits in der Vergangenheit, geht es sofort weiter. Eine einzelne Verzögerung wartet höchstens 90 Tage. Eine längere Wartezeit lässt den Knoten fehlschlagen.
RSS-Feed
Ruft einen RSS- oder Atom-Feed ab und wertet ihn aus.
| Eingabe | Erforderlich | Beschreibung |
|---|---|---|
| Feed URL | Ja | Die Adresse des Feeds |
| Max Items | Nein | Höchstzahl der Einträge, 1 bis 100 (Standard 10) |
| Ausgabe | Typ | Beschreibung |
|---|---|---|
items | array | Feed-Einträge, jeweils mit title, link, description, content und pubDate |
feedTitle | string | Titel des Feeds |
feedDescription | string | Beschreibung des Feeds |
itemCount | number | Anzahl der gelieferten Einträge |
Code
Führt JavaScript aus. Nutzen Sie ihn zum Filtern, Sortieren, für Textverarbeitung, Berechnungen und andere Logik, die keine KI braucht.
| Eingabe | Erforderlich | Beschreibung |
|---|---|---|
| Code | Ja | Das auszuführende JavaScript |
| Ausgabe | Typ | Beschreibung |
|---|---|---|
result | any | Der Wert, den Ihr Code zurückgibt |
-
Ihr Code muss mit
returneinen Wert zurückgeben. Dieser Wert wird zuresult. -
Die Ausgaben früherer Knoten stehen als globale Variablen unter ihrem Variablennamen bereit, etwa
formTrigger.outputs.formData. Die Schreibweise{{…}}gilt hier nicht. -
asyncundawaitfunktionieren, undfetchsteht für HTTP-Aufrufe bereit. -
fetchAs('jira', '/rest/api/3/myself')ruft einen verbundenen Dienst mit seinen Zugangsdaten auf, genau wie der Knoten Authentifizierte Anfrage, und liefert eine Antwort mitstatus,ok,headers,text(),json()undbytes(). Dafür nutzt es eine Verbindung, die ein anderer Knoten desselben Workflows schon verwendet. Nutzt der Workflow mehrere Verbindungen eines Dienstes, nennen Sie eine:fetchAs('jira@<Site oder Konto der Verbindung>', …). Die Zugangsdaten erreichen Ihren Code nie. Eine Weiterleitung auf einen anderen Host, wie sie ein Download-Link liefert, wird ohne die Zugangsdaten verfolgt;await res.bytes()enthält dann die Datei. Antworten sind auf 10 MB begrenzt. -
dg.log(),dg.debug(),dg.warn()unddg.error()schreiben ins Protokoll des Knotens im Ausführungsverlauf.console.log()geht ebenfalls. -
Neben Standard-JavaScript sind diese Hilfsmittel eingebaut:
atob()undbtoa()für Base64 (nur Latin-1-Text, wie im Browser) sowieBufferfür Bytes und andere Kodierungen, etwaBuffer.from(text, 'utf8').toString('base64')oderBuffer.from(b64, 'base64').toString('utf8').TextEncoderundTextDecoder, auch mit den OptionenfatalundignoreBOM.JSZipzum Lesen und Schreiben von ZIP-Dateien. Auch Word-, Excel- und PowerPoint-Dateien sind ZIP-Dateien, so lesen Sie den Text eines heruntergeladenen Dokuments:const zip = await JSZip.loadAsync(await response.bytes()); const xml = await zip.file('word/document.xml').async('string');. Passwortgeschützte ZIP-Dateien lassen sich nicht öffnen.setTimeout()undclearTimeout(), etwa um zwischen zwei Anfragen zu warten. Ein Timer muss innerhalb von 60 Sekunden nach dem Start auslösen, und es können höchstens 1.000 Timer gleichzeitig ausstehen.require('buffer')undrequire('jszip')liefern dieselben Bibliotheken.
-
Der Code läuft in einer abgeschotteten Umgebung. Es gibt kein Dateisystem, keine npm-Pakete und kein
import;require()kennt nur die beiden Namen oben.FormDataundBlobstehen nicht bereit. -
Grenzen pro Lauf:
- 60 Sekunden Rechenzeit und insgesamt 5 Minuten, einschließlich der Zeit, in der der Code auf Anfragen und Timer wartet.
- 512 MB Arbeitsspeicher.
- Ein Ergebnis von höchstens 10 MB.
- Die ersten 1.000 Protokollzeilen oder 1 MB Protokolltext werden behalten.
Über der Zeit-, Speicher- oder Ergebnisgrenze bricht der Lauf mit einer Fehlermeldung ab, die die Grenze nennt. Protokollzeilen über der Grenze werden mit einem Hinweis verworfen.
const items = formTrigger.outputs.formData.items;
return items.filter((i) => i.status === 'open').map((i) => i.title);
Bildgenerierung
Erzeugt ein Bild aus einer Textbeschreibung.
| Eingabe | Erforderlich | Beschreibung |
|---|---|---|
| Model | Ja | Das Bildmodell |
| Prompt | Ja | Beschreibung des Bildes |
| Ausgabe | Typ | Beschreibung |
|---|---|---|
image | WorkflowFile | Das erzeugte Bild |
revisedPrompt | string | Der Prompt, wie das Modell ihn verstanden hat, falls es Prompts umschreibt |
Datentabellen
Die Unteransicht Integrationen → Datentabellen der Knotenauswahl enthält vier Knoten: Datentabelle: Zeilen abrufen, Zeile einfügen, Zeilen aktualisieren und Zeilen löschen. Ihre Ein- und Ausgaben sowie die drei weiteren Knoten der Integration Datentabelle beschreibt die Seite der Integration Datentabelle.
Geheimnisspeicher
Die Unteransicht Integrationen → Geheimnisspeicher liest Werte aus Ihren Geheimnisspeichern:
- Alle Geheimnisse abrufen: Eingabe Secret Store, Ausgabe
variables, ein Objekt aus allen Schlüsseln und Werten - Einzelnes Geheimnis abrufen: Eingaben Secret Store und Variable Key, Ausgabe
value
Spätere Knoten verweisen auf diese Ausgaben wie auf jede andere Variable, etwa {{getAllSecrets.outputs.variables.API_KEY}}. Als Secret markierte Werte werden als Verweis weitergegeben und erst aufgelöst, wenn der nächste Knoten läuft. Ausgaben und Ausführungsverlauf zeigen deshalb einen Verweis statt des Werts.
Ablauf
Bedingung
Leitet die Ausführung in einen von mehreren Zweigen. Jeder Zweig hat eine Bezeichnung und eine Bedingung. Es läuft der erste Zweig, dessen Bedingung zutrifft.
Eine Bedingung ist ein JavaScript-ähnlicher Ausdruck mit Variablen:
{{webSearch.outputs.results.length}} > 0
{{httpRequest.outputs.statusCode}} === 200
{{aiAgent.outputs.result.sentiment}} !== "negative"
{{code.outputs.result.flag}} === true
Schreiben Sie die Variable ohne Anführungszeichen. Textwerte werden als Text verglichen, mit dem Vergleichswert in Anführungszeichen ("negative"); Zahlen und Wahrheitswerte ohne Anführungszeichen (200, true). Text, der genau eine Zahl, true, false oder null ist, wird als dieser Wert verglichen, "200" ist also gleich 200. Eine Variable in einem regulären Ausdruck (/…/) wird nicht unterstützt; um Text zu durchsuchen, verwenden Sie .includes("…").
Statt eines Ausdrucks können Sie die Bedingung im Modus KI-Prompt in normaler Sprache formulieren; ein KI-Modell entscheidet dann, ob sie zutrifft. Das kostet Tokens.
Einen automatischen Standardzweig gibt es nicht. Um alle übrigen Fälle aufzufangen, fügen Sie als letzten Zweig einen mit dem Ausdruck true hinzu.
| Ausgabe | Typ | Beschreibung |
|---|---|---|
matchedConditionId | string | ID des passenden Zweigs oder null |
matchedConditionLabel | string | Bezeichnung des passenden Zweigs oder null |
evaluationErrors | array | Zweige, deren Bedingung sich nicht auswerten ließ, jeweils mit conditionLabel und error. Ein solcher Zweig gilt als nicht zutreffend; eine Variable, die es nicht gibt, beendet den Workflow mit einem Fehler |
Schleife
Eine Schleife legt einen Knoten Schleife Start und einen Knoten Schleife Ende an. Die Knoten dazwischen laufen einmal pro Element.
Schleife Start nimmt ein Array und liefert pro Durchlauf:
| Ausgabe | Typ | Beschreibung |
|---|---|---|
currentItem | any | Das aktuelle Element |
currentIndex | number | Index des Elements, beginnend bei 0 |
items | array | Alle Elemente |
total | number | Anzahl der Elemente |
isFirst | boolean | Ob es das erste Element ist |
isLast | boolean | Ob es das letzte Element ist |
Schleife Ende nimmt ein Iteration Result, also den Wert, der aus jedem Durchlauf gesammelt wird, und liefert:
| Ausgabe | Typ | Beschreibung |
|---|---|---|
results | array | Die gesammelten Ergebnisse |
count | number | Anzahl der Durchläufe |
Subworkflow
Ruft einen anderen Workflow auf, der mit einem Subworkflow-Trigger beginnt, und wartet, bis er fertig ist. Wählen Sie den Workflow und füllen Sie die Parameter aus, die sein Trigger festlegt.
Der aufgerufene Workflow muss bereitgestellt, aktiv und im selben Arbeitsbereich sein. Aufrufe lassen sich bis zu 10 Ebenen tief verschachteln. Hält der Subworkflow für eine Genehmigung an, pausiert auch die aufrufende Ausführung.
Die Ausgaben des Knotens enthalten die Ausgaben der Knoten im Subworkflow, nach Knoten gruppiert, etwa {{subworkflow.outputs.<Knoten>.<Feld>}}. Die genauen Pfade zeigt das Panel Variablen. Kosten im Subworkflow zählen zur aufrufenden Ausführung.