Starte mit der manuellen Datenprobe ohne externe Dienste. Übertrage die Struktur danach auf einen Webhook oder einen Outlook-Entwurf. Python ist eine eigene Laufzeitentscheidung; für einfache Felder genügen oft Expressions oder normale Transformations-Nodes.
Welches Beispiel passt zu deiner Aufgabe?
| Beispiel | Voraussetzung | Ergebnis |
|---|---|---|
| Manuelle Datenprobe | Lerninstanz mit JavaScript-Code-Node und passender Runnerkonfiguration | Zwei markierte Testdatensätze; kein externer Zugriff. |
| Webhook-Anfrage | Eigener Testendpunkt mit bewusstem Zugangsweg | Geprüftes Ereignis; noch keine automatische Aktion. |
| Outlook-Entwurf | Passender Microsoft-Zugang und erforderliche Berechtigungen | Mailentwurf zur Prüfung; kein Versand. |
| Natives Python | Unterstützte Python-Code-Laufzeit und passende Task Runner | Die gleiche kleine Datenprüfung in Python. |
Schreibe vor dem ersten Node einen Satz: Wenn dieses Ereignis eintritt, sollen diese Daten geprüft und genau diese Ausgabe erzeugt werden. Damit trennst du den technischen Ablauf von einer pauschalen Idee wie „KI erledigt den Support“. Für einen anschließenden Tabellenablauf zeigt n8n mit Google Sheets, wie du zuerst liest und danach eine gezielte Schreibaktion prüfst.
Die Importdatei unten ist eine eigene Lernvorlage. Die übrigen Beispiele beschreiben einen Aufbau, den du an deinen Dienst und deine Instanz anpassen musst. Keines davon ist als ausgeführter Produktivworkflow ausgewiesen. Wenn dein Ablauf erst nach einer Entscheidung handeln soll, kannst du einen n8n-Workflow mit menschlicher Freigabe testen. Der verlinkte Praxistest dokumentiert vier tatsächlich ausgeführte serielle n8n-Läufe mit künstlichen Entscheidungen und einer internen Testausgabe. Er misst keine menschliche Prüfsorgfalt und belegt keine Zuverlässigkeit bei Neustarts oder parallelen Anfragen.

