Zapier, Make ও n8n দিয়ে Open Badges অটোমেট করুন (নো-কোড রেসিপি)

Typeform সম্পূর্ণ হলে, Stripe-এ কেনাকাটা হলে, বা Mailchimp-এ ট্যাগ যোগ হলে badge ইস্যু শুরু করুন — তিনটি কার্যকর নো-কোড রেসিপি, প্রতিটি ১০ মিনিটেরও কম সময়ে তৈরি।

Nacho Coll লেখক: আপডেট করা হয়েছে 9 মিনিট পড়া
Typeform সম্পূর্ণ হলে, Stripe-এ কেনাকাটা হলে, বা Mailchimp-এ ট্যাগ যোগ হলে badge ইস্যু শুরু করুন — তিনটি কার্যকর নো-কোড রেসিপি, প্রতিটি ১০ মিনিটেরও কম সময়ে তৈরি।

আপনি যদি কোনো ট্রেনিং প্রোগ্রাম, পেইড কোর্স, বা টায়ার-ভিত্তিক ইমেইল লিস্ট চালান, তাহলে কেউ কোর্স শেষ করা, কিছু কেনা, বা যোগ্য হওয়ার মুহূর্তটা সাধারণত ইতিমধ্যেই কোথাও ট্র্যাক করা থাকে — একটা ফর্ম রেসপন্স, একটা Stripe চার্জ, একটা Mailchimp ট্যাগ। badge-টা স্বয়ংক্রিয়ভাবে সেই ইভেন্ট থেকেই আসা উচিত। কিন্তু বাস্তবে খুব কমই তা হয়, কারণ বেশিরভাগ টুলে “একটা credential ইস্যু করা” কোনো নেটিভ অ্যাকশন নয়, আর একটা একবারের অটোমেশনের জন্য কাস্টম webhook রিসিভার বানানো অতিরিক্ত ঝামেলার।

Zapier, Make আর n8n ঠিক এই কাজের জন্যই তৈরি। এই তিনটিই সরাসরি Badges Ninja API কল করতে পারে — কোনো প্লাগইন লাগে না, কোনো মিডলওয়্যার সার্ভার লাগে না, কোনো কোড ডিপ্লয়মেন্টও লাগে না। নিচে তিনটি কার্যকর রেসিপি দেওয়া হলো যা আপনি আজই কপি করতে পারেন, সাথে API key হ্যান্ডলিং আর error-retry ব্যবহারও দেওয়া হলো যেটা ঠিকভাবে সেট করা দরকার, নাহলে badge নীরবে ইস্যু হতে ব্যর্থ হতে পারে।

আপনি কী জোড়া লাগাচ্ছেন

প্রতিটি রেসিপি একই কাঠামো অনুসরণ করে: trigger → (ঐচ্ছিক) recipient lookup → /awards-এ HTTP POST/awards endpoint-টাই আসলে recipient-কে একটা badge ইস্যু করে — আপনি একটা এক্সিস্টিং badgeId-কে পয়েন্ট করেন, আর এটা একটা ইউনিক, verifiable award তৈরি করে, যার নিজস্ব verification URL, QR code, এবং PDF certificate থাকে। এখনো badge তৈরি না করে থাকলে API quickstart দেখুন; এই অটোমেশনগুলোর যেকোনোটা চালানোর আগে আপনার badge-এর ID লাগবে।

তিনটি প্ল্যাটফর্মের জন্যই authentication একই: আপনার dashboard থেকে তৈরি করা একটা key বহন করা X-Api-Key header। যেকোনো REST API-এর জন্য automation প্ল্যাটফর্মগুলো OAuth flow ভালোভাবে হ্যান্ডেল করতে পারে না, তাই এখানে API key-ই সঠিক পছন্দ — দীর্ঘস্থায়ী, আপনার অ্যাকাউন্টে scoped, আর কোনো Zap কখনো ভুল কাজ করলে এক ক্লিকে revoke করা যায়।

প্রথমে API key তৈরি করুন

API Keys — empty state

