Gå till huvudinnehållet

n8n arbetsflöden

AI-School kan starta n8n-arbetsflöden via en produktions-webhook. Detta är användbart när du utanför AI-School vill påbörja en automatiserad process, till exempel skapa en uppgift, uppdatera en CRM-post, starta en rapporteringsflöde eller vidarebefordra formulärdata till ett annat system.

Exempel: nyhetsartikel på skolans webbplats

Anta att skolan har skapat ett n8n-arbetsflöde som publicerar en nyhetsartikel på skolans WordPress-webbplats. I AI-School fyller du då endast i en kort text, till exempel några meningar om en projektvecka, idrottsdag eller öppet hus. Med den texten startar du arbetsflödet i n8n.

Sedan kan n8n-arbetsflödet till exempel:

  1. Från den korta texten skapa en snygg utkast-text med en LLM-nod och en prompt som passar skolans ton.
  2. Låt en passande illustration skapas med en andra LLM-nod, till exempel i skolans färger och i en igenkännbar illustrativ stil.
  3. Förbered eller publicera texten och bilden som ett blogginlägg på WordPress-webbplatsen.

Så fungerar AI-School och n8n tillsammans: i AI-School väljer användaren arbetsflödet och fyller i nödvändig information. n8n utför sedan de automatiserade stegen och ser till att nyhetsartikeln hamnar snyggt på webbplatsen.

Vad gör denna integration?

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, kallas webhooken direkt upp.
  • 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-förfrågan till n8n-webhooken.
  • Utan återkoppling bekräftar AI-School endast att arbetsflödet har startats och körs vidare i n8n. Fönstret visar ingen spinner och kan stängas direkt.
  • Om detta aktiverats i registreringen kan arbetsflödet skicka tillbaka mellansteget eller slutet till AI-School.
  • Om godkännande aktiverats i registreringen kan användaren göra ett val direkt i AI-School. Därefter fortsätter n8n från det väntande steget.

Skapa n8n-arbetsflöde i AI-School

En administratör registrerar arbetsflödet på följande sätt:

  1. Gå till Assistenter.
  2. Öppna Arbetsflöden.
  3. Välj Nytt n8n-arbetsflöde.
  4. Fyll i namnet på arbetsflödet och n8n-produktions-URL.
  5. Ange Header authentication med ett header-namn och hemligt header-värde.
  6. Under Återkopplingar från n8n markera endast de delar som faktiskt har byggts in i detta n8n-arbetsflöde: framsteg, godkännande och/eller slutet av arbetsflödet.
  7. Lägg till eventuellt fält som ska skickas i POST-förfrågan.
  8. Spara arbetsflödet.

Alla tre återkopplingsalternativ står som standard avstängda. Om du senare lägger till callbacks eller ett godkännandasteg i n8n, uppdatera även registreringen i AI-School. Dialogen vet då om den bara ska visa en startbekräftelse eller vänta på vidare signaler.

Fält

  • Fält är valfria.
  • Varje fält har ett fält-namn och en typ.
  • Stödta fält-typer är kort text, långt text, tal, ja/nej, datum, ett val och flera val.
  • Vid Ett val och Flera val läggs till de tillgängliga alternativen. Ett val visas som en kompakt rullgardinsmeny; Flera val visar kryssrutor. Det valda värdet eller värdena skickas i JSON-kroppen.
  • Obligatoriska fält måste fyllas i innan arbetsflödet kan startas.
  • Fältets namn blir nyckeln i JSON-kroppen som skickas till n8n.

Kompatibelt arbetsflöde i n8n

  1. Skapa ett nytt arbetsflöde i n8n.
  2. Lägg till som första nod en Webhook.
  3. Ge denna nod exakt namnet Start workflow. Följande exempel använder detta namn.
  4. Sätt HTTP Method till POST.
  5. Välj Authentication som Header Auth och välj ett Header Auth-referens.
  6. Ange i den referensen samma header-namn och hemliga värde som i arbetsflödet i AI-School.
  7. Sätt Respond eller Response Mode till Immediately. Appen får då omedelbart en framgångsrik startbekräftelse medan n8n fortsätter arbeta.
  8. Kopiera produktions-URL:en från Webhook-noden till fältet n8n-produktions-url i AI-School. Använd inte test-URL:en med /webhook-test/.
  9. Aktivera arbetsflödet i n8n.

