Vertragsfristen automatisiert überwachen: was n8n leisten kann, wo ein System nötig wird
n8n-Workflow für Vertragsfristen: Register, Zeitplan, Fristberechnung, Eskalationsmail im Aufbau – plus Entscheidungswerkzeug für den Umstieg aufs System.
Vertragsfristen automatisiert überwachen heißt im einfachsten Aufbau: Ein zeitgesteuerter n8n-Workflow liest ein Vertragsregister mit Enddatum und Kündigungsfrist je Vertrag, berechnet die verbleibende Zeit bis zum Stichtag und schickt rechtzeitig vorher eine Eskalationsmail. Das deckt die Fälle ab, in denen die Fristdaten bereits strukturiert vorliegen – sobald sie aus dem Vertragstext selbst kommen müssen oder mehrere Personen mit Vertretungsregel und Nachweispflicht beteiligt sind, trägt dieser einfache Aufbau nicht mehr allein.
Dieser Beitrag zeigt den Workflow Node für Node, dazu ein Entscheidungswerkzeug, mit dem Sie selbst einordnen, wo in Ihrem Fall die Grenze liegt. Die im jeweiligen Vertrag vereinbarte Kündigungsfrist steht im Vertrag selbst; dieser Beitrag behandelt nur die technische Überwachung des von Ihnen eingetragenen Termins, keine Rechtsfragen zu Fristen oder Vertragsverlängerung.
Was ein n8n-Workflow dafür leisten kann
Der Aufbau besteht aus vier Bausteinen: einer Datenquelle mit dem Vertragsregister, einem Zeitplan, der den Workflow täglich startet, einer Berechnung der verbleibenden Tage und einer Benachrichtigung, sobald ein Schwellenwert unterschritten ist. Alle vier Bausteine sind Standard-Nodes, kein Zusatzprodukt nötig.
1. Das Vertragsregister als Datenquelle
Legen Sie eine Tabelle oder einen Datenbank-Table mit mindestens diesen Spalten an: Vertragspartner, Vertragsgegenstand, Vertragsende, Kündigungsfrist (in Tagen vor Vertragsende), zuständige Person oder Rolle, und einer leeren Spalte „Letzte Erinnerung“. Je nachdem, wo diese Daten schon liegen, passt einer von drei Nodes:
- Google Sheets mit der Operation „Get Row(s)“ liest alle Zeilen eines Blatts.
- Airtable mit der Operation „List“ liest Datensätze einer Tabelle; eine serverseitige Vorfilterung ist über die Option „Filter By Formula“ möglich, zum Beispiel um bereits gekündigte Verträge auszuschließen. Prüfen Sie bei einem großen Vertragsbestand in der n8n-Oberfläche, ob der Node alle Datensätze in einem Lauf liefert oder ob Sie dafür eine zusätzliche Option aktivieren müssen – die n8n-Dokumentation macht dazu für diese Operation keine Angabe.
- Postgres mit der Operation „Select“ liest eine Tabelle direkt aus einer Datenbank, inklusive Filterbedingungen, Sortierung und Limit auf Node-Ebene – sinnvoll, wenn das Register ohnehin in einer bestehenden Datenbank liegt statt in einer separaten Tabelle.
2. Der Zeitplan
Ein Schedule-Trigger-Node startet den Workflow einmal täglich, zum Beispiel mit dem Cron-Ausdruck 0 7 * * * um 7 Uhr. Der Node unterstützt laut Dokumentation sowohl feste Intervalle (Minuten, Stunden, Tage, Wochen, Monate) als auch einen eigenen Cron-Ausdruck mit sechs Feldern; für eine tägliche Fristprüfung reicht die Intervall-Option „Days“ mit fester Uhrzeit. Stellen Sie die Zeitzone des Workflows auf Europe/Berlin, sonst richtet sich der Lauf nach der in n8n hinterlegten Standardzeitzone der Instanz.
3. Verbleibende Tage berechnen
Der Date & Time Node mit der Operation „Get Time Between Dates“ berechnet laut Dokumentation die Zeitspanne zwischen zwei Daten in einer wählbaren Einheit. Setzen Sie als Startdatum das heutige Datum und als Enddatum die Spalte Vertragsende, wählen Sie die Einheit „Day“. Der Node gibt den Wert entweder als einzelne Zahl oder als ISO-Dauer-String (etwa P13D) zurück – für die folgende Filterbedingung ist der einzelne Zahlenwert die einfachere Wahl.
4. Filtern und eskalieren
Ein Filter-Node lässt nur die Zeilen durch, bei denen die errechneten Tage kleiner oder gleich der in der Spalte Kündigungsfrist hinterlegten Vorlaufzeit sind. Der Filter-Node unterstützt laut Dokumentation Bedingungen je Datentyp (Zahl, Text, Datum, boolesch) und verknüpft mehrere Bedingungen wahlweise mit UND oder ODER, aber nicht gemischt. Fügen Sie eine zweite Bedingung hinzu, die die Spalte „Letzte Erinnerung“ prüft – leer, oder mindestens einen festgelegten Abstand in der Vergangenheit –, damit derselbe Vertrag nicht bei jedem Lauf erneut gemeldet wird.
Für die Benachrichtigung selbst passt, je nachdem, wo Ihr Team ohnehin mitliest:
- Send Email verschickt über ein SMTP-Credential eine Mail mit frei befüllbaren Feldern für Absender, Empfänger und Text oder HTML-Inhalt, zum Beispiel
Vertrag mit {{ $json.Vertragspartner }} endet am {{ $json.Vertragsende }}, Kündigungsfrist in {{ $json.TageBisFrist }} Tagen. - Slack sendet über die Operation „Send Message“ (API-seitig
chat.postMessage) eine Nachricht in einen Kanal, authentifiziert über ein OAuth2- oder Access-Token-Credential. - Microsoft Teams ist ebenfalls möglich, allerdings nicht, wenn die n8n-Instanz über einen Microsoft-Entra-Service-Principal statt über ein Nutzerkonto an Microsoft 365 angebunden ist: Dann ist laut n8n-Dokumentation die gesamte Chat-Message-Ressource des Teams-Node gesperrt – unser Beitrag zu Freigaben mit Frist und Eskalation ordnet diese Einschränkung ein. In diesem Fall bleiben Send Email oder Slack die verlässlichen Wege.
Schließen Sie zuletzt einen Update-Schritt auf dieselbe Datenquelle an (Update Row bei Google Sheets, Update bei Airtable oder Postgres), der die Spalte „Letzte Erinnerung“ auf das aktuelle Datum setzt. Wer n8n noch gar nicht im Haus hat, findet den Einstieg – Cloud oder Self-Hosting, Tarife, Serveranforderungen – in unserem Leitfaden zur ersten Einführung.
Entscheidungswerkzeug: Wann reicht der Workflow, wann braucht es ein System?
Der oben beschriebene Workflow setzt voraus, dass die Fristdaten bereits strukturiert in einer Tabelle oder Datenbank stehen und dass eine Mail oder Chat-Nachricht als Benachrichtigung ausreicht. Mit wachsendem Vertragsbestand oder steigender Komplexität kippt diese Annahme. Die folgende Matrix benennt die Kriterien, an denen sich das in der Praxis entscheidet – eine feste Vertragszahl als Schwelle gibt es nicht, weil die Komplexität pro Vertrag stärker zählt als die reine Stückzahl.
| Kriterium | n8n-Workflow reicht | Dediziertes Vertragsmanagement-System wird nötig |
|---|---|---|
| Woher die Fristdaten kommen | Von Hand aus dem Vertrag in das Register übertragen, einmaliger Aufwand pro Vertrag | Sollen automatisch aus dem Vertragsdokument selbst erkannt werden |
| Fristen je Vertrag | Eine Frist reicht als Auslöser, etwa das Vertragsende | Mehrere gestaffelte Fristen pro Vertrag – Kündigung, Verlängerungsoption, Preisanpassung, Teilkündigung einzelner Positionen |
| Zuständigkeit | Eine feste Person oder ein Postfach reagiert, Vertretung ist nicht zeitkritisch | Wechselnde Zuständigkeiten je Vertrag mit Vertretungsregel und rollenbasierter Rechtevergabe |
| Nachweispflicht | Die versendete Mail oder Chat-Nachricht genügt als Beleg | Ein geprüfter, unveränderlicher Audit-Trail wird verlangt, etwa für eine Zertifizierung oder eine Prüfung durch Dritte |
| Suche im Bestand | Sie wissen, in welcher Zeile oder Spalte eine Information steht | Sie müssen über alle Vertragstexte hinweg im Volltext nach einer Klausel suchen können |
| Pflege des Registers | Eine Person oder ein kleines Team pflegt das Register konsistent | Mehrere Abteilungen tragen parallel ein, Dubletten und veraltete Zeilen werden zur Fehlerquelle |
Trifft bereits eines dieser Kriterien in Ihrem Fall auf die rechte Spalte zu, lohnt sich eher der Umstieg auf ein dediziertes System als der Versuch, das fehlende Stück – Volltexterkennung, Rollenmodell, Audit-Trail – zusätzlich in den Workflow zu bauen. Treffen alle Kriterien auf die linke Spalte zu, deckt der oben beschriebene Workflow den Bedarf vollständig und ohne laufende Lizenzkosten für ein weiteres System.
Wo die technische Grenze liegt, nicht nur die praktische
Der größte Sprung in der Tabelle ist die erste Zeile: automatische Erkennung der Fristen aus dem Vertragstext selbst. Das ist mit n8n nicht grundsätzlich unmöglich – der Information-Extractor-Node zieht laut n8n-Dokumentation strukturierte Felder aus Fließtext, anhand eines vorgegebenen Schemas und mit einem angebundenen Sprachmodell. Ein Workflow könnte also ein hochgeladenes Vertrags-PDF einlesen und per Information Extractor nach Vertragsende und Kündigungsfrist fragen lassen. Der Unterschied zum Register-Workflow oben: Das Ergebnis einer solchen Extraktion ist nicht garantiert korrekt, weil ein Sprachmodell Text interpretiert statt eine Datenbankspalte auszulesen. Wer diesen Weg geht, braucht zusätzlich einen Prüfschritt, der jeden extrahierten Wert gegen das Original bestätigen lässt, bevor er ins Register übernommen wird – das ist dann ein eigenes Extraktionsprojekt mit eigenem Aufwand, kein Austausch des einfachen Workflows von oben.
Unabhängig davon, für welchen Weg Sie sich entscheiden: Ein Workflow, der niemand mehr prüft, ist ein blinder Fleck. Wie Sie erkennen, ob der Fristen-Workflow selbst noch läuft – und nicht etwa an einem deaktivierten Trigger oder einem stillen Fehler in der Datenquelle scheitert –, ordnet unser Beitrag zum Monitoring von n8n-Workflows ein.
Für den Mittelstand heißt das
Bevor Sie über ein Vertragsmanagement-System sprechen, lohnt sich der einfache Workflow als erster Schritt: Er kostet kein zusätzliches Lizenzmodell, läuft mit den Bausteinen, die in n8n ohnehin vorhanden sind, und zeigt innerhalb weniger Wochen, ob Fristen bislang tatsächlich übersehen wurden oder ob die bestehende Pflege im Kalender schon funktioniert hat. Erst wenn eines der Kriterien aus der Tabelle oben zutrifft – vor allem die Notwendigkeit, Fristen aus dem Vertragstext selbst zu erkennen, oder ein verlangter Audit-Trail –, ist der Umstieg auf ein dediziertes System die passendere Antwort als ein größerer Eigenbau.
Verwechseln Sie diese Fristenüberwachung nicht mit einem internen Freigabe-Workflow: Eine Excel-Umlaufmappe mit Fristsetzung läuft innerhalb eines einzelnen Durchlaufs ab und endet, sobald jemand reagiert oder die Zeit verstreicht – unser Beitrag dazu behandelt dieses andere Problem. Die Vertragsfristenüberwachung hier läuft dagegen über Monate oder Jahre wiederkehrend und meldet nur, ohne selbst etwas freizugeben.
FAQ
Reicht ein einfacher n8n-Workflow, um Vertragsfristen zu überwachen?
Für ein Vertragsregister mit klaren, von Hand gepflegten Enddaten und einer festen zuständigen Stelle reicht ein Schedule-Trigger-Workflow mit Fristberechnung und Eskalationsmail. Sobald die Fristen aus dem Vertragstext selbst erkannt werden müssen, mehrere gestaffelte Fristen pro Vertrag laufen oder ein geprüfter Audit-Trail verlangt wird, trägt der einfache Workflow das nicht mehr allein.
Welche n8n-Nodes braucht ein Workflow zur Fristüberwachung mindestens?
Einen Schedule-Trigger für den täglichen Lauf, einen Node für die Datenquelle (etwa Google Sheets, Airtable oder Postgres), den Date & Time Node zur Berechnung der verbleibenden Tage, einen Filter-Node für den Schwellenwert und einen Node für die Benachrichtigung, zum Beispiel Send Email, Slack oder Microsoft Teams.
Kann n8n Kündigungsfristen automatisch aus dem Vertragstext erkennen?
Mit dem Information-Extractor-Node und einem angebundenen Sprachmodell lässt sich das grundsätzlich bauen: Der Node zieht laut n8n-Dokumentation strukturierte Felder aus Fließtext, anhand eines vorgegebenen Schemas. Das ist aber ein eigenes Projekt mit Prüfschritt für die extrahierten Werte, kein fertiger Baustein – und etwas anderes als das Register-Beispiel in diesem Beitrag, das bereits strukturierte Enddaten voraussetzt.
Wie verhindere ich, dass der Workflow dieselbe Frist jeden Tag erneut meldet?
Ergänzen Sie im Register eine Spalte für den Zeitpunkt der letzten Erinnerung und schreiben Sie sie nach jedem Versand zurück (Update-Operation der jeweiligen Datenquelle). Der Filter prüft dann zusätzlich, ob diese Spalte leer ist oder einen Mindestabstand zur letzten Erinnerung überschritten hat, statt bei jedem Lauf erneut zu senden.
Was ist der Unterschied zu den Freigabe-Timeouts aus Excel-Umlaufmappen?
Ein Freigabe-Timeout läuft innerhalb eines einzelnen Workflow-Durchlaufs ab, mit einer im jeweiligen Workflow festgelegten Zeitbegrenzung, und endet, sobald jemand reagiert oder die Zeit abläuft. Die Vertragsfristenüberwachung in diesem Beitrag ist ein wiederkehrend laufender Workflow, der ein Register über Monate oder Jahre hinweg beobachtet und selbst nichts freigibt, sondern nur meldet.
Quellen
- n8n-Dokumentation: Schedule Trigger Node (Intervalle, Cron-Ausdruck, Zeitzone), abgerufen am 5. Oktober 2026
- n8n-Dokumentation: Date & Time Node (Operation „Get Time Between Dates“, Ausgabe als Einzelwert oder ISO-Dauer), abgerufen am 5. Oktober 2026
- n8n-Dokumentation: Filter Node (Bedingungstypen, UND/ODER-Verknüpfung, Less Strict Type Validation), abgerufen am 5. Oktober 2026
- n8n-Dokumentation: Google Sheets Node (Operation „Get Row(s)“ zum Lesen aller Zeilen eines Blatts), abgerufen am 5. Oktober 2026
- n8n-Dokumentation: Airtable Node (Operation „List“, Filterung über „Filter By Formula“), abgerufen am 5. Oktober 2026
- n8n-Dokumentation: Postgres Node (Operation „Select“ mit Filterbedingungen, Sortierung, Limit), abgerufen am 5. Oktober 2026
- n8n-Dokumentation: Send Email Node (SMTP-Credential, Felder From/To, Text- oder HTML-Format), abgerufen am 5. Oktober 2026
- n8n-Dokumentation: Slack Node (Operation „Send Message“ über chat.postMessage, OAuth2- oder Access-Token-Credential), abgerufen am 5. Oktober 2026
- n8n-Dokumentation: Information Extractor Node (LLM-gestützte Extraktion strukturierter Felder aus Fließtext anhand eines Schemas), abgerufen am 5. Oktober 2026
- n8n-Dokumentation: Microsoft Entra Service Principal credentials (gesperrte Ressourcen je Node, darunter die gesamte Chat-Message-Ressource des Microsoft-Teams-Node), abgerufen am 5. Oktober 2026