Automatisierung im Detail

Vom Web-Formular zum PDF-Angebot: der n8n-Workflow Schritt für Schritt

Ein Fragebogen auf der Website ist nur die halbe Miete. Interessant wird es dahinter: Wie aus einem strukturierten Datensatz ohne menschliches Zutun ein Angebotsentwurf entsteht, der so gut ist, dass die Prüfung fünf Minuten dauert. Der Aufbau eines solchen Workflows — mit den Stellen, an denen es in der Praxis klemmt.

Point: Ein Angebotsworkflow ist keine KI-Anwendung mit Preisrechnung, sondern eine Rechenlogik mit KI-Textanteil — die Trennung dieser beiden Rollen entscheidet über die Verlässlichkeit des Ergebnisses.
Evidence: Sprachmodelle liefern bei strukturierter Textarbeit sehr gute Ergebnisse, sind bei arithmetischen Operationen über mehrere Positionen aber nicht zuverlässig genug für Angebote. Workflows, die Summen im Modell bilden lassen, produzieren im Betrieb regelmäßig Rechenfehler; Workflows, die Preise deterministisch aus einer Tabelle berechnen, nicht.
Impact: Wer die Preislogik in Code und die Sprache ins Modell legt, bekommt einen Entwurf, dem die prüfende Person nach kurzer Zeit vertraut. Wer beides vermischt, baut ein System, das dauerhaft vollständig nachgerechnet werden muss — und damit keine Zeit spart.

Kurz zusammengefasst

  • Der Workflow gliedert sich in sechs Blöcke: Empfang, Validierung, Qualifizierung, Kalkulation, Textgenerierung und Übergabe zur Freigabe.
  • Preise, Mengen und Summen werden deterministisch aus einer zentralen Preistabelle berechnet — nie vom Sprachmodell.
  • Die Qualifizierung vor der Kalkulation spart die meiste Zeit: Anfragen außerhalb von Gebiet, Portfolio oder Mindestvolumen erzeugen gar keinen Entwurf.
  • Jeder produktive Workflow braucht einen Error-Pfad: Eine abgebrochene Ausführung darf niemals eine verlorene Anfrage bedeuten.
  • Vor dem Produktivbetrieb gehören vier bis sechs Wochen Parallelbetrieb — Entwurf gegen manuelles Angebot vergleichen und die Preislogik nachziehen.

Der Aufbau im Überblick

Der gesamte Ablauf lässt sich in sechs Blöcke gliedern. Jeder Block hat eine klar abgegrenzte Aufgabe, und genau diese Trennung macht den Workflow später wartbar. Wer alles in einen großen Verarbeitungsschritt packt, hat beim ersten Fehler keine Chance, die Ursache zu finden.

Lösung 01
Sechs Blöcke. Jeder mit einer Aufgabe.
01Webhook
Empfang
Der Fragebogen sendet ein JSON-Objekt an einen n8n-Webhook. Feldnamen fest definiert, identisch mit dem Formular.
02Normalisieren
Validierung
Pflichtfelder prüfen, Werte gegen erlaubte Ausprägungen abgleichen, Freitext bereinigen. Alles Unpassende geht in den Fehlerpfad.
03Filtern
Qualifizierung
PLZ gegen Einzugsgebiet, Leistungsart gegen Portfolio, Auftragswert gegen Mindestgröße. Durchfaller erhalten eine höfliche Antwort.
04Code
Kalkulation
Positionen auswählen, Mengen berechnen, Zuschläge anwenden, Summen bilden — vollständig deterministisch.
05Sprachmodell
Textgenerierung
Das Modell erhält die fertige Positionsliste als Kontext und schreibt Anschreiben, Beschreibungen und Hinweise.
06Mensch prüft
Übergabe zur Freigabe
PDF oder Entwurf in Lexoffice, sevDesk oder Handwerkersoftware — plus Benachrichtigung mit den unsicheren Punkten.
Die Trennung macht den Workflow wartbar.Wer alles in einen Verarbeitungsschritt packt, findet beim ersten Fehler die Ursache nicht.
Die sechs Blöcke des Workflows — Kalkulation und Freigabe sind die beiden, an denen sich die Verlässlichkeit entscheidet.

