Begriff
Action Node
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
In Workflow-Automatisierungstools wie n8n gibt es zwei Arten von Akteuren:
- Der Startschuss (Trigger), der sagt "Los geht's!".
- Die Arbeiter (Actions), die die eigentliche Arbeit erledigen.
Ein Action Node ist so ein Arbeiter. Er empfängt Daten (JSON), führt eine spezifische Aufgabe aus (z. B. "Sende E-Mail an Kunde", "Erstelle Zeile in Excel", "Lade Datei auf Dropbox hoch") und gibt das Ergebnis an den nächsten Schritt weiter. Ohne Action Nodes würde dein Workflow zwar starten, aber nichts bewirken.
Merksatz: Ein Knoten in einem n8n-Workflow, der eine aktive Operation (CRUD) in einem externen System oder eine Datentransformation durchführt, basierend auf dem Input vorheriger Knoten.
In n8n ziehst du einen Node (z. B. Slack) auf den Canvas. Jeder Node hat:
- Resource: Was willst du ansprechen? (z. B. "Message", "Channel", "User").
- Operation: Was willst du tun? (z. B. "Post", "Get", "Archive").
- Parameters: Die Details (z. B. "Channel ID", "Text").
Beispiel: Du willst, dass n8n "Hallo" in Slack postet.
- Node: Slack
- Resource: Message
- Operation: Post
- Text: "Hallo Welt"
Du verbindest den Trigger (z. B. "Schedule Trigger - Alle 9 Uhr") mit dem Slack Node. Fertig.
1. Daten-Mapping & Expressions
Statische Werte ("Hallo Welt") sind langweilig. Action Nodes leben von dynamischen Daten.
Du nutzt Expressions (JavaScript), um Daten vom Trigger zu referenzieren:
{{ $node["Webhook"].json["body"]["user_name"] }}.
Jeder Action Node iteriert standardmäßig über alle Items, die er bekommt.
Wenn der Trigger 50 Datensätze liefert, führt der Action Node die Aktion 50 Mal aus (Batch-Processing).
Achtung API-Limits! Hier brauchst du manchmal "Split In Batches" Nodes dazwischen.
2. Error Handling & Retries
Was passiert, wenn die Slack API down ist? Standardmäßig bricht der Workflow ab ("Error"). Im Tab Settings des Action Nodes kannst du einstellen:
- Retry on Fail: "Versuche es 3x alle 1 Sekunde erneut" (Exponentielles Backoff).
- Continue On Fail: "Ignoriere den Fehler und mach weiter" (Der Output enthält dann
{ "error": "..." }). - Error Workflow: "Wenn das hier schiefgeht, starte Workflow B (Alerting Team)".
3. Credentials & Authentication Management
Der Action Node abstrahiert die Authentifizierung.
Du wählst nur "Slack Wi-Fi Key" aus.
Im Hintergrund führt n8n den OAuth2-Flow oder Header-Injection durch.
Der Node selbst sieht im Code oft so aus (TypeScript):
execute() { const credentials = this.getCredentials('slackApi'); ... axios.post(...) }.
Custom Nodes in TypeScript
Wenn die eingebauten Action Nodes nicht ausreichen, schreibst du deinen eigenen.
In n8n werden Custom Nodes in TypeScript entwickelt.
Ein Action Node erbt vom Interface INodeType und implementiert die execute() Methode.
Du definierst die Parameter (z. B. Dropdowns, Textfelder) in der description Eigenschaft.
Der Build-Prozess (oft via npm run build im n8n-nodes-starter Repo) kompiliert den Node, der dann in n8n geladen werden kann.
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription, NodeOperationError } from 'n8n-workflow';
export class MyCustomAction implements INodeType {
description: INodeTypeDescription = {
displayName: 'My Custom Action',
name: 'myCustomAction',
group: ['transform'],
version: 1,
description: 'Does something awesome',
defaults: { name: 'My Custom Action' },
inputs: ['main'],
outputs: ['main'],
properties: [
// ... UI properties hier
],
};
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
// ... Business Logic & API Calls hier
return [this.getInputData()];
}
}
Der execute() Context und axios
Innerhalb der execute() Methode eines Action Nodes hast du Zugriff auf den Execute Context (this: IExecuteFunctions).
Dieser Context bietet Helfer für fast alles. Wenn du eine API aufrufen musst, nutzt du idealerweise die integrierte this.helpers.requestWithAuthentication() (oder request für no-auth).
Dies ist besser als nacktes Axios, da n8n so Dinge wie Zertifikate, Proxy-Einstellungen und Credentials automatisch managed.
Sollte ein Fehler auftreten, wirfst du einen NodeOperationError, der sauber ins n8n UI geroutet wird.
Programmatic Triggers vs. Action Polling
Eine Action ruft aktiv eine Funktion auf. Wenn du darauf wartest, dass in System A etwas passiert, bist du eigentlich bei einem Trigger-Node. Hat System A keine Webhooks? Dann baut man oft einen Action Node, der als "Poller" fungiert. Er vergleicht den Zustand (z. B. "letzte gelesene ID") in einer Schleife via Schedule. Das ist teuer für die Infrastruktur, oft aber der einzige Weg für Legacy-APIs.
Quick-Check
Was ist der Unterschied zum "HTTP Request Node"?
Der Action Node (z. B. "Slack") ist ein spezialisierter Wrapper um die API. Er kennt die Felder und Endpunkte. Der HTTP Request Node ist ein generisches Werkzeug – du musst URL, Method und Auth selbst bauen. Action Nodes sind bequemer ("Low Code"), HTTP Nodes flexibler ("Pro Code").Kann ein Action Node auch Trigger sein?
Nein. Ein Node ist technisch entwederIRunnable(Action) oderITrigger. Manche Dienste (wie GitHub) haben aber beides: Einen GitHub Trigger Node (für Webhooks) und einen GitHub Action Node (um Issues zu erstellen).Was bedeutet "Execute Once"?
Eine Einstellung, die den Node zwingt, nur einmal zu laufen, auch wenn 100 Items reinkommen. Nützlich für "Sende eine Zusammenfassungs-Email" statt "Sende 100 Einzel-Emails".