Gå til hovedindhold

n8n-workflows

AI-Public kan n8n-workflows starte via en produktions-webhook. Dette er nyttigt, når du uden for AI-Public vil starte en automatiseret proces, for eksempel oprettelse af en opgave, opdatering af en CRM-post, start af en rapporteringsflow eller videresendelse af formularoplysninger til et andet system.

Eksempel: nyhedsartikel på organisationens website​

Antag, at organisationen har lavet en n8n-workflow, som publicerer en nyhedsartikel på WordPress-sitet. I AI-Public udfylder du så kun en kort tekst, for eksempel et par sætninger om et møde, et projekt eller en offentlig meddelelse. Med den tekst starter du workflowen i n8n.

n8n-workflowen kan derefter for eksempel:

  1. Omsætte den korte tekst til en pæn kladde med en LLM-node og en prompt, der passer godt til organisationens tone.
  2. Lade en anden LLM-node skabe en passende illustration, for eksempel i organisationens farver og i en genkendelig illustrativ stil.
  3. Klargøre eller publicere teksten og billedet som et blogindlæg på WordPress-sitet.

Sådan arbejder AI-Public og n8n sammen: i AI-Public vælger brugeren workflowen og udfylder de nødvendige oplysninger. n8n udfører derefter de automatiserede trin og sørger for, at nyhedsartiklen ender pænt på websitet.

Hvad gør denne integration?​

Du starter en n8n-workflow fra workflow-overblikket. Kun produktions-webhooken, POST og Header Auth er obligatoriske. Felter og tilbagemeldinger fra n8n er valgfrie og kan konfigureres uafhængigt af hinanden.

  • Har workflowen ingen felter, kaldes webhooken med det samme.
  • Har workflowen felter, åbnes der først en formular. Brugeren udfylder felterne og starter derefter workflowen med knappen.
  • De udfyldte værdier sendes som JSON i en POST-request til n8n-webhooken.
  • Uden tilbagemeldinger bekræfter AI-Public kun, at workflowen er startet, og at den fortsætter i n8n. Vinduet viser ingen spinner og kan lukkes med det samme.
  • Hvis dette er slået til ved registreringen, kan workflowen sende mellemliggende trin eller afslutningen tilbage til AI-Public.
  • Hvis godkendelse er slået til ved registreringen, kan brugeren træffe et valg direkte i AI-Public. n8n fortsætter derefter fra ventetrinnet.

Opret en n8n-workflow i AI-Public​

En administrator registrerer workflowen sådan:

  1. Gå til Assistenter.
  2. Åbn fanen Workflow-assistenter.
  3. Klik på Ny workflow i kortet øverst, og vælg n8n-workflow.
  4. Udfyld workflowens navn og n8n-produktions-URL’en.
  5. Konfigurer Header authentication med et headernavn og en hemmelig header-værdi.
  6. Under Tilbagemeldinger fra n8n skal du kun markere de dele, der faktisk er bygget i denne n8n-workflow: fremdrift, godkendelse og/eller workflowens afslutning.
  7. Tilføj eventuelt de felter, som skal sendes med i POST-requesten.
  8. Gem workflowen.

Alle tre tilbagemeldingsmuligheder er som standard slået fra. Hvis du senere tilføjer callbacks eller et godkendelsestrin i n8n, skal du også opdatere registreringen i AI-Public. Dialogen ved derfor, om den kun skal vise en startbekræftelse eller blive ved med at afvente flere signaler.

Felter​

  • Felter er valgfrie.
  • Hvert felt har ét feltnavn 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øjer du de tilgængelige muligheder. Ét valg vises som en kompakt rulleliste; Flere valg viser afkrydsningsfelter. Den valgte værdi eller de valgte værdier sendes med i JSON-body’en.
  • Obligatoriske felter skal være udfyldt, før workflowen kan startes.
  • Feltnavnet bliver nøglen i JSON-body’en, der sendes til n8n.

Opret en kompatibel workflow i n8n​

  1. Opret en ny workflow i n8n.
  2. Tilføj først en Webhook-node.
  3. Giv denne node det præcise navn Start workflow. Eksempeludtryk nedenfor bruger dette navn.
  4. Sæt HTTP Method til POST.
  5. Vælg Authentication: Header Auth, og brug samme headernavn og hemmelige værdi som i AI-Public.
  6. Sæt Respond eller Response Mode til Immediately.
  7. Kopiér Production URL til feltet n8n productie-url i AI-Public. Brug ikke test-URL’en med /webhook-test/.
  8. Aktivér workflowen.

De modtagne data ligger under body; de tekniske integrationsdata ligger under body.integration. Fjern dem ikke i en Edit Fields-, Set- eller Code-node.

Eksempel på JSON body​

Hvis du definerer felter med navnene prompt, klantnaam, doelgroepen og datum, modtager n8n for eksempel denne JSON-body. AI-Public tilføjer automatisk integration-objektet.

{
"prompt": "Lav et kort resumé af anmodningen.",
"klantnaam": "Eksempelorganisation",
"doelgroepen": ["borgere", "medarbejdere"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "midlertidigt-token-til-denne-kørsel"
}
}

Callback-tokenet hører til én kørsel. Gem det ikke i logs, fast konfiguration eller andre systemer.

