Automatyzuj Open Badges za pomocą Zapier, Make i n8n (przepisy no-code)

Uruchamiaj wydawanie odznak po ukończeniu Typeform, zakupie w Stripe albo tagu w Mailchimp — trzy działające przepisy no-code, każdy poniżej 10 minut.

Nacho Coll Autor Zaktualizowano 9 min czytania
Uruchamiaj wydawanie odznak po ukończeniu Typeform, zakupie w Stripe albo tagu w Mailchimp — trzy działające przepisy no-code, każdy poniżej 10 minut.

Jeśli prowadzisz program szkoleniowy, płatny kurs albo listę mailingową z poziomami, moment, w którym ktoś kończy, kupuje lub się kwalifikuje, zwykle jest już gdzieś śledzony — odpowiedź w formularzu, obciążenie w Stripe, tag w Mailchimp. Odznaka powinna wynikać z tego zdarzenia automatycznie. Rzadko tak się dzieje, bo „wydanie poświadczenia” nie jest natywną akcją w większości narzędzi, a budowanie własnego odbiornika webhooków pod jednorazową automatyzację to przesada.

Właśnie od tego są Zapier, Make i n8n. Wszystkie trzy mogą wywołać bezpośrednio API Badges Ninja — bez wtyczki, bez serwera pośredniczącego, bez wdrażania kodu. Poniżej trzy działające przepisy, które możesz dziś skopiować, a do tego obsługa klucza API i zachowanie przy ponawianiu błędów, które musisz ustawić dobrze, żeby odznaki nie przestały się wydawać po cichu.

Co ze sobą łączysz

Każdy przepis ma tę samą strukturę: trigger → (opcjonalnie) wyszukanie odbiorcy → HTTP POST do /awards. Endpoint /awards faktycznie wydaje odznakę odbiorcy — wskazujesz istniejący badgeId, a on tworzy unikalne, weryfikowalne przyznanie z własnym adresem URL weryfikacji, kodem QR i certyfikatem PDF. Zobacz szybki start API, jeśli jeszcze nie utworzyłeś odznaki — będziesz potrzebować jej ID, zanim którakolwiek z tych automatyzacji zacznie działać.

Uwierzytelnianie jest takie samo dla wszystkich trzech platform: nagłówek X-Api-Key z kluczem wygenerowanym w panelu. Platformy do automatyzacji nie radzą sobie dobrze z przepływami OAuth dla dowolnych API REST, więc klucze API są tu właściwym rozwiązaniem — długotrwałe, przypisane do twojego konta i odwoływalne jednym kliknięciem, gdyby Zap kiedyś zaczął szaleć.

Najpierw utwórz klucz API

API Keys — empty state

W panelu otwórz Settings → API Keys, kliknij Create Key i nadaj mu nazwę pasującą do jego zadania — zapier-course-completions, a nie key1. To ma większe znaczenie, niż się wydaje: jeśli za pół roku jakaś automatyzacja zacznie się źle zachowywać, chcesz móc odwołać ten konkretny klucz, nie psując trzech innych integracji, które przypadkiem go współdzielą.

Create key — name form

Klucz jest pokazywany tylko raz, w pełni, zaraz po utworzeniu. Skopiuj go od razu do bezpiecznego magazynu poświadczeń swojej platformy automatyzacji — „Connection” w Zapier, „Connection” w Make albo poświadczenie w n8n — nigdy do zwykłego pola tekstowego wewnątrz samego Zapa/scenariusza/workflow.

Przepis 1: Typeform → Badges Ninja (formularz ukończenia kohorty)

Zastosowanie: kohorta kończy kurs i wypełnia krótki formularz „ukończyłem to” (albo wysyłasz formularz jako ostatni krok ścieżki samodzielnej).

W Zapier:

  1. Trigger: Typeform — New Entry, ograniczony do twojego formularza ukończenia.
  2. Akcja: Webhooks by Zapier — POST.
  3. URL: https://api.badges.ninja/awards
  4. Nagłówki: X-Api-Key: bws_<your key>, Content-Type: application/json
  5. Dane (mapowane z pól Typeform):
{
  "badgeId": "bdg_9f2a1c",
  "recipient": {
    "name": "{{typeform_name}}",
    "email": "{{typeform_email}}"
  },
  "issuedOn": "2026-08-27"
}