আপনার dashboard থেকে Settings → API Keys খুলুন, Create Key-তে ক্লিক করুন, আর এমন একটা নাম দিন যা তার কাজের সাথে মেলে — zapier-course-completions, key1 নয়। এই নামকরণটা যতটা মনে হয় তার চেয়ে বেশি গুরুত্বপূর্ণ: ছয় মাস পরে যদি কোনো automation ভুল আচরণ করে, তাহলে আপনি চাইবেন সেই key-টাই revoke করতে, অন্য তিনটা ইন্টিগ্রেশন যেগুলো হয়তো একই key শেয়ার করছে সেগুলো না ভেঙে।

Create key — name form

key-টা তৈরি হওয়ার পরপরই একবার, সম্পূর্ণভাবে দেখানো হয়। এটা সাথে সাথে আপনার automation প্ল্যাটফর্মের secure credential store-এ কপি করুন — Zapier-এর “Connection”, Make-এর “Connection”, বা n8n credential — কখনোই Zap/scenario/workflow-এর ভেতরে কোনো প্লেইন-টেক্সট ফিল্ডে নয়।

রেসিপি ১: Typeform → Badges Ninja (cohort completion form)

ব্যবহারের ক্ষেত্র: একটা cohort কোর্স শেষ করে আর একটা ছোট্ট “আমি এটা সম্পূর্ণ করেছি” ফর্ম পূরণ করে (অথবা আপনি একটা self-paced ট্র্যাকের শেষ ধাপ হিসেবে একটা ফর্ম পাঠান)।

Zapier-এ:

  1. Trigger: Typeform — New Entry, আপনার completion form-এ scope করা।
  2. Action: Webhooks by Zapier — POST
  3. URL: https://api.badges.ninja/awards
  4. Headers: X-Api-Key: bws_<আপনার key>, Content-Type: application/json
  5. Data (Typeform ফিল্ড থেকে ম্যাপ করা):
{
  "badgeId": "bdg_9f2a1c",
  "recipient": {
    "name": "{{typeform_name}}",
    "email": "{{typeform_email}}"
  },
  "issuedOn": "2026-08-27"
}

পুরো Zap-টা এটাই। যদি ফর্মটা শুধু আসল completion-এই ট্রিগার হয়, তাহলে কোনো filter step দরকার নেই — কিন্তু যদি এটা একটা সাধারণ contact form হয়, তাহলে webhook চালু হওয়ার আগে একটা hidden field বা answer value চেক করার জন্য একটা Filter by Zapier step যোগ করুন, যাতে spam বা test submission থেকে badge ইস্যু না হয়।

রেসিপি ২: Stripe → Badges Ninja (purchase = credential)

ব্যবহারের ক্ষেত্র: একটা পেইড সার্টিফিকেশন এক্সাম, একটা প্রিমিয়াম কোর্স টায়ার, বা একটা মেম্বারশিপ প্ল্যান যেখানে badge-টা মানুষ যা কিনছে তার একটা অংশ।

Zapier-এ:

  1. Trigger: Stripe — New Charge (অথবা subscription-এর জন্য New Invoice Payment Succeeded)।
  2. Filter: charge amount ঠিক সেই credentialed product-এর দামের সমান হতে হবে — যদি আপনার Stripe অ্যাকাউন্ট একই webhook দিয়ে একাধিক প্রোডাক্ট হ্যান্ডল করে, তাহলে এটা গুরুত্বপূর্ণ।
  3. Action: https://api.badges.ninja/awards-এ Webhooks by Zapier — POST, আগের মতো একই header।
  4. Data: charge.billing_details.email আর charge.billing_details.name-কে recipient.email / recipient.name-এ ম্যাপ করুন।

payment event-এর সাথে issuance জোড়া লাগানোর ভালো দিকটা হলো: এটা স্বাভাবিকভাবেই প্রায় idempotent। Stripe charge ID ইউনিক, তাই যদি কোনো retried webhook-এর কারণে Zap আবার fire করার ভয় থাকে, তাহলে /awards কল করার আগে সেই charge ID আগেই প্রসেস করা হয়েছে কিনা চেক করার জন্য একটা Storage by Zapier step যোগ করুন।

