formbasedocs
Naar de appApp

Handleidingen · n8n (zelf gehost)

Reageren op de uitkomst van een aanvraag in n8n

n8n kan op twee manieren over de uitkomst van een aanvraag horen: een formbase Trigger die draait voor elke aanvraag bij een formulier, of een Wait-node die de workflow pauzeert die de aanvraag heeft aangemaakt. Beide eindigen in een Switch op approve, decline of changes.

Last checked


Je hebt een formbase-credential in n8n nodig, en je n8n moet bereikbaar zijn vanaf het internet over HTTPS; zie Installeer de formbase-node in n8n. Om op een oordeel te vertakken, heeft het formulier een beslissingsvraag nodig. Deze handleiding gebruikt een goedkeuringsformulier met één.

Gebruik het wanneer
formbase TriggerAanvragen voor het formulier worden overal vandaan verstuurd: het dashboard, de API, een agent of een andere workflow. Eén gepubliceerde workflow handelt ze allemaal af.
Wait for the OutcomeDe workflow die de aanvraag aanmaakt, moet verdergaan met het antwoord, met behoud van alles wat hij al wist, zoals het record waaraan hij werkte.

Start een workflow vanuit de trigger

1. Kies het event

Voeg een formbase Trigger toe, kies de credential en het formulier, en kies een van de aanvraagevents onder Event:

EventDraait wanneerDraagt
Request CompletedDe ontvanger dient het formulier in.De aanvraag, de uitkomst en elk antwoord.
Request ExpiredDe aanvraag bereikt zijn vervaldatum onbeantwoord.Alleen de aanvraag.
Request CanceledIemand annuleert de aanvraag, vanuit het dashboard, de API of een Cancel request-node, of formbase annuleert hem omdat het formulier naar de prullenbak is verplaatst.De aanvraag en de reden van annulering.

2. Test hem met een echte aanvraag

Een testaanvraag start nooit een aanvraagtrigger, dus stuur een echte met Delivery op None, zoals in Een aanvraag versturen vanuit een n8n-workflow, en open de link zelf. Klik dan op Execute step en dien het formulier binnen twee minuten in.

Het event draagt een data.request-object naast de antwoorden. De outcome ervan is approve, decline of changes, en de externalId ervan is de ID die je instelde, zodat je het record kunt opzoeken waar de aanvraag over ging. Elk veld staat beschreven in de callbackpayload.

Verlopen en geannuleerde events zijn lastig te vangen met Execute step. Publiceer in plaats daarvan de workflow en controleer Executions.

3. Vertak op de uitkomst

Voeg een Switch-node toe met één routeringsregel per oordeel. Elke regel vergelijkt {{ $json.data.request.outcome }} met een waarde; zet Rename Output aan om de tak ernaar te noemen:

Een Switch-node genaamd Outcome: de invoer toont data › request met outcome approve, externalId approval-8 en de ontvanger Grace Hansen; de routeringsregels vergelijken {{ $json.data.request.outcome }} met approve en changes, elk met een hernoemde uitvoer

Vertak op data.request.outcome in plaats van data.answers.decision: het ontbreekt, in plaats van een andere waarde te zijn, wanneer de aanvraag is verlopen of geannuleerd. Vergelijk met waarden, nooit met de labels in data.display: een label verandert wanneer je de optie hernoemt of de ontvanger in een andere taal antwoordt.

Verbind een node met elke tak, en Publish dan de workflow. Vanaf dan draait elke voltooide aanvraag voor het formulier hem.

Wachten op de uitkomst in dezelfde workflow

Hier pauzeert de workflow die de aanvraag verstuurt totdat de ontvanger antwoordt, en gaat dan verder. Het vraagt drie wijzigingen aan de workflow uit Een aanvraag versturen vanuit een n8n-workflow.

1. Zet Wait for the Outcome aan

Zet in de node Create request Wait for the Outcome aan. De node stuurt formbase de resume-URL van deze uitvoering als callback van de aanvraag. Laat Callback URL leeg; de node weigert beide tegelijk.

Elke uitvoering heeft zijn eigen resume-URL, dus een External ID die je hergebruikt van een eerdere uitvoering mislukt. Neem {{ $execution.id }} erin op, of laat hem leeg.

2. Voeg een Wait-node toe

Voeg direct erna een Wait-node toe, met Resume ingesteld op On Webhook Call en de HTTP-methode op POST.

3. Vertak op het event

Voeg een Switch toe na de Wait-node. De Wait-node zet het event onder body, dus vergelijk {{ $json.body.data.request.outcome }}. Om een voltooide aanvraag te onderscheiden van een verlopen of geannuleerde, vergelijk {{ $json.body.type }} met request.completed, request.expired of request.canceled.

Draai de workflow. De uitvoering stopt bij de Wait-node totdat de ontvanger indient, en gaat dan verder via de bijpassende tak:

Een afgeronde uitvoering: When clicking Execute workflow, Create request, Wait for the answer en een Switch genaamd Outcome, allemaal groen, met 1 item dat de approve-uitvoer verlaat
  • Een run vanuit de editor wacht ook op een echt antwoord. Test Mode werkt hier: de callback van een testaanvraag hervat de workflow nog steeds.

  • Een aanvraag verloopt na 30 dagen tenzij je Expires At instelt, en het verlopen hervat de uitvoering met request.expired. Stel Expires At in om het wachten eerder te beëindigen.

  • De Wait-node controleert de header X-formbase-Signature niet; hij vertrouwt erop dat de resume-URL moeilijk te raden is. Als dat niet genoeg is, gebruik dan de formbase Trigger, die elk event controleert.

Als er niets draait

  • Het was een testaanvraag. Een aanvraag aangemaakt met Test Mode aan, of met Try it yourself, start nooit een aanvraagtrigger. Alleen zijn callback vuurt af.

  • De aanvraag was voor een ander formulier. De trigger luistert naar het formulier dat je erin hebt gekozen.

  • De workflow is niet gepubliceerd, of zijn credential bereikt een andere werkruimte. Zie de controles in de handleiding over de openbare link.

  • Create request mislukt met callbackUrl is not allowed.

    Je n8n geeft een http://- of privé-resume-URL af. Zie Vertel n8n zijn openbare adres.

  • De Wait-node hervat nooit. formbase kan de resume-URL niet bereiken, bijvoorbeeld omdat de tunnel plat ligt of de proxy /webhook-waiting/ blokkeert.

Volgende