To cały Zap. Krok filtrujący nie jest potrzebny, jeśli formularz uruchamia się wyłącznie przy prawdziwych ukończeniach — jeśli to ogólny formularz kontaktowy, dodaj krok Filter by Zapier, sprawdzający ukryte pole lub wartość odpowiedzi, zanim webhook się uruchomi, żeby nie wydawać odznak ze spamu albo zgłoszeń testowych.

Przepis 2: Stripe → Badges Ninja (zakup = poświadczenie)

Zastosowanie: płatny egzamin certyfikacyjny, premium poziom kursu albo plan członkostwa, w którym odznaka jest częścią tego, co kupują ludzie.

W Zapier:

  1. Trigger: Stripe — New Charge (albo New Invoice Payment Succeeded dla subskrypcji).
  2. Filtr: kwota obciążenia równa dokładnie cenie produktu objętego poświadczeniem — to ważne, jeśli twoje konto Stripe obsługuje wiele produktów przez jeden webhook.
  3. Akcja: Webhooks by Zapier — POST do https://api.badges.ninja/awards, te same nagłówki co wyżej.
  4. Dane: zmapuj charge.billing_details.email i charge.billing_details.name na recipient.email / recipient.name.

Fajna strona wiązania wydawania z płatnością: jest to naturalnie niemal idempotentne. ID obciążeń w Stripe są unikalne, więc jeśli martwisz się, że Zap uruchomi się ponownie przy powtórzonym webhooku, dodaj krok Storage by Zapier, który sprawdza, czy dane ID obciążenia zostało już przetworzone, zanim wywoła /awards.

Przepis 3: Tag w Mailchimp → Badges Ninja

Zastosowanie: ręcznie tagujesz subskrybentów (albo robi to inna automatyzacja), gdy osiągną kamień milowy — obejrzeli webinar, ukończyli sekwencję kroplówki, polecili trzy osoby — i chcesz, żeby ten tag uruchamiał odznakę bez dotykania API samodzielnie.

W Zapier:

  1. Trigger: Mailchimp — New Tag Added to Subscriber, przefiltrowany do konkretnego tagu (np. webinar-attended).
  2. Akcja: Webhooks by Zapier — POST do https://api.badges.ninja/awards.
  3. Dane: zmapuj subscriber.email_address oraz subscriber.merge_fields.FNAME + LNAME na pola odbiorcy.

Ten wzorzec jest popularny w programach uznaniowych — SPIFF-ach sprzedażowych, kamieniach milowych społeczności, obecności na wydarzeniach — gdzie ktoś w zespole ma już nawyk tagowania kontaktów, a ty chcesz po prostu, żeby odznaka wypadała z tego nawyku za darmo.

Obsługa błędów i ponawiania

Platformy automatyzacji nie są transakcyjne wobec twoich danych o odznakach, więc zbuduj tę samą dyscyplinę, jakiej oczekiwałbyś od prawdziwej integracji:

  • Sprawdzaj kod odpowiedzi. 200 oznacza, że przyznanie zostało utworzone; 4xx zwykle oznacza zły badgeId albo niepoprawny e-mail — to błąd konfiguracji w Zapie, a nie coś do ślepego ponawiania. 5xx można bezpiecznie ponowić.
  • Zapier: nieudane uruchomienia Zapa trafiają do Zap History z pełnym żądaniem i odpowiedzią. Włącz Auto-Replay dla przejściowych błędów, ale ustaw też alert e-mail/Slack przy powtarzających się błędach, żeby cicho zepsuty Zap nie oznaczał trzech miesięcy brakujących odznak.
  • Make: scenariusze mają natywną ścieżkę Error Handler — dołącz do modułu HTTP dyrektywę Resume albo Rollback i kieruj trwałe błędy do modułu powiadomień zamiast po prostu je odrzucać.
  • n8n: ponieważ jest self-hosted lub w chmurze, z bardziej granularną kontrolą, opakuj węzeł HTTP Request w workflow Error Trigger i rozważ zapisywanie nieudanych payloadów do lekkiego magazynu awaryjnego (Airtable, Google Sheets), który możesz odtworzyć ręcznie.

