Gå till huvudinnehållet

n8n-arbetsflöden

AI-Public kan starta n8n-arbetsflöden via en produktions-webhook. Detta är användbart när du utanför AI-Public vill starta en automatiserad process, till exempel skapa en uppgift, uppdatera en CRM-post, starta ett rapportflöde eller föra formulärdata vidare till ett annat system.

Exempel: nyhetsartikel på organisationens webbplats​

Anta att organisationen har skapat ett n8n-arbetsflöde som publicerar en nyhetsartikel på WordPress-webbplatsen. I AI-Public fyller du då bara i en kort text, till exempel några meningar om ett möte, ett projekt eller ett offentligt tillkännagivande. Med den texten startar du arbetsflödet i n8n.

n8n-arbetsflödet kan sedan till exempel:

  1. Göra om den korta texten till en snygg utkaststext med en LLM-node och en prompt som passar organisationens ton.
  2. Låta skapa en passande illustration med en andra LLM-node, till exempel i profilfärgerna och i en igenkännbar illustrativ stil.
  3. Förbereda eller publicera texten och bilden som ett blogginlägg på WordPress-webbplatsen.

Så samverkar AI-Public och n8n: i AI-Public väljer användaren arbetsflödet och fyller i den information som behövs. n8n utför därefter de automatiserade stegen och ser till att nyhetsartikeln hamnar snyggt på webbplatsen.

Vad gör den här integrationen?​

Du startar ett n8n-arbetsflöde från arbetsflödesöversikten. Endast produktions-webhooken, POST och Header Auth är obligatoriska. Fält och återkopplingar från n8n är valfria och kan konfigureras oberoende av varandra.

  • Om arbetsflödet inte har några fält anropas webhooken direkt.
  • Om arbetsflödet har fält öppnas först ett formulär. Användaren fyller i fälten och startar sedan arbetsflödet med knappen.
  • De ifyllda värdena skickas som JSON i en POST-request till n8n-webhooken.
  • Utan återkopplingar bekräftar AI-Public bara att arbetsflödet har startat och fortsätter i n8n. Fönstret visar ingen spinner och kan stängas direkt.
  • Om detta har aktiverats vid registreringen kan arbetsflödet skicka mellanliggande steg eller slutet tillbaka till AI-Public.
  • Om godkännande har aktiverats vid registreringen kan användaren göra ett val direkt i AI-Public. n8n fortsätter därefter från väntesteget.

Skapa ett n8n-arbetsflöde i AI-Public​

En administratör registrerar arbetsflödet så här:

  1. Gå till Assistenter.
  2. Öppna fliken Arbetsflödesassistenter.
  3. Klicka på Nytt arbetsflöde i kortet högst upp och välj n8n-arbetsflöde.
  4. Fyll i arbetsflödets namn och n8n:s produktions-URL.
  5. Ställ in Header authentication med ett header name och ett hemligt header value.
  6. Under Återkopplingar från n8n ska du bara markera de delar som faktiskt har byggts i detta n8n-arbetsflöde: framsteg, godkännande och/eller arbetsflödets slut.
  7. Lägg eventuellt till de fält som ska skickas med i POST-requesten.
  8. Spara arbetsflödet.

Alla tre återkopplingsalternativ är avstängda som standard. Om du senare lägger in callbacks eller ett godkännandesteg i n8n, uppdatera också registreringen i AI-Public. Dialogen vet då om den bara ska visa en startbekräftelse eller fortsätta vänta på fler signaler.

Fält​

  • Fält är valfria.
  • Varje fält har ett fältnamn och en typ.
  • Stödda fälttyper är kort text, lång text, nummer, ja/nej, datum, ett val och flera val.
  • För Ett val och Flera val lägger du till tillgängliga alternativ. Ett val visas som en kompakt rullista; Flera val visar kryssrutor. Det valda värdet eller de valda värdena skickas i JSON-body:n.
  • Obligatoriska fält måste vara ifyllda innan arbetsflödet kan startas.
  • Fältnamnet blir key i JSON-body:n som skickas till n8n.

Skapa ett kompatibelt arbetsflöde i n8n​

  1. Skapa ett nytt arbetsflöde i n8n.
  2. Lägg till en Webhook-node som första node.
  3. Ge noden exakt namnet Start workflow. Exemplen med expressions nedan använder detta namn.
  4. Sätt HTTP Method till POST.
  5. Välj Authentication: Header Auth och använd samma header name och hemliga värde som i AI-Public.
  6. Sätt Respond eller Response Mode till Immediately.
  7. Kopiera Production URL till fältet n8n productie-url i AI-Public. Använd inte test-URL:en med /webhook-test/.
  8. Aktivera arbetsflödet.

Den mottagna datan finns under body; de tekniska integrationsuppgifterna finns under body.integration. Ta inte bort dem i en Edit Fields-, Set- eller Code-node.

Exempel på JSON-body​

Om du definierar fält med namnen prompt, klantnaam, doelgroepen och datum, tar n8n till exempel emot denna JSON-body. AI-Public lägger automatiskt till objektet integration.

