n8n arbeidsflyter
AI-School kan starte n8n-arbeidsflyter via en produksjons-webhook. Dette er nyttig når du ønsker å starte en automatisert prosess utenfor AI-School, for eksempel å opprette en oppgave, oppdatere en CRM-post, starte en rapporteringsflyt eller overføre skjemadata til et annet system.
Eksempel: nyhetsartikkel på skolens nettsted
Anta at skolen har laget en n8n-arbeidsflyt som publiserer en nyhetsartikkel på skolens WordPress-nettside. I AI-School fyller du da bare inn en kort tekstbit, for eksempel noen setninger om en prosjektuke, idrettsdag eller åpen dag. Med den teksten starter du arbeidsflyten i n8n.
n8n-arbeidsflyten kan deretter gjøre for eksempel:
- Lage en pen utkast av teksten fra kort tekst med en LLM-node og et prompt som passer tonen til skolen.
- Lage en passende illustrasjon med en andre LLM-node, for eksempel i skolens farger og i en gjenkjennelig illustrativ stil.
- Gjøre teksten og bildet klare til blogginnlegg eller publisere på WordPress-nettsiden.
Slik samarbeider AI-School og n8n: i AI-School velger brukeren arbeidsflyten og fyller inn nødvendig informasjon. n8n utfører deretter de automatiserte stegene og sørger for at nyhetsartikkelen kommer pent på nettstedet.
Hva gjør denne integrasjonen?
Du starter en n8n-arbeidsflyt fra arbeidsflytoversikten. Kun produksjons-webhook, POST og Header Auth er obligatoriske. Felt og tilbakemeldinger fra n8n er valgfritt og kan konfigureres uavhengig av hverandre.
- Har arbeidsflyten ingen felt, så blir webhooken kalt opp umiddelbart.
- Har arbeidsflyten felt, så åpnes først et skjema. Brukeren fyller inn feltene og starter deretter arbeidsflyten med knappen.
- De utfylte verdiene sendes som JSON i en POST-forespørsel til n8n-webhooken.
- Uten tilbakemeldinger bekrefter AI-School bare at arbeidsflyten er startet og fortsetter i n8n. Vinduet viser ingen spinner og kan lukkes direkte.
- Hvis dette er aktivert i registreringen, kan arbeidsflyten sende tilbake mellomliggende trinn eller slutten til AI-School.
- Hvis godkjenning i registreringen er aktivert, kan brukeren velge direkte i AI-School. n8n fortsetter deretter fra det ventende steget.
opprette n8n-arbeidsflyt i AI-School
En administrator registrerer arbeidsflyten slik:
- Gå til Assistenter.
- Åpne Arbeidsflyter.
- Velg Ny n8n-arbeidsflyt.
- Skriv inn navn på arbeidsflyten og n8n-produksjons-URLen.
- Sett Header authentication med et header-navn og hemmelig header-verdi.
- Avmarkér under Tilbakemeldinger fra n8n bare de delene som faktisk er bygget i denne n8n-arbeidsflyten: fremdrift, godkjenning og/eller slutten av arbeidsflyten.
- Legg eventuelt til felter som må sendes i POST-forespørselen.
- Lagre arbeidsflyten.
Alle tre tilbakemeldingsalternativene er avaktiverte som standard. Hvis du senere legger til callbacks eller et godkjenningssteg i n8n, oppdater registreringen i AI-School. Dialogen vet da om den bare skal vise en startbekreftelse eller vente på videre signaler.
Felt
- Felter er valgfri.
- Hvert felt har ett felt-navn og en type.
- Støttede felt-typer er kort tekst, lang tekst, tall, ja/nei, dato, ett valg og flere valg.
- Ved Én valg og Flere valg legges tilgjengelige alternativer til. Én valg vises som kompakt nedtrekk; Flere valg viser avkrysningsbokser. Valget(e) sendes i JSON-bodyen.
- Obligatoriske felt må fylles ut før arbeidsflyten kan startes.
- Feltets navn blir nøkkelen i JSON-bodyen som sendes til n8n.
Kompatibel arbeidsflyt i n8n
- Lag en ny arbeidsflyt i n8n.
- Legg til som første node en Webhook.
- Gi denne noden nøyaktig navnet Start workflow. Eksemplene her bruker dette navnet.
- Still HTTP Method til POST.
- Velg Authentication som Header Auth og velg et Header Auth-legitimasjon.
- I den legimitasjonen, skriv samme header-navn og hemmelig verdi som i arbeidsflyten i AI-School.
- Sett Respond eller Response Mode til Immediately. Appen får da en umiddelbar vellykket startbekreftelse, mens n8n fortsetter å jobbe.
- Kopier Production URL fra Webhook-noden til feltet n8n produksjons-url i AI-School. Ikke bruk test-URLen med
/webhook-test/. - Aktiver arbeidsflyten i n8n.
Dataene fra AI-School ligger i n8n under body. Integrasjonsdataene ligger derfor under body.integration. Ikke slett disse i en Edit Fields-, Set- eller Code-node. Eksemplene nedenfor leser dem alltid direkte fra noden Start workflow.
Eksempel på JSON-body
Hvis du definerer felt med navnene prompt, kundensnavn, målgrupper og dato, mottar n8n for eksempel denne JSON-bodyen. AI-School legger automatisk til integration-objektet.
{
"prompt": "Lag et kort sammendrag av forespørselen.",
"kundensnavn": "Eksempelorganisasjon",
"målgrupper": ["ansatte", "foreldre"],
"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-kjøringen"
}
}
Callback-tokenet gjelder for én kjøring. Ikke lagre det i logger, faste konfigurasjoner eller andre systemer.
Valgfritt: send tilbake fremdrift og fullføring
AI-School kan bare vise det n8n returnerer. Bruk disse callbackene bare hvis registreringen har slått på Meld mellomliggende fremgang og/eller Meld slutten på arbeidsflyten.
Konfigurere HTTP Request-noden
-
Legg til en HTTP Request-node og kall den for eksempel Meld fremdrift.
-
Still Method til POST.
-
Klikk ved URL på Expression.
-
Lim inn nøyaktig denne uttrykket:
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Velg Authentication som None. Midlertidig token blir lagt til som header i neste steg.
-
Slå på Send Headers og legg til disse to headers:
Name Value AuthorizationBearer {{ $('Start workflow').first().json.body.integration.callbackToken }}Content-Typeapplication/json -
Slå på Send Body.
-
Velg Body Content Type: JSON og Specify Body: Using JSON.
-
Lim inn følgende JSON i feltet JSON:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "dokument-lages-startet",
"type": "progress",
"executionId": "{{ $execution.id }}",
"step": {
"id": "dokument_lages",
"label": "Dokument lages"
},
"message": "Dokumentet lages."
}
- Velg Execute step når du tester arbeidsflyten i appen. Nodene skal returnere status 200.
Kopier denne HTTP Request-noden for hver statusmelding. Juster minst eventId, step.id, step.label og message for hver kopi.
Siste callback
Hvis Meld slutten på arbeidsflyten er slått på, må det ved slutten av hver mulig rute være en siste callback. Bruk type: "completed" ved suksess, type: "failed" ved en feil du selv håndterer og type: "rejected" når brukeren avslår arbeidsflyten.
For en vellykket utføring kan bodyen se slik ut:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "arbeidsflyt-avsluttet",
"type": "completed",
"executionId": "{{ $execution.id }}",
"step": {
"id": "avslutning",
"label": "Arbeidsflyt avsluttet"
},
"message": "Arbeidsflyten er avsluttet.",
"output": {
"resultat": "Kort beskrivelse eller lenke til resultatet"
}
}
Bruk i én kjøring for hver callback en annen eventId. Bruk også alltid en tydelig step.label: denne teksten ser brukeren i kjøre-vinduet.
Valgfritt: godkjenning i appen
Wait-noden
- Legg til en Wait-node der godkjenning er nødvendig.
- Velg ved Resume for On Webhook Call.
- Still HTTP Method til POST.
- Velg Authentication som Header Auth.
- Velg samme Header Auth-legitimasjon som i noden Start workflow.
- Plasser før Wait-noden en kopi av den tidligere oppsatte HTTP Request-noden og kall den Spør om godkjenning.
- Bruk i denne noden samme dynamiske URL og headers. Erstatt bare JSON-bodyen med:
{
"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": "Dokument kontrollert"
},
"approval": {
"question": "Kan arbeidsflyten fortsette?",
"context": "Kontroller det genererte dokumentet først.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Godkjenn" },
{ "value": "reject", "label": " Avslå" }
]
}
}
Koble Spør om godkjenning til Wait-noden. Brukeren vil da se knappene i AI-School. Den hemmelige resume-URL-en blir ikke vist i nettleseren; serveren sender valget trygt til Wait-noden.
Behandle valg etter Wait-noden
-
Legg til en Switch-node etter Wait-noden.
-
Bruk verdien som skal kontrolleres:
{{ $json.body.decision }} -
Lag en rute for
approveog en rute forreject. -
La hver rute avslutte med en passende
completed,rejectedellerfailed-callback.
En valgværdi kan bare inneholde bokstaver, tall, _ og -. Etiketts tekst kan være lesbar vanlig tekst.
Produktionscallback-URL innstilling
Produksjons callback-URL for AI-School er:
https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowCallback
Lim inn denne URL-en som fast tekst i hver callback-node. Velg i URL-feltet i HTTP Request-noden Expression og bruk:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-School leverer dermed ved hver start automatisk riktig produksjons-URL. Den faste URL-en ovenfor bruker du bare for å teste at uttrykket peker til AI-School.
Kallene triggerCustomN8nWorkflow, triggerN8nWorkflow og resumeN8nWorkflow blir kjørt av appen selv. Du trenger ikke å konfigurere disse URL-ene i n8n.
Uventede feil tilbake
En vanlig failed-callback fungerer bare når arbeidsflyten når den aktuelle HTTP Request-noden. Bruk også en sentral n8n Error Workflow for uventede node-feil.
Lage en sentral Error Workflow
-
Lag i n8n en egen arbeidsflyt med navnet AI-School - feil tilbake.
-
Legg til en Error Trigger-node.
-
Legg deretter til en HTTP Request-node.
-
Still Method til POST.
-
I URL-feltet skriv inn denne faste produksjons-URLen:
https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowExecutionFailed -
Velg Authentication: None.
-
Slå på Send Headers og legg til:
Name Value n8n-handihow-nameden hemmelige standardverdien du får fra plattformforvalteren Content-Typeapplication/json -
Slå på Send Body, velg JSON og lim inn denne kroppen:
{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
- Aktiver Error Workflown.
- Åpne innstillingene til den vanlige arbeidsflyten og velg denne nye Error Workflow under Error Workflow.
Send direkte etter Start workflow alltid minst én fremdriftscallback med executionId: "{{ $execution.id }}". Da vet appen hvilken kjøring det gjelder ved en uventet n8n-feil.
Viktige begrensninger
- Kun webhook-utløser støttes.
- Kun produksjons-webhook-URL-er støttes.
- Test-webhook-URL-er med
/webhook-test/blir avvist. - Kun POST støttes.
- Kun generisk header-auth støttes.
- Header-verdien behandles som hemmelig i applikasjonen.
- Callback-tokens og resume-URL-er behandles kun server-side og er ikke direkte tilgjengelige for brukere.
- Tenant bestemmes server-side ut fra innlogget bruker, ikke fra en verdi som nettleseren sender.
Feilsøking
- 404 eller webhook ikke registrert: aktiver arbeidsflyten i n8n og bruk produksjons-URLen.
- Autentiseringsfeil: kontroller at header-navn og verdi i begge systemer er helt like.
- Manglende data: kontroller at felt-navnene i applikasjonen samsvarer med nøklene som n8n forventer.
- Ingen forespørsel i n8n: kontroller at arbeidsflyten begynner med en webhook-trigger og bruker POST.
- Kjøre-vinduet henger: hvis du har slått på Meld slutten på arbeidsflyten, kontroller om n8n sender en siste
completed,failedellerrejected-callback. Hvis du ikke forventer tilbakemeldinger, slå alle tre alternativene av i registreringen. - Ingen synlig fremdrift: kontroller at Meld mellomliggende fremdrift i registreringen er aktivert, eller at
integration-objektet beholdes og at hver callback har en unikeventId. - Godkjenningsknapper fungerer ikke: kontroller Wait-noden,
resumeUrl, header authentication og tillatt tegnsett ichoices[].value.