Die Preistabelle: das eigentliche Fundament

Die häufigste Frage bei solchen Projekten lautet, welches Sprachmodell man nehmen sollte. Die praktisch wichtigere Frage lautet, wie die Preistabelle aufgebaut ist. Denn davon hängt ab, ob der Workflow überhaupt etwas Belastbares berechnen kann.

Eine brauchbare Tabelle hat pro Zeile eine Leistungsposition und mindestens diese Spalten: eine eindeutige Positions-ID, mit der der Workflow sie referenziert; die Bezeichnung, wie sie im Angebot erscheinen soll; die Einheit (Stück, Quadratmeter, Stunde, Pauschale); den Einheitspreis; die Leistungsart, unter der die Position ausgewählt wird; und eine Spalte für Bedingungen, die steuert, wann die Position automatisch gesetzt wird — etwa „nur bei Baujahr vor 1990" oder „nur wenn Bestandsanlage vorhanden".

Dazu kommen zwei separate kleine Tabellen. Eine für Zuschläge: Anfahrt nach PLZ-Zone, Altbauzuschlag, Zuschlag für schwierige Zugänglichkeit, Expresszuschlag bei kurzfristigen Terminen. Und eine für Pakete, die häufige Positionskombinationen bündeln, damit der Workflow nicht bei jeder Anfrage dreißig Einzelpositionen zusammensuchen muss.

Wo diese Tabellen liegen, ist zweitrangig. Für kleinere Betriebe ist eine Google-Tabelle völlig ausreichend und hat den Vorteil, dass die Pflege ohne technische Kenntnisse funktioniert. Wer strengere Anforderungen an den Datenschutz hat, legt eine CSV oder eine kleine PostgreSQL-Tabelle auf denselben Server, auf dem n8n läuft. Wichtig ist nur die Regel: eine Quelle, aus der alles liest.

Lösung 03
Die Preistabelle ist das Fundament.
Eine Zeile pro Leistungsposition. Eine Quelle, aus der alles liest — Workflow wie Preisrechner.
ID
Bezeichnung
Einheit
Preis
Leistungsart
Bedingung
P-1042
Fliesenarbeiten Wand
78,00 €
Badsanierung
P-1109
Demontage Bestandsanlage
Pauschale
420,00 €
Badsanierung
nur wenn Bestand vorhanden
P-1211
Leitungserneuerung
m
36,50 €
Badsanierung
nur bei Baujahr vor 1990
Zuschläge
Anfahrt nach PLZ-Zone, Altbau, schwierige Zugänglichkeit, Express bei kurzfristigen Terminen.
Pakete
Häufige Positionskombinationen gebündelt, damit nicht bei jeder Anfrage dreißig Einzelpositionen zusammengesucht werden.
Spalte „gültig ab“
Preisänderungen vorbereiten, ohne laufende Angebote zu beeinflussen — und im Streitfall nachvollziehen, welcher Preis galt.
4–6 Wochen
Parallelbetrieb vor der Produktivschaltung: Entwurf gegen manuelles Angebot vergleichen, Preislogik nachziehen. Ab 80 % Treffer innerhalb akzeptabler Abweichung ist der Workflow produktionsreif.
Der Aufbau der Preistabelle mit Beispielzeilen, den beiden Nebentabellen — und der Spalte „gültig ab“, die Preisänderungen vorbereitbar macht.

Die Rollenteilung zwischen Code und Sprachmodell

Es ist verlockend, dem Sprachmodell die gesamte Anfrage zu geben und es das Angebot schreiben zu lassen. Das funktioniert im Test verblüffend gut und im Betrieb nicht. Der Grund ist, dass Sprachmodelle Zahlen als Text behandeln. Bei einer Position mit drei Nachkommastellen und einem Zuschlag von 12,5 Prozent auf eine Teilsumme entstehen Abweichungen, die einzeln klein sind und in der Summe die Vertrauenswürdigkeit des ganzen Entwurfs zerstören.