{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["inwoners", "medewerkers"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}

Callback-token hör till en enda körning. Spara det inte i loggar, fast konfiguration eller andra system.

Valfritt: skicka tillbaka framsteg och avslut​

AI-Public kan bara visa det som n8n återrapporterar. Använd dessa callbacks bara om du vid registreringen har aktiverat Meddela mellanliggande framsteg och/eller Meddela slutet av arbetsflödet.

Ställ in varje callback-node så här:

  1. Välj Method: POST.

  2. Klicka på Expression vid URL och klistra in:

    {{ $('Start workflow').first().json.body.integration.callbackUrl }}
  3. Välj Authentication: None.

  4. Slå på Send Headers och lägg till headersen nedan.

  5. Slå på Send Body och välj Body Content Type: JSON och Specify Body: Using JSON.

Använd dessa headers:

Authorization: Bearer {{ $('Start workflow').first().json.body.integration.callbackToken }}
Content-Type: application/json

Skicka till exempel detta meddelande när ett steg börjar:

{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "document-maken-gestart",
"type": "progress",
"executionId": "{{ $execution.id }}",
"step": {
"id": "document_maken",
"label": "Skapa dokument"
},
"message": "Dokumentet skapas."
}
  • Använd ett unikt eventId för varje händelse inom samma körning.
  • Använd en tydlig svensk step.label; denna text visas i appen.
  • Om du har aktiverat Meddela slutet av arbetsflödet, skicka alltid type: "completed", type: "failed" eller type: "rejected" i slutet.
  • Lägg eventuellt till ett output-objekt med resultatet vid completed.
  • Skicka en begriplig felmeddelande vid failed. Körningen stoppas då också i appen.

Valfritt: be om godkännande i appen​

Använd en n8n Wait-node med On Webhook Call när arbetsflödet bara får fortsätta efter ett val. Skicka före Wait-noden en callback med type: "approval_required":

Ställ in Wait-noden på Resume: On Webhook Call, HTTP Method: POST och Authentication: Header Auth. Välj samma Header Auth-credential som vid Start workflow. Lägg till en Switch-node efter Wait-noden och kontrollera där {{ $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": "Kontrollera dokument"
},
"approval": {
"question": "Mag workflowet fortsätta?",
"context": "Kontrollera först det genererade dokumentet.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Godkänna" },
{ "value": "reject", "label": "Avvisa" }
]
}
}

Användaren ser valen i körningsfönstret. Efter ett val tar Wait-noden emot bland annat decision. Använd därefter till exempel en Switch-node för att avgöra rätt fortsättning.

Ett valvärde får bara innehålla bokstäver, siffror, _ och -. Labeln får däremot innehålla vanlig läsbar text.

Ställ in produktions-callback-URL​

Produktions-callback-URL:en för AI-Public är:

https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback

Klistra inte in denna URL som fast text i varje callback-node. Välj Expression i URL-fältet i HTTP Request-noden och använd:

{{ $('Start workflow').first().json.body.integration.callbackUrl }}

AI-Public levererar därmed automatiskt rätt produktions-URL vid varje start. Den fasta URL:en ovan använder du för att under test kontrollera att expressionen pekar på AI-Public och inte på AI-School eller AI-Corporate.

Callables triggerCustomN8nWorkflow, triggerN8nWorkflow och resumeN8nWorkflow anropas av appen själv. Du behöver inte ställa in dessa URL:er i n8n.

Hantera fel​

Skicka förväntade fel tillbaka med en callback av typen failed. Skapa dessutom ett centralt Error Workflow för oväntade nodefel:

  1. Skapa ett nytt arbetsflöde med en Error Trigger-node.

  2. Lägg därefter till en HTTP Request-node med Method: POST.

  3. Fyll i denna fasta produktions-URL under URL:

    https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed
  4. Välj Authentication: None och lägg till headern n8n-handihow-name med plattformens administratörs hemliga standardvärde.

  5. Välj en JSON-body och klistra in:

{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
  1. Aktivera Error Workflow.
  2. Öppna inställningarna för det vanliga arbetsflödet och välj detta under Error Workflow.

Skicka direkt efter Start workflow minst en callback med executionId: "{{ $execution.id }}". Bara då kan AI-Public koppla ett oväntat fel till rätt körning.

Viktiga begränsningar​

  • Endast webhook-triggers stöds.
  • Endast produktions-webhook-URLs stöds.
  • Test-webhook-URLs med /webhook-test/ nekas.
  • Endast POST stöds.
  • Endast generell header authentication stöds.
  • Header value behandlas som hemlig i applikationen.
  • Callback-token och resume-URL:er hanteras endast på serversidan och är inte direkt tillgängliga för användare.
  • Tenant bestäms på serversidan utifrån den inloggade användaren, inte utifrån ett värde som webbläsaren skickar med.

Felsökning​

  • 404 eller webhook inte registrerad: aktivera arbetsflödet i n8n och använd produktions-URL:en.
  • Autentiseringsfel: kontrollera att header name och value är exakt samma i båda systemen.
  • Saknad data: kontrollera att fältnamnen i applikationen motsvarar de keys som n8n förväntar sig.
  • Ingen request i n8n: kontrollera att arbetsflödet börjar med en webhook-trigger och använder POST.
  • Körningsfönstret fortsätter snurra: om du har aktiverat Meddela slutet av arbetsflödet, kontrollera att n8n skickar en sista completed, failed eller rejected callback. Om du inte förväntar dig några återkopplingar, stäng av alla tre alternativen vid registreringen.
  • Ingen framstegsinformation syns: kontrollera att Meddela mellanliggande framsteg är påslaget vid registreringen, att integration-objektet bevaras och att varje callback har ett unikt eventId.
  • Godkännandeknappar fungerar inte: kontrollera Wait-noden, resumeUrl, header authentication och de tillåtna tecknen i choices[].value.