Warum sich TYPO3 mit n8n automatisieren lässt (und wo der Hebel liegt)
TYPO3 ist stark, wenn es um redaktionelle Workflows, Rechte, Mehrsprachigkeit und strukturierte Inhalte geht. n8n ergänzt das ideal als Workflow-Automation-Plattform: Es verbindet TYPO3 mit externen Systemen (CRM, Marketing Automation, Collaboration, Tabellen, BI) und automatisiert wiederkehrende Aufgaben, ohne dass Redakteure oder Marketing jedes Mal manuell exportieren, kopieren oder Benachrichtigungen auslösen müssen.
Typische Ziele in Projekten: schnellere Content-Veröffentlichungen, saubere Lead-Übergaben, automatische Benachrichtigungen, Daten-Synchronisation zwischen TYPO3 und Drittsystemen sowie bessere Transparenz durch Logging und Monitoring. Entscheidend ist, die Integrationswege sauber zu wählen: Webhooks für Ereignisse, REST-APIs für Datenzugriff, TYPO3 Extbase/PSR-HTTP für robuste Implementierung und Scheduler/Cron für planbare Jobs.
Architekturüberblick: Integrationswege zwischen TYPO3 und n8n
1) Webhooks: Ereignisgetrieben statt „Polling“
Ein Webhook ist ein HTTP-Endpunkt, den n8n bereitstellt. TYPO3 (oder ein Drittsystem) ruft ihn auf, sobald ein Ereignis eintritt. Das ist ideal für „sofort reagieren“: Veröffentlichung, Formular-Eingang, Statuswechsel, neue Datensätze.
- Vorteile: schnell, effizient, nahezu in Echtzeit
- Nachteile: Absicherung nötig (Signaturen, Tokens, IP-Allowlist), Fehlerbehandlung bei Ausfällen
2) REST-APIs: Daten lesen/schreiben in beide Richtungen
n8n kann über den HTTP Request Node nahezu jede REST-API ansprechen. TYPO3 kann ebenfalls APIs bereitstellen (z.B. eigene Endpoints via Extbase/PSR-7 oder vorhandene Extensions). Damit lassen sich Inhalte, Leads, Metadaten, Assets oder Statusinformationen synchronisieren.
- Vorteile: flexibel, standardisiert, gut testbar
- Nachteile: Authentifizierung, Rate Limits, Datenmodell-Mapping
3) TYPO3 Extbase + PSR-7/PSR-18: „sauberer“ TYPO3-Code für Integrationen
Wenn TYPO3 selbst aktiv Daten an n8n oder Drittsysteme senden soll (oder Webhooks verifizieren muss), ist eine kleine Extension oft der beste Weg. In TYPO3-Projekten sind PSR-7 (HTTP Messages) und PSR-18 (HTTP Client) die Grundlage, um Requests robust zu bauen, Timeouts zu setzen und Fehler sauber zu behandeln.
4) Scheduler/Cron: planbare Jobs für Sync und Hygiene
Nicht alles ist eventgetrieben. Für nächtliche Synchronisationen, Re-Indexing, Datenbereinigung oder „Retry“-Mechanismen ist der TYPO3 Scheduler (oder ein System-Cron, der CLI-Commands anstößt) praxistauglich. n8n kann ebenfalls Cron-Trigger, aber in TYPO3-Projekten ist es oft sinnvoll, die Verantwortung klar zu trennen: TYPO3 für CMS-nahe Aufgaben, n8n für Integrationsorchestrierung.
Voraussetzungen: Was Sie vor dem ersten Workflow klären sollten
- n8n Betriebsmodell: Self-hosted (Docker/VM/Kubernetes) oder Cloud. Für Unternehmensdaten ist Self-hosted häufig Standard.
- Netzwerk & Zugriff: Kann TYPO3 n8n erreichen (ausgehend) und/oder kann n8n TYPO3 erreichen (eingehend)? Reverse Proxy, TLS, Firewall-Regeln.
- Authentifizierung: API Keys, OAuth2 (z.B. HubSpot/Salesforce), Basic Auth nur in Ausnahmefällen. Für Webhooks: Secret Token oder HMAC-Signatur.
- Datenmodell: Welche TYPO3-Daten sollen synchronisiert werden (Pages, News, Form Submissions, Custom Records)? Welche Felder sind „Source of Truth“?
- Fehlerstrategie: Retries, Dead-Letter-Queue (z.B. separate Tabelle/Queue), Benachrichtigung bei Fehlern.
- Compliance: DSGVO, Aufbewahrungsfristen, Minimierung (nur nötige Felder übertragen), Logging ohne personenbezogene Daten.
Schritt-für-Schritt: TYPO3 → n8n per Webhook (Content-Veröffentlichung + Slack/Teams)
Use Case
Wenn ein Inhalt in TYPO3 veröffentlicht wird (z.B. News-Datensatz oder Landingpage), soll automatisch eine Benachrichtigung an Slack oder Microsoft Teams gehen und optional ein Eintrag in Google Sheets zur Kampagnen-Dokumentation entstehen.
Schritt 1: n8n Webhook anlegen
In n8n erstellen Sie einen Workflow mit einem Webhook Trigger. Legen Sie eine eindeutige URL fest (z.B. /webhook/typo3/publish) und wählen Sie POST. Hinterlegen Sie ein Secret (z.B. als Header oder Query-Parameter), damit nicht jeder den Webhook auslösen kann.
In n8n folgen dann Nodes wie:
- IF (prüft Secret/Signatur)
- Slack oder Microsoft Teams Node (Nachricht senden)
- Google Sheets Node (Zeile anfügen)
Schritt 2: TYPO3 Hook/Event implementieren (Extension)
In TYPO3 ist der robuste Weg eine kleine Extension, die auf relevante Ereignisse reagiert (z.B. DataHandler-Prozesse bei Datensatz-Änderungen). Ziel: Bei Statuswechsel auf „online“ wird ein HTTP POST an n8n gesendet.
Wichtige Punkte:
- Nur bei echten Veröffentlichungen triggern (nicht bei jedem Speichern).
- Payload minimal halten: Datensatz-ID, Sprache, URL, Titel, Timestamp, User/Backend-Context (wenn nötig).
- Timeouts setzen, Fehler abfangen, optional in Queue schreiben.
Schritt 3: Request mit PSR-18 senden
Nutzen Sie den TYPO3-konformen HTTP Client (PSR-18) und bauen Sie eine PSR-7 Request. Achten Sie auf:
- Timeout: z.B. 2–5 Sekunden, damit Backend-Speichern nicht blockiert.
- Retry: nicht im Request selbst „schlafen“, sondern asynchron über Queue/Scheduler nachziehen.
- Headers: Content-Type application/json, Authorization/Secret, optional Idempotency-Key.
Als Betriebs-Pattern hat sich bewährt: Bei Fehlern wird ein Datensatz in einer eigenen Tabelle „pending_webhooks“ gespeichert. Ein Scheduler-Task versucht später erneut zu senden.
Schritt 4: Slack/Teams Nachricht sinnvoll formatieren
Redakteure wollen Kontext: Titel, URL, Sprache, ggf. Kampagnen-Tag. In n8n können Sie die Nachricht aus dem JSON-Payload zusammensetzen. Beispiel: „Landingpage veröffentlicht: {title} ({lang}) – {url}“.
Schritt-für-Schritt: TYPO3 Form Framework → n8n → HubSpot/Salesforce (Lead-Übergabe)
Use Case
Ein Lead füllt ein TYPO3-Formular aus. n8n übernimmt: Validierung, Dublettenprüfung, Übergabe an HubSpot oder Salesforce, Benachrichtigung an Sales in Teams/Slack, optional Eintrag in Mailchimp als Audience/Tag.
Schritt 1: Formular-Submission aus TYPO3 heraus verfügbar machen
TYPO3 Form Framework kann Submissions speichern (je nach Konfiguration/Extension) oder direkt weiterreichen. In vielen Projekten ist ein Webhook-Call nach erfolgreicher Submission der pragmatischste Weg. Wichtig: Keine unnötigen Daten senden (Datenminimierung) und Einwilligungen (Opt-in) korrekt abbilden.
Schritt 2: n8n Workflow aufbauen
- Webhook Trigger (nimmt Submission entgegen)
- Set/Function (Mapping: Formularfelder → CRM-Felder)
- HubSpot oder Salesforce Node (Create/Update Contact/Lead)
- IF (Opt-in vorhanden? Pflichtfelder ok?)
- Slack/Teams (Benachrichtigung an Channel)
- Mailchimp (Subscribe/Tag nur bei Opt-in)
Schritt 3: Authentifizierung korrekt umsetzen
Für HubSpot/Salesforce ist OAuth2 üblich. In n8n legen Sie Credentials an und beschränken Scopes auf das Nötige. Für TYPO3 → n8n Webhooks nutzen Sie ein Secret oder eine HMAC-Signatur. Für n8n → TYPO3 (wenn n8n zurückschreibt) nutzen Sie API Keys oder OAuth, je nach TYPO3-API-Design.
Schritt 4: Dubletten, Rate Limits, Retries
CRMs haben Rate Limits und Dublettenlogik. Planen Sie:
- Dedupe-Key: E-Mail als Primärschlüssel (mit Vorsicht), alternativ CRM-spezifische IDs.
- Rate Limit Handling: In n8n „Wait/Delay“ oder „Retry on Fail“ mit Backoff; bei großen Importen Batch-Verarbeitung.
- Idempotenz: Bei wiederholten Webhook-Aufrufen darf kein zweiter Lead entstehen. Nutzen Sie „Upsert“ statt „Create“ wo möglich.
Schritt-für-Schritt: Daten-Synchronisation (Google Sheets ↔ TYPO3) für Marketing-Listen
Use Case
Marketing pflegt eine Kampagnenliste in Google Sheets (UTM, Landingpage, Status). TYPO3 soll daraus z.B. strukturierte Datensätze (Custom Records) aktualisieren oder Status zurückspielen.
Variante A: n8n als Orchestrator (empfohlen)
- Cron Trigger in n8n (z.B. alle 30 Minuten)
- Google Sheets Node (Rows lesen)
- HTTP Request Node (TYPO3 REST Endpoint: Upsert)
- IF (nur geänderte Zeilen)
- Slack/Teams (Fehlerreport)
TYPO3 braucht dafür einen stabilen REST Endpoint, der Upserts erlaubt und sauber validiert (z.B. Pflichtfelder, erlaubte Werte, Sprache/Site-Kontext).
Variante B: TYPO3 Scheduler zieht Daten (wenn n8n nicht nach innen darf)
Wenn n8n nicht auf TYPO3 zugreifen darf (Firewall), kann TYPO3 die Daten aktiv aus n8n oder direkt aus Google APIs ziehen. Das ist aufwendiger (Credentials, Token Refresh), aber manchmal organisatorisch notwendig.
Sicherheit: Webhooks und APIs in TYPO3/n8n richtig absichern
- Transport: Immer TLS (HTTPS). Keine Webhooks über unverschlüsselte Verbindungen.
- Authentifizierung Webhook: Secret Token im Header (z.B. X-Webhook-Secret) oder HMAC-Signatur (Body signieren). Query-Parameter nur, wenn Logs/Proxies das nicht mitschneiden.
- Replay-Schutz: Timestamp + Nonce im Payload, serverseitig prüfen und kurzzeitig speichern.
- Least Privilege: n8n Credentials nur mit minimalen Rechten; TYPO3 API Keys pro Integration trennen.
- Input Validation: In TYPO3 Endpoints strikt validieren (Datentypen, erlaubte Felder), keine „Mass Assignment“.
- Rate Limiting: Reverse Proxy (z.B. Nginx) oder Application-Layer Limits, um Missbrauch zu verhindern.
Betrieb: Logging, Monitoring, Deployments und Wartbarkeit
Logging & Nachvollziehbarkeit
Automationen scheitern selten „laut“. Planen Sie Observability von Anfang an:
- n8n Execution Logs: Aufbewahrung begrenzen, personenbezogene Daten maskieren.
- TYPO3 Logging: Eigener Logger/Channel für Integrationen, mit Korrelations-ID (z.B. Request-ID).
- Audit Trail: Welche Inhalte wurden wann durch welchen Workflow geändert?
Monitoring & Alerting
- Fehlerraten (z.B. 5xx von TYPO3 API, OAuth Token Errors)
- Queue-Länge (pending_webhooks)
- Durchlaufzeiten und Timeouts
Benachrichtigungen sollten an ein technisches Channel gehen, nicht an Redakteure.
Deployment-Strategie
n8n Workflows sollten versioniert und exportierbar sein (z.B. JSON-Export in Git). In TYPO3 gehören Integrations-Extensions in den normalen CI/CD-Prozess. Änderungen an Payloads sind Breaking Changes: Versionieren Sie Webhook-Payloads (z.B. payloadVersion: 1).
Konkrete Befehle & Snippets für den Projektalltag
TYPO3 Scheduler wird häufig über CLI-Commands betrieben (z.B. in Cronjobs oder Deployments). Beispiele:
vendor/bin/typo3 scheduler:runvendor/bin/typo3 cache:flushFür eine einfache Webhook-Absicherung kann n8n z.B. ein Secret im Header erwarten. Beispielhafter Request-Aufbau (als Konfig-Snippet, sinngemäß):
curl -X POST https://n8n.example.org/webhook/typo3/publish -H "Content-Type: application/json" -H "X-Webhook-Secret: YOUR_SECRET" -d '{"recordId":123,"title":"Beispiel","url":"https://www.example.org/page","lang":"de","timestamp":"2026-03-26T10:00:00Z"}'Entscheidungshilfe: Welche Automationen sind schnell umsetzbar?
Schnell (1–3 Tage) bei vorhandenen APIs
- Slack/Teams Benachrichtigungen bei Veröffentlichung
- Google Sheets Logging von Kampagnen-Events
- Mailchimp Tagging bei Opt-in (wenn Datenquelle sauber ist)
Mittel (3–10 Tage) mit TYPO3 Extension/Endpoint
- Lead-Übergabe aus TYPO3 Form Framework an HubSpot/Salesforce inkl. Dedupe
- Bidirektionale Status-Synchronisation (z.B. Kampagnenstatus zurück nach TYPO3)
Komplex (10+ Tage) mit Governance & Datenmodell
- Umfangreiche Content-Synchronisation über mehrere Sites/Sprachen
- Asset-Workflows (DAM/PIM) mit Freigaben, Versionierung, Rechteketten
- Hohe Last + strikte Rate Limits + garantierte Zustellung (Queue/Message Bus)
Typische Stolpersteine (und wie Sie sie vermeiden)
- „Zu viel auf einmal“: Starten Sie mit einem klaren Use Case und messen Sie Nutzen (Zeitersparnis, Fehlerreduktion).
- Fehlende Idempotenz: Webhooks können doppelt kommen. Upsert und Idempotency-Key einplanen.
- Backend-Performance: Keine langen HTTP Calls im Speichervorgang. Asynchronisieren (Queue + Scheduler).
- Unklare Verantwortlichkeiten: Wer pflegt Credentials, wer bekommt Alerts, wer ändert Workflows?
- Datenschutz: PII nicht unnötig in Logs/Sheets/Chat posten. Maskieren und minimieren.
Fazit: TYPO3 n8n Integration als pragmatischer Automationsbaukasten
Mit n8n lassen sich TYPO3-nahe Prozesse (Content, Formulare, Kampagnen) schnell mit Marketing- und Sales-Tools verbinden. Der Schlüssel ist ein sauberes Integrationsdesign: Webhooks für Events, REST-APIs für Datenzugriff, TYPO3 Extbase/PSR-HTTP für robuste Implementierung und Scheduler/Cron für planbare Retries und Synchronisationen. Wenn Sie Security, Rate Limits, Logging und Deployment von Anfang an berücksichtigen, entstehen Automationen, die Redakteure entlasten und gleichzeitig betriebssicher bleiben.