Beispiel 1: Testdaten prüfen und markieren
Die manuelle n8n-Datenprobe als JSON enthält drei Nodes: Manual Trigger → Fiktive Testdaten → Daten prüfen. Es gibt keinen Zeitplan, kein Credential und keinen Versand- oder Netzwerk-Node. active ist auf false gesetzt.
- Öffne einen eigenen leeren Lernworkflow und wähle im Workflowmenü den Import aus Datei.
- Kontrolliere alle drei Nodes und Verbindungen. Beide Code-Nodes verwenden JavaScript und Run Once for All Items.
- Starte manuell über Execute workflow. Öffne zuerst die Ausgabe von Fiktive Testdaten und anschließend von Daten prüfen.
- Vergleiche beide Items mit der Ergebnistabelle. Erst eine sichtbare Übereinstimmung ist dein eigener Abnahmebeleg.
Eigene Prüflogik im dritten Node
return $input.all().map(item => {
const source = item.json;
const nummer = typeof source.nummer === "string" ? source.nummer.trim() : "";
const betragGueltig = Number.isInteger(source.betrag_cent) && source.betrag_cent >= 0;
return { json: {
nummer,
betrag_cent: source.betrag_cent,
pruefung: nummer !== "" && betragGueltig ? "bereit" : "pruefen"
}};
});| Eingang | Erwartete Markierung |
|---|---|
| nummer: „ A-01 “, betrag_cent: 1299 | nummer: „A-01“, pruefung: „bereit“ |
| nummer: „“, betrag_cent: 2500 | Leere Nummer bleibt leer, pruefung: „pruefen“ |
Der Betrag steht hier als ganze Zahl in Cent; die Regel ist nur eine Formatprüfung und keine fachliche Rechnungsfreigabe. Der Wert 0 ist absichtlich gültig. Eine Zeichenkette wie "1299" wird nicht still in eine Zahl umgewandelt.
Code macht die Übungsregel gut vergleichbar. Für normale Feldzuweisungen sind n8n-Ausdrücke und Datenfelder verstehen oft der direktere Einstieg. Prüfe den tatsächlichen Datentyp, bevor du eine Formel übernimmst.
Beispiel 2: Eine Anfrage kontrolliert annehmen
Eine Anwendung meldet einen neuen Testdatensatz. Der Webhook soll zuerst nur Methode, Zugang und Datenformat prüfen. Ein eigener Ereignisschlüssel hilft später zu erkennen, ob dieselbe Anfrage erneut eingetroffen ist.
Eigenes fiktives Eingabeformat
{
"ereignis_id": "TW-TEST-001",
"nummer": "A-01",
"betrag_cent": 1299
}Die geplante Folge lautet Webhook → Felder prüfen → Ergebnis zurückgeben. Lege fest, welche Felder Pflicht sind und wie ein fehlerhafter Request beantwortet wird. Eine Kennung allein verhindert keine Doppelverarbeitung; dafür brauchst du bei echten Effekten eine bewusst implementierte Prüfung und einen geeigneten Speicher.
Einen n8n-Webhook kontrolliert einrichten führt durch Listener, Testadresse und getrennte Production URL. Übertrage deine geprüfte Regel erst danach auf einen veröffentlichten Workflow. Eine sichtbare URL ist noch kein getesteter produktiver Eingang.
Beispiel 3: Outlook-Nachricht als Entwurf vorbereiten
Für einen ersten Mailablauf ist ein Entwurf ein gut sichtbarer Haltepunkt. Der Microsoft Outlook Trigger bietet Message Received. Danach wählst du die benötigten Felder aus und verwendest im Outlook-Node Draft → Create. Die separaten Send-Operationen gehören nicht in dieses Beispiel.
- Lege den passenden Microsoft-Zugang im Credential-Dialog an und prüfe die erforderlichen Berechtigungen für dein Postfach und die verwendeten Operationen.
- Übernimm aus einer ausgewählten Testnachricht nur die benötigten Daten, etwa Betreff und einen bereinigten Textauszug. Lege Empfänger und Zielpostfach bewusst fest.
- Erstelle einen klar als Entwurf erkennbaren Text, zunächst auch ohne KI. Falls du später ein Sprachmodell ergänzt, prüfe den zusätzlichen Empfänger der Mailinhalte.
- Wähle Draft/Create und kontrolliere den erzeugten Entwurf im richtigen Postfach. Überprüfe Empfänger, Betreff, Inhalt und Zahl erzeugter Entwürfe.
Für diese Probe richtest du keinen Draft/Send-, Message/Send- oder Reply-Schritt ein. Das beschränkt den Ablauf, aber nicht automatisch die Rechte des gespeicherten Zugangs. Zugangsdaten in n8n getrennt verwalten erklärt die Trennung zwischen Credential, verwendendem Node und erlaubter Operation.
Markiere Nachrichten oder speichere eine bereits verarbeitete ID erst mit einem durchdachten Wiederholungsplan. Sonst kann eine erneut eintreffende oder wiederholte Ausführung mehrere Entwürfe anlegen.
Beispiel 4: Daten mit nativem Python vereinheitlichen
Ersetze in einer Kopie der manuellen Probe den dritten Node durch einen Code-Node mit Python und Run Once for All Items. Der native Modus verwendet _items; einzelne Felder liest du über eckige Klammern. Alte Pyodide-Beispiele sind ab n8n 2.0 kein aktueller Laufzeitpfad.
Eigene importfreie Python-Variante
ergebnis = []
for item in _items:
quelle = item["json"]
roh = quelle.get("nummer")
nummer = roh.strip() if isinstance(roh, str) else ""
betrag = quelle.get("betrag_cent")
gueltig = type(betrag) is int and betrag >= 0
ergebnis.append({"json": {
"nummer": nummer,
"betrag_cent": betrag,
"pruefung": "bereit" if nummer and gueltig else "pruefen"
}})
return ergebnisDie Ausgabe soll der JavaScript-Probe entsprechen. Der strenge Test type(betrag) is int lässt auch in Python keine booleschen Werte als Geldzahl durch. Das ist eine bewusste eigene Datenregel.
Der Code enthält keine Imports. n8n Cloud erlaubt im nativen Python-Code keine Standardbibliothek- oder Drittanbieterimporte. Beim Selfhosting müssen zusätzliche Pakete im Runner vorhanden und zugelassen sein. Ein auf dem Host installiertes Paket ist nicht automatisch im Runner erreichbar.
Für produktive Codeausführung beschreibt n8n externe, zusätzlich gehärtete Task Runner als notwendigen Isolationsweg. Ihre Imageversion muss zur n8n-Version passen. Wenn Python nicht angeboten wird oder der Runner fehlt, kläre die Instanzkonfiguration; ersetze die Fehlermeldung nicht durch unkontrollierte Hostbefehle. HTTP-Aufrufe gehören in passende Nodes, nicht in dieses Datenbeispiel.
Vor Aktivierung: prüfen, exportieren und begrenzen
Teste mindestens einen gültigen Datensatz, einen fehlenden Pflichtwert und einen falschen Typ. Prüfe anschließend, ob eine erneute Ausführung unerwünschte zusätzliche Effekte erzeugen würde. Ein korrekter erster Durchlauf reicht dafür nicht.
Für echte Integrationen hältst du Zugänge, Testdaten und Freigabeschritt getrennt. Entscheide, was bei einem Fehler angehalten wird, wer das Ergebnis kontrolliert und welche Daten im Ausführungsverlauf verbleiben. Ein KI-Schritt bekommt ein eigenes inhaltliches Prüfkriterium.
Exportiere einen einzelnen Lernworkflow über das Editor-Menü als JSON. Kontrolliere die Datei vor dem Teilen: Ein Export kann Credentialnamen und IDs enthalten; eingefügte HTTP-Header können ebenfalls sensible Angaben tragen. Die hier angebotene eigene Vorlage enthält keine solchen Zugänge.
Die JSON-Struktur und die enthaltene JavaScript-Logik werden für diesen Artikel separat geprüft. Ein Import oder eine Ausführung innerhalb einer n8n-Instanz wurde nicht vorgenommen. Dein erster manueller Test bleibt deshalb Teil der Einrichtung.
Quellen & Methode
Vorgehen und Grenzen
Originaldokumentation am 20. Oktober 2026 im dokumentierten Lesebereich geprüft. Historische Haupttexte dienen der symmetrischen Intentanalyse. Testdatei, Datenprobe, Code, Arbeitsblatt und Grafiken sind eigene Beispiele. Keine tatsächliche AnythingLLM-/n8n-/Home-Assistant-Installation, Geräteaktion, Workflowausführung oder Softwareaktualisierung behauptet.
Bei Recherche, Texterstellung und Grafiken wird KI eingesetzt. Welche eigenen Versuche vorliegen und was nur als Beispiel dient, beschreibt dieser Beitrag. Unser Redaktionsstandard erklärt die Anforderungen an Belege und Berichtigungen.





