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:
- Ein If-Knoten lässt nur
kontakt_erlaubt = jazum Modell. Beinein, fehlendem oder unbekanntem Status entsteht eine interne Ausgabe mitkein_followupund leerem Entwurf. Der Modellknoten bleibt in diesem Zweig unberührt. - Ein Structured Output Parser nutzt ein fertiges Schema. Die Felder
entscheidung,begruendung,material_id,nachricht_entwurfundoffene_punktewerden danach einzeln übernommen. Die Chain stellt sie unteroutputbereit, 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.