Direkt zur Antwort

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?

Vier eigene Einstiege und ihre Grenzen
BeispielVoraussetzungErgebnis
Manuelle DatenprobeLerninstanz mit JavaScript-Code-Node und passender RunnerkonfigurationZwei markierte Testdatensätze; kein externer Zugriff.
Webhook-AnfrageEigener Testendpunkt mit bewusstem ZugangswegGeprüftes Ereignis; noch keine automatische Aktion.
Outlook-EntwurfPassender Microsoft-Zugang und erforderliche BerechtigungenMailentwurf zur Prüfung; kein Versand.
Natives PythonUnterstützte Python-Code-Laufzeit und passende Task RunnerDie 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.

Zwei fiktive Eingabedatensätze werden manuell eingelesen und nach derselben Regel als bereit oder prüfen markiert
Eigene Offline-Datenprobe. Die Grafik zeigt Eingaben und erwartete Markierungen, keine beobachtete n8n-Ausführung und keine geschäftliche Freigabe.

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.

  1. Öffne einen eigenen leeren Lernworkflow und wähle im Workflowmenü den Import aus Datei.
  2. Kontrolliere alle drei Nodes und Verbindungen. Beide Code-Nodes verwenden JavaScript und Run Once for All Items.
  3. Starte manuell über Execute workflow. Öffne zuerst die Ausgabe von Fiktive Testdaten und anschließend von Daten prüfen.
  4. 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"
  }};
});
Erwartete Ausgabe der fiktiven Probe
EingangErwartete Markierung
nummer: „ A-01 “, betrag_cent: 1299nummer: „A-01“, pruefung: „bereit“
nummer: „“, betrag_cent: 2500Leere 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.

  1. Lege den passenden Microsoft-Zugang im Credential-Dialog an und prüfe die erforderlichen Berechtigungen für dein Postfach und die verwendeten Operationen.
  2. Übernimm aus einer ausgewählten Testnachricht nur die benötigten Daten, etwa Betreff und einen bereinigten Textauszug. Lege Empfänger und Zielpostfach bewusst fest.
  3. 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.
  4. 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 ergebnis

Die 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.

Belege für die Aussagen

  1. n8n: Code-NodeBelegt: Modi, natives Python und Grenzen. · geprüft am 20. Oktober 2026
  2. n8n: Task RunnerBelegt: Gelesener externer Runnerpfad und Versionsbindung. · geprüft am 20. Oktober 2026
  3. n8n: OutlookBelegt: Draft/Create und getrennte Send-Operationen. · geprüft am 20. Oktober 2026
  4. n8n: Outlook TriggerBelegt: Message Received. · geprüft am 20. Oktober 2026
  5. n8n: Export und ImportBelegt: JSON im Editor und Prüfung vor dem Teilen. · geprüft am 20. Oktober 2026
  6. n8n: ManualTrigger-QuellcodeBelegt: Nodeversion 1 und manuelle Auslösung. · geprüft am 20. Oktober 2026
  7. n8n: Code-QuellcodeBelegt: Nodeversion 2 und Parameter der eigenen Vorlage. · geprüft am 20. Oktober 2026