Blog · 2026-08-30
চেক-ইন, পেআউট আর লটারি পুরোপুরি স্বয়ংক্রিয় করা: মেম্বারশিপ LINE বটের সিস্টেম ডিজাইন
LINE-এর আইডেন্টিটি ম্যাপিং, ডুপ্লিকেট ঠেকানোর ইউনিক কী, পেআউটের আইডেমপোটেন্ট ক্রেডিটিং থেকে শুরু করে systemd দিয়ে অটো-স্টার্ট, বাইরের অ্যালার্ট আর প্রতি 6 ঘণ্টায় ব্যাকআপ, ক্লাউডের এই তিন সেট পর্যন্ত, এমন একটা মেম্বারশিপ বটের কাঠামো খুলে দেখানো হলো যেখানে কাউকে পাহারা দিতে বসতে হয় না।
সদস্য ব্যবস্থাপনায় সবচেয়ে বেশি জনবল খায় পুনরাবৃত্ত কাজগুলো: রোজ চেক-ইন মেলানো, তালিকা ধরে পুরস্কার দেওয়া, পেআউট জমা হয়েছে কি না দেখা, তারপর একে একে ব্যক্তিগত মেসেজে জানানো। মানুষ দিয়ে করালে ধীর হয় আর বাদ পড়ে, ক্যাম্পেইন একটু বড় হলেই কাস্টমার সার্ভিস ডুবে যায়। এই পুরো প্রক্রিয়াটা LINE বটকে দিয়ে স্বয়ংক্রিয়ভাবে চালানো যায়, শর্ত একটাই, কয়েকটা ডিজাইনের প্রশ্ন আগে পরিষ্কার করে ভাবতে হবে, নইলে অটোমেশন শুধু ভুলগুলোকেই দ্রুততর করবে।
আইডেন্টিটি ম্যাপিং: LINE-এর পরিচয় আর সদস্য অ্যাকাউন্ট দুটো আলাদা সিস্টেম, আগে ম্যাপিং টেবিল বানান
LINE Official Account থেকে যা পাওয়া যায় সেটা প্ল্যাটফর্মের ইস্যু করা একটা ইউজার আইডেন্টিফায়ার, আর মেম্বারশিপ সিস্টেমে আছে সম্পূর্ণ আলাদা একটা অ্যাকাউন্ট ব্যবস্থা, দুটো জন্ম থেকেই মেলে না। যেকোনো অটোমেশনের প্রথম ধাপ হলো "LINE আইডেন্টিফায়ার ↔ সদস্য অ্যাকাউন্ট" এই বাইন্ডিং টেবিলটা দাঁড় করানো, আর সেটা যথেষ্ট কড়া করেই বানাতে হবে:
- বাইন্ডিংয়ে মালিকানা যাচাই করতেই হবে। সদস্য চ্যাটবক্সে একটা অ্যাকাউন্ট নম্বর টাইপ করলেই যেন বাইন্ডিং হয়ে না যায়, সঙ্গে একবার-ব্যবহারযোগ্য ভেরিফিকেশন কোড বা কনসোল থেকে অনুমোদন লাগবে, নইলে যে কেউ অন্যের অ্যাকাউন্ট নিজের LINE-এ বেঁধে নিতে পারবে।
- অনন্যতা নিশ্চিত করুন ডেটাবেসের কনস্ট্রেইন্ট দিয়ে: একটা LINE পরিচয়ে একটাই সদস্য অ্যাকাউন্ট বাঁধা যাবে, আর একটা সদস্য অ্যাকাউন্টও একবারই বাঁধা যাবে। এই দুটো ইউনিক কনস্ট্রেইন্ট না থাকলে একদিন এক লোকের একাধিক বাইন্ডিং আর বারবার পুরস্কার নেওয়া ঘটবেই, কিংবা জনপ্রিয় অ্যাকাউন্ট আগেভাগে কেউ দখল করে নেবে।
- আনবাইন্ড আর রিবাইন্ড সব সময় পরিবর্তনের রেকর্ডে লিখে রাখুন। বিরোধ বাধলে এই রেকর্ডই একমাত্র প্রমাণ যা দিয়ে ব্যাপারটা পরিষ্কার করা যায়।
আইডেন্টিটি ম্যাপিং শক্ত হলে চেক-ইন, লটারি, পেআউট আর পুশ সবই একই সদস্য পরিচয়ের নিচে ঝোলে, আর তখনই পরের অটোমেশনের ভিত তৈরি হয়।
চেক-ইন আর লটারি: ডুপ্লিকেট ঠেকানোর কী ঠিকভাবে বাছুন, আর ঠেকানোর কাজটা ডেটাবেসকে দিন
ডুপ্লিকেট ঠেকানোয় সবচেয়ে প্রচলিত ভুল হলো কী-টা ভুল স্তরে বাছা। "একই সদস্য একদিনে দুবার চেক-ইন" ঠেকাতে হলে ইউনিক কী হবে সদস্য প্লাস তারিখ; "একই সদস্য একই ক্যাম্পেইনে দুবার লটারিতে অংশ নেওয়া" ঠেকাতে হলে কী হবে সদস্য প্লাস ক্যাম্পেইন। কী যদি আসলে যা ঠেকাতে চান তার সঙ্গে না মেলে, তাহলে ফাংশনাল টেস্ট পুরো সবুজ হলেও ফাঁক থেকে যাবে।
বাস্তবায়নের তিনটা মূল কথা:
- আটকান ডেটাবেসের ইউনিক ইনডেক্সে, প্রোগ্রামের if দিয়ে নয়। পরপর ট্যাপ, নেটওয়ার্কের পুনঃপ্রেরণ, দুটো রিকোয়েস্ট একসঙ্গে ঢোকা, এসব ক্ষেত্রে প্রোগ্রামের লজিক দুটোকেই ছেড়ে দিতে পারে, ইউনিক ইনডেক্স দেবে না। কী-তে সংঘর্ষ হলে "আজ চেক-ইন হয়ে গেছে" ফেরত দিন, ব্যবহারকারীর কাছে সেটা স্বাভাবিক উত্তর, ত্রুটি নয়।
- "একদিন"-এর টাইম জোন স্পষ্ট করে ঠিক করুন। সার্ভারের সময় স্থানীয় সময় থেকে কয়েক ঘণ্টা আলাদা হলে মধ্যরাতের আশপাশে কেউ একদিন বেশি চেক-ইন করবে, কেউ কম।
- স্প্যাম ঠেকানো ত্রিমাত্রিক হতে হবে, আর ধরে নিতে হবে কেউ না কেউ ঢালবেই। আমরা একটা ক্যাম্পেইনের রেজিস্ট্রেশন ও লটারি পাতায় IP রেট লিমিট, ব্ল্যাকলিস্ট, ফোন ও ইমেইলের ইউনিক কী, ফিঙ্গারপ্রিন্ট হ্যাশ আর মানব যাচাই, পাঁচ স্তরের সুরক্ষা বসিয়েছিলাম, তারপরেও পরে বহুমাত্রিক পরিষ্কার করে 142টি রেজিস্ট্রেশন থেকে প্রায় 118টি আসল নাম বের করতে হয়েছে, বাকিগুলো ছিল টেস্ট ডেটা, মনগড়া নম্বর, একই সাবনেট থেকে গণহারে জমা আর নিজের রেফারেলে নিজে ঢোকা। ফ্রন্টএন্ড হাত ফসকানো আটকাতে পারে, ইচ্ছাকৃত লোককে নয়, তাই তালিকার আসল-নকল পরে যাচাই করার উপায় থাকতে হবে।
পেআউটের স্বয়ংক্রিয় ক্রেডিটিং: গতির চেয়ে আইডেমপোটেন্সি জরুরি, জমা হওয়ার পরেই পুশ
iGaming-এর মতো ক্ষেত্রে পেআউট মানে ক্যাম্পেইনের পুরস্কার বা ক্যাশব্যাক সরাসরি সদস্যের গেম ওয়ালেটে জমা করা। পুরোপুরি স্বয়ংক্রিয় পেআউটের মূল কথা হলো বটের ব্যাকএন্ড সদস্য সিস্টেমের ক্রেডিট ইন্টারফেস কল করবে, আর প্রতিটা কলের সঙ্গে থাকবে একটা ইউনিক রেফারেন্স নম্বর, একই রেফারেন্স আবার এলে সিস্টেম একই ফল ফেরত দেবে, দ্বিতীয়বার জমা করবে না। এটাই আইডেমপোটেন্সি, আর এটাই স্বয়ংক্রিয় পেআউটে রিট্রাই করার সাহস দেয়।
- সবচেয়ে বিপজ্জনক অবস্থা ব্যর্থতা নয়, "অনিশ্চয়তা"। ক্রেডিট রিকোয়েস্ট টাইমআউট হলে টাকা জমা হয়েও থাকতে পারে, না-ও হতে পারে। এগুলো চোখ বুজে রিট্রাই করা যাবে না, সরাসরি ব্যর্থ বলেও দাগানো যাবে না, আগে অর্ডার কুয়েরি করে অবস্থা নিশ্চিত করে তারপর পরের ধাপ ঠিক করতে হবে। ব্যর্থতার পথ ঠিকমতো ডিজাইন না করলে অটোমেশন মানেই স্বয়ংক্রিয়ভাবে টাকা হারানো।
- ক্রমটা পাকা করে লিখে রাখুন: টাকা জমা হয়েছে নিশ্চিত হওয়ার পরেই LINE পুশে জানান। পুশ দুবার গেলে বড়জোর একটা বাড়তি মেসেজ, কিন্তু টাকা দুবার জমা হলে সেটা সরাসরি লোকসান, তাই দুই দিকের রিট্রাই কৌশল আলাদা হতেই হবে।
- প্রতিটা পেআউটের রেকর্ড রাখুন আর শিডিউল করে মিলিয়ে দেখুন: বটের দিকের পেআউট রেকর্ড আর সদস্য সিস্টেমের ক্রেডিট রেকর্ড নিয়ম করে মেলান, একটা না মিললেই অ্যালার্ট। পুরোপুরি স্বয়ংক্রিয় মানে কেউ দেখে না তা নয়, মানে শুধু গণ্ডগোল হলেই মানুষকে দেখতে হয়।
- পুশেরও খরচ আর কোটা আছে, তাই জমা হওয়ার নোটিফিকেশন আর মার্কেটিং মেসেজ আলাদা স্তরে সামলান, সিস্টেমের মেসেজ যেন পুরো কোটা খেয়ে না ফেলে।
ক্লাউডের তিন সেট: অটো-স্টার্ট, অ্যালার্ট, ব্যাকআপ, একটাও না থাকলে সেটা চালু হওয়া নয়
এই ধরনের বট হলো 24 ঘণ্টা মেসেজ নেওয়া একটা সার্বক্ষণিক সার্ভিস, অফিসের কোনো একটা কম্পিউটারে চালিয়ে রাখা মানেই একক ব্যর্থতার ঝুঁকি। আমাদের আদর্শ পদ্ধতি হলো ক্লাউড সার্ভারে ডিপ্লয় করা আর এই তিন সেট পুরোপুরি বসানো:
- অটো-স্টার্ট আর ক্র্যাশ থেকে নিজে থেকেই ফিরে আসা: systemd-তে Restart=always দিয়ে enable করুন, তাহলে সার্ভার রিবুট হলে সার্ভিস নিজেই উঠবে আর প্রসেস ক্র্যাশ করলে নিজেই আবার চালু হবে। একই ডিপ্লয়মেন্ট কাঠামোর আরেকটা সিস্টেমে বাস্তবে মেপে দেখেছি, প্রসেস জোর করে মেরে ফেলার প্রায় 6 সেকেন্ডের মধ্যেই systemd সেটাকে ফিরিয়ে এনেছে।
- বাইরে থেকে মনিটরিং আর অ্যালার্ট: মরে যাওয়া প্রসেস "আমি মরে গেছি" বলে পাঠাতে পারে না, তাই অ্যালার্ট সার্ভিসের নিজের রিপোর্টের উপর ছাড়া যাবে না, বাইরে থেকে জীবিত থাকার পরীক্ষা চালাতে হবে, আর বন্ধ হলেই সরাসরি ফোনে খবর যেতে হবে।
- ডেটার স্বয়ংক্রিয় ব্যাকআপ: বাইন্ডিং টেবিল আর চেক-ইন ও পেআউটের রেকর্ডই এই সিস্টেমের প্রাণ। আমরা ডেটাবেস প্রতি 6 ঘণ্টায় ক্লাউড অবজেক্ট স্টোরেজে স্বয়ংক্রিয়ভাবে ব্যাকআপ করি, যা সার্ভার থেকে আলাদা ব্যর্থতার ডোমেইনে থাকে, আর কয়েকটা কপি রাখা হয় যাতে পিছিয়ে যাওয়া যায়, ফলে সার্ভার উড়ে গেলেও বড়জোর কয়েক ঘণ্টার ডেটা যাবে, পুরোটা নয়।
শেষ কথা
চেক-ইন, বাইন্ডিং, পেআউট, লটারি, আলাদা করে দেখলে কোনোটাই কঠিন নয়; কঠিন হলো ডুপ্লিকেট, টাইমআউট, আগেভাগে বাইন্ডিং দখল, ভুয়া এন্ট্রি আর সার্ভার বসে যাওয়া, এই ব্যর্থতার পথগুলো একবারেই ডিজাইনে ঢুকিয়ে নেওয়া। পুরোপুরি স্বয়ংক্রিয় সিস্টেমের মান ঠিক করে দেয় তার ব্যর্থতার পথগুলোই। আপনার সদস্য ব্যবস্থাপনা যদি এখনো হাতে তালিকা মেলানো বা হাতে পেআউট করাতেই আটকে থাকে, কিংবা চালু বটে ডুপ্লিকেট সুরক্ষা আর ব্যাকআপ যোগ করতে চান, আমাদের সঙ্গে কথা বলতে পারেন, দেখা যাক কোন অংশটা আগে স্বয়ংক্রিয় করা সবচেয়ে কাজে দেবে।
এই কাঠামোটা আমরা প্রোডাক্ট বানিয়ে ফেলেছি
উপরের পুরো সিস্টেম ডিজাইন আমরা বানিয়ে ফেলেছি LINE OA স্মার্ট ম্যানেজমেন্ট প্ল্যাটফর্মে, তাই আপনাকে নিজে সার্ভার, সিগনেচার, আইডেমপোটেন্সি বা ব্যাকআপ সামলাতে হবে না।
- API ইন্টিগ্রেশন: বটকে আপনার নিজের অর্ডার বা মেম্বারশিপ সিস্টেমের সঙ্গে জোড়া, সঙ্গে আইডেন্টিটি ম্যাপিংয়ের বাইন্ডিং টেবিল
- 8 ধাপের ফানেল ট্র্যাকিং: প্রতিটা ফ্রেন্ড নিজে থেকেই একটা ধাপে বসে, নিজে স্টেট মেশিন লিখতে হয় না
- CRM কন্টাক্ট ম্যানেজমেন্ট: ব্যবহারকারীর প্রোফাইল, আচরণের ইতিহাস আর ট্যাগ এক জায়গায়
- সেগমেন্টেড পুশ: ধাপ আর ট্যাগ ধরে প্রাপক বাছাই, যাতে মেসেজের খরচ ঠিক লোকের পেছনে যায়
- কিওয়ার্ড অটো-রিপ্লাই: কিওয়ার্ড, ইভেন্ট আর কন্ডিশন, তিন ধরনের ট্রিগার
- AI সাপোর্ট এজেন্ট: RAG নলেজ বেস আর LLM, উত্তর দিতে না পারলে নিজেই মানুষের কাছে পাঠায়
তিনটা স্তর, মাসিক ফি USDT-তে, কোনো লক-ইন নেই:
| প্ল্যান | মাসিক ফি | অফিসিয়াল অ্যাকাউন্ট | ফ্রেন্ডের সীমা | মূল কথা |
|---|---|---|---|---|
| Starter | $29 USDT | 1টি | 5,000 | Rich Menu ডিজাইন, কিওয়ার্ড অটো-রিপ্লাই, বেসিক ফানেল ট্র্যাকিং |
| Growth | $79 USDT | 3টি | 30,000 | সঙ্গে AI সাপোর্ট এজেন্ট, পূর্ণ 8 ধাপের ফানেল, সেগমেন্টেড পুশ |
| Professional | $199 USDT | 5টি | সীমাহীন | সঙ্গে CRM কন্টাক্ট ম্যানেজমেন্ট, আপনার ব্যাকএন্ডে API ইন্টিগ্রেশন |
প্ল্যানের অফিসিয়াল অ্যাকাউন্ট আপনার নিজের নামেই নিবন্ধিত থাকে, আমাদের নামে রাখা হয় না। পূর্ণ স্পেসিফিকেশন আছে LINE OA স্মার্ট ম্যানেজমেন্ট প্ল্যাটফর্ম পাতায়, আর পুরোপুরি কাস্টম সিস্টেম ডেভেলপমেন্টের জন্য দেখুন অটোমেশন ডেভেলপমেন্ট। আগে LINE Official Account-এর কাঠামোটা বুঝে নিতে চাইলে পড়ুন LINE Official Account সম্পূর্ণ গাইড।
এই ধরনের সমস্যা আমরা প্রতিদিন সমাধান করি
আপনার পরিস্থিতি জানান, আমরা সরাসরি বলব এটা সম্ভব কিনা এবং আনুমানিক খরচ কত।
Telegram-এ আলাপ করুন