n8n - Mit KI Agenten Workflows deinen Alltag erleichtern
KI Bots die Mails beantworten, Kalender verwalten, Postfächer sortieren, für dich Urlaubspläne erstellen und die besten Flüge und Hotels heraussucht. Klingt noch nach Utopie und Zukunft? Weit gefehlt. Wir haben jetzt schon alle Werkzeuge, die man braucht, damit ihr das erreichen könnt. Und diese Werkzeuge bring ich euch heute etwas näher!
N8N Einsteiger Tutorial - Baue deine eigenen KI Agenten
N8N ist ein fantastisches Tool. Es ist eine Software, mit der du Workflows selber bauen kannst. Also so eine Art Low-Code Platform für Automatisierungen. Es hat eine Vielzahl an Verbindungen zu Drittanbietern wie Google, Microsoft, Amazon Web Services (AWS), Home Assistant, Telegram, OpenAI, Slack, Notion, Brave (Internetsuche), DHL und viele viele mehr. Doch sein Potenzial schöpft es erst richtig aus, durch die Einbindung von KI. So ermöglicht es dir:
- Files zu verwalten,
- Mails zu verarbeiten, zu sortieren und zu beantworten,
- Kalendereinträge zu managen,
- Internetsuchen durchzuführen,
- Mit allen möglichen APIs zu interagieren (entweder durch vorgefertigte Anbindungen oder durch selbst definierte HTTPS Requests),
- usw.
Die Liste ist lang.
Dabei kannst du sowohl auf AI Models im Internet zugreifen, als auch lokale KI LLM nutzen.
N8N existiert als Cloud Anwendung (kostenpflichtig), aber auch als kostenfreie lokale Community Version. Da wir Verfechter davon sind, dass unsere Daten unser Haus nicht verlassen, zeigen wir dir, wie du N8N und die passenden KI Models lokal verwendest.
In dem Tutorial gebe ich euch einen Einblick in n8n. Sozusagen als ersten Einstieg. Hierfür bauen wir uns für Gmail einen kleinen Workflow, der alle unnützen Mails aussortiert, auf gelesen setzt und archiviert.
Starten wir durch!
Voraussetzungen
Docker - Containerisierte Umgebung für N8N
Wir benötigen Docker für den Betrieb von N8N. Einige werden Docker kennen. Für die die es nicht kennen, hier eine kurze Beschreibung:
Docker hilft dir, Software in kleinen, abgeschlossenen Umgebungen namens „Containern“ auszuführen. Diese Container beinhalten alles, was die zu betreibende Anwendung benötigt – also Code, Bibliotheken, Einstellungen und sogar das Betriebssystem –, sodass es überall gleich funktioniert.
Die Vorteile sind:
- Du kannst die Container nach belieben ein- und ausschalten.
- Du musst dich nicht um die Installation zusätzlicher Tools und Bibliotheken kümmern.
- Es läuft weitestgehend betriebssystemunabhängig.
- Du kannst den Container samt Code und Bibliotheken einfach löschen, wenn du ihn nicht mehr benötigst. Das hält deinen PC sauber.
Docker Desktop kannst hier einfach downloaden und installieren:
https://docs.docker.com/get-started/get-docker/
Für Privatanwender ist es kostenfrei.
Ollama - Anwendung zum Betrieb lokaler KI-Models
Mit Ollama kannst du Open Source KI Models downloaden und lokal betreiben. Wir brauchen es, um so die KI in unserem N8N Workflow einzubinden. Auch diese Software ist kostenfrei.
Download:
Installation
Nachdem Docker und Ollama installiert sind, stell sicher, dass beide Anwendungen laufen. Nun können wir mit der eigentlichen Installation von n8n beginnen.
Die Installation ist super einfach und erfolgt über wenige Docker Befehle. Öffne hierzu dein Terminal / Console:
1. Optional: Test ob Docker läuft.
Geh nochmal sicher, dass Docker läuft:
docker -v
Wird “Docker version …” ausgegeben, ist alles fein. Wenn ein Fehler kommt, läuft entweder Docker nicht oder etwas ist bei der Installation schief gelaufen.
2. Erstelle ein Volume
docker volume create n8n_data
Container sind per se “stateless”. Was heißt das? Das immer nur so lange Daten gespeichert werden, solang der Container aktiv ist. Verschwindet der Container, zum Beispiel durch einen Neustart des Rechners, sind auch die Daten weg. Um einen persistenten Speicher zu gewährleisten, müssen wir erst einmal ein sogenanntes Volume erstellen:
Wichtig: Das Volume musst du nur einmalig erstellen!
3. Starte den Docker Container mit n8n
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
#optional noch: GENERIC_TIMEZONE="Europe/Berlin" -e TZ="Europe/Berlin"
Hinweis: Der Container ist nicht über einen Neustart hinaus verfügbar. Wenn du den PC neu startest musst du den Befehl einfach nochmal ausführen, dann startet der Container wieder.
Das wars!
Wenn alles klappt, kannst du jetzt die Anwendung über deinen Browser über folgende Anwendung aufrufen:
http://localhost:5678
Beim ersten Start musst du erstmal ein Konto erstellen. Das solltest du dir gut merken. Aktuell kann man das Passwort meines Erachtens nicht zurücksetzen.
Hinweis: Unter Safari läuft die Anwendung nicht, da die Verbindung nicht verschlüsselt ist. Du kannst entweder einen anderen Browser verwenden, oder ein TLS/HTTPS Zertifikat einbinden, damit die Verbindung verschlüsselt ist. Zum Test, lassen wir es erstmal so.
Aufsetzen deines ersten n8n-Workflows
Cool, ich würde sagen, schreiten wir mal in Aktion und erstellen unseren ersten Workflow.
Als Test habe ich mir überlegt einen kleinen Agent Workflow zu bauen, der unnütze E-Mails wie Newsletter, Autoresponder, Werbung herausfiltert und archiviert. Das ganze mache ich mit Gmail. Der API Zugriff auf Google Produkte ist recht einfach und Gmail ist weit verbreitet.
Der Workflow-Ablauf wäre folgender
- Starte den Workflow, wenn eine neue E-Mail reinkommt.
- Bewerte den Inhalt nach Wichtigkeit mithilfe einer KI.
- Wenn Inhalt unwichtig (Newsletter, Werbung, etc.), setze die E-Mail auf gelesen und archiviere sie.
Das ist erstmal ein kleines Beispiel und sollte für den Anfang reichen.

