n8n: Workflows und Agenten

Ab Montag wird ein eigener kleiner Workflow gebaut. Der Einstieg verarbeitet einen Kontakt und macht Eingabe, Modellschritt und Ergebnis sichtbar. Der Ausbau ergänzt strukturierte Felder und eine feste Kontaktsperre.

Vier Begriffe

Begriff Bedeutung
Chat Ein Mensch stellt eine Aufgabe und führt den Dialog.
Wiederverwendbare Anweisungen Regeln und Wissen werden getrennt von der aktuellen Eingabe gepflegt.
Workflow Der Ablauf ist vorgegeben; ein Modell kann einzelne Aufgaben übernehmen.
Agent Das Modell wählt innerhalb gesetzter Grenzen Werkzeuge oder nächste Schritte.

Eine Basic LLM Chain mit einem festgelegten Prompt ist noch kein Agent. Ein Agentenknoten allein beweist ebenfalls keinen sinnvollen Entscheidungsspielraum. Entscheidend sind die tatsächlichen Aufrufe und der Nutzen im Vergleich mit einer einfacheren Lösung. Architekturgrundlage.

Starten und importieren

Starterpaket als ZIP herunterladen und entpacken. In n8n einen neuen Workflow öffnen, im Workflow-Menü „Import from File“ wählen, eine JSON-Datei importieren und unter einem eigenen Namen speichern. Die gleichnamige Markdown-Datei enthält die zugehörige Anleitung.

Erster Erfolg in etwa fünf Minuten: Variante 00 importieren und „Execute Workflow“ wählen. Der vorgefüllte Kontakt läuft durch eine feste Regel bis zur Ausgabe. Danach kontakt_erlaubt von ja auf nein ändern und die beiden Ausführungspfade vergleichen. Dafür wird weder eine Modell- noch eine Datenbankverbindung benötigt.

Referenz Einsatz Download
00 Ohne KI Erster Lauf, Daten und feste Regel, fünf Knoten JSON · Anleitung
01 Starter Montag gemeinsam bauen, fünf Knoten JSON · Anleitung
02 Struktur und Sperre Dienstag/Mittwoch ausbauen, neun Knoten JSON · Anleitung
04 CRM lesen Optionaler Datenbankeinstieg ohne KI, sieben Knoten JSON · Anleitung
05 CRM und KI Datenbankabruf und strukturierter Entwurf, dreizehn Knoten JSON · Anleitung
03 Agentenvergleich Kurze Lehrdemo, optional vertiefen JSON · Anleitung

Alle Exporte sind inaktiv und enthalten keine Zugangsdaten. Die Lehrperson bereitet die Modellverbindung vor. Die Referenzen setzen native n8n-Knoten ein; Studierende müssen keinen Programmcode schreiben. Der Starter nutzt eine Textausgabe, damit ein JSON-Schema nicht den ersten Lernerfolg blockiert.

Empfohlene Reihenfolge: 00 → 01 → 02. Mit verfügbarer Aurenta-Verbindung folgt 04 → 05. Variante 03 bleibt eine zusätzliche Lehrdemo. Bei den KI-Varianten die vorbereitete Verbindung im Knoten Kursmodell auswählen; bei den CRM-Varianten zusätzlich die Postgres-Verbindung „Aurenta – Übungsfall (Lesen)“. Die beiden Verbindungen erfüllen unterschiedliche Aufgaben.

Einen Kontakt aus dem CRM laden

Variante 04 benötigt ausschließlich die Aurenta-Datenbankverbindung. Im Knoten Kontakt auswaehlen wird eine ID eingetragen, etwa K-01. Der Postgres-Knoten liest genau diesen Kontakt; bei einer unbekannten ID stoppt der Ablauf mit einer Fehlermeldung. Die Ausgabe enthält dieselben sieben Felder wie die manuell eingetragene Variante. K-05 bleibt als gesperrter Kontakt gekennzeichnet.

