Automatiser Open Badges med Zapier, Make og n8n (no-code-opskrifter)

Udløs badge-udstedelse ved en Typeform-besvarelse, et Stripe-køb eller et Mailchimp-tag — tre fungerende no-code-opskrifter, der hver tager under 10 minutter.

Nacho Coll Af Opdateret 9 min. læsning
Udløs badge-udstedelse ved en Typeform-besvarelse, et Stripe-køb eller et Mailchimp-tag — tre fungerende no-code-opskrifter, der hver tager under 10 minutter.

Hvis du driver et træningsprogram, et betalt kursus eller en e-mailliste med niveauer, er det øjeblik, hvor nogen bliver færdig, køber eller kvalificerer sig, som regel allerede registreret et sted — et formularsvar, en Stripe-betaling, et Mailchimp-tag. Badgen bør følge automatisk af den begivenhed. Det gør den sjældent, fordi “udsted et credential” ikke er en indbygget handling i de fleste værktøjer, og det er overkill at bygge en brugerdefineret webhook-modtager til en engangsautomatisering.

Det er præcis, hvad Zapier, Make og n8n er til. Alle tre kan kalde Badges Ninja API’et direkte — uden plugin, uden mellemliggende server, uden kodeudrulning. Nedenfor er tre fungerende opskrifter, du kan kopiere i dag, plus håndteringen af API-nøglen og det retry-adfærd ved fejl, du skal have styr på, så badges ikke stille fejler i at blive udstedt.

Hvad du kobler sammen

Hver opskrift følger samme form: trigger → (valgfrit) opslag af modtager → HTTP POST til /awards. Endpointet /awards er det, der rent faktisk udsteder en badge til en modtager — du peger det mod et eksisterende badgeId, og det opretter en unik, verificerbar tildeling med sin egen verificerings-URL, QR-kode og PDF-certifikat. Se API-hurtigstarten, hvis du ikke allerede har oprettet en badge — du skal bruge dens ID, før nogen af disse automatiseringer kan køre.

Godkendelse er den samme for alle tre platforme: en X-Api-Key-header, der bærer en nøgle genereret fra dit dashboard. Automatiseringsplatforme håndterer ikke OAuth-flows særlig godt for vilkårlige REST-API’er, så API-nøgler er det rette valg her — langtidsholdbare, bundet til din konto og kan tilbagekaldes med ét klik, hvis en Zap nogensinde skulle fejlopføre sig.

Opret API-nøglen først

API Keys — empty state

Åbn Settings → API Keys fra dit dashboard, klik på Create Key, og giv den et navn, der matcher dens formål — zapier-course-completions, ikke key1. Den navngivning betyder mere, end det lyder til: hvis en automatisering begynder at opføre sig underligt om et halvt år, vil du gerne kunne tilbagekalde den nøgle uden at ødelægge tre andre integrationer, der tilfældigvis deler den.

Create key — name form

Nøglen vises én gang, i sin helhed, umiddelbart efter oprettelsen. Kopiér den straks ind i din automatiseringsplatforms sikre credential-lager — Zapiers “Connection”, Makes “Connection”, eller et n8n-credential — aldrig ind i et almindeligt tekstfelt inde i selve Zap’en/scenariet/workflowet.

Opskrift 1: Typeform → Badges Ninja (formular til afsluttet kohorte)

Anvendelsestilfælde: en kohorte afslutter et kursus og udfylder en kort “jeg er færdig”-formular (eller du sender en sådan formular ud som sidste trin i et selvstyret forløb).

I Zapier:

  1. Trigger: Typeform — New Entry, afgrænset til din afslutningsformular.
  2. Handling: Webhooks by Zapier — POST.
  3. URL: https://api.badges.ninja/awards
  4. Headers: X-Api-Key: bws_<your key>, Content-Type: application/json
  5. Data (mappet fra Typeform-felterne):
{
  "badgeId": "bdg_9f2a1c",
  "recipient": {
    "name": "{{typeform_name}}",
    "email": "{{typeform_email}}"
  },
  "issuedOn": "2026-08-27"
}

Det er hele Zap’en. Der er ikke brug for et filtertrin, hvis formularen kun udløses ved reelle afslutninger — hvis det er en generel kontaktformular, skal du tilføje et Filter by Zapier-trin, der tjekker et skjult felt eller en svarværdi, før webhooken udløses, så du ikke udsteder badges fra spam eller testindsendelser.

Opskrift 2: Stripe → Badges Ninja (køb = credential)

Anvendelsestilfælde: en betalt certificeringseksamen, et premium-kursusniveau eller et medlemskab, hvor badgen er en del af det, folk køber.

I Zapier:

  1. Trigger: Stripe — New Charge (eller New Invoice Payment Succeeded til abonnementer).
  2. Filter: betalingsbeløbet svarer nøjagtigt til prisen på det produkt, der giver credentialet — det betyder noget, hvis din Stripe-konto håndterer flere produkter gennem én webhook.
  3. Handling: Webhooks by Zapier — POST til https://api.badges.ninja/awards, samme headers som ovenfor.
  4. Data: map charge.billing_details.email og charge.billing_details.name til recipient.email / recipient.name.

