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 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.
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

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ą.

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:
- Trigger: Typeform — New Entry, ograniczony do twojego formularza ukończenia.
- Akcja: Webhooks by Zapier — POST.
- URL:
https://api.badges.ninja/awards - Nagłówki:
X-Api-Key: bws_<your key>,Content-Type: application/json - 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:
- Trigger: Stripe — New Charge (albo New Invoice Payment Succeeded dla subskrypcji).
- 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.
- Akcja: Webhooks by Zapier — POST do
https://api.badges.ninja/awards, te same nagłówki co wyżej. - Dane: zmapuj
charge.billing_details.emailicharge.billing_details.namenarecipient.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:
- Trigger: Mailchimp — New Tag Added to Subscriber, przefiltrowany do konkretnego tagu (np.
webinar-attended). - Akcja: Webhooks by Zapier — POST do
https://api.badges.ninja/awards. - Dane: zmapuj
subscriber.email_addressorazsubscriber.merge_fields.FNAME+LNAMEna 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.
200oznacza, że przyznanie zostało utworzone;4xxzwykle oznacza złybadgeIdalbo niepoprawny e-mail — to błąd konfiguracji w Zapie, a nie coś do ślepego ponawiania.5xxmoż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:
- Moduł triggera — moduł obserwujący Typeform / Stripe / Mailchimp, tak jak trigger w Zapier.
- HTTP → Make a Request module — metoda
POST, URLhttps://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. - 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:
- Węzeł triggera — Typeform Trigger / Stripe Trigger / Mailchimp Trigger (wszystkie to wbudowane węzły).
- Węzeł HTTP Request — metoda
POST, URLhttps://api.badges.ninja/awards, uwierzytelnianie ustawione na Header Auth, zX-Api-Keyzapisanym 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. - 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.
Jak powstał ten artykuł
Niektóre wpisy na tym blogu powstają z pomocą asystenta AI, a następnie są sprawdzane, weryfikowane merytorycznie i redagowane przez zespół Badges Ninja przed publikacją. Każdy przykład kodu i cena są weryfikowane względem działającego produktu. Więcej o naszym procesie redakcyjnym i wykorzystaniu AI przeczytasz na naszej stronie procesu redakcyjnego .

O autorze
Nacho Coll
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.
Więcej od Nacho Coll
- Zastąp natywne Open Badges w Moodle Badges Ninja (lepszy kreator, to samo API)31 sie 2026 · 7min czytania
- Jak dodać przycisk LinkedIn “Add to Profile” do swoich Open Badges20 sie 2026 · 9min czytania
- Open Badges czy certyfikaty PDF: co lepiej sprawdzi się w Twoim programie w 2026 roku?10 sie 2026 · 6min czytania