Erst wenn Datenbankabruf und Modellaufruf einzeln funktionieren, verbindet Variante 05 beide Schritte. Die feste Kontaktsperre liegt vor der KI, die Kontakt-ID bleibt der Quelle zugeordnet. K-01, K-05 und K-06 sind die ersten Prüffälle. Alle SQL-Abfragen lesen nur; Empfehlungen und Entwürfe bleiben im Ausführungsprotokoll. Die Kampagnenzahlen und das übrige CRM werden nicht verändert.

Starter Schritt für Schritt

1. Start und Kontakt

Einen neuen Workflow mit Manual Trigger anlegen und „Manuell starten“ nennen. Einen Edit Fields (Set)-Knoten ergänzen und „Kontakt“ nennen. Die Knotennamen werden in den vorbereiteten Zuordnungen verwendet und bleiben zunächst unverändert.

Im Modus Manual Mapping diese Felder als String eintragen. Werte aus einem Kontakt der Kontaktliste übernehmen:

Feld Beispiel K-01
kontakt_id K-01
rolle Marketingleitung
unternehmen B2B-Dienstleister, 250 Beschäftigte
webinar_status teilgenommen
anliegen Wir möchten unsere Content-Briefings verbessern. Können wir besprechen, ob der Praxischeck dafür passt?
sprache Deutsch
kontakt_erlaubt ja

Die beiden Knoten verbinden und ausführen. Die Ausgabe muss genau diesen Kontakt enthalten. Das ist das Zwischenziel vor der Mittagspause.

2. Modellschritt

Eine Basic LLM Chain hinzufügen und „Bedarf und Entwurf“ nennen. Den Prompt selbst definieren (Define below) und den vollständigen vorbereiteten n8n-Prompt in das Feld einsetzen. Er enthält das Fallpaket und die variablen Kontaktfelder. Das führende = kennzeichnet im Export einen Ausdruck; in der Oberfläche den Expression-Modus verwenden und die Vorschau prüfen.

Unter Chat Model den Google Gemini Chat Model-Knoten verbinden, „Kursmodell“ nennen und die vorbereitete Verbindung auswählen. Das Kursmodell wird von der Lehrperson festgelegt; die Referenz enthält gemini-3.1-flash-lite als austauschbare Voreinstellung. Das persönliche Gemini-Konto wird hier nicht eingegeben.

Die Platzhalter wie { $json.anliegen } greifen auf das Feld des aktuellen Eingabeelements zu. Sie sind Feldzuordnungen, keine Programmieraufgabe. In der Vorschau muss das tatsächliche Anliegen erscheinen. Den Workflow manuell ausführen und die Antwort lesen.

3. Ergebnis zur Prüfung

Einen weiteren Edit Fields-Knoten nach der Chain ergänzen, „Ergebnis ablegen“ nennen und diese String-Felder setzen:

Feld Wert
kontakt_id Ausdruck: { $('Kontakt').item.json.kontakt_id }
ergebnis Ausdruck: { $json.text }
freigabe Fester Text: offen

Die Ergebnisse stehen im Ausführungsprotokoll. Für die Teamablage die Ausgabe herunterladen oder kopieren. Der letzte Knoten schreibt noch nicht in eine externe Tabelle oder ein CRM. Eine solche Anbindung ist eine spätere Erweiterung.

4. Einen weiteren Fall ausführen

Alle Kontaktfelder gemeinsam ersetzen, beispielsweise durch K-02. Neu ausführen und die ID sowie den Anliegenbezug prüfen. Pro Lauf genau ein Kontakt. Das verhindert zunächst unbemerkte Zuordnungsfehler bei mehreren Elementen. Im Semester kann die Stapelverarbeitung gezielt ergänzt und getestet werden.

Ausbau: Struktur und feste Regeln