Data från AI-School finns i n8n under body. Integrationsdata finns därför under body.integration. Ta inte bort dessa uppgifter i en Edit Fields-, Set- eller Code-nod. Nedan följer exemplen som läser dem direkt från noden Start workflow.

Exempel på JSON-kroppen

Om du definierar fält med namnen prompt, kundnamn, målgrupper och datum, får n8n till exempel denna JSON-kropp. AI-School lägger automatiskt till integration-objektet.

{
"prompt": "Gör en kort sammanfattning av begäran.",
"kundnamn": "Exempelorganisation",
"målgrupper": ["medarbetare", "föräldrar"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-dokument-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tillfälligt-token-för-denna-körningen"
}
}

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

Valfritt: återkoppling om framsteg och avslutning

AI-School kan bara visa vad n8n återkopplar. Använd dessa callbacks endast om registreringen har aktiverat Meddela mellanliggande framsteg och/eller Meddela arbetsflödets slut.

Inställning av HTTP Request-nod

  1. Lägg till en HTTP Request-nod och döp den till exempel till Meddela framsteg.

  2. Sätt Method till POST.

  3. Klicka på URL och välj Expression.

  4. Klistra in exakt denna uttryck:

    {{ $('Start workflow').first().json.body.integration.callbackUrl }}
  5. Välj Authentication till None. Det tillfälliga tokenet läggs till som header i nästa steg.

  6. Sätt Send Headers på och lägg till dessa två headers:

    NameValue
    AuthorizationBearer {{ $('Start workflow').first().json.body.integration.callbackToken }}
    Content-Typeapplication/json
  7. Sätt Send Body på.

  8. Välj Body Content Type: JSON och Specify Body: Using JSON.

  9. Klistra in nedanstående JSON i fältet JSON:

{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "document-skapa-startad",
"type": "progress",
"executionId": "{{ $execution.id }}",
"step": {
"id": "document_skapas",
"label": "Dokument skapas"
},
"message": "Dokumentet håller på att skapas."
}
  1. Välj Execute step medan du testar arbetsflödet i appen. Nodens status bör returnera 200.

Kopiera denna HTTP Request-nod för varje statusmeddelande. Anpassa i varje kopia åtminstone eventId, step.id, step.label och message.

Slutlig callback

Om Meddela arbetsflödets slut är aktiverat, ska vid slutet av varje möjlig rutt en sista callback finnas. Använd type: "completed" vid framgång, type: "failed" vid ett fel du själv hanterar och type: "rejected" när användaren avvisar arbetsflödet.

För en lyckad körning kan kroppen se ut så här:

{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "arbetsflöde-avslutat",
"type": "completed",
"executionId": "{{ $execution.id }}",
"step": {
"id": "avslutning",
"label": "Arbetsflöde avslutat"
},
"message": "Arbetsflödet är avslutat.",
"output": {
"resultat": "Kort beskrivning eller länk till resultatet"
}
}

Använd vid varje callback ett annat eventId. Ge också alltid en tydlig step.label: denna text visas i körningsfönstret.

Valfritt: bekräftelse i appen

Wait-nod inställning

  1. Lägg till en Wait-nod där bekräftelse behövs.
  2. Välj i Resume alternativet On Webhook Call.
  3. Sätt HTTP Method till POST.
  4. Välj Authentication till Header Auth.
  5. Välj samma Header Auth-referens som vid noden Start workflow.
  6. Placera före Wait-noden en kopia av den tidigare konfigurerade HTTP Request-noden och kalla den Fråga om bekräftelse.
  7. Använd i denna nod samma dynamiska URL och headers. Ändra endast JSON-kroppen till:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "kontroll-dokument",