রেসিপি ৩: Mailchimp tag → Badges Ninja

ব্যবহারের ক্ষেত্র: আপনি সাবস্ক্রাইবারদের ম্যানুয়ালি (বা অন্য কোনো automation-এর মাধ্যমে) ট্যাগ করেন যখন তারা কোনো milestone-এ পৌঁছায় — একটা webinar-এ অংশ নিয়েছে, একটা drip sequence শেষ করেছে, তিনজনকে refer করেছে — আর চান যে সেই ট্যাগটা নিজে API না ছুঁয়েই একটা badge ট্রিগার করুক।

Zapier-এ:

  1. Trigger: Mailchimp — New Tag Added to Subscriber, নির্দিষ্ট ট্যাগে ফিল্টার করা (যেমন webinar-attended)।
  2. Action: https://api.badges.ninja/awards-এ Webhooks by Zapier — POST
  3. Data: subscriber.email_address আর subscriber.merge_fields.FNAME + LNAME-কে recipient field-এ ম্যাপ করুন।

এই প্যাটার্নটা recognition program-এর জন্য জনপ্রিয় — sales SPIFF, community milestone, event attendance — যেখানে টিমের কেউ ইতিমধ্যেই contact ট্যাগ করার অভ্যাসে আছে, আর আপনি শুধু চান badge-টা সেই অভ্যাস থেকেই বিনামূল্যে বেরিয়ে আসুক।

Error আর retry হ্যান্ডল করা

Automation প্ল্যাটফর্মগুলো আপনার badge data-র ক্ষেত্রে transactional নয়, তাই একটা আসল ইন্টিগ্রেশনের কাছে যে discipline আশা করবেন, সেটাই বানিয়ে নিন:

  • Response code চেক করুন। 200 মানে award তৈরি হয়েছে; 4xx সাধারণত মানে খারাপ badgeId বা malformed email — এটা Zap-এর একটা configuration bug, অন্ধভাবে retry করার মতো কিছু না। 5xx retry করা নিরাপদ।
  • Zapier: ব্যর্থ Zap run পুরো request/response সহ Zap History-তে চলে যায়। transient failure-এর জন্য Auto-Replay চালু করুন, কিন্তু বারবার failure-এর জন্য একটা email/Slack alert সেট করুন, যাতে একটা নীরবে ভাঙা Zap মানে তিন মাসের হারিয়ে যাওয়া badge না হয়।
  • Make: scenario-তে একটা নেটিভ Error Handler route থাকে — HTTP module-এ একটা Resume বা Rollback directive যুক্ত করুন, আর persistent failure-গুলো শুধু বাদ না দিয়ে একটা notification module-এ পাঠান।
  • n8n: যেহেতু এটা self-hosted বা আরও granular control সহ cloud-এ থাকে, HTTP Request node-টাকে একটা Error Trigger workflow-এ মুড়ে দিন, আর failed payload-গুলো একটা lightweight fallback store-এ (Airtable, Google Sheets) লিখে রাখার কথা ভাবুন, যেগুলো আপনি ম্যানুয়ালি replay করতে পারবেন।

তিনটি ক্ষেত্রেই “সবুজ দেখাচ্ছে মানে কাজ হয়েছে” এই ফাঁদ এড়িয়ে চলুন। একটা misconfigured webhook step (ভুল URL, missing header) থেকে আসা 200-এর মতো দেখতে response-ও Badges Ninja-র দিক থেকে fail করতে পারে। যেকোনো নতুন automation-এর প্রথম মাসে সাপ্তাহিকভাবে dashboard-এর award list স্পট-চেক করুন।

Make.com-এর সমতুল্য

