n8n-Workflows
AI-Public kann n8n-Workflows über einen Produktions-Webhook starten. Das ist praktisch, wenn du außerhalb von AI-Public einen automatisierten Prozess starten möchtest, zum Beispiel das Anlegen einer Aufgabe, das Aktualisieren eines CRM-Datensatzes, das Starten eines Reporting-Flows oder das Weiterleiten von Formulardaten an ein anderes System.
Beispiel: Nachrichtenartikel auf der Website der Organisation
Angenommen, die Organisation hat einen n8n-Workflow erstellt, der einen Nachrichtenartikel auf der WordPress-Website veröffentlicht. In AI-Public gibst du dann nur einen kurzen Text ein, zum Beispiel ein paar Sätze über ein Treffen, ein Projekt oder eine öffentliche Ankündigung. Mit diesem Text startest du den Workflow in n8n.
Der n8n-Workflow kann danach zum Beispiel:
- Aus dem kurzen Text mit einer LLM-Node und einem Prompt, der gut zum Ton der Organisation passt, einen sauberen Entwurfstext erstellen.
- Mit einer zweiten LLM-Node eine passende Illustration erstellen lassen, zum Beispiel in den Hausfarben und in einem wiedererkennbaren illustrativen Stil.
- Den Text und das Bild als Blogbeitrag vorbereiten oder auf der WordPress-Website veröffentlichen.
So arbeiten AI-Public und n8n zusammen: In AI-Public wählt der Benutzer den Workflow aus und gibt die benötigten Informationen ein. n8n führt danach die automatisierten Schritte aus und sorgt dafür, dass der Nachrichtenartikel sauber auf der Website landet.
Was macht diese Integration?
Du startest einen n8n-Workflow über die Workflow-Übersicht. Nur der Produktions-Webhook, POST und Header Auth sind erforderlich. Felder und Rückmeldungen aus n8n sind optional und können unabhängig voneinander konfiguriert werden.
- Hat der Workflow keine Felder, wird der Webhook sofort aufgerufen.
- Hat der Workflow Felder, öffnet sich zuerst ein Formular. Der Benutzer füllt die Felder aus und startet danach den Workflow mit dem Button.
- Die eingegebenen Werte werden als JSON per POST-Request an den n8n-Webhook gesendet.
- Ohne Rückmeldungen bestätigt AI-Public nur, dass der Workflow gestartet wurde und in n8n weiterläuft. Das Fenster zeigt keinen Spinner und kann direkt geschlossen werden.
- Wenn dies bei der Registrierung aktiviert wurde, kann der Workflow Zwischenstände oder das Ende an AI-Public zurücksenden.
- Wenn eine Genehmigung bei der Registrierung aktiviert wurde, kann der Benutzer direkt in AI-Public eine Auswahl treffen. n8n fährt dann ab dem wartenden Schritt fort.
n8n-Workflow in AI-Public anlegen
Ein Administrator registriert den Workflow wie folgt:
- Gehe zu Assistenten.
- Öffne den Tab Workflow-Assistenten.
- Klicke in der Karte oben auf Neuer Workflow und wähle n8n workflow.
- Gib den Namen des Workflows und die n8n-Produktions-URL ein.
- Richte Header authentication mit einem Header-Namen und einem geheimen Header-Wert ein.
- Aktiviere unter Rückmeldungen aus n8n nur die Bestandteile, die tatsächlich in diesem n8n-Workflow gebaut sind: Fortschritt, Genehmigung und/oder das Ende des Workflows.
- Füge optional die Felder hinzu, die im POST-Request mitgesendet werden sollen.
- Speichere den Workflow.
Alle drei Rückmeldeoptionen sind standardmäßig deaktiviert. Wenn du später Callbacks oder einen Genehmigungsschritt in n8n hinzufügst, aktualisiere auch die Registrierung in AI-Public. Der Dialog weiß dadurch, ob er nur eine Startbestätigung anzeigen oder weiter auf Signale warten soll.
Felder
- Felder sind optional.
- Jedes Feld hat einen Feldnamen und einen Typ.
- Unterstützte Feldtypen sind kurzer Text, langer Text, Zahl, Ja/Nein, Datum, eine Auswahl und mehrere Auswahlen.
- Bei Eine Auswahl und Mehrere Auswahlen fügst du die verfügbaren Optionen hinzu. Eine Auswahl wird als kompakte Auswahlliste angezeigt; Mehrere Auswahlen zeigt Kontrollkästchen. Der gewählte Wert oder die gewählten Werte werden im JSON-Body mitgesendet.
- Pflichtfelder müssen ausgefüllt sein, bevor der Workflow gestartet werden kann.
- Der Feldname wird der Key im JSON-Body, der an n8n gesendet wird.
Kompatiblen Workflow in n8n erstellen
- Erstelle in n8n einen neuen Workflow.
- Füge als erste Node eine Webhook-Node hinzu.
- Gib dieser Node exakt den Namen Start workflow. Die Beispielausdrücke unten verwenden diesen Namen.
- Setze HTTP Method auf POST.
- Wähle Authentication: Header Auth und verwende denselben Header-Namen und Geheimwert wie in AI-Public.
- Setze Respond oder Response Mode auf Immediately.
- Kopiere die Production URL in das Feld n8n productie-url in AI-Public. Verwende nicht die Test-URL mit
/webhook-test/. - Aktiviere den Workflow.
Die empfangenen Daten stehen unter body; die technischen Integrationsdaten stehen unter body.integration. Entferne diese nicht in einer Edit Fields-, Set- oder Code-Node.
Beispiel des JSON-Bodys
Wenn du Felder mit den Namen prompt, klantnaam, doelgroepen und datum definierst, erhält n8n beispielsweise diesen JSON-Body. AI-Public fügt das integration-Objekt automatisch hinzu.
{
"prompt": "Erstelle eine kurze Zusammenfassung der Anfrage.",
"klantnaam": "Beispielorganisation",
"doelgroepen": ["Einwohner", "Mitarbeitende"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "temporäres-token-für-diese-ausführung"
}
}
Das Callback-Token gehört zu einer einzigen Ausführung. Speichere es nicht in Logs, fester Konfiguration oder anderen Systemen.
Optional: Fortschritt und Abschluss zurücksenden
AI-Public kann nur anzeigen, was n8n zurückmeldet. Verwende diese Callbacks nur, wenn du bei der Registrierung Zwischenfortschritt melden und/oder Das Ende des Workflows melden aktiviert hast.
Konfiguriere jede Callback-Node wie folgt:
-
Wähle Method: POST.
-
Klicke bei URL auf Expression und füge ein:
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Wähle Authentication: None.
-
Aktiviere Send Headers und füge die folgenden Header hinzu.
-
Aktiviere Send Body und wähle Body Content Type: JSON und Specify Body: Using JSON.
Verwende diese Header:
Authorization: Bearer {{ $('Start workflow').first().json.body.integration.callbackToken }}
Content-Type: application/json
Sende zum Beispiel diese Nachricht, wenn ein Schritt beginnt:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "document-machen-gestartet",
"type": "progress",
"executionId": "{{ $execution.id }}",
"step": {
"id": "document_maken",
"label": "Dokument erstellen"
},
"message": "Das Dokument wird erstellt."
}
- Verwende für jedes Ereignis innerhalb derselben Ausführung eine eindeutige
eventId. - Verwende ein klares deutsches
step.label; dieser Text wird in der App angezeigt. - Hast du Das Ende des Workflows melden aktiviert, sende am Ende immer
type: "completed",type: "failed"odertype: "rejected". - Füge bei
completedoptional einoutput-Objekt mit dem Ergebnis hinzu. - Sende bei
failedeine verständliche Fehlermeldung mit. Die Ausführung stoppt dann auch in der App.
Optional: Genehmigung in der App anfordern
Verwende eine n8n Wait-Node mit On Webhook Call, wenn der Workflow erst nach einer Auswahl fortfahren darf. Sende vor der Wait-Node einen Callback mit type: "approval_required":
Stelle die Wait-Node auf Resume: On Webhook Call, HTTP Method: POST und Authentication: Header Auth ein. Wähle dieselbe Header-Auth-Credential wie bei Start workflow. Füge nach der Wait-Node eine Switch-Node hinzu und prüfe dort {{ $json.body.decision }}.
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "controle-document",
"type": "approval_required",
"executionId": "{{ $execution.id }}",
"step": {
"id": "controle_document",
"label": "Dokument prüfen"
},
"approval": {
"question": "Darf der Workflow fortfahren?",
"context": "Prüfe zuerst das erzeugte Dokument.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Genehmigen" },
{ "value": "reject", "label": "Ablehnen" }
]
}
}
Der Benutzer sieht die Auswahlmöglichkeiten im Ausführungsfenster. Nach einer Auswahl erhält die Wait-Node unter anderem decision. Verwende danach zum Beispiel eine Switch-Node, um den richtigen weiteren Verlauf festzulegen.
Ein Auswahlwert darf nur Buchstaben, Zahlen, _ und - enthalten. Das Label darf normale, lesbare Texte enthalten.
Produktions-Callback-URL festlegen
Die Produktions-Callback-URL für AI-Public ist:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback
Füge diese URL nicht als festen Text in jede Callback-Node ein. Wähle im URL-Feld der HTTP-Request-Node Expression und verwende:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-Public liefert damit bei jedem Start automatisch die richtige Produktions-URL. Die feste URL oben verwendest du, um beim Testen zu prüfen, ob der Ausdruck auf AI-Public verweist und nicht auf AI-School oder AI-Corporate.
Die Callables triggerCustomN8nWorkflow, triggerN8nWorkflow und resumeN8nWorkflow werden von der App selbst aufgerufen. Diese URLs musst du in n8n nicht konfigurieren.
Fehler behandeln
Sende erwartete Fehler mit einem Callback vom Typ failed zurück. Erstelle für unerwartete Node-Fehler zusätzlich einen zentralen Error Workflow:
-
Erstelle einen neuen Workflow mit einer Error Trigger-Node.
-
Füge danach eine HTTP Request-Node mit Method: POST hinzu.
-
Trage bei URL diese feste Produktions-URL ein:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed -
Wähle Authentication: None und füge den Header
n8n-handihow-namemit dem geheimen Standardwert des Plattformadministrators hinzu. -
Wähle einen JSON-Body und füge ein:
{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
- Aktiviere den Error Workflow.
- Öffne die Einstellungen des normalen Workflows und wähle ihn unter Error Workflow aus.
Sende direkt nach Start workflow mindestens einen Callback mit executionId: "{{ $execution.id }}". Nur dann kann AI-Public einen unerwarteten Fehler der richtigen Ausführung zuordnen.
Wichtige Einschränkungen
- Es werden nur Webhook-Trigger unterstützt.
- Es werden nur Produktions-Webhook-URLs unterstützt.
- Test-Webhook-URLs mit
/webhook-test/werden abgelehnt. - Es wird nur POST unterstützt.
- Es wird nur generische Header-Authentifizierung unterstützt.
- Der Header-Wert wird in der Anwendung als geheim behandelt.
- Callback-Tokens und Resume-URLs werden nur serverseitig verarbeitet und sind nicht direkt für Benutzer verfügbar.
- Der Tenant wird serverseitig anhand des angemeldeten Benutzers bestimmt, nicht anhand eines Werts, den der Browser sendet.
Probleme lösen
- 404 oder Webhook nicht registriert: Aktiviere den Workflow in n8n und verwende die Produktions-URL.
- Authentifizierungsfehler: Prüfe, ob Header-Name und Wert in beiden Systemen exakt gleich sind.
- Fehlende Daten: Prüfe, ob die Feldnamen in der Anwendung mit den Keys übereinstimmen, die n8n erwartet.
- Kein Request in n8n: Prüfe, ob der Workflow mit einem Webhook-Trigger beginnt und POST verwendet.
- Das Ausführungsfenster bleibt aktiv: Hast du Das Ende des Workflows melden aktiviert, prüfe dann, ob n8n einen letzten
completed,failedoderrejected-Callback sendet. Erwartest du keine Rückmeldungen, deaktiviere alle drei Optionen bei der Registrierung. - Kein Fortschritt sichtbar: Prüfe, ob Zwischenfortschritt melden bei der Registrierung aktiviert ist, ob das
integration-Objekt erhalten bleibt und ob jeder Callback eine eindeutigeeventIdhat. - Genehmigungsbuttons funktionieren nicht: Prüfe die Wait-Node,
resumeUrl, Header-Authentifizierung und die zulässigen Zeichen inchoices[].value.