Was macht n8n Workflow Skill?
Erstelle, stelle bereit und verwalte n8n-Workflows vollständig über die API – mit vorgefertigten Node-Snippets und erprobten Mustern.
Einrichtung
Fülle vor dem ersten Gebrauch deine Instanzdetails unten ein. Deinen API-Key erhältst du in n8n Einstellungen > API.
- URL:
https://YOUR_INSTANCE.app.n8n.cloud - API-Key:
YOUR_API_KEY - Projekt-ID:
YOUR_PROJECT_ID(optional, für Multi-Projekt-Instanzen)
Credentials
Ordne hier deine Credential-Aliasnamen zu. Die IDs erhältst du über GET /api/v1/credentials.
| Alias | Credential-Typ | ID | Name |
|---|---|---|---|
| gmail | gmailOAuth2 | ||
| sheets | googleSheetsOAuth2Api | ||
| slack | slackOAuth2Api | ||
| openai | openAiApi | ||
| anthropic | anthropicApi | ||
| telegram | telegramApi | ||
| notion | notionApi |
Füge nach Bedarf Zeilen hinzu. Das Feld name muss exakt mit dem Namen übereinstimmen, den du dem Credential in deiner n8n-Instanz gegeben hast (Einstellungen > Credentials). Die Node-Snippets in ./references/nodes/ verwenden Platzhalter-Credentials – Claude tauscht beim Erstellen von Workflows deine IDs aus dieser Tabelle ein.
Schnellstart: Neuer Workflow
- Überprüfe
./references/nodes/auf vorgefertigte Node-Snippets. Kopieren, umbenennen, Positionen setzen. - Erstelle das JSON (Nodes-Array + Connections-Objekt).
- Schreibe nach
/tmp/<name>.json. - Führe aus:
bash ./references/deploy.sh /tmp/<name>.json - Fertig. Das Skript übernimmt POST, Projekt-Transfer, Verifikation und Index-Update.
Verbindungsformat
"Quellname": { "main": [[{"node": "Ziel", "type": "main", "index": 0}]] }
- Fan-out (eine Quelle, mehrere Ziele):
"main": [[{"node": "A", ...}, {"node": "B", ...}]] - Eingänge zusammenführen: Quelle A verbindet mit
"index": 0, Quelle B mit"index": 1 - IF-Verzweigung:
"main": [ [true-Ziele], [false-Ziele] ] - AI-Sub-Node:
"ai_languageModel": [[{"node": "Modellname", "type": "ai_languageModel", "index": 0}]] - AI-Tool-Sub-Node:
"ai_tool": [[{"node": "Werkzeugname", "type": "ai_tool", "index": 0}]]
Workflow-JSON-Struktur
{
"name": "Workflow-Name",
"nodes": [...],
"connections": {...},
"settings": { "executionOrder": "v1", "callerPolicy": "any" }
}
- POST-Body darf das Feld
activeNICHT enthalten (nur lesbar, zum Aktivieren PATCH verwenden) - Entferne alle Settings-Schlüssel außer:
executionOrder,callerPolicy,saveDataSuccessExecution,errorWorkflow(falls vorhanden) - Schlüssel, die VOR PUT entfernt werden MÜSSEN:
binaryMode,availableInMCP,timeSavedMode
API-Endpunkte
POST /api/v1/workflows — erstellen
GET /api/v1/workflows/{id} — abrufen (IMMER vor PUT)
PUT /api/v1/workflows/{id} — aktualisieren
PATCH /api/v1/workflows/{id} — aktivieren/deaktivieren: { "active": true }
PUT /api/v1/workflows/{id}/transfer — in Projekt verschieben
GET /api/v1/executions/{id}?includeData=true — Ausführungsdaten abrufen
GET /api/v1/credentials — alle Credentials auflisten
Regeln
- GET vor PUT – niemals aus dem Cache ändern, immer die aktuelle Version abrufen
- Nach PUT verifizieren – erneut abrufen und bestätigen, dass die Änderungen übernommen wurden
- Verbindungen verwenden Node-NAMEN, niemals UUIDs
- Bevorzuge native Plattform-Nodes gegenüber HTTP-Request (zeigt Plattform-Logos in der UI)
- Code-Nodes mit
!-Zeichen: JS zuerst nach/tmp/*.jsschreiben, dann wieder auslesen (Python-String-Escaping wandelt!in\!um) includeData=truebei Ausführungsabfragen (ohne istdata.resultData.runDatanull)callerPolicyerlaubte Werte:any,none,workflowsFromAList,workflowsFromSameOwner
Ausdruckssyntax (HTTP-Request-Body)
- FUNKTIONIERT:
={{ ({ key: value }) }}– Objekt in Klammern, kein JSON.stringify - DEFEKT:
={{ JSON.stringify({...}) }}– verursacht „ungültige Syntax” - DEFEKT:
={{ }}eingebettet in statischen JSON-Body – wird nicht ausgewertet - Node-übergreifende Referenz:
$item(0).$node["NodeName"].json.field
Node-Bibliothek
Vorgefertigte Node-Snippets befinden sich in ./references/nodes/. Jede Datei ist ein gebrauchsfertiges JSON-Node-Objekt.
Verpflichtender Workflow:
- Vor dem Erstellen eines Nodes,
./references/nodes/*.jsondurchsuchen, um zu sehen, was verfügbar ist. - Wenn der Node-Typ in der Bibliothek existiert, kopiere sein JSON und passe es an (Name, Position, Parameter). Schreibe NICHT von Grund auf neu.
- Wenn der Node-Typ NICHT in der Bibliothek existiert, erstelle ihn von Grund auf.
- Nachdem der Workflow bereitgestellt ist, speichere alle neu erstellten Node-Typen in der Bibliothek unter
./references/nodes/<node-name>.json.
Tiefgehende Referenzen (nur bei Bedarf laden)
./references/patterns.md— Wiederholungsmuster, persistenter Zustand, Ausdrucksfallen./references/rules.md— PUT/POST-Regeln, Settings-Whitelist, Namenskonventionen./references/node-types.md— Parameter-Referenz für gängige Node-Typen