1. Trigger Node
Starten wir mit unserem ersten Workflow. Geh auf “Create Workflow” und dann auf “Add first step” um die sogenannte Trigger node hinzuzufügen.
Hier gleich einmal ein paar generelle Informationen. Ein Workflow wird immer Schritt für Schritt abgearbeitet. Verzweigungen sind natürlich möglich. Jede Aktion, wird als Node bezeichnet. Es gibt verschiedene Kategorien von Nodes, die wir nach und nach kennenlernen werden. Die Trigger Node ist die erste und sorgt für den Anstoß des Workflows.
Gib nun also bei der Suche “Gmail” ein und wähle dann dort den Trigger “On Message received”.

2. API Verbindung Google
Nun kommen wir zur API Verbindung zu Gmail. Hierfür müsst ihr einen Google Cloud Account anlegen. Dafür nehmt ihr euer Gmail Konto. Ggf. legt ihr euch zum Test mal eines an, wenn ihr keines habt und leitet euch eine Test-Email an den neuen Account weiter.
Die Anbindung der Google API erfordern ein paar extra Schritte. Aber keine Sorge, n8n liefert in der Dokumentation stets eine ausführliche klare Beschreibung des Vorgehens:

Ist in Englisch … zur not einfach durch einen Translator übersetzen lassen.
Die Schritte hier in Kürze zusammengefasst:
- Google Cloud Platform - Console öffnen und registrieren
- Neues Projekt erstellen. z.B. “n8n-test”
- API’s aktivieren: API & Dienste —> Bibliothek —> Tool suchen. Hier “Gmail API”. Du kannst natürlich noch andere Google Dienste gleich mit aktivieren (z.B. Google Docs, Calendar, usw.)
- OAuth Zustimmungsbildschirm aktivieren (unter APIs & Dienste) —> Auf erste Schritte klicken und ausfüllen (Nutzung extern, Nutzer: Deine E-Mail)
- Client erstellen -> Webanwendung -> Name festlegen -> Weiterleitung URL: http://localhost:5678/rest/oauth2-credential/callback -> erstellen
- Client ID und Secret kopieren
- Zielgruppe -> Veröffentlichungsstatus auf Test setzen -> Deine E-Mail als Testnutzer eintragen (anders geht es aufgrund der lokalen Umgebung nicht)
- Zu N8N wechseln, “Create new credential” auswählen -> oAuth2 auswählen und Client ID und Client Secret einfügen. Oben Links kannst du dir noch einen Namen für die Verbindung festlegen.
- Mit Google verbinden -> Anmelden -> Zustimmung für den Zugriff erteilen
- Speichern
Schalte “Simplify” aus.
Mit “Fetch Test Event” kannst du jetzt schauen, ob die Verbindung funktioniert. Ist dem so, müsstest du jetzt deine letzte E-Mail ausgegeben bekommen.
3. Füge die AI Node hinzu, die E-Mails kategorisiert
Well done. Nun geht es daran alle unrelevanten E-Mails herausfiltern. Davon bekommt man ja bekanntlich viele. Dafür holen wir uns jetzt einen AI Agent aus der Node-Bibliothek, der sich den Inhalt der E-Mail ansieht und auf Basis dessen entscheidet, ob es sich um system-generierte E-Mails handelt (Newsletter, Aktions-E-Mails, no-reply Emails und so weiter).
Schließe dazu die Gmail Node und klick im Workflow Canvas auf das Plus rechts neben der Gmail Node.
Suche nach: “AI Agent”