Problem 01
Im Test verblüffend gut.
Im Betrieb nicht.
Wer das Sprachmodell rechnen lässt, bekommt Abweichungen, die einzeln klein sind — und in der Summe das Vertrauen in den ganzen Entwurf zerstören.
Entwurf aus dem Modell
Position 01 · 42,5 m²3.187,50 €
Position 02 · Pauschale890,00 €
Zuschlag 12,5 % auf Teilsumme402,20 €
Summe4.479,70 €
Die Teilsumme stimmt nicht, der Zuschlag ist falsch gerundet, die Endsumme passt zu keiner der beiden.
Sprachmodelle behandeln Zahlen als Text.
Bei strukturierter Textarbeit liefern sie sehr gute Ergebnisse. Bei arithmetischen Operationen über mehrere Positionen sind sie für Angebote nicht zuverlässig genug.
Die Folge ist kein einzelner Fehler, sondern ein System, das dauerhaft vollständig nachgerechnet werden muss — und damit keine Zeit spart.
Ein Entwurf, den das Modell selbst durchgerechnet hat: Teilsumme, Zuschlag und Endsumme passen nicht zusammen.

Die tragfähige Aufteilung sieht so aus: Der Code entscheidet und rechnet. Welche Positionen kommen in das Angebot? Welche Menge hat jede? Welcher Zuschlag greift? Wie hoch ist die Zwischensumme, die Umsatzsteuer, die Endsumme? Das alles ist Regellogik und gehört in einen Code-Knoten oder in eine Kette aus n8n-Knoten. Es ist prüfbar, reproduzierbar und liefert bei gleicher Eingabe immer dasselbe Ergebnis.

Das Modell formuliert. Es bekommt die fertige Positionsliste, die Angaben aus dem Fragebogen und einen System-Prompt, der Tonalität und Struktur des Betriebs beschreibt. Daraus entsteht ein Anschreiben, das auf die konkrete Anfrage eingeht statt aus Textbausteinen zu bestehen, sowie ausformulierte Leistungsbeschreibungen und Hinweise auf Rahmenbedingungen. Der Prompt enthält die ausdrückliche Anweisung, keine Zahlen zu verändern oder zu ergänzen.

Eine dritte, oft übersehene Rolle des Modells ist die Plausibilitätsprüfung. Am Ende bekommt es die Anfrage und den erzeugten Entwurf mit der Frage, ob beides zusammenpasst und ob etwas Wichtiges zu fehlen scheint. Die Antwort geht nicht in das Angebot, sondern in die Benachrichtigung an die prüfende Person — als Hinweis, worauf besonders zu schauen ist. Das ist ein billiger Zusatzschritt mit erstaunlich hohem Nutzen.

Lösung 02
Der Code rechnet. Das Modell formuliert.
Code-Knoten · deterministisch
Entscheiden und rechnen
Welche Positionen kommen ins Angebot?
Welche Menge hat jede?
Welcher Zuschlag greift?
Zwischensumme, Umsatzsteuer, Endsumme
Prüfbar, reproduzierbar, bei gleicher Eingabe immer dasselbe Ergebnis.
Sprachmodell · Textarbeit
Formulieren
Anschreiben zur konkreten Anfrage
Ausformulierte Leistungsbeschreibungen
Hinweise auf Rahmenbedingungen
Plausibilitätsprüfung — als Hinweis an die prüfende Person, nicht ins Angebot
Zahlen werden ihm vorgegeben, nicht abverlangt. Der Prompt verbietet ausdrücklich, sie zu verändern oder zu ergänzen.
Für die Textarbeit in einem Angebotsworkflow reicht in nahezu allen Fällen ein mittleres Modell.
Die Aufgabenteilung, an der sich die Verlässlichkeit entscheidet: Zahlen kommen aus dem Code, Sprache aus dem Modell.

Welches Modell dafür sinnvoll ist, hängt vom Volumen ab; die Unterschiede zwischen den Tiers sind erheblich und im Artikel zur Modellauswahl für KMU aufgeschlüsselt.

Fehlerbehandlung: der Teil, den alle weglassen

Ein Workflow, der im Testbetrieb funktioniert, ist noch kein produktives System. Der Unterschied liegt fast vollständig in der Fehlerbehandlung — und die wird beim ersten Aufbau regelmäßig übersprungen, weil sie keinen sichtbaren Nutzen hat, solange nichts schiefgeht.

Der Error-Workflow

