KI & Automatisierung

Warum du HTML-E-Mails nie vom KI-Modell bauen lassen solltest

JSON raus, HTML rein – wie du KI-Ausgaben zuverlässig in schicke E-Mails verwandelst

Du baust einen Workflow, der KI-Ausgaben per E-Mail liefert. Sprachnachricht rein, Zusammenfassung mit ToDos raus – klingt simpel. Dann sagst du dem Modell: „Bau mir auch gleich eine schicke HTML-E-Mail daraus.“ Und bekommst mal eine saubere Tabelle, mal Inline-Styles die fehlen, mal ein Layout das in Outlook aussieht wie 1998. Kommt dir das bekannt vor? Genau das haben wir gelöst. Hier ist, wie.

Das Problem: KI-Modelle sind schlechte HTML-Entwickler

Sprachmodelle können Texte zusammenfassen, ToDos extrahieren, Prioritäten vergeben – das machen sie gut. Aber HTML-E-Mails bauen? Das ist eine andere Disziplin.

HTML-E-Mails haben ihre eigenen Regeln. Kein externes CSS, alles Inline. Tabellen statt Flexbox. Outlook interpretiert fast jeden modernen Standard anders als Browser. Wenn du ein Sprachmodell bittest, all das gleichzeitig zu tun – sinnvollen Text produzieren UND valides Outlook-taugliches HTML – tust du ihm keinen Gefallen.

Das Ergebnis ist inkonsistent. Manchmal stimmt das Layout, manchmal nicht. Manchmal werden Prioritäts-Badges eingefärbt, manchmal vergisst das Modell es einfach. Du weißt nie genau, was rauskommt. Und du kannst das Design nicht anpassen, ohne den Prompt umzuschreiben und erneut zu testen.

Die Lösung: Aufgaben sauber trennen

Das Prinzip ist einfach: Lass das Modell das machen, was es wirklich gut kann – Inhalte strukturieren und als JSON ausgeben. Den HTML-Bau übernimmt danach ein Code Node in n8n. Deterministisch, immer identisch, vollständig unter deiner Kontrolle.

Der Workflow sieht so aus:

Transkript rein → Sprachmodell gibt sauberes JSON aus → Code Node baut daraus das HTML → Outlook verschickt die fertige E-Mail.

Das Modell denkt. Der Code gestaltet. Kein Mischmasch, keine Überraschungen.

Was das Modell liefert: sauberes JSON

Der System Prompt gibt dem Modell eine klare Aufgabe: Analysiere das Transkript und gib ausschließlich ein JSON-Objekt zurück. Kein erklärender Text davor, keine Markdown-Backticks drumherum. Nur das JSON.

Die Struktur enthält alles was man braucht: Meta-Daten wie Absender, Empfänger und Datum. Eine kurze sachliche Zusammenfassung. Die wesentlichen Punkte als Array. Die ToDos mit Aufgabe, Verantwortlichem, Frist und Priorität. Und offene Fragen, die aus der Nachricht nicht eindeutig beantwortet werden konnten.

Ein wichtiger Hinweis aus der Praxis: Verwende im JSON-Schema keine Typ-Platzhalter wie <int> oder <string>. Schreib stattdessen echte Beispielwerte rein – also 0 statt <int>. Manche Modelle kopieren den Platzhalter sonst wörtlich, und das JSON ist plötzlich nicht mehr valide.

Und noch etwas: Gib dem Modell das heutige Datum mit. Im User-Message-Feld einfach „Heute ist der 23.04.2026.“ voranstellen. Dann kann das Modell aus „bis morgen“ ein konkretes Datum machen – und du musst das nicht im Code nachrechnen.

Was der Code Node daraus macht: professionelles HTML

Der Code Node in n8n liest das JSON und baut daraus eine vollständige HTML-E-Mail. Pixel für Pixel, immer gleich, immer so wie du es einmal definiert hast.

Der Header hat einen dunklen Hintergrund mit dem Betreff als großer Überschrift und Meta-Infos darunter. Dann folgen die Sektionen: Zusammenfassung, Wesentliche Punkte, ToDos als Tabelle – und ganz unten das Originaltranskript für alle die nochmal nachlesen wollen.

Die ToDo-Tabelle färbt Prioritäten automatisch ein: Rot für hoch, Orange für mittel, Grün für niedrig. Fristen die „heute“ oder „morgen“ enthalten, erscheinen ebenfalls rot und fett. Sektionen die leer sind werden komplett weggelassen – keine leere Tabelle, keine leere Aufzählung.

Das HTML landet direkt als Body im Outlook-Node. Kein manuelles Nachbearbeiten, kein Copy-Paste.

Was niemand vorher sagt: der output-Wrapper

Hier hat uns n8n eine Weile beschäftigt. Wenn du einen AI Agent Node verwendest, verpackt n8n den Output automatisch in ein Objekt mit dem Schlüssel output. Du greifst also nicht auf $input.first().json.text zu, sondern auf $input.first().json.output.

Und das kann je nach Konfiguration entweder ein String sein – dann brauchst du JSON.parse() – oder schon ein fertig gepartes Objekt. Beides ist möglich, je nachdem wie n8n die Antwort intern verarbeitet.

Die robuste Lösung für den Code Node sieht so aus:

const raw = $input.first().json.output;
const data = typeof raw === 'string' ? JSON.parse(raw) : raw;

Damit funktioniert es in beiden Fällen. Wer diesen Wrapper von Anfang an vermeiden will: Ein Basic LLM Chain Node gibt den Output ohne diesen Wrapper zurück. Für einfache JSON-Aufgaben ist das oft die sauberere Wahl.

Was wir dabei gelernt haben

Trenne Denken und Gestalten konsequent. Das Modell ist für Inhalte zuständig, der Code für die Darstellung. Diese Trennung macht den gesamten Workflow stabiler, wartbarer und einfacher zu debuggen.

Baue den HTML-Template einmal sauber auf – mit allen Farben, Abständen und Sonderfällen die du brauchst. Danach kannst du das Design jederzeit anpassen, ohne den Prompt auch nur anzufassen. Das Modell bekommt davon nichts mit.

Und noch ein praktischer Tipp: Bau dir einen Debug-Schritt ein, bevor du anfängst zu optimieren. Ein Code Node der einfach nur console.log(JSON.stringify($input.first().json)) ausführt und das Ergebnis zurückgibt, spart mehr Zeit als jedes Debugging im Dunkeln.

Fazit

HTML-E-Mails aus KI-Workflows sind kein Hexenwerk – aber nur wenn du die Aufgaben richtig verteilst. Das Modell strukturiert und denkt, der Code Node gestaltet. So bekommst du immer das gleiche, saubere Ergebnis. Kein Rauschen, keine Überraschungen, kein manuelles Nacharbeiten.

Das Prinzip lässt sich auf fast jeden KI-Workflow übertragen: Lass die KI das ausgeben, was sie wirklich kann. Alles andere regelt der Code.

Du willst einen ähnlichen Workflow in deinem Betrieb aufbauen – automatisierte Zusammenfassungen, strukturierte E-Mails, direkt in Outlook? Lass uns kurz sprechen. Das erste Gespräch ist kostenlos und unverbindlich.

Jetzt Kontakt aufnehmen

Privacy Preference Center