Zapier, Make ve n8n ile Open Badges'i Otomatikleştirin (Kodsuz Tarifler)
Typeform tamamlama, Stripe satın alma veya Mailchimp etiketinden rozet verilişini tetikleyin — her biri 10 dakikadan kısa sürede uygulanan üç çalışan kodsuz tarif.
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.
Bir eğitim programı, ücretli bir kurs veya katmanlı bir e-posta listesi yürütüyorsanız, birinin bir şeyi tamamladığı, satın aldığı veya hak kazandığı an genellikle zaten bir yerde kayıt altına alınmıştır — bir form yanıtı, bir Stripe ödemesi, bir Mailchimp etiketi. Rozet bu olaydan otomatik olarak takip etmelidir. Bu nadiren gerçekleşir, çünkü “credential verme” çoğu araçta yerleşik bir eylem değildir ve tek seferlik bir otomasyon için özel bir webhook alıcısı kurmak gereğinden fazla bir iştir.
Zapier, Make ve n8n tam olarak bunun için var. Üçü de Badges Ninja API’sini doğrudan çağırabilir — eklenti yok, ara sunucu yok, kod dağıtımı yok. Aşağıda bugün kopyalayabileceğiniz üç çalışan tarif ve rozetlerin sessizce verilememesini önlemek için doğru şekilde ayarlamanız gereken API anahtarı yönetimi ile hata-tekrar deneme davranışı yer alıyor.
Birbirine bağladığınız şey
Her tarif aynı şekli izler: tetikleyici → (isteğe bağlı) alıcı arama → /awards’a HTTP POST. Bir alıcıya rozeti fiilen veren şey /awards uç noktasıdır — mevcut bir badgeId’yi işaret edersiniz ve kendi doğrulama URL’si, QR kodu ve PDF sertifikasıyla benzersiz, doğrulanabilir bir ödül oluşturur. Henüz bir rozet oluşturmadıysanız API hızlı başlangıç kılavuzuna bakın; bu otomasyonlardan herhangi biri çalışmadan önce rozetin ID’sine ihtiyacınız olacak.
Üç platform için de kimlik doğrulama aynıdır: kontrol panelinizden oluşturulan bir anahtarı taşıyan bir X-Api-Key başlığı. Otomasyon platformları rastgele REST API’ler için OAuth akışlarını iyi yönetemez, bu yüzden burada doğru seçenek API anahtarlarıdır — uzun ömürlü, hesabınıza özgü ve bir Zap yanlış çalışırsa tek tıkla iptal edilebilir.
Önce API anahtarını oluşturun

Kontrol panelinizden Settings → API Keys’i açın, Create Key’e tıklayın ve anahtara işiyle eşleşen bir ad verin — key1 değil, zapier-course-completions gibi. Bu isimlendirme göründüğünden daha önemlidir: altı ay sonra bir otomasyon yanlış davranırsa, aynı anahtarı paylaşan üç farklı entegrasyonu bozmadan sadece o anahtarı iptal etmek istersiniz.