Det gode ved at knytte udstedelse til en betalingsbegivenhed: det er naturligt tæt på idempotent. Stripes betalings-ID’er er unikke, så hvis du er bekymret for, at en Zap kører igen ved en gentaget webhook, kan du tilføje et Storage by Zapier-trin, der tjekker, om du allerede har behandlet det betalings-ID, før du kalder /awards.

Opskrift 3: Mailchimp-tag → Badges Ninja

Anvendelsestilfælde: du tagger abonnenter manuelt (eller via en anden automatisering), når de når en milepæl — deltog i et webinar, gennemførte et drip-forløb, henviste tre personer — og vil have, at det tag udløser en badge, uden at du selv skal røre API’et.

I Zapier:

  1. Trigger: Mailchimp — New Tag Added to Subscriber, filtreret til det specifikke tag (f.eks. webinar-attended).
  2. Handling: Webhooks by Zapier — POST til https://api.badges.ninja/awards.
  3. Data: map subscriber.email_address og subscriber.merge_fields.FNAME + LNAME til modtagerfelterne.

Dette mønster er populært til anerkendelsesprogrammer — salgs-SPIFF’er, community-milepæle, fremmøde ved events — hvor nogen i teamet allerede har for vane at tagge kontakter, og du bare vil have badgen til at falde ud af den vane gratis.

Håndtering af fejl og retries

Automatiseringsplatforme er ikke transaktionelle med dine badge-data, så byg den samme disciplin ind, som du ville forvente af en rigtig integration:

  • Tjek svarkoden. En 200 betyder, at tildelingen blev oprettet; en 4xx betyder som regel et forkert badgeId eller en misdannet e-mail — det er en konfigurationsfejl i Zap’en, ikke noget, der skal forsøges igen blindt. En 5xx er sikker at forsøge igen.
  • Zapier: mislykkede Zap-kørsler havner i Zap History med hele request/response. Slå Auto-Replay til for forbigående fejl, men opsæt en e-mail-/Slack-alarm for gentagne fejl, så en stille ødelagt Zap ikke betyder tre måneders manglende badges.
  • Make: scenarier understøtter en indbygget Error Handler-rute — knyt et Resume- eller Rollback-direktiv til HTTP-modulet, og send vedvarende fejl til et notifikationsmodul i stedet for bare at kassere dem.
  • n8n: da det er selv-hostet eller cloud med mere detaljeret kontrol, skal du pakke HTTP Request-noden ind i et Error Trigger-workflow og overveje at skrive mislykkede payloads til et letvægts-fallback-lager (Airtable, Google Sheets), som du kan afspille manuelt igen.

I alle tre tilfælde skal du undgå fælden “det kørte grønt, så det virkede”. Et svar, der ligner 200, fra et forkert konfigureret webhook-trin (forkert URL, manglende header), kan stadig fejle på Badges Ninja-siden. Stikprøvetjek dashboardets tildelingsliste ugentligt i den første måned af enhver ny automatisering.

Make.com-modstykket

Makes visuelle scenariebygger mapper næsten direkte til Zapier-trinnene ovenfor:

  1. Trigger-modul — Typeform-/Stripe-/Mailchimp-overvågningsmodul, ligesom Zapier-triggeren.
  2. HTTP → Make a Request-modul — metode POST, URL https://api.badges.ninja/awards, headers sat i Headers-tabellen (X-Api-Key, Content-Type: application/json), body som rå JSON med mappede variabler fra triggeren.
  3. Valgfrit Filter mellem moduler til Stripe-beløbstjekket eller “reel afslutning”-sikringen på Typeform.

Makes fordel her er synlighed — scenarieeditoren viser dig den faktiske JSON-payload ved hvert trin, før du tænder den, hvilket gør fejlfinding af en forkert feltmapping meget hurtigere end Zapiers mere lineære trin-for-trin-testvisning.

n8n-modstykket

n8n er det bedste valg, hvis du vil have det selv-hostet, eller hvis du allerede automatiserer andre dele af din stack der:

  1. Trigger-node — Typeform Trigger / Stripe Trigger / Mailchimp Trigger (alle indbyggede noder).
  2. HTTP Request-node — metode POST, URL https://api.badges.ninja/awards, godkendelse sat til Header Auth med din X-Api-Key gemt som et n8n-credential (ikke hardkodet i noden), JSON-body bygget ud fra et udtryk, der refererer til trigger-nodens output.
  3. IF-node (valgfrit) — samme afslutnings-/beløbssikring som ovenfor, placeret før HTTP Request-noden.