n8n erlaubt es, jedem Workflow einen Error-Workflow zuzuweisen, der bei jedem Abbruch ausgelöst wird. Dieser sollte drei Dinge tun: die eingegangenen Rohdaten sichern, damit die Anfrage nicht verloren ist; eine Benachrichtigung mit dem konkreten Fehler an die zuständige Person schicken; und dem Interessenten eine neutrale Eingangsbestätigung senden, damit er nicht im Ungewissen bleibt. Der schlimmste denkbare Fall ist eine Anfrage, die still verschwindet — kein Kunde, keine Fehlermeldung, kein Wissen darüber, dass es sie je gab.

Timeouts und Wiederholungen

API-Aufrufe an Sprachmodelle oder an Lexoffice können langsam sein oder scheitern. Jeder externe Aufruf braucht deshalb ein Zeitlimit und eine begrenzte Zahl automatischer Wiederholungen mit wachsendem Abstand. Ohne Begrenzung hängt der Workflow, ohne Wiederholung scheitert er an einer vorübergehenden Störung, die zwei Sekunden später vorbei gewesen wäre.

Doppelte Absendungen

Nutzer klicken zweimal auf Absenden. Ohne Schutz erzeugt das zwei Angebotsentwürfe für dieselbe Anfrage — im besten Fall peinlich, im schlechtesten gehen beide raus. Ein einfacher Abgleich auf E-Mail-Adresse plus Zeitfenster von einigen Minuten löst das Problem zuverlässig.

Problem 02 · Dachdeckerbetrieb
Neun Anfragen. Drei Wochen lang unbemerkt verschwunden.
Formular
Ein Feld bleibt bei einer Leistungsart leer
Kalkulationsknoten
wirft einen Fehler
Workflow
bricht ab — ohne Benachrichtigung
Ergebnis
Anfrage weg
9
Anfragen, weder beantwortet noch gespeichert.
3
Wochen, bis es überhaupt auffiel — durch einen Anruf.
?
Wie viele es wirklich waren, ließ sich nicht rekonstruieren.
30
Minuten hätte der Fehlerpfad gekostet.
Der schlimmste denkbare Fall ist eine Anfrage, die still verschwindet — kein Kunde, keine Fehlermeldung, kein Wissen darüber, dass es sie je gab.
Ein leeres Formularfeld, ein abbrechender Workflow, keine Benachrichtigung — neun Anfragen fielen drei Wochen lang unbemerkt aus dem Prozess.

Kalibrieren statt sofort produktiv schalten

Ein neu gebauter Workflow gehört nicht direkt in den Betrieb, sondern in einen Parallelbetrieb. Vier bis sechs Wochen lang läuft er mit, erzeugt seine Entwürfe — und die Angebote werden weiterhin manuell geschrieben. Danach wird verglichen: Wo lag der Entwurf richtig, wo daneben, und warum?

Problem 03
Warum der Entwurf danebenliegt.
Drei Muster, die im Parallelbetrieb zuverlässig auftauchen — und fast nie an der Technik liegen.
01
Fehlende Positionen
Der Betrieb setzt Nebenleistungen so selbstverständlich an, dass sie in der Preistabelle vergessen wurden — Schutzabdeckung, Entsorgung, Endreinigung.
02
Zu grobe Mengenkategorien
„50 bis 100 Quadratmeter“ ist bei manchen Leistungen so weit, dass die Kalkulation innerhalb der Spanne um den Faktor zwei schwankt.
03
Sonderfälle, die keine sind
Sie treten häufiger auf als gedacht und verdienen deshalb eine eigene Regel statt einer Markierung.
< 80 %
Liegt der Entwurf seltener als in vier von fünf Fällen im akzeptablen Bereich, fehlt es meist an der Granularität des Fragebogens oder der Preistabelle — nicht am Workflow.
Was im Parallelbetrieb zuverlässig auftaucht — und die Schwelle, ab der der Workflow produktionsreif ist.

Der Fragebogen selbst — welche Fragen er stellen sollte und in welcher Reihenfolge — ist im Artikel zum Angebotskonfigurator für Handwerksbetriebe beschrieben. Beides gehört zusammen: Ein perfekter Workflow hinter einem zu groben Fragebogen liefert grobe Entwürfe.