We wszystkich trzech przypadkach unikaj pułapki „zaświeciło się na zielono, więc zadziałało”. Odpowiedź, która wygląda jak 200 od źle skonfigurowanego kroku webhooka (zły URL, brakujący nagłówek), nadal może zakończyć się błędem po stronie Badges Ninja. Sprawdzaj wyrywkowo listę przyznań w panelu co tydzień, przynajmniej przez pierwszy miesiąc każdej nowej automatyzacji.

Odpowiednik w Make.com

Wizualny kreator scenariuszy w Make niemal bezpośrednio odwzorowuje powyższe kroki z Zapier:

  1. Moduł triggera — moduł obserwujący Typeform / Stripe / Mailchimp, tak jak trigger w Zapier.
  2. HTTP → Make a Request module — metoda POST, URL https://api.badges.ninja/awards, nagłówki ustawione w tabeli Headers (X-Api-Key, Content-Type: application/json), treść jako surowy JSON z zmiennymi zmapowanymi z triggera.
  3. Opcjonalny Filter między modułami dla sprawdzenia kwoty w Stripe albo weryfikacji „prawdziwego ukończenia” w Typeform.

Przewaga Make polega tu na widoczności — edytor scenariusza pokazuje faktyczny ładunek JSON na każdym kroku, zanim go włączysz, co znacznie przyspiesza debugowanie złego mapowania pola w porównaniu z bardziej liniowym, krok po kroku, widokiem testowym Zapiera.

Odpowiednik w n8n

n8n jest najlepszym wyborem, jeśli chcesz mieć to self-hosted albo już automatyzujesz tam inne części swojego stosu:

  1. Węzeł triggera — Typeform Trigger / Stripe Trigger / Mailchimp Trigger (wszystkie to wbudowane węzły).
  2. Węzeł HTTP Request — metoda POST, URL https://api.badges.ninja/awards, uwierzytelnianie ustawione na Header Auth, z X-Api-Key zapisanym jako poświadczenie n8n (nie zaszyte na sztywno w węźle), treść JSON zbudowana z wyrażenia odwołującego się do wyniku węzła triggera.
  3. Węzeł IF (opcjonalnie) — to samo sprawdzenie ukończenia/kwoty co wyżej, umieszczone przed węzłem HTTP Request.

Ponieważ poświadczenia n8n są szyfrowane i wielokrotnego użytku między workflow, to czystsza opcja, jeśli planujesz więcej niż jedną automatyzację Badges Ninja — ustawiasz poświadczenie raz i używasz go ponownie w każdym workflow, który musi wydawać odznaki.

Dlaczego generyczny krok webhooka zamiast natywnej aplikacji

Zapier, Make i n8n mają swoje marketplace’y aplikacji i naturalnym odruchem jest szukanie aplikacji „Badges Ninja”, zanim sięgnie się po generyczny moduł HTTP/webhook. Pomiń to wyszukiwanie — dla tak małego API REST (utwórz wystawcę, utwórz odznakę, utwórz przyznanie, gotowe) generyczny krok webhooka daje ci działanie na żywo w dziesięć minut, bez żadnej zależności od zewnętrznego opiekuna aplikacji nadążającego za zmianami API. Dedykowana aplikacja dodaje warstwę abstrakcji, której nie potrzebujesz: nadal wypełniałbyś te same pola badgeId, recipient.email i recipient.name, tylko przez formularz zamiast treści JSON. Dokumentacja API jest na tyle krótka, że można ją przeczytać w pięć minut, a gdy już to zrobisz, surowe podejście HTTP jest w rzeczywistości mniej kruche — nie ma żadnego cyklu zatwierdzania w sklepie z aplikacjami stojącego między zmianą w API Badges Ninja a ponownym działaniem twojej automatyzacji.