Make-এর visual scenario builder উপরের Zapier স্টেপগুলোর প্রায় সরাসরি সমতুল্য:

  1. Trigger module — Typeform / Stripe / Mailchimp watch module, Zapier trigger-এর মতোই।
  2. HTTP → Make a Request module — Method POST, URL https://api.badges.ninja/awards, Headers table-এ সেট করা header (X-Api-Key, Content-Type: application/json), trigger থেকে ম্যাপ করা ভেরিয়েবল সহ raw JSON body।
  3. Stripe amount check বা Typeform-এর “real completion” guard-এর জন্য module-গুলোর মাঝে ঐচ্ছিক Filter

এখানে Make-এর সুবিধা হলো visibility — scenario editor আপনাকে চালু করার আগেই প্রতিটা step-এ আসল JSON payload দেখায়, যা Zapier-এর বেশি linear step-by-step test view-এর চেয়ে একটা খারাপ field mapping debug করা অনেক দ্রুত করে তোলে।

n8n-এর সমতুল্য

আপনি যদি এটা self-hosted করতে চান, বা ইতিমধ্যেই আপনার stack-এর অন্য অংশ সেখানে automate করছেন, তাহলে n8n সবচেয়ে ভালো ফিট:

  1. Trigger node — Typeform Trigger / Stripe Trigger / Mailchimp Trigger (সবই built-in node)।
  2. HTTP Request node — Method POST, URL https://api.badges.ninja/awards, authentication Header Auth-এ সেট করা, আপনার X-Api-Key একটা n8n credential হিসেবে সংরক্ষিত (node-এ hardcode করা নয়), trigger node-এর output রেফারেন্স করা একটা expression থেকে তৈরি JSON body।
  3. IF node (ঐচ্ছিক) — উপরের মতোই একই completion/amount guard, HTTP Request node-এর আগে বসানো।

যেহেতু n8n credential encrypted আর একাধিক workflow জুড়ে reusable, তাই যদি আপনি একাধিক Badges Ninja automation পরিকল্পনা করেন, তাহলে এটা cleaner option — credential একবার সেট করুন, badge ইস্যু করতে হবে এমন প্রতিটা workflow-এ সেটা reuse করুন।

নেটিভ অ্যাপের বদলে জেনেরিক webhook step কেন

Zapier, Make, আর n8n — তিনটিরই app marketplace আছে, আর স্বাভাবিক প্রবৃত্তি হলো একটা generic HTTP/webhook module ব্যবহারের আগে একটা “Badges Ninja” অ্যাপ খুঁজে দেখা। সেই খোঁজাখুঁজি বাদ দিন — এত ছোট একটা REST API-এর জন্য (একটা issuer বানান, একটা badge বানান, একটা award বানান, শেষ), একটা generic webhook step আপনাকে দশ মিনিটে live করে দেয়, কোনো third-party app maintainer API পরিবর্তনের সাথে তাল মিলিয়ে চলছে কিনা তার উপর কোনো নির্ভরতা ছাড়াই। একটা dedicated app একটা abstraction layer যোগ করে যেটা আপনার দরকার নেই: আপনি তখনও একই badgeId, recipient.email, আর recipient.name field পূরণ করবেন, শুধু JSON body-র বদলে একটা form দিয়ে। API reference এতটাই ছোট যে পাঁচ মিনিটে পড়া যায়, আর সেটা পড়ার পর, raw HTTP approach আসলে কম fragile — Badges Ninja API change আর আপনার automation আবার কাজ করার মাঝে কোনো app-store approval cycle দাঁড়িয়ে নেই।

লাইভ করার আগে টেস্ট করুন

উপরের প্রতিটা প্ল্যাটফর্মই আসল trigger event-এর জন্য অপেক্ষা না করে একটা single test execution চালানোর উপায় দেয়:

  • Zapier — একটা sample record টানার জন্য trigger step-এ “Test” ব্যবহার করুন, তারপর ঠিক একটা আসল request fire করার জন্য webhook action-এ “Test” ব্যবহার করুন। Zap চালু করার আগে দেখে নিন award আপনার dashboard-এ দেখাচ্ছে কিনা।
  • Make — একটা sample bundle দিয়ে scenario ম্যানুয়ালি একবার চালান (“Run once” button), আর আসল response body-র জন্য HTTP module-এর output bubble দেখুন।
  • n8n — test input data দিয়ে HTTP Request node-এ “Execute Node” ব্যবহার করুন, যা আপনাকে editor-এর ভেতরেই request আর response দেখতে দেয়।