Häufige Fragen

Warum n8n und nicht Zapier oder Make?

Der entscheidende Punkt bei Angebotsdaten ist die Datenhoheit. n8n lässt sich auf einem eigenen Server in Deutschland betreiben, sodass Kundendaten das eigene System nicht verlassen. Zapier und Make sind gehostete Dienste, bei denen jeder Datensatz durch fremde Infrastruktur läuft. Hinzu kommt die Kostenstruktur: n8n rechnet nicht pro Arbeitsschritt ab, was bei Workflows mit zwanzig oder mehr Knoten einen erheblichen Unterschied macht.

Berechnet das Sprachmodell die Preise?

Nein, und das ist die wichtigste Konstruktionsregel des ganzen Workflows. Sprachmodelle rechnen unzuverlässig und können Zahlen erfinden. Alle Preise, Mengen und Summen kommen aus der hinterlegten Preistabelle und werden mit normalem Code berechnet. Das Modell übernimmt nur Textarbeit: Anschreiben, Leistungsbeschreibungen, Formulierung von Hinweisen.

Wo werden die Preise gespeichert?

In einer zentralen, maschinenlesbaren Quelle – je nach Betriebsgröße eine Google-Tabelle, eine CSV-Datei auf dem Server oder eine kleine Datenbank. Wichtig ist nur, dass es genau eine Quelle gibt, aus der sowohl der Angebotsworkflow als auch ein eventueller Preisrechner auf der Website lesen. Preise, die im Workflow selbst stehen, sind nach der ersten Preisrunde veraltet.

Wie lange dauert der Aufbau eines solchen Workflows?

Der reine Workflow-Aufbau für eine Leistungsart dauert erfahrungsgemäß ein bis drei Tage. Der größere Teil des Projekts liegt davor und danach: den Leistungskatalog strukturieren, die Angebotsvorlage aufbauen und den Workflow vier bis sechs Wochen im Parallelbetrieb kalibrieren. Insgesamt sind 15 bis 40 Stunden realistisch.

Was passiert bei einem Fehler mitten im Workflow?

Ein produktiver Workflow braucht einen Error-Workflow, der bei jedem Abbruch greift: Er speichert die Rohdaten der Anfrage, benachrichtigt die zuständige Person und stellt sicher, dass die Anfrage nicht verlorengeht. Ohne diese Absicherung ist eine fehlgeschlagene Ausführung gleichbedeutend mit einem verlorenen Interessenten – der schlimmste denkbare Fehlerfall.

Lässt sich der Entwurf direkt in Lexoffice oder sevDesk anlegen?

Ja. Beide Anbieter haben APIs, über die sich Angebote als Entwurf anlegen lassen. Das ist der sauberere Weg als ein separat erzeugtes PDF, weil das Angebot dann im gewohnten System liegt, dort bearbeitet, versendet und später in eine Rechnung überführt werden kann. Für Handwerkersoftware ohne offene Schnittstelle bleibt der PDF-Weg über eine Vorlage.

Was hier passiert, wenn Sie absenden

Diese Strecke hängt an genau dem Workflow, der oben beschrieben ist: ein Webhook, eine Weiche nach Gewerk, zwei Mails. Sie können das Ergebnis gleich im Postfach nachlesen.

Schritt 1 von 6

In welchem Gewerk sind Sie tätig?

Davon hängt ab, welche Fragen Ihre eigene Strecke stellen müsste.

Ihr Gewerk

Angebotsworkflow für Ihren Betrieb?

Im kostenlosen Erstgespräch schauen wir uns Ihre bestehenden Anfragen und Ihre Preisbasis an und schätzen ein, wie viel sich davon realistisch automatisieren lässt.

Christian Förster, Gründer von Förster Digital

Über den Autor

Christian Förster

Ich entwickle Websites und automatisiere Geschäftsprozesse für kleine und mittelständische Unternehmen — mit Next.js, TypeScript und n8n. Was ich hier schreibe, stammt aus Projekten, die ich selbst umgesetzt habe, und aus eigenen Produkten wie den iOS-Apps Jobrechnung und Jobzeiten.

Veröffentlicht am