Przetestuj, zanim uruchomisz na żywo

Każda z platform powyżej daje sposób na jednorazowe uruchomienie testowe bez czekania na prawdziwe zdarzenie triggerujące:

  • Zapier — użyj „Test” na kroku triggera, żeby pobrać przykładowy rekord, a potem „Test” na akcji webhooka, żeby wysłać dokładnie jedno prawdziwe żądanie. Sprawdź, czy przyznanie pojawia się w panelu, zanim włączysz Zapa.
  • Make — uruchom scenariusz ręcznie raz (przycisk „Run once”) z przykładowym pakietem danych i sprawdź dymek wyniku modułu HTTP, żeby zobaczyć faktyczną treść odpowiedzi.
  • n8n — użyj „Execute Node” na węźle HTTP Request z testowymi danymi wejściowymi, dzięki czemu widzisz żądanie i odpowiedź bezpośrednio w edytorze.

Dwie rzeczy warto sprawdzić przy tym pierwszym uruchomieniu testowym: czy badgeId, który zaszyłeś na sztywno, naprawdę należy do odznaki, o której myślisz (nieaktualne ID ze zduplikowanego Zapa to częsty błąd), oraz czy pole e-mail odbiorcy pobiera prawdziwy adres, a nie placeholder w rodzaju {{email}}, pozostawiony nierozwiązanym przez literówkę w mapowaniu. Oba błędy są niewidoczne we wskaźniku „sukcesu” platformy automatyzacji — wywołanie HTTP i tak zwróci 200 w obu przypadkach — więc jedyną wiarygodną kontrolą jest otwarcie przyznania w panelu i potwierdzenie, że odbiorca to ten, kogo się spodziewasz.

Unikanie zdublowanych odznak

Każde ze źródeł triggera powyżej może w realnych warunkach uruchomić się więcej niż raz dla tego samego zdarzenia — Stripe ponawia webhooki przy przekroczeniu czasu, Typeform może wysłać podwójnie przy wolnym połączeniu, automatyzacje Mailchimp mogą uruchomić się ponownie, jeśli tag zostanie usunięty i dodany na nowo. Jeśli wydawanie odznak nie jest idempotentne, przekłada się to na odbiorców otrzymujących to samo poświadczenie dwukrotnie, co wygląda niechlujnie i generuje maile do supportu.

Najczystszym zabezpieczeniem jest krok wyszukaj-przed-utworzeniem: przed POST-em do /awards dodaj akcję Search (zapierowe „Find Award” przez żądanie GET albo odpowiednik GET HTTP w Make/n8n) na swoich własnych rekordach przyznań — lekki arkusz Google Sheet albo log w Airtable, do którego ten sam Zap zapisuje zaraz po udanym przyznaniu, sprawdza się tu dobrze, jeśli nie chcesz odpytywać o to API. Jeśli rekord dla danej kombinacji odbiorca + odznaka już istnieje, skieruj przepływ do no-opa zamiast wydawać ponownie. To dodatek na pięć minut, a stanowi różnicę między automatyzacją, której ufasz bez nadzoru, a taką, którą musisz niańczyć.

Kiedy no-code nie wystarcza

Te przepisy dobrze pokrywają pojedyncze zdarzenia triggerujące. Gdy zaczynasz wydawać setki odznak z jednego eksportu CSV — kohorta kończąca studia, lista uczestników konferencji, masowe odnowienie punktów CE — pomiń platformę automatyzacji i użyj bezpośrednio masowego przesyłania odznak: pauzuje i wznawia w środku partii i przetrwa zamknięcie karty przeglądarki, czego pętle webhooków no-code przy dużej skali nie obsługują wystarczająco elegancko.


Gotowy, żeby wydać swoje pierwsze weryfikowalne poświadczenie? Zacznij za darmo na badges.ninja — wizualny kreator, publiczna strona weryfikacji, certyfikat PDF, wynik w formacie Open Badge v2.0. Bez karty kredytowej.

Nacho Coll

O autorze

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.

Powrót do bloga

Powiązane artykuły