"type": "approval_required",
"executionId": "{{ $execution.id }}",
"step": {
"id": "kontroll_dokument",
"label": "Kontrollera dokument"
},
"approval": {
"question": "Ska arbetsflödet fortsätta?",
"context": "Kontrollera det genererade dokumentet först.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Godkänn" },
{ "value": "reject", "label": "Avvisa" }
]
}
}

Koppla Fråga om bekräftelse till Wait-noden. Användaren ser sedan knapparna i AI-School. Den hemliga resume-URL:en ges inte till webbläsaren; servern skickar valet säkert till Wait-noden.

Bearbeta val efter Wait-noden

  1. Lägg till en Switch-nod efter Wait-noden.

  2. Använd värdet som ska kontrolleras:

    {{ $json.body.decision }}
  3. Skapa till exempel en väg för approve och en väg för reject.

  4. Låt varje väg avslutas med en lämplig completed, rejected eller failed callback.

Ett valvärde får endast innehålla bokstäver, siffror, _ och -. Etiketten får gärna vara vanlig läsbar text.

Produktions callback-url inställs

Produktions callback-url för AI-School är:

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

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

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

AI-School levererar därmed vid varje start automatiskt rätt produktions-URL. Den fasta URL:en ovan använder du endast för att under testningen kontrollera att uttrycket hänvisar till AI-School.

Anropande funktioner triggerCustomN8nWorkflow, triggerN8nWorkflow och resumeN8nWorkflow kallas av appen själv. Dessa URL:er behöver du inte konfigurera i n8n.

Oväntade fel tillbaka

En vanlig failed-callback fungerar endast när arbetsflödet når motsvarande HTTP Request-nod. Använd för oväntade nodfel även en central n8n Error Workflow.

Central Error Workflow

  1. Skapa i n8n en separat arbetsflöde med namnet AI-School - fel tillbaka.

  2. Lägg till en Error Trigger-nod.

  3. Lägg därefter till en HTTP Request-nod.

  4. Sätt Method till POST.

  5. Ange denna fasta produktions-URL i URL:

    https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowExecutionFailed
  6. Välj Authentication: None.

  7. Sätt Send Headers på och lägg till:

    NameValue
    n8n-handihow-nameden hemliga standardvärdet du får av plattformens administratör
    Content-Typeapplication/json
  8. Sätt Send Body på, välj JSON och klistra in body:

{
"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 i Error Workflow denna nya Error Workflow.

Skicka direkt efter Start workflow alltid minst en framstegs callback med executionId: "{{ $execution.id }}". Då vet appen vilken körning en oväntad n8n-fel tillhör.

Viktiga begränsningar

  • Endast webhook-utlösare stöds.
  • Endast produktions-webhook-URL:er stöds.
  • Test-webhook-URL:er med /webhook-test/ avvisas.
  • Endast POST stöds.
  • Endast generisk header-autentisering stöds.
  • Header-värdet behandlas som hemligt i applikationen.
  • Callback-token och resume-url:er behandlas endast server-side och är inte direkt tillgängliga för användare.
  • Tenanten bestäms server-side utifrån inloggad användare, inte utifrån ett värde som webbläsaren skickar.

Felsökning

  • 404 eller webhook inte registrerad: aktivera arbetsflödet i n8n och använd produktions-URL:en.
  • Autentiseringsfel: kontrollera att header-namn och värde i båda systemen är exakt lika.
  • Saknade data: kontrollera att fältnamnen i applikationen matchar nycklarna som n8n förväntar.
  • Ingen begäran i n8n: kontrollera att arbetsflödet börjar med en webhook-trigg och använder POST.
  • Körningsfönstret fortsätter att köra: om du aktiverat Meddela arbetsflödets slut, kontrollera om n8n skickar en sista completed, failed eller rejected-callback. Om du inte förväntar dig återkopplingar, stäng av alla tre alternativen i registreringen.
  • Inget framsteg synligt: kontrollera att Meddela mellanliggande framsteg är aktiverat i registreringen, eller att integration-objektet behålls och att varje callback har ett unikt eventId.
  • Godkännandeknappar fungerar inte: kontrollera Wait-noden, resumeUrl, header-auth och tillåtna tecken i choices[].value.
WhatsApp