Chat Model
Füge ein Chat Model hinzu und wähle das zuvor installierte Ollama.
Erstelle neue Credentials und füge die Webadresse samt Port von Ollama hinzu.
Hinweis: Da N8N auf Docker läuft und Ollama direkt auf dem Rechner, kommt die n8n Anwendung nicht per Default auf deinen localhost. Stattdessen nutzt du die Adresse host.docker.internal. In Windows und Mac wird der localhost automatisch auf diese Docker interne Adresse geroutet. Der Port von Ollama ist Standardmäßig 11434.
Trage deshalb folgende URL ein: http://host.docker.internal:11434

API-Key kann frei bleiben.
Speicher die neue Verbindung.
Nun musst du noch ein Model auswählen. Solang du noch keines in Ollama heruntergeladen wurde, wird auch keines angezeigt.
Ich empfehle die Nutzung des AI LLM Models Mistral.
Um ein Model zu downloaden, öffne Ollama, wähle im Chat Fenster das entsprechende Model aus und gib einen beliebigen Prompt ein. Der Download beginnt dann unmittelbar.
Hinweis: Ohne jetzt zu sehr auf die Eigenschaften von AI Models eingehen zu wollen (das habe ich schon etwas in diesem Tutorial gemacht), solltest du ein Model wählen, was weniger als 10 Milliarden Parameter hat (10b = 10 Billion - zu deutsch Milliarden). Die Anzahl der Parameter geben eine Aussage über die Größe des Neuronalen Netz auf dem das Model trainiert wurde. Je mehr Parameter, desto größer und rechenintensiver. Zu große Models brauchen zu lange für die Generierung des Outputs und lasten deinen Computer unnötig aus.
Nach Abschluss des Downloads musst du die Ollama Node in n8n nochmal schließen, den Workflow oben rechts speichern und dann die Seite aktualisieren. Dann müsstest du das heruntergeladene Model in der Node auswählen können.
Festlegen des Input Prompt und der System Message
Soweit so gut! Schließe die Ollama Node wieder und öffne den AI Agent wieder. Diesen müssen wir jetzt konfigurieren.
Die Gesamtkonfiguration siehst du unten im Bild.
Und hier die Zusammenfassung:
- Source for Prompt —>Wähle “Define below”
- Prompt - Siehe unten
- Schalte “Require specific Output Format” an.
- Gehe auf “And Option” und wähle “System Message”
- Füge die System Message ein (siehe unten)
- Klick auf das “+” unten rechts bei Output Parser, wähle “Structured Output Parser”
- Bei Schema Type, wähle “Define using JSON Schema”
- Füge die JSON Definition ein (siehe unten).
- Node schließen und Workflow oben rechts speichern.
Prompt:
From: {{ $json.from.value[0].address }}
Subject: {{ $json.subject }}
Content: {{ $json.text }}
System Message:
You are an assistant that categorizes emails.
Your task: Detect if an email is system-generated email and does not require a reply.
Input format:
From: [sender’s email address]
Subject: [email subject]
Text: [email content]
Guidelines for recognition:
• system-generated emails include newsletters, promotions, notifications, confirmations, system alerts, etc.
• Email addresses containing noreply or similar are strong indicators.
• If the email is clearly promotional or mass-distributed, it should be considered system-generated
Output format (always JSON):
{
“is_system_generated_email": true | false
}
Output Parser JSON Schema:
{
"type": "object",
"properties": {
"is_system_generated_email": {
"type": "boolean",
"description": "Decision whether an email is system generated or not"
}
}
}