Valgfrit: send fremdrift og afslutning tilbage​

AI-Public kan kun vise det, n8n giver tilbagemelding om. Brug kun disse callbacks, hvis du ved registreringen har slået Mellemliggende fremdrift melde og/eller Meld workflowens afslutning til.

Konfigurer hver callback-node sådan:

  1. Vælg Method: POST.

  2. Klik ved URL på Expression, og indsæt:

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

  4. Slå Send Headers til, og tilføj nedenstående headers.

  5. Slå Send Body til, og vælg Body Content Type: JSON og Specify Body: Using JSON.

Brug disse headers:

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

Send for eksempel denne besked, når et trin starter:

{
"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": "Dokument oprette"
},
"message": "Dokumentet bliver oprettet."
}
  • Brug en unik eventId for hver hændelse inden for samme kørsel.
  • Brug en tydelig dansk step.label; denne tekst vises i appen.
  • Hvis du har slået Meld workflowens afslutning til, så send altid type: "completed", type: "failed" eller type: "rejected" til sidst.
  • Tilføj eventuelt et output-objekt med resultatet ved completed.
  • Send en forståelig fejlmeddelelse ved failed. Kørselen stopper så også i appen.

Valgfrit: bed om godkendelse i appen​

Brug en n8n Wait-node med On Webhook Call, når workflowen først må fortsætte efter et valg. Send før Wait-noden en callback med type: "approval_required":

Konfigurer Wait-noden med Resume: On Webhook Call, HTTP Method: POST og Authentication: Header Auth. Vælg samme Header Auth-credential som ved Start workflow. Tilføj en Switch-node efter Wait-noden, og kontrollér der {{ $json.body.decision }}.

{
"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_document",
"label": "Kontrollere dokument"
},
"approval": {
"question": "Må workflowen fortsætte?",
"context": "Kontrollér først det genererede dokument.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Godkend" },
{ "value": "reject", "label": "Afvis" }
]
}
}

Brugeren ser valgmulighederne i kørselvinduet. Efter et valg modtager Wait-noden blandt andet decision. Brug derefter for eksempel en Switch-node til at afgøre det rigtige videre forløb.

En valgværdi må kun indeholde bogstaver, tal, _ og -. Labelen må godt indeholde almindelig læsbar tekst.

Indstil produktions callback-URL​

Produktions callback-URL’en for AI-Public er:

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

Indsæ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-Public leverer dermed automatisk den korrekte produktions-URL ved hver start. Den faste URL ovenfor bruger du til under test at kontrollere, at udtrykket peger på AI-Public og ikke på AI-School eller AI-Corporate.

Callables triggerCustomN8nWorkflow, triggerN8nWorkflow og resumeN8nWorkflow kaldes af appen selv. Du behøver ikke at indstille disse URL’er i n8n.

Håndtering af fejl​

Send forventede fejl tilbage med en callback af typen failed. For uventede nodefejl skal du desuden oprette en central Error Workflow:

  1. Opret en ny workflow med en Error Trigger-node.

  2. Tilføj derefter en HTTP Request-node med Method: POST.

  3. Angiv denne faste produktions-URL i URL:

    https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed
  4. Vælg Authentication: None, og tilføj headeren n8n-handihow-name med platformadministratorens hemmelige standardværdi.

  5. Vælg en JSON body, og indsæt:

{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
  1. Aktivér Error Workflow.
  2. Åbn indstillingerne for den almindelige workflow, og vælg denne under Error Workflow.

Send straks efter Start workflow mindst én callback med executionId: "{{ $execution.id }}". Kun sådan kan AI-Public knytte en uventet fejl til den rigtige kørsel.

Vigtige begrænsninger​

  • Kun webhook-triggere understøttes.
  • Kun produktions-webhook-URL’er understøttes.
  • Test-webhook-URL’er med /webhook-test/ afvises.
  • Kun POST understøttes.
  • Kun generisk header authentication understøttes.
  • Header-værdien behandles som hemmelig i applikationen.
  • Callback-tokens og resume-URL’er behandles kun server-side og er ikke direkte tilgængelige for brugere.
  • Tenant bestemmes server-side ud fra den indloggede bruger, ikke ud fra en værdi, som browseren sender.

Fejlfinding​

  • 404 eller webhook ikke registreret: aktivér workflowen i n8n, og brug produktions-URL’en.
  • Autentificeringsfejl: kontrollér, at headernavn og værdi er helt ens i begge systemer.
  • Manglende data: kontrollér, at feltnavnene i applikationen svarer til de keys, n8n forventer.
  • Ingen request i n8n: kontrollér, at workflowen starter med en webhook-trigger og bruger POST.
  • Kørselvinduet bliver ved med at køre: har du slået Meld workflowens afslutning til, så kontrollér, at n8n sender en sidste completed, failed eller rejected callback. Forventer du ingen tilbagemeldinger, så slå alle tre muligheder fra ved registreringen.
  • Ingen fremdrift synlig: kontrollér, at Mellemliggende fremdrift melde er slået til ved registreringen, at integration-objektet bevares, og at hver callback har en unik eventId.
  • Godkendelsesknapper virker ikke: kontrollér Wait-noden, resumeUrl, header authentication og de tilladte tegn i choices[].value.