Der zweite Export ergänzt zwei Dinge:

  1. Ein If-Knoten lässt nur kontakt_erlaubt = ja zum Modell. Bei nein, fehlendem oder unbekanntem Status entsteht eine interne Ausgabe mit kein_followup und leerem Entwurf. Der Modellknoten bleibt in diesem Zweig unberührt.
  2. Ein Structured Output Parser nutzt ein fertiges Schema. Die Felder entscheidung, begruendung, material_id, nachricht_entwurf und offene_punkte werden danach einzeln übernommen. Die Chain stellt sie unter output bereit, etwa { $json.output.entscheidung }.

Die Kontakt-ID und der Status offen stammen weiterhin aus fester Logik. Ein Parserfehler stoppt den Lauf. Ein erfolgreiches Schema beweist weder Wahrheit noch fachliche Passung. Dafür dienen die Testfälle.

Aufgabe für eine eigene Erweiterung: Zuerst die Kontaktsperre ergänzen und K-05 ausführen. Danach strukturierte Felder aktivieren. Nach jeder Änderung einen normalen Fall mitprüfen. Nicht mehrere unbekannte Funktionen gleichzeitig einbauen.

Agenten-Demo

Die dritte Referenz stellt zwei ausschließlich lesende Wissenswerkzeuge bereit: „Leistungswissen“ und „Lernmaterial“. Kleine vorgefertigte Code Tools liefern feste Texte. Sie werden in der Lehrdemo als fertige Werkzeuge verwendet; deren Programmierung ist keine studentische Aufgabe.

Die Lehrperson führt K-02 und K-03 getrennt aus. Das Modell soll anhand des Anliegens die nötige Quelle wählen. Im Ausführungsprotokoll wird geprüft, welches Werkzeug tatsächlich aufgerufen wurde und ob dessen Inhalt die Antwort trägt. Die Zahl der Agenteniterationen ist auf drei begrenzt. Eine feste Kontaktsperre bleibt vorgeschaltet.

Vergleichsfrage: Verbessert die Werkzeugwahl die Antwort oder macht sie den einfachen Fall nur langsamer und schwerer prüfbar? Eine begründete Entscheidung gegen einen Agenten ist fachlich zulässig. Der Semesterprototyp soll sinnvollen agentischen Spielraum untersuchen und dessen Grenzen dokumentieren.

Wenn ein Lauf nicht funktioniert

Beobachtung Nächster Prüfschritt
Verbindung fehlt Vorbereitete Credential im Kursmodell auswählen; keine Schlüssel im Prompt verwenden
Kontingent oder Modell nicht verfügbar Lehrperson informieren, Fehlermeldung ohne Geheimnisse dokumentieren
Leeres Anliegen im Prompt Schreibweise und Feldzuordnung im Kontakt-Knoten prüfen
Falsche Kontakt-ID Alle Felder des Falls und die Zuordnung im letzten Knoten prüfen
Parserfehler Tatsächliche Ausgabe ansehen; Schema nicht umgehen und Fehler nicht als Erfolg ablegen
Formal korrekt, fachlich falsch Regel, Material und tatsächliches Anliegen anhand eines Testfalls vergleichen

Vorübergehende manuelle Route

Bei ausgefallener Modellverbindung die Anweisungen, das Fallpaket und genau einen Kontakt in einen neuen Chat einfügen. Die Ausgabe anhand derselben Kriterien prüfen und in die Prüfablage übertragen. Die n8n-Schritte ohne Modell können weitergebaut werden.

Die Ablage erhält den Hinweis „manuelle Simulation“. Damit ist die fachliche Arbeit dokumentiert, aber noch keine n8n-Ausführung nachgewiesen. Der vollständige Lauf wird nachgeholt. Zeitwerte einer Simulation werden nicht als automatisierter Betrieb ausgegeben.

Technische Quellen

Basic LLM Chain · Google Gemini Chat Model · Structured Output Parser. Der konkrete Lauf mit Kursmodell und Kurszugängen muss vor der Vorlesung geprüft sein.