Was haben wir gemacht?
Als erstes haben wir unseren Input definiert. Also das, was wir der KI als Prompt mitgeben. Danach haben wir eine System Message erstellt. Das ist eine Art Handlungsanweisung, wie sich unser Model verhalten soll. Man könnte es natürlich auch direkt in dem Input Prompt mitgeben. So finde ich es aber persönlich besser, da so die Aufgabe des Agents klar erkennbar wird.
Warum eigentlich Englisch?: Viele der “kleineren” Large Language Models, sind primär auf englischer Sprache trainiert. Sie funktionieren sozusagen am besten in englisch. Wenn du nicht gerade auf deutsche Ausgabe angewiesen bist, nutzen wir englisch. Tipp: Es gibt auch Übersetzungs-Nodes (wie Deepl oder Google Übersetzer)
Damit die Ausgabe unseres KI Models maschinenlesbar ist, zwingen wir den Output in eine JSON Format. Damit sich der AI Agent immer daran hält, haben wir ihm diesen “Structured Output Parser” mitgegeben, indem wir das JSON Schema definiert haben.
Cool.
Dein Workflow müsste nun so aussehen:

Du kannst jetzt gern mal einen Testlauf starten, indem du den AI Agent öffnest und “Execute Step” drückst. - Es bedingt natürlich, dass du schon E-Mails auf deinem “Testpostfach” erhalten hast. Leite dir einfach mal einen Newsletter o.ä. weiter.
Bei mir hat der Test funktioniert. Bei euch hoffentlich auch. Wenn nicht? Schreibt eure negativ Fälle in die Kommentare.
4. IF Bedingung hinzufügen
Wir wollen jetzt nur die systemgenerierten E-Mails weiter bearbeiten. Das Filtern wir mit einer “Wenn”-Funktion. Klick auf das Plus nach dem AI Agent und suche nach “if” und füge diese ein.
Nun ziehst du per drag and drop das “is_system_generated_email” Feld aus dem Input in das Condition-Feld (AI Node muss vorher ausgeführt worden sein “Execute Step”). Dann suchst du in dem Dropdown-Menü nach “Boolean” und wählst dort “is true”.

Teste den Schritt wieder durch den Klick auf den Button mit dem Erlenmeyerkolben.
Wenn es sich um eine systemgenerierte E-Mail handelt, muss die IF-Node folglich “True” - Also “WAHR” ausgeben.
5. Emails archivieren
So, dann setzen wir im letzten Schritt die Emails gleich mal auf gelesen und feuern es in den Junk. ;-)
Hierfür habe ich …
- In Gmail ein Label mit dem Namen “Junk” erzeugt.
- Meinen N8N Workflow gespeichert und die Seite aktualisiert.
- Eine Gmail Node (Aktion: Mark a message as read) an den “True”-Branch der If Node gehangen
- In der Gmail Node nach Ausführung der vorherigen Schritte mir aus dem Input das Feld “ID” der Gmail Nachricht herausgesucht und sie in das Feld “Message ID” per Drag and Drop gezogen (vorher auf Expression umstellen) - Auswahl der Credentials nicht vergessen.
- Dann habe ich hinten dran noch eine Gmail Node mit der Aktion “Add Label to message” hinzugefügt und auch dort in Message ID die Gmail Nachricht ID reingezogen. Als Label Name habe ich mein zuvor erstelltes “Junk” Label gewählt.
- Zu guter letzt das ganze nochmal mit einer “Remove Label from message” Node wiederholt, damit die Nachricht aus dem Posteingang verschwindet. Dort wählen wir den Label Name INBOX.
Jetzt kannst du das ganze gern mal testen. Klappt natürlich nur, wenn die letzte Mail eine System-generierte ist.
Hat alles funktioniert, ist die Mail aus dem Posteingang verschwunden, liegt im Ordner Junk und ist als gelesen markiert. Good Job!
Und was machen wir mit den “echten” Mails? Das überlasse ich jetzt ganz eurer Kreativität.
Du könntest diese nochmal kategorisieren lassen. Zum Beispiel in “Zur Info” und “To-Do”.
Oder du könntest dir diese Mails zusammenfassen lassen und dir dann per Daily Digest früh morgens auf dein Handy senden lassen.
Die Königsdisziplin wäre natürlich, dass eine KI auf E-Mails antwortet. Aber das bedarf einer extrem guten Vorbereitung der Agents, denn es erfordert ziemlich viel Kontext qualitativ zu antworten. Er brauch Wissen zu dir und den Dingen, die du tust. Er muss ggf. E-Mail und Nachrichten-Verläufe kennen, auf Dateien und deinen Kalender zugreifen können. Das sind alles Themen, die man sehr wohl lösen kann. Es ist nichts unmögliches, aber es ist eine komplexe Aufgabe.
Hier nun noch einmal der gesamte Workflow:

