n8n-arbejdsflows
AI-School kan n8n-arbejdsflows starte via en produktions-webhook. Dette er praktisk, når du uden for AI-School vil starte en automatiseret proces, f.eks. at oprette en opgave, opdatere en CRM-post, starte en rapporteringsflow eller videreføre indsendte formularer til et andet system.
Eksempel: nyhedsartikel på skolens hjemmeside
Antag, at skolen har lavet en n8n-arbejdsflow, der offentliggør en nyhedsartikel på skolens WordPress-hjemmeside. I AI-School indtaster du så kun en kort tekst, f.eks. et par sætninger om en projektuge, en sportsdag eller en åbning af dage. Med teksten starter du arbejdsflowet i n8n.
n8n-arbejdsflowet kan derefter f.eks.:
- Ud fra den korte tekst lave en pæn udkasttekst med en LLM-node og en prompt, der passer godt til skolens tone.
- Få lavet en passende illustration med en anden LLM-node, f.eks. i skolens farver og i en genkendelig illustrativ stil.
- Forbered eller offentliggør teksten og billedet som blogindlæg på WordPress-siden.
Sådan arbejder AI-School og n8n sammen: i AI-School vælger brugeren arbejdsflowet og indtaster de nødvendige oplysninger. n8n udfører derefter de automatiserede trin og sikrer, at nyhedsartikelens ligger pænt på hjemmesiden.
Hvad gør denne integration?
Du starter et n8n-arbejdsflow fra workflow-oversigten. Kun produktionens webhook, POST og header-auth er påkrævet. Felter og tilbagemeldinger fra n8n er valgfrie og kan konfigureres uafhængigt af hinanden.
- Har arbejdsflowet ingen felter, bliver webhook'en straks kaldt.
- Har arbejdsflowet felter, åbnes først en formular. Brugeren udfylder felterne og starter derefter arbejdsflowet med knappen.
- De indtastede værdier sendes som JSON i et POST-anmodning til n8n-webhook'en.
- Uden tilbagemeldinger bekræfter AI-School kun, at arbejdsflowet er startet og kører videre i n8n. Vinduet viser ingen spinner og kan lukkes med det samme.
- Hvis dette er aktiveret under registreringen, kan arbejdsflowet sende mellemtrin eller slutningen tilbage til AI-School.
- Hvis godkendelse under registreringen er aktiveret, kan brugeren træffe et valg direkte i AI-School. n8n fortsætter derefter fra det ventende trin.
Opret n8n-arbejdsflow i AI-School
En administrator registrerer arbejdsflowet som følger:
- Gå til Assistenten.
- Åbn Workflows.
- Vælg Nyt n8n-arbejdsflow.
- Indtast navnet på arbejdsflowet og n8n-produktions-URL'en.
- Indstil Header authentication med et header-navn og hemmelig header-værdi.
- Under Terugmeldinger uit n8n marker kun de dele, der faktisk er bygget i denne n8n-workflow: fremdrift, godkendelse og/eller slutningen af arbejdsflowet.
- Tilføj eventuelt de felter, der skal sendes i POST-request'en.
- Gem arbejdsflowet.
Alle tre tilbagemeldingsmuligheder er slået fra som standard. Hvis du senere tilføjer callbacks eller et godkendelsestrin i n8n, opdater også registreringen i AI-School. Dialogen ved, om den kun skal vise en startbekræftelse eller vente på yderligere signaler.
Felter
- Felter er valgfri.
- Hvert felt har ét felt-navn og en type.
- Understøttede felttyper er kort tekst, lang tekst, tal, ja/nej, dato, ét valg og flere valg.
- Ved Ét valg og Flere valg tilføjes de tilgængelige muligheder. Ét valg vises som en kompakt valgliste; Flere valg viser afkrydsningsfelter. Den valgte værdi eller værdier sendes i JSON-kroppen.
- Obligatoriske felter skal udfyldes, før arbejdsflowet kan startes.
- Felt-navnet bliver nøglen i JSON-kroppen, der sendes til n8n.
Kompatibelt arbejdsflow i n8n
- Lav i n8n et nyt arbejdsflow.
- Tilføj som første node en Webhook.
- Giv denne node præcis navnet Start workflow. De senere eksempler bruger dette navn.
- Sæt HTTP Method til POST.
- Vælg Authentication som Header Auth og vælg en Header Auth-legitimationsopgave.
- Indtast i den legitimationsopgave samme header-navn og hemmelige værdi som i arbejdflowet i AI-School.
- Sæt Respond eller Response Mode til Immediately. App'en får dermed straks en vellykket startbekræftelse, mens n8n fortsætter med at køre.
- Kopier Production URL fra Webhook-noden til feltet n8n produktions-url i AI-School. Brug ikke test-URL'en med
/webhook-test/. - Aktivér arbejdsflowet i n8n.
Dataene fra AI-School findes i n8n under body. Integrationsdata findes derfor under body.integration. Slet ikke disse data i en Edit Fields-, Set- eller Code-node. Eksemplerne nedenfor læser dem hele tiden direkte fra noden Start workflow.
Eksempel på JSON-kroppen
Hvis du definerer felter med navnene prompt, kundetavn, målgrupper og dato, modtager n8n f.eks. denne JSON-krop. AI-School tilføjer automatisk integration-objektet.
{
"prompt": "Lav et kort sammendrag af anmodningen.",
"kundetavn": "Eksempelorganisation",
"målgrupper": ["medarbejdere", "forældre"],
"dato": "2026-09-22",
"integration": {
"runId": "chat-dokument-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "midlertidig-token-for-denne-kørsel"
}
}
Callback-tokenet hører til én udførelse. Gem ikke i logs, faste konfigurationer eller andre systemer.
Valgfrit: send fremdrift og afslutning tilbage
AI-School kan kun vise, hvad n8n returnerer. Brug disse callbacks kun, hvis du i registreringen har aktiveret Mellem-fremdrift rapporteres og/eller Slutningen af arbejdsflowet rapporteres.
Indstil HTTP Request-noden
-
Tilføj en HTTP Request-node og navngiv den f.eks. Rapporter fremdrift.
-
Sæt Method til POST.
-
Klik på URL og vælg Expression.
-
Indsæt præcis denne expression:
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Vælg Authentication som None. Det midlertidige token tilføjes som header i næste trin.
-
Slå Send Headers til og tilføj disse to headers:
Name Value AuthorizationBearer {{ $('Start workflow').first().json.body.integration.callbackToken }}Content-Typeapplication/json -
Slå Send Body til.
-
Vælg Body Content Type: JSON og Specify Body: Using JSON.
-
Indsæt følgende JSON i feltet JSON:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "document-oprettelse-startet",
"type": "progress",
"executionId": "{{ $execution.id }}",
"step": {
"id": "document_oprettelse",
"label": "Dokument oprettet"
},
"message": "Dokumentet bliver oprettet."
}
- Vælg Execute step, mens du tester arbejdsflowet via appen. Noden burde returnere status 200.
Kopier denne HTTP Request-node for hver statusmeddelelse. Tilpas per kopi mindst eventId, step.id, step.label og message.
Sidste callback indstilling
Hvis Slutningen af arbejdsflowet meldes er aktiveret, skal der ved slutningen af hver mulig rute være en sidste callback. Brug type: "completed" ved succes, type: "failed" ved en fejl du selv håndterer, og type: "rejected" når brugeren afslår arbejdsflowet.
For en vellykket udførelse kan kroppen se sådan ud:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "workflow-afsluttet",
"type": "completed",
"executionId": "{{ $execution.id }}",
"step": {
"id": "afslutning",
"label": "Workflow afsluttet"
},
"message": "Workflows er afsluttet.",
"output": {
"resultat": "Kort beskrivelse eller link til resultatet"
}
}
Brug i én udførelse for hver callback en anden eventId. Brug også altid en tydelig step.label: denne tekst ses af brugeren i udførelsesvinduet.
Valgfrit: godkendelse i appen
Wait-noden
- Tilføj hvor godkendelse er nødvendig en Wait-node.
- Vælg ved Resume for On Webhook Call.
- Sæt HTTP Method til POST.
- Vælg Authentication for Header Auth.
- Vælg samme Header Auth-legitimationsoplysninger som i noden Start workflow.
- Placer før Wait-noden en kopi af den tidligere indstillede HTTP Request-node og navngiv den Spørg om godkendelse.
- Brug i denne node samme dynamiske URL og headers. Erstat kun JSON-kroppen med:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "kontrol-dokument",
"type": "approval_required",
"executionId": "{{ $execution.id }}",
"step": {
"id": "kontrol_dokument",
"label": "Dokument kontrollere"
},
"approval": {
"question": "Må arbejdsflowet fortsætte?",
"context": "Kontroller først det genererede dokument.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Godkend" },
{ "value": "reject", "label": "Afslå" }
]
}
}
Kobl Spørg om godkendelse til Wait-noden. Brugeren vil derefter se knapper i AI-School. Den hemmelige resume-URL bliver ikke vist i browseren; serveren sender valget sikkert til Wait-noden.
Behandling af valg efter Wait-noden
- Tilføj efter Wait-noden en Switch-node.
- Brug den værdi, der skal kontrolleres:
{{ $json.body.decision }}
- Lav for eksempel en rute for
approveog en rute forreject. - Afslut hver rute med en passende
completed,rejectedellerfailed-callback.
Et valgværdi kan kun indeholde bogstaver, tal, _ og -. Labelen må gerne være almindelig læsbar tekst.
Produktions callback-url indstilling
Produktions callback-url for AI-School er:
https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowCallback
Sæt ikke denne URL som fast tekst i hver callback-node. Vælg i URL-feltet i HTTP Request-noden Expression og brug:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-School lever dermed ved hver start automatisk den korrekte produktions-URL. Den faste URL ovenfor bruges kun til at kontrollere udtrykket under testning.
De kaldbare funktioner triggerCustomN8nWorkflow, triggerN8nWorkflow og resumeN8nWorkflow kaldes af selve appen. Disse URL'er behøver du ikke konfigurere i n8n.
Uventede fejl tilbage
En normal failed callback fungerer kun, når arbejdsflowet når den pågældende HTTP Request-node. Brug også et centralt n8n Error Workflow for uventede nodefejl.
Opret centralt Error Workflow
- Lav i n8n en separat workflow med navnet AI-School - fejltælling tilbage.
- Tilføj en Error Trigger-node.
- Tilføj derefter en HTTP Request-node.
- Sæt Method til POST.
- Indtast i URL'en denne faste produktions-URL:
https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowExecutionFailed
-
Vælg Authentication: None.
-
Slå Send Headers til og tilføj:
Name Value n8n-handihow-nameden hemmelige standardværdi, som du modtager fra platformadministratoren Content-Typeapplication/json -
Slå Send Body til, vælg JSON og indsæt denne krop:
{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
- Aktiver Error Workflow.
- Åbn indstillingerne for den almindelige workflow og vælg ved Error Workflow denne nye Error Workflow.
Send direkte efter Start workflow altid mindst én fremdriftscallback med executionId: "{{ $execution.id }}". Sådan ved appen, hvilken udførelse der hører til en uventet n8n-fejl.
Vigtige begrænsninger
- Kun webhook-udløsere understøttes.
- Kun produktions-webhook-URLs understøttes.
- Test-webhook-URLs med
/webhook-test/afvises. - Kun POST understøttes.
- Kun generisk header authentication understøttes.
- Header-værdien behandles som hemmelig i applikationen.
- Callbacktokens og resume-url'er behandles kun server-side og er ikke direkte tilgængelige for brugere.
- Tenant bestemmes server-side ud fra den loggede-in bruger, ikke ud fra en værdi som browseren sender.
Fejlfindingsvejledning
- 404 eller webhook ikke registreret: aktiver arbejdsflowet i n8n og brug produktions-URL'en.
- Autentifikationsfejl: kontroller, at header-navn og værdi i begge systemer er identiske.
- Manglende data: kontroller, at felt-navne i applikationen svarer til n8n-keys.
- Ingen request i n8n: kontroller, at workflowet starter med en webhook-trigger og bruger POST.
- Udførelsesvinduet kører videre: hvis du har aktiveret slutningen af workflow, kontroller da, om n8n sender en endelig
completed,failedellerrejected-callback. Hvis du ikke forventer tilbagemeldinger, så slå alle tre muligheder fra i registreringen. - Ingen fremdrift synlig: kontroller, om Mellem-fremdrift rapporteres er aktiveret i registreringen, eller at
integration-objektet bevares, og at hver callback har en unikeventId. - Godkendelsesknapper virker ikke: kontroller Wait-noden,
resumeUrl, header authentication og tilladte tegn ichoices[].value.