Skip to main content
Fallstudie

Kontaktformular-Automatisierung mit n8n

Radek Venzhöfer ·

Das ist unsere eigene Infrastruktur, kein Kundenprojekt. Sie ist klein, zeigt aber gut, wie wir über Automatisierungen denken, die keine Daten verlieren dürfen.

Die Ausgangslage

Wir betreiben mehrere Websites, und jede hat ein Kontaktformular. Jede Nachricht ist ein möglicher Kunde oder ein Nutzer mit einem Problem, also zählen zwei Dinge: Wir müssen schnell davon erfahren, und wir dürfen sie nie verlieren.

Die klassische Lösung in kleinen Unternehmen ist ein Formular, das eine E-Mail verschickt. Dann prüft jemand das Postfach, tippt die Angaben in ein CRM oder eine Tabelle ab, schickt eine Bestätigung und versucht, das Nachfassen nicht zu vergessen. Das ist langsam, und jeder Schritt ist eine Stelle, an der eine Nachricht vergessen werden kann.

Was wir gebaut haben

Die erste Version entstand für eine einzige Website. Das Formular schickte die Daten an einen n8n-Workflow, der eine Telegram-Benachrichtigung sendete, damit die Anfrage binnen Sekunden gesehen wurde, sie in einem einfachen CRM ablegte und dem Absender eine Bestätigungs-E-Mail schickte.

Mit der Zeit wurden alle unsere Websites an dieselbe selbst gehostete n8n-Instanz angebunden. Jede leitet ihre Einsendungen dorthin weiter, und n8n benachrichtigt uns per Telegram. Eine Stelle, an der sich die Logik ändert, eine Stelle, an der man nachsieht, wenn etwas schiefgeht.

Dieses Design hatte eine Schwäche, die wir zunächst nicht sahen: n8n war die einzige Kopie. Die Website gab die Nachricht weiter und vergaß sie. War n8n in diesem Moment ausgefallen oder startete neu, war die Nachricht weg, und niemand hätte je erfahren, dass es sie gab.

Deshalb haben wir im eigenen Servercode jeder Website eine Sicherung ergänzt:

  1. Wird ein Formular abgeschickt, schreibt die Website die Nachricht zuerst als empfangen in ein Log auf ihrem eigenen Server.
  2. Erst dann leitet sie sie an n8n weiter.
  3. Sie hält das Ergebnis fest: zugestellt oder fehlgeschlagen samt Grund.

Ein empfangener Eintrag ohne zugestellten Eintrag ist genau eine Nachricht, die uns nie erreicht hat. Ein einfacher Befehl auf dem Server listet sie auf, sodass nach einem Ausfall sichtbar ist, was verpasst wurde.

Wie es im Alltag funktioniert

Normalerweise ändert sich nichts: Eine Nachricht kommt Sekunden nach dem Absenden in Telegram an. Ein Uptime-Monitoring beobachtet die n8n-Instanz, und ein Alarm ist das Signal, im Log nach nicht zugestellten Nachrichten zu sehen, statt zu raten.

Zwei Entscheidungen waren bewusst. Hat die lokale Kopie geklappt, aber die Weiterleitung versagt, erfährt der Besucher trotzdem, dass die Nachricht gesendet wurde, denn sie ist nicht verloren, und eine Fehlermeldung würde ihn nur zum erneuten Tippen bringen. Und weil das Log Namen, E-Mail-Adressen und Nachrichtentexte enthält, ist es darauf ausgelegt, nur begrenzte Zeit aufbewahrt und dann von einer geplanten Bereinigung gelöscht zu werden. Ein Sicherheitsnetz für personenbezogene Daten darf nicht zu deren Archiv werden.

Die Sicherung schaltet sich pro Website ein, sobald der Server ihr einen Speicherort bereitstellt; bis dahin verhält sich die Website genau wie vorher, sodass die Einführung kein funktionierendes Formular kaputtmachen konnte.

Was wir gelernt haben

Auch eine funktionierende Automatisierung kann fragil sein. Ein Ablauf, der lange einfach funktioniert, ist genau der Ort, an dem ein einzelner Ausfallpunkt unbemerkt bleibt. Die Frage an jede Automatisierung lautet nicht „Funktioniert sie?“, sondern „Was passiert mit den Daten, solange sie nicht funktioniert?“

Erst schreiben, dann weiterleiten. Wird eine Nachricht gespeichert, bevor sie weitergegeben wird, bleibt bei jedem späteren Fehler ein Eintrag. Umgekehrt würde nur festgehalten, was ohnehin geklappt hat.

Die Sicherung darf kein neuer Fehler werden. Nichts im Logging-Code darf die Einsendung kaputtmachen. Schlägt das Schreiben der Kopie fehl, landet der Fehler im Serverlog und das Formular funktioniert normal. Feldlängen sind begrenzt, damit eine Flut von Einsendungen die Festplatte nicht füllen kann.

Kleines bewusst doppeln. Unsere Websites teilen sich keine Codebasis, also ist das kleine Logging-Modul in jede kopiert, statt ein gemeinsames Paket zu werden. Bei ein paar Dutzend Zeilen ist es günstiger, Kopien synchron zu halten, als eine Bibliothek zu pflegen.

Welche Leistung das ist

Das ist n8n-Automatisierung in ihrer einfachsten Form: die Werkzeuge verbinden, die ein Unternehmen ohnehin nutzt, damit eine Information sofort bei der richtigen Person ankommt. Beachtung verdient nicht der Normalfall, sondern die Sicherung, und genauso denken wir bei jedem Workflow, den wir für Kunden bauen.

Radek VenzhöferChatten Sie mit uns auf WhatsApp