Anahtar, oluşturulduktan hemen sonra bir kez ve eksiksiz olarak gösterilir. Hemen otomasyon platformunuzun güvenli kimlik bilgisi deposuna kopyalayın — Zapier’in “Connection”ı, Make’in “Connection”ı ya da bir n8n credential’ı — asla Zap/senaryo/iş akışının içindeki düz metin bir alana değil.
Tarif 1: Typeform → Badges Ninja (kohort tamamlama formu)
Kullanım senaryosu: bir kohort bir kursu tamamlar ve kısa bir “Bunu tamamladım” formunu doldurur (ya da kendi hızında ilerlenen bir eğitimin son adımı olarak bir form gönderirsiniz).
Zapier’de:
- Tetikleyici: tamamlama formunuza özgü Typeform — New Entry.
- Eylem: Webhooks by Zapier — POST.
- URL:
https://api.badges.ninja/awards - Başlıklar:
X-Api-Key: bws_<anahtarınız>,Content-Type: application/json - Veri (Typeform alanlarından eşleyin):
{
"badgeId": "bdg_9f2a1c",
"recipient": {
"name": "{{typeform_name}}",
"email": "{{typeform_email}}"
},
"issuedOn": "2026-08-27"
}
Zap’ın tamamı bu kadar. Form yalnızca gerçek tamamlanmalarda tetikleniyorsa filtre adımına gerek yoktur — genel bir iletişim formuysa, webhook tetiklenmeden önce gizli bir alanı veya yanıt değerini kontrol eden bir Filter by Zapier adımı ekleyin, böylece spam veya test gönderimlerinden rozet vermezsiniz.
Tarif 2: Stripe → Badges Ninja (satın alma = credential)
Kullanım senaryosu: ücretli bir sertifikasyon sınavı, premium bir kurs katmanı veya rozetin satın alınan şeyin bir parçası olduğu bir üyelik planı.
Zapier’de:
- Tetikleyici: Stripe — New Charge (abonelikler için New Invoice Payment Succeeded).
- Filtre: ödeme tutarı, credential verilen ürünün tam fiyatına eşit olmalı — Stripe hesabınız tek bir webhook üzerinden birden fazla ürünü işliyorsa bu önemlidir.
- Eylem:
https://api.badges.ninja/awards’a, yukarıdakiyle aynı başlıklarla Webhooks by Zapier — POST. - Veri:
charge.billing_details.emailvecharge.billing_details.name’irecipient.email/recipient.name’e eşleyin.
Verilişi bir ödeme olayına bağlamanın güzel yanı, doğal olarak idempotentliğe yakın olmasıdır. Stripe ödeme ID’leri benzersizdir, bu yüzden bir webhook’un tekrar denenmesi durumunda Zap’ın yeniden tetiklenmesinden endişeleniyorsanız, /awards’ı çağırmadan önce o ödeme ID’sinin daha önce işlenip işlenmediğini kontrol eden bir Storage by Zapier adımı ekleyin.
Tarif 3: Mailchimp etiketi → Badges Ninja
Kullanım senaryosu: aboneler bir kilometre taşına ulaştığında — bir web seminerine katıldığında, bir drip e-posta dizisini tamamladığında, üç kişiyi davet ettiğinde — onları elle (ya da başka bir otomasyon aracılığıyla) etiketliyorsunuz ve bu etiketin, siz API’ye hiç dokunmadan bir rozeti tetiklemesini istiyorsunuz.
Zapier’de:
- Tetikleyici: belirli bir etikete göre filtrelenmiş (ör.
webinar-attended) Mailchimp — New Tag Added to Subscriber. - Eylem:
https://api.badges.ninja/awards’a Webhooks by Zapier — POST. - Veri:
subscriber.email_addressilesubscriber.merge_fields.FNAME+LNAME’i alıcı alanlarına eşleyin.
Bu kalıp, ekipten birinin zaten kişileri etiketleme alışkanlığına sahip olduğu ve sizin de rozetin bu alışkanlıktan bedavaya ortaya çıkmasını istediğiniz takdir programları için — satış SPIFF’leri, topluluk kilometre taşları, etkinlik katılımı gibi — oldukça popülerdir.
Hataları ve tekrar denemeleri yönetme
Otomasyon platformları rozet verileriniz konusunda transactional davranmaz, bu yüzden gerçek bir entegrasyondan beklediğiniz aynı disiplini kurun:
- Yanıt kodunu kontrol edin.
200, ödülün oluşturulduğu anlamına gelir;4xxgenellikle geçersiz birbadgeIdveya hatalı biçimlendirilmiş bir e-posta anlamına gelir — bu, körü körüne tekrar denenecek bir şey değil, Zap’taki bir yapılandırma hatasıdır.5xxgüvenle tekrar denenebilir. - Zapier: başarısız Zap çalıştırmaları, tam istek/yanıtla birlikte Zap History’ye düşer. Geçici hatalar için Auto-Replay’i açın, ama tekrarlayan hatalar için bir e-posta/Slack uyarısı kurun, böylece sessizce bozulan bir Zap üç ay boyunca eksik rozet anlamına gelmesin.
- Make: senaryolar yerleşik bir Error Handler rotasını destekler — HTTP modülüne bir Resume veya Rollback direktifi ekleyin ve kalıcı hataları sadece göz ardı etmek yerine bir bildirim modülüne yönlendirin.
- n8n: self-hosted ya da daha ayrıntılı kontrole sahip bulut sürümü olduğundan, HTTP Request düğümünü bir Error Trigger iş akışına sarın ve başarısız payload’ları elle tekrar oynatabileceğiniz hafif bir yedek depoya (Airtable, Google Sheets) yazmayı düşünün.
Üçünde de “yeşil çalıştı, demek ki işe yaradı” tuzağından kaçının. Yanlış yapılandırılmış bir webhook adımından (yanlış URL, eksik başlık) gelen 200 görünümlü bir yanıt, Badges Ninja tarafında yine de başarısız olabilir. Yeni bir otomasyonun ilk ayında, kontrol panelindeki ödül listesini haftalık olarak örnekleyerek kontrol edin.
Make.com karşılığı
Make’in görsel senaryo oluşturucusu, yukarıdaki Zapier adımlarına neredeyse birebir karşılık gelir:
- Tetikleyici modül — Zapier tetikleyicisiyle aynı, Typeform / Stripe / Mailchimp izleme modülü.
- HTTP → Make a Request modülü — Yöntem
POST, URLhttps://api.badges.ninja/awards, başlıklar Headers tablosunda ayarlanır (X-Api-Key,Content-Type: application/json), gövde tetikleyiciden eşlenen değişkenlerle raw JSON olarak. - Stripe tutar kontrolü ya da Typeform’daki “gerçek tamamlama” koruması için modüller arasında isteğe bağlı bir Filter.
Make’in buradaki avantajı görünürlüktür — senaryo düzenleyici, açmadan önce her adımdaki gerçek JSON payload’ını size gösterir, bu da yanlış bir alan eşlemesini hata ayıklamayı Zapier’in daha doğrusal, adım adım test görünümünden çok daha hızlı hale getirir.
n8n karşılığı
Bunu self-hosted olarak istiyorsanız veya yığınınızın diğer kısımlarını zaten orada otomatikleştiriyorsanız, en iyi seçenek n8n’dir:
- Trigger düğümü — Typeform Trigger / Stripe Trigger / Mailchimp Trigger (hepsi yerleşik düğümler).
- HTTP Request düğümü — Yöntem
POST, URLhttps://api.badges.ninja/awards, kimlik doğrulama Header Auth olarak ayarlanır;X-Api-Key’iniz düğüme sabit kodlanmak yerine bir n8n credential’ı olarak saklanır, JSON gövdesi tetikleyici düğümün çıktısına referans veren bir ifadeden oluşturulur. - IF düğümü (isteğe bağlı) — yukarıdakiyle aynı tamamlama/tutar koruması, HTTP Request düğümünden önce yerleştirilir.
n8n credential’ları şifreli ve iş akışları arasında yeniden kullanılabilir olduğundan, birden fazla Badges Ninja otomasyonu planlıyorsanız bu daha temiz bir seçenektir — credential’ı bir kez ayarlayın, rozet vermesi gereken her iş akışında yeniden kullanın.
Neden yerel bir uygulama yerine genel bir webhook adımı
Zapier, Make ve n8n’in hepsinin uygulama mağazaları vardır ve içgüdüsel olarak genel bir HTTP/webhook modülüne yönelmeden önce bir “Badges Ninja” uygulaması aramak istersiniz. Bu aramayı atlayın — bu kadar küçük bir REST API için (bir düzenleyici oluştur, bir rozet oluştur, bir ödül oluştur, hepsi bu), genel bir webhook adımı sizi on dakikada canlıya çıkarır ve bir üçüncü taraf uygulama sağlayıcısının API değişikliklerine ayak uydurmasına hiçbir şekilde bağımlı olmazsınız. Özel bir uygulama, ihtiyacınız olmayan bir soyutlama katmanı ekler: yine de aynı badgeId, recipient.email ve recipient.name alanlarını dolduruyor olurdunuz, sadece bir JSON gövdesi yerine bir form üzerinden. API referansı beş dakikada okunabilecek kadar kısadır ve bunu yaptıktan sonra, ham HTTP yaklaşımı aslında daha az kırılgandır — Badges Ninja API değişikliği ile otomasyonunuzun yeniden çalışması arasında hiçbir uygulama mağazası onay süreci yoktur.
Canlıya almadan önce test edin
Yukarıdaki platformların her biri, gerçek bir tetikleyici olayı beklemeden tek bir test çalıştırması yapmanıza olanak tanır:
- Zapier — örnek bir kayıt çekmek için tetikleyici adımında “Test”i, ardından tam olarak bir gerçek istek göndermek için webhook eylemi adımında “Test”i kullanın. Zap’ı açmadan önce ödülün kontrol panelinizde görünüp görünmediğini kontrol edin.
- Make — senaryoyu örnek bir paketle manuel olarak bir kez çalıştırın (“Run once” düğmesi) ve HTTP modülünün çıktı balonunda gerçek yanıt gövdesini inceleyin.
- n8n — test giriş verisiyle HTTP Request düğümünde “Execute Node”u kullanın, bu da isteği ve yanıtı editör içinde görmenizi sağlar.
Bu ilk test çalıştırmasında kontrol etmeye değer iki şey var: sabit kodladığınız badgeId’nin gerçekten düşündüğünüz rozete ait olması (çoğaltılmış bir Zap’tan kalan eski bir ID yaygın bir hatadır) ve alıcı e-posta alanının, bir eşleme yazım hatası nedeniyle çözülmemiş {{email}} gibi bir yer tutucu değil, gerçek bir adres çekiyor olması. Her iki hata da otomasyon platformunun “başarı” göstergesinde görünmez — HTTP çağrısı her durumda yine 200 döner — bu yüzden tek güvenilir kontrol, ödülü kontrol panelinizde açıp alıcının beklediğiniz kişi olduğunu doğrulamaktır.
Yinelenen rozetlerden kaçınma
Yukarıdaki tetikleyici kaynakların her biri, gerçek dünya koşullarında aynı olay için birden fazla kez tetiklenebilir — Stripe zaman aşımında webhook’ları tekrar dener, Typeform yavaş bir bağlantıda formu iki kez gönderebilir, Mailchimp otomasyonları bir etiket kaldırılıp yeniden eklenirse tekrar tetiklenebilir. Rozet verişiniz idempotent değilse, bu durum alıcıların aynı credential’ı iki kez almasına dönüşür, bu da özensiz görünür ve destek e-postaları doğurur.
En temiz koruma, “oluşturmadan önce ara” adımıdır: /awards POST’undan önce, kendi ödül kayıtlarınıza karşı bir Search eylemi ekleyin (Zapier’de GET isteği üzerinden “Find Award”, ya da Make/n8n’de eşdeğer HTTP GET) — bunu API’den sorgulamak istemiyorsanız, aynı Zap’ın başarılı bir ödülden hemen sonra yazdığı hafif bir Google Sheets veya Airtable günlüğü bu iş için gayet yeterlidir. Belirli bir alıcı + rozet kombinasyonu için zaten bir kayıt varsa, yeniden vermek yerine bir no-op’a dallanın. Bu, beş dakikalık bir ekleme ama gözetimsiz güvendiğiniz bir otomasyon ile sürekli takip etmek zorunda kaldığınız bir otomasyon arasındaki fark tam olarak budur.
Kodsuz çözümlerin yetmediği durumlar
Bu tarifler tek olaylı tetikleyicileri iyi bir şekilde kapsar. Ama tek bir CSV dışa aktarımından yüzlerce rozet veriyorsanız — mezun olan bir kohort, bir konferans katılımcı listesi, toplu bir CE-kredi yenilemesi — otomasyon platformunu atlayın ve doğrudan toplu rozet yükleme özelliğini kullanın: bu özellik, işlem sırasında duraklatılıp devam ettirilebilir ve bir tarayıcı sekmesi kapatılsa bile hayatta kalır — kodsuz webhook döngülerinin hacimde zarif şekilde ele alamadığı bir şey.
İlk doğrulanabilir credential’ınızı vermeye hazır mısınız? badges.ninja’da ücretsiz başlayın — görsel tasarımcı, herkese açık doğrulama sayfası, PDF sertifika, Open Badge v2.0 çıktısı. Kredi kartı gerekmez.
Bu yazı nasıl hazırlandı
Bu blogdaki bazı yazılar bir yapay zeka asistanının yardımıyla hazırlanır, ardından yayınlanmadan önce Badges Ninja ekibi tarafından incelenir, doğrulanır ve düzenlenir. Her kod örneği ve fiyat, canlı ürünle karşılaştırılarak doğrulanır. Editoryal ve yapay zeka sürecimiz hakkında daha fazla bilgiyi editoryal süreç sayfamızda bulabilirsiniz .

Yazar hakkında
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.