Fazit
Ich hoffe ich habe es geschafft eure Kreativität etwas zu entfachen und euch die Grundlagen von n8n an dem Beispiel etwas näher zu bringen. Das war zwar nur ein Basic-Einstiegstutorial. Aber ihr seht, dass bereits kleine Workflows einen großen Nutzen haben können und nicht viel Zeit in Anspruch nehmen, dir aber im Gegenzug viel Zeit ersparen können.
Das Beispiel arbeitet mit lokalen Models. Du kannst natürlich auch direkt OpenAI, Anthropic, Mistral oder Google Gemini online nutzen. Sei dir nur immer der Kritikalität der Daten bewusst, die du verarbeiten möchtest.
Ein großer Benefit hinter n8n ist, dass man KI in seinen Alltag integrieren kann, indem man sie mit seinen täglichen Tools arbeiten lässt. Sozusagen als digitaler Assistent.
Man sollte nicht den Versuch wagen, einem einzigen AI Agent eine riesige Aufgabe zu geben. Stattdessen sollte man es auf viele “Schultern” (ja KI Bots sind immer noch Computer) auszulagern. Eine gute Regel ist immer: Eine Task pro AI Agent. Zum Beispiel: Ein Agent zum Analysieren des Inputs, ein Agent zum generieren eines Outputs. Du solltest auch immer hinterfragen, ob die zu automatisierende Aufgabe wirklich etwas für eine KI ist. Repetitive und deterministische Aufgaben, sollten lieber durch ein Skript abgebügelt werden. Sie sind schneller und fehlerunanfälliger.
Habt ihr denn schon einige potenzielle Use-Cases in den Kopf? Noch Nicht?
Die Möglichkeiten sind schier grenzenlos. Ich beispielsweise habe mir einen Workflow gebaut, der E-Mail Anhänge auf Rechnungen prüft und diese extrahiert und in Google Drive ablegt.
Oder habe ich als Ersatz für eine OCR PDF Erkennung einen Agent entwickelt, der Rechnungsdaten extrahiert. - und das alles Lokal und Datenschutzkonform.
Ich habe einen Agent der meine E-Mails auf wichtige Nachrichten überprüft, die zwingend meine Aufmerksamkeit erfordern (Antwortaufforderungen, Hinweis auf gesetzliche Meldepflichten, Zahlungserinnerungen, etc.) und mir diese als Reminder in den Kalender stellt.
Einer fasst mir Inhalte von Newslettern zusammen und schickt sie mir einmal täglich als Textnachricht über Telegram.
Überlegt selbst mal, ob euch coole Ideen einfallen und teilt sie in die Kommentare.
Ich bin mir sicher, ich werde in Zukunft noch einige Tutorials zu n8n erstellen, damit ihr das Zeug erlangt auch komplexere Workflows erstellen zu können. Denn mit zunehmender Komplexität, wird auch die Bedienung komplizierter. Es gibt Nodes, die haben so Ihre Tücken und erfordern bisschen Geschick.
Aber ich kann euch nur dazu ermutigen, euch mit n8n vertraut zu machen, die Nodes zu erkunden und selbst ein paar kleine Testprojekte auf die Beine zu stellen.
Viel Spaß dabei und bis demnächst! Ciao.
Bemerkungen
Zur Zeit kein Kommentar!
Hinterlasse ein Kommentar