আপনার CRM এ আনুগত্যের ইতিহাস মিরর করুন
প্রতিটি স্ট্যাম্প, ভাউচার, জন্মদিন এবং নিষ্ক্রিয়তা ট্রিগার আপনার CRM-এ গ্রাহকের রেকর্ডে ল্যান্ড করে। আপনি 7Stamp লগ ইন না করেই বিক্রয়, কল এবং টিকিটের পাশে সম্পূর্ণ আনুগত্যের টাইমলাইন দেখতে পাবেন।
ডেভেলপার ইন্টিগ্রেশন
7Stamp থেকে প্রতিটি আনুগত্য ইভেন্টকে রিয়েল টাইমে আপনার নিজস্ব সিস্টেমে পুশ করুন। কোন পোলিং এবং কোন নির্ধারিত API কল নেই। ঘটনা ঘটার কয়েক সেকেন্ডের মধ্যে HTTPS POST অনুরোধ হিসাবে আসে।
আপনার CRM, ERP, বা কাস্টম ব্যাকএন্ডকে বিশ্বস্ততার দিকে যা ঘটছে তার সাথে সিঙ্ক রাখতে ওয়েবহুকগুলি ব্যবহার করুন: কে যোগদান করেছে, কে একটি স্ট্যাম্প পেয়েছে, কে একটি ভাউচার রিডিম করেছে, কে একটি জন্মদিনের উপহার ট্রিগার করেছে এবং কারা নিষ্ক্রিয় হয়ে গেছে৷ তারপর আপনার সিস্টেমগুলি সেই ডেটা দিয়ে কী করবে তা সিদ্ধান্ত নেয়।
Webhooks হল ইন্টিগ্রেশন স্ট্যাকের আউটবাউন্ড সাইড। আপনি বিক্রয়, পরিষেবা, বিশ্লেষণ এবং বার্তাপ্রেরণের জন্য ইতিমধ্যেই বিশ্বাস করেন এমন সিস্টেমগুলিতে তারা গ্রাহক এবং পুরষ্কার কার্যকলাপকে প্রতিফলিত করে৷
প্রতিটি স্ট্যাম্প, ভাউচার, জন্মদিন এবং নিষ্ক্রিয়তা ট্রিগার আপনার CRM-এ গ্রাহকের রেকর্ডে ল্যান্ড করে। আপনি 7Stamp লগ ইন না করেই বিক্রয়, কল এবং টিকিটের পাশে সম্পূর্ণ আনুগত্যের টাইমলাইন দেখতে পাবেন।
যখন একজন গ্রাহক একটি ভাউচার রিডিম করেন, তখন আপনার বিদ্যমান SMS গেটওয়ে থেকে একটি ধন্যবাদ SMS পাঠান। যখন একজন গ্রাহক লক্ষ্যে পৌঁছান, Slack-এ একটি উদযাপন পোস্ট করুন। কেউ নিষ্ক্রিয় হয়ে গেলে, কেসটি আপনার অ্যাকাউন্ট ম্যানেজারের কাছে রুট করুন।
আপনার BI টুল, গুদাম বা পুনর্মিলন পাইপলাইনে ইভেন্টগুলি স্ট্রিম করুন। POS রসিদের সাথে ভাউচার রিডিমশনের সাথে মিল করুন এবং আপনার নিজস্ব মেট্রিক্সে ROI লয়ালটি গণনা করুন।
আপনার এন্ডপয়েন্টটি HTTPS POST গ্রহণ করবে, একটি ইভেন্টটি সফল করুন, তারপরে সফলভাবে ইভেন্টটি ফেরত দিন বা সফল করুন প্রতিক্রিয়া যদি নিরাপদে সারিবদ্ধ করা যায় তবে স্বীকৃতির আগে একটি ধীর CRM বা মেসেজিং কল করবেন না।
প্রতিটি সম্পর্কিত ইভেন্ট External ID এবং ঐচ্ছিক External Source বহন করতে পারে যা আপনি কার্ড তৈরি বা স্ক্যান করার সময় ব্যবহার করেছিলেন। আপনার নিজের CRM, POS, অথবা কোনো নাম বা ইমেল থেকে অনুমান না করেই অর্ডার রেকর্ড আপডেট করতে এই জোড়া ব্যবহার করুন।
পার্শ্ব প্রতিক্রিয়া ট্রিগার করার আগে একটি টেকসই প্রক্রিয়াকরণ কী বা ইভেন্ট ফিঙ্গারপ্রিন্ট সংরক্ষণ করুন। যদি আপনার প্রাপক আবার একই ডেলিভারি দেখতে পান, তাহলে এটি একটি ডুপ্লিকেট CRM নোট, ভাউচার বা বার্তা যোগ করবে না। শেষ পয়েন্ট URL কে একটি গোপন হিসাবে বিবেচনা করুন।
json {
"entity": "card_event",
"action": "created",
"entity_id": 707,
"event_id": "8f05e58decec48e09d328f0edebbacf6",
"profile_id": 2,
"profile_name": "Your Business",
"profile_lang": "en",
"data": {
"event_type": "SCAN",
"scanned_at": "2026-10-01T09:19:24.179424",
"user_card_id": 10,
"card_template_id": 14,
"card_template_name": "Collect your stamps!",
"stamps_added": 3,
"stamps_before": 1,
"stamps_after": 4,
"amount": null,
"external_order_id": "ORDER-1001",
"workplace": { "id": 4, "name": "Bar Counter" },
"device_type": null,
"external_id": "odoo_contact_8821",
"external_source": "odoo",
"issued_vouchers": [
{
"id": 174,
"unique_code": "100425813507",
"stamp_number": 4,
"issued_at": "2026-10-01T09:19:24.191836",
"expires_at": "2027-01-01T23:59:59",
"status": "ACTIVE",
"voucher_template_id": 58,
"voucher_description": "Free coffee",
"voucher_image_url": "https://..."
}
],
"achieved_goals": [],
"user": {
"id": 2,
"name": "Anna",
"full_name": "Anna Smith",
"email": "anna@example.com",
"telegram_chat_id": null,
"telegram_username": null,
"whatsapp_phone": null,
"birth_date": null
}
}
} আপনার ব্যাকএন্ডে একটি HTTPS এন্ডপয়েন্ট তৈরি করুন, CRM ইন্টিগ্রেশন লেয়ার, Make ওয়েবহুক, বা Zapier Catch Hook। Make নিশ্চিত যে আপনি এর URL অনুলিপি করার আগে গন্তব্য নিয়ন্ত্রণ করছেন।
7Stamp Admin-এ, Stamp Cards → API & Integrations → Webhooks খুলুন।
এন্ডপয়েন্ট URL যোগ করুন। ওয়েবহুক প্রোফাইলের প্রতিটি কার্ড ইভেন্ট পায়, তাই আপনার রিসিভারে data.event_type অনুযায়ী ফিল্টার করুন।
প্রোফাইল সেটিংস সংরক্ষণ করুন, তারপর একটি ইভেন্ট তৈরি করতে একটি নিষ্পত্তিযোগ্য পরীক্ষা স্ক্যান বা কার্ড অ্যাকশন ট্রিগার করুন৷
প্রাপ্ত পেলোড পরিদর্শন করুন। প্রত্যাশিত রেকর্ডের সাথে External ID এবং External Source মেলান এবং নিশ্চিত করুন যে রিসিভার একটি সফল প্রতিক্রিয়া প্রদান করে।
CRM, ভাউচার, বা মেসেজিং এর পার্শ্বপ্রতিক্রিয়া সক্ষম করুন শুধুমাত্র আপনার ব্যর্থতার জন্য রিপ্লে-নিরাপদ হ্যান্ডলিং এবং পর্যবেক্ষণ করার পরে।
Make-এ, একটি প্রাপ্তি URL তৈরি করতে Webhooks → Custom webhook ব্যবহার করুন এবং এটি 7Stamp প্রোফাইলে পেস্ট করুন। Zapier-এ, একই উদ্দেশ্যে Webhooks by Zapier → Catch Hook ব্যবহার করুন। 7Stamp প্রোফাইল সাবস্ক্রিপশনের মালিক কারণ বর্তমান API স্বয়ংক্রিয় ওয়েবহুক রেজিস্ট্রেশন এন্ডপয়েন্ট প্রকাশ করে না।
বর্তমান পেলোড স্কিমার উৎস হিসেবে সর্বজনীন OpenAPI রেফারেন্সের Webhooks বিভাগটি ব্যবহার করুন। বডি একটি এনভেলপ: profile_id এবং profile_name 7Stamp প্রোফাইল নির্দেশ করে, event_id ইভেন্টটি শনাক্ত করে, আর কার্ড ইভেন্টটি নিজে থাকে data-তে (Make বা Zapier URL-এর ক্ষেত্রে কী হলো card_event)। প্রতিটি ডেলিভারি একটি হেডারে স্বাক্ষরিত হয়, X-Webhook-Signature: t=…,s=…। আপনার ওয়েবহুক সিক্রেট দিয়ে t এবং তার পরে থাকা কাঁচা রিকোয়েস্ট বডির ওপর HMAC-SHA256 গণনা করুন, সেটি hex-এ এনকোড করুন এবং s-এর সঙ্গে মিলিয়ে দেখুন; সিক্রেটটি 7Stamp Admin-এ ওয়েবহুকের পেজে আছে। পুনরাবৃত্ত ডেলিভারি বাদ দিতে X-Webhook-Event-Id ব্যবহার করুন: পুনরায় চেষ্টা নতুন t দিয়ে আবার স্বাক্ষরিত হয়। আপনি Basic Auth দিয়েও এন্ডপয়েন্ট সুরক্ষিত করতে পারেন। HTTPS বাধ্যতামূলক রাখুন এবং রিসিভারের URL সর্বজনীন লগের বাইরে রাখুন।
না। একটি 7Stamp ওয়েবহুক প্রোফাইলের প্রতিটি কার্ড ইভেন্ট পায়। আপনার রিসিভারে data.event_type অনুযায়ী ফিল্টার করুন; Make এবং Zapier-এ ইভেন্টটি card_event-এর অধীনে আসে, তাই card_event.event_type অনুযায়ী ফিল্টার করুন।
Make-এ রিসিভিং ওয়েবহুক তৈরি করুন বা Zapier-এ একটি Catch Hook, তৈরি করা URL অনুলিপি করুন, তারপর এটিকে 7Stamp প্রোফাইলের ওয়েবহুক সেটিংসে পেস্ট করুন এবং একটি পরীক্ষামূলক ইভেন্ট পাঠান৷
data.external_id এবং, উপস্থিত থাকলে, data.external_source ব্যবহার করুন: আপনার নিজস্ব ID দিয়ে API-এর মাধ্যমে ইস্যু করা কার্ডগুলোর জন্য এগুলো প্রতিটি ওয়েবহুকে ফিরে আসে। যে গ্রাহক নিজে কার্ড নিয়েছেন তাঁর কোনো External ID নেই, তাই তাঁকে data.user.email দিয়ে মেলান। Apple “Hide My Email” ঠিকানা হলো একটি রিলে ঠিকানা, আপনার CRM-এ থাকা ঠিকানাটি নয়।
X-Webhook-Signature হেডারটিকে t এবং s-এ ভাগ করুন, 7Stamp Admin থেকে পাওয়া ওয়েবহুক সিক্রেট দিয়ে t এবং তার পরে থাকা কাঁচা রিকোয়েস্ট বডির ওপর HMAC-SHA256 গণনা করুন, সেটি hex-এ এনকোড করুন এবং s-এর সঙ্গে মিলিয়ে দেখুন। t ঠিক যেভাবে পাঠানো হয়েছে সেভাবেই নিন, আর বডি নিন প্রাপ্ত কাঁচা বাইট হিসেবে, যেকোনো JSON পার্সিংয়ের আগে। যে ডেলিভারির X-Webhook-Event-Id আপনি আগেই প্রসেস করেছেন, সেটি বাদ দিন: পুনরায় চেষ্টা নতুন t দিয়ে আবার স্বাক্ষরিত হয়।
সম্পর্কিত পৃষ্ঠাগুলি
পরবর্তী ধাপ
একটি রিসিভার তৈরি করুন, এটির HTTPS URL প্রোফাইলে পেস্ট করুন, একটি নিষ্পত্তিযোগ্য স্ক্যান চালান এবং ডাউনস্ট্রিম অটোমেশন সক্ষম করার আগে ম্যাচিং External ID যাচাই করুন৷