সেই প্রথম test run-এ দুটো জিনিস চেক করার মতো: আপনি যে badgeId hardcode করেছেন সেটা সত্যিই সেই badge-এরই কিনা যেটা আপনি ভাবছেন (একটা duplicated Zap থেকে একটা stale ID একটা সাধারণ ভুল), আর recipient email field একটা আসল address টানছে কিনা, mapping typo-র কারণে unresolved থেকে যাওয়া {{email}}-এর মতো কোনো placeholder নয়। এই দুটো ভুলই automation প্ল্যাটফর্মের “success” indicator-এ অদৃশ্য থাকে — HTTP call তখনও 200 রিটার্ন করে — তাই একমাত্র নির্ভরযোগ্য চেক হলো dashboard-এ award খুলে দেখা আর নিশ্চিত করা recipient সেই ব্যক্তিই যাকে আপনি আশা করছেন।

Duplicate badge এড়ানো

উপরের প্রতিটা trigger source-ই বাস্তব পরিস্থিতিতে একই event-এর জন্য একাধিকবার fire করতে পারে — timeout হলে Stripe webhook retry করে, ধীর connection-এ Typeform double-submit করতে পারে, একটা tag সরিয়ে আবার যোগ করলে Mailchimp automation আবার trigger হতে পারে। যদি আপনার badge issuance idempotent না হয়, তাহলে সেটা এমন recipient-দের দিকে গড়ায় যারা একই credential দুইবার পায়, যা দেখতে অগোছালো লাগে আর support email তৈরি করে।

সবচেয়ে পরিষ্কার guard হলো একটা lookup-before-create step: /awards POST-এর আগে, আপনার নিজের award record-এর বিরুদ্ধে একটা Search action যোগ করুন (Zapier-এর একটা GET request দিয়ে “Find Award”, বা Make/n8n-এ সমতুল্য HTTP GET) — একটা lightweight Google Sheet বা Airtable log যেখানে সফল award-এর পরপরই একই Zap লিখে রাখে, সেটা এর জন্য এটার API query করতে না চাইলে ভালোভাবে কাজ করে। যদি সেই recipient + badge কম্বিনেশনের জন্য একটা record ইতিমধ্যেই থাকে, তাহলে আবার ইস্যু না করে একটা no-op-এ branch করুন। এটা মাত্র পাঁচ মিনিটের একটা addition, আর এটাই একটা automation যেটা আপনি unattended অবস্থায় বিশ্বাস করেন আর একটা যেটা আপনাকে সবসময় নজরে রাখতে হয় — এই দুটোর মধ্যে পার্থক্য গড়ে দেয়।

যখন no-code যথেষ্ট নয়

এই রেসিপিগুলো single-event trigger ভালোভাবেই কভার করে। একবার আপনি একটা single CSV export থেকে শত শত badge ইস্যু করা শুরু করলে — একটা graduating cohort, একটা conference attendee list, একটা bulk CE-credit renewal — automation প্ল্যাটফর্ম বাদ দিয়ে সরাসরি bulk badge upload ব্যবহার করুন: এটা batch-এর মাঝখানে pause আর resume করে আর একটা বন্ধ browser tab থেকেও টিকে থাকে, যেটা no-code webhook loop বেশি volume-এ সুন্দরভাবে হ্যান্ডেল করতে পারে না।


আপনার প্রথম verifiable credential ইস্যু করতে প্রস্তুত? badges.ninja-এ বিনামূল্যে শুরু করুন — visual designer, public verification page, PDF certificate, Open Badge v2.0 output। কোনো credit card লাগবে না।

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.

ব্লগে ফিরুন

সম্পর্কিত নিবন্ধ