Fordi n8n-credentials er krypterede og genanvendelige på tværs af workflows, er dette den renere løsning, hvis du planlægger mere end én Badges Ninja-automatisering — du opsætter credentialet én gang og genbruger det i hvert workflow, der skal udstede badges.

Hvorfor et generisk webhook-trin frem for en indbygget app

Zapier, Make og n8n har alle app-markedspladser, og instinktet er at søge efter en “Badges Ninja”-app, før man griber til et generisk HTTP-/webhook-modul. Spring den søgning over — for et så lille REST-API (opret en udsteder, opret en badge, opret en tildeling, færdig) får et generisk webhook-trin dig i luften på ti minutter uden nogen afhængighed af, om en tredjeparts app-vedligeholder følger med i API-ændringer. En dedikeret app tilføjer et abstraktionslag, du ikke har brug for: du ville stadig udfylde de samme badgeId-, recipient.email- og recipient.name-felter, bare gennem en formular i stedet for en JSON-body. API-referencen er kort nok til at læse på fem minutter, og når du har gjort det, er den rå HTTP-tilgang faktisk mindre skrøbelig — der er ingen app-store-godkendelsescyklus mellem en ændring i Badges Ninja API’et og at din automatisering virker igen.

Test, før du sætter det i drift

Hver platform ovenfor giver dig en måde at køre en enkelt testkørsel på uden at vente på en reel udløsende begivenhed:

  • Zapier — brug “Test” på trigger-trinnet for at hente en eksempelpost, og derefter “Test” på webhook-handlingen for at sende præcis én reel forespørgsel. Tjek, at tildelingen dukker op i dit dashboard, før du tænder Zap’en.
  • Make — kør scenariet manuelt én gang (knappen “Run once”) med en eksempelbundle, og undersøg HTTP-modulets output-boble for det faktiske svar-body.
  • n8n — brug “Execute Node” på HTTP Request-noden med testinputdata, hvilket lader dig se request og response direkte i editoren.

To ting er værd at tjekke ved den første testkørsel: at det hardkodede badgeId faktisk tilhører den badge, du tror, det gør (et forældet ID fra en duplikeret Zap er en almindelig fejl), og at modtagerens e-mailfelt henter en rigtig adresse og ikke en pladsholder som {{email}}, der er blevet uløst på grund af en tastefejl i mappingen. Begge fejl er usynlige i automatiseringsplatformens “succes”-indikator — HTTP-kaldet returnerer alligevel 200 — så den eneste pålidelige kontrol er at åbne tildelingen i dit dashboard og bekræfte, at modtageren er den, du forventer.

Undgå dobbelte badges

Enhver af triggerkilderne ovenfor kan under virkelige forhold udløses mere end én gang for samme begivenhed — Stripe forsøger webhooks igen ved timeout, Typeform kan indsende dobbelt ved en langsom forbindelse, Mailchimp-automatiseringer kan udløses igen, hvis et tag fjernes og tilføjes igen. Hvis din badge-udstedelse ikke er idempotent, ender det med, at modtagere får det samme credential to gange, hvilket ser sjusket ud og genererer support-e-mails.

Den reneste sikring er et opslag-før-oprettelse-trin: tilføj en Search-handling før /awards-POST’en (Zapiers “Find Award” via en GET-forespørgsel, eller det tilsvarende HTTP GET i Make/n8n) mod dine egne tildelingsregistre — en letvægts Google Sheet eller Airtable-log, som den samme Zap skriver til lige efter en vellykket tildeling, fungerer fint til dette, hvis du ikke vil spørge API’et om det. Hvis der allerede findes en post for den modtager- + badge-kombination, skal du forgrene til en no-op i stedet for at udstede igen. Det er en femminutters tilføjelse, og det er forskellen mellem en automatisering, du kan stole på uden opsyn, og en, du skal holde øje med.

Når no-code ikke slår til

Disse opskrifter dækker godt til triggere for enkeltbegivenheder. Så snart du udsteder hundredvis af badges fra en enkelt CSV-eksport — en dimitterende kohorte, en konferencedeltagerliste, en masse-CE-kreditfornyelse — skal du springe automatiseringsplatformen over og bruge bulk badge-upload direkte: det kan sættes på pause og genoptages midt i en batch og overlever en lukket browserfane, hvilket no-code-webhook-loops ikke håndterer lige så elegant ved store mængder.


Klar til at udstede dit første verificerbare credential? Kom i gang gratis på badges.ninja — visuel designer, offentlig verificeringsside, PDF-certifikat, Open Badge v2.0-output. Intet kreditkort krævet.

Nacho Coll

Om forfatteren

Founder & Engineer at Badges Ninja

Nacho founded Badges Ninja to make issuing verifiable digital credentials as simple as a single API call — Open Badge v2.0 badges and certificates, minted, hosted, and verifiable without standing up your own issuer infrastructure. Writes about the Open Badges spec, credential verification, and running a credentialing platform serverless on AWS, from the operator side of the wire.

Tilbage til Bloggen

Relaterede artikler