কুইক স্টার্ট: শূন্য থেকে চালু, কোনো ধাপ বাদ নয়

ডিফল্ট পথটি হলো ক্লাউড-হোস্টেড: শুধু একটি ফোন আর ~১০ মিনিট — কোনো সার্ভার নয়, কোনো কোড নয়। প্রতিটি ধাপ বলে দেয় কোন স্ক্রিন খুলতে হবে আর কীসে ট্যাপ করতে হবে, সঙ্গে সেই ফাঁদগুলোও যা মানুষ সত্যিই ঠেকে।

সূচিপত্র চেকলিস্ট ধাপ ১ · BotFather-এ আপনার বট তৈরি করুন (দুটি গুরুত্বপূর্ণ সুইচ) ধাপ ২ · Telegram Business-এ বট লিংক করুন ধাপ ৩ · আপনার কনসোল ফোরাম গ্রুপ তৈরি করুন ধাপ ৪ · একটি বেছে নিন: ☁️ ক্লাউড-হোস্টেড (প্রস্তাবিত) / 💻 সেলফ-হোস্ট ধাপ ৫ · টেস্ট চ্যাট সমস্যা সমাধান

🧾 চেকলিস্ট

1BotFather-এ আপনার বট তৈরি করুন

Telegram-এ @BotFather খুঁজুন (নীল ভেরিফিকেশন ব্যাজ দেখুন) এবং এই কথোপকথনটি করুন:

🤖 BotFather
/newbot
BotFatherAlright, a new bot. How are we going to call it? Please choose a name for your bot.
LingoDesk Assistant
BotFatherGood. Now let's choose a username for your bot. It must end in bot.
my_lingodesk_bot
BotFatherDone! Use this token to access the HTTP API:
8123456789:AAHfK3xxxxxxxxxxxxxxxxxxxxxxxxx
Keep your token secure and store it safely…

1a. Secretary Mode চালু করুন (আবশ্যক; আগে যাকে "Business Mode" বলা হতো)

⚠️ ২০২৬ সালের মে মাসে Telegram এই সুইচের নাম বদলে Secretary Mode রেখেছে; পুরনো ক্লায়েন্টে এখনো Business Mode লেখা থাকতে পারে — একই জিনিস। এটি করুন @BotFather চ্যাটের ভেতরে (আপনার বটের প্রোফাইল পৃষ্ঠায় নয়, এবং আপনার ফোনের Telegram সেটিংসেও নয়)। দুটি ইন্টারফেস — যেকোনোটিই চলবে:

ইন্টারফেস ① ক্লাসিক কমান্ড — শুধু বার্তা পাঠান:

/mybots @my_lingodesk_bot Bot Settings Secretary Mode Turn on

ইন্টারফেস ② নতুন ম্যানেজমেন্ট প্যানেল — BotFather-এর মেসেজ বক্সের পাশের নীল Open বোতামে ট্যাপ করুন:

Open (প্যানেল) আপনার বট বেছে নিন Settings Mode Settings Secretary Mode চালু করুন
খুঁজে পাচ্ছেন না? ① এর দুটি নাম আছে: নতুন ক্লায়েন্টে Secretary Mode, পুরনোতে Business Mode — যেকোনোটি খুঁজুন; ② নিশ্চিত করুন আপনি @BotFather-এর ভেতরে আছেন, আপনার নিজের বটের সেটিংসে নয়; ③ এই টগলের Telegram Premium-এর সঙ্গে কোনো সম্পর্ক নেই — Premium শুধু ধাপ ২-এ আপনার অ্যাকাউন্টের দিকে লিংক করার জন্য জরুরি; যে কেউ এই সুইচ ঘোরাতে পারে।
Secretary Mode ছাড়া, ধাপ ২-এ বটটি যোগ করতে গেলে Telegram একটি পপআপ দেখায় — "This bot doesn't support Telegram Business yet"। এটিই সবচেয়ে সাধারণ বাধা। সুইচটি ঘোরান: এটি সঙ্গে সঙ্গে কার্যকর হয়, বট আবার তৈরি করার দরকার নেই; শুধু আবার যোগ করার চেষ্টা করুন।

1b. Group Privacy বন্ধ করুন (আবশ্যক)

/mybots @my_lingodesk_bot Bot Settings Group Privacy Turn off
Privacy ডিফল্টভাবে চালু থাকে, এবং যতক্ষণ চালু থাকে বটটি আপনার কনসোল গ্রুপে টাইপ করা উত্তরগুলো দেখতে পারে না — লক্ষণ হলো "আমি টপিকে টাইপ করি কিন্তু কিছুই হয় না"। এটি বন্ধ করুন (BotFather-কে অবশ্যই বলতে হবে Privacy mode is disabled)।

2Telegram Business-এ বট লিংক করুন

মোবাইল Telegram অ্যাপে (এই সেটিং বর্তমানে শুধু মোবাইলেই আছে):

⚙️ Settings 💼 Telegram Business 🤖 Chatbots

নতুন ক্লায়েন্টে এই আইটেমটির নাম "Chat Automation" — আলাদা লেবেল, একই এন্ট্রি।

  1. সার্চ বক্সে আপনার বটের username (যেমন my_lingodesk_bot) টাইপ করে সেটি নির্বাচন করুন।
  2. অনুমতি: "Reply to messages" চালু করুন — এটি ছাড়া বট পড়তে পারে কিন্তু আপনার হয়ে কখনো পাঠাতে পারে না।
  3. "কোন চ্যাট"-এর জন্য All 1:1 Chats বেছে নিন; যে ব্যক্তিগত কন্টাক্টগুলো রিলে থেকে বাইরে রাখতে চান সেগুলো Excluded Chats তালিকায় যোগ করুন।
লিংক হয়ে গেলে, আপনার পাওয়া প্রতিটি ব্যক্তিগত বার্তা নীরবে বটকে "cc" করা হয় — অপর প্রান্ত কিছুই টের পায় না, এবং আপনার নিজের চ্যাট অভিজ্ঞতা মোটেও বদলায় না।

3আপনার কনসোল ফোরাম গ্রুপ তৈরি করুন

এই গ্রুপটি আপনার কর্মক্ষেত্র: প্রতি কন্টাক্টে একটি টপিক, ভেতরে দ্বিভাষিক মেসেজ কার্ড ভেসে ওঠে।

  1. একটি গ্রুপ তৈরি করুন: New → New Group, একমাত্র সদস্য হিসেবে আপনার বট যোগ করুন (এর username খুঁজুন)। যেকোনো নাম দিন, যেমন "LingoDesk Console"।
  2. Topics চালু করুন: গ্রুপ খুলুন → প্রোফাইলের জন্য নামে ট্যাপ করুন → Edit → Topics টগল চালু করুন। গ্রুপটি সুপারগ্রুপে আপগ্রেড হয় এবং একটি টপিক তালিকা পায়।
  3. বটকে অ্যাডমিন করুন: প্রোফাইল → Administrators → Add Admin → আপনার বট → "Manage Topics" চেক করুন (বাকিগুলো ডিফল্ট রাখুন) → সেভ করুন।
বটটি প্রতিটি কন্টাক্টের জন্য স্বয়ংক্রিয়ভাবে একটি টপিক তৈরি করে। অ্যাডমিন অধিকার + "Manage Topics" ছাড়া তা ব্যর্থ হয় — লক্ষণ হলো "একজন গ্রাহক আমাকে লিখেছে কিন্তু গ্রুপে কিছুই আসছে না"।
গ্রুপে শুধু আপনি আর বট দরকার — অন্য কোনো মানুষ নয়। যদি একজন সঙ্গী যোগ করেন, একটি টপিকে তাদের উত্তরও আপনার মতোই অনুবাদ ও পাঠানো ট্রিগার করে।

4একটি বেছে নিন: ☁️ ক্লাউড-হোস্টেড বা 💻 সেলফ-হোস্ট

ফোনের দিকে সবকিছু হয়ে গেছে। এবার আপনার পথ বেছে নিন — কোনো সার্ভার নেই? A বেছে নিন: ইনস্টল করার কিছুই নেই

☁️ অপশন A · ক্লাউড-হোস্টেড (প্রস্তাবিত: কোনো সার্ভার নয়, কোনো কোড নয়, তাৎক্ষণিক)

  1. অফিসিয়াল অ্যাক্টিভেশন বট @LingoDeskbot-কে DM করুন, /start পাঠান, তারপর ধাপ ১-এর BOT_TOKEN-টি সরাসরি চ্যাটে পেস্ট করুন।
  2. তাৎক্ষণিক স্বয়ংক্রিয় অ্যাক্টিভেশন: টোকেন যাচাই হয়ে গেলে এটি "🎉 Activated" উত্তর দেয় (এবং আপনার টোকেন বার্তাটি মুছে দেয়)। ফ্রি প্ল্যান মাসে ৩০০টি অনূদিত উত্তর কভার করে; সীমাহীনের জন্য যেকোনো সময় Pro (মাসে 500 ⭐)-তে আপগ্রেড করুন। অনুবাদ ইঞ্জিন আমাদের তরফে — সাইন আপ করার মতো কোনো API Key নেই।
  3. লিংক করা শেষ করতে এর উত্তর অনুসরণ করুন, তারপর আপনার কনসোল গ্রুপে /bind পাঠান — বটটি "✅ bound" উত্তর দেয় আর আপনার কাজ শেষ। টেস্ট করতে ধাপ ৫-এ যান। যেকোনো সময় এটিকে /status DM করুন, বা নিজের ভাষা সেট করতে /native en করুন।
টোকেন তুলে দেওয়া নিয়ে চিন্তিত? এটি এনক্রিপ্টেড অবস্থায় সংরক্ষিত হয় এবং শুধু Telegram Business-এ আপনার অনুমোদিত চ্যাটগুলো রিলে করতেই ব্যবহৃত হয় — এবং নিয়ন্ত্রণ আপনার হাতেই থাকে: BotFather-এ যেকোনো সময় বাতিল করুন (/mybots → API Token → Revoke) আর পুরনো টোকেন সঙ্গে সঙ্গে অকেজো হয়ে যায়।

💻 অপশন B · সেলফ-হোস্ট (আপনার নিজের মেশিন, আপনার নিজের ডেটা)

প্রথমে console.anthropic.comAPI KeysCreate Key-তে একটি অনুবাদ কী নিন (sk-ant-…; বার্তা প্রতি ~$0.001 হিসেবে কয়েক ডলারের ক্রেডিট অনেকদিন চলে)। তারপর:

git clone https://github.com/sanxiaozi/lingodesk.git cd lingodesk npm install cp .env.example .env # open .env — only BOT_TOKEN and ANTHROPIC_API_KEY are required npm run db:push # initialize the database (first run only) npm run dev 🚀 LingoDesk is up, bot = @my_lingodesk_bot

ব্যানারটি দেখা মাত্র, এটি লিংক করতে আপনার কনসোল গ্রুপে /bind পাঠান (গ্রুপ ID এবং আপনার ইউজার ID স্বয়ংক্রিয়ভাবে শনাক্ত হয় — কোনো নম্বর খুঁজতে হবে না)। সার্ভারে Docker এক কমান্ডেই: docker compose up -d — দেখুন GitHub README

একটি বট টোকেন = বিশ্বব্যাপী একটিই চালু ইনস্ট্যান্স (409 Conflict = একটি পুরনো প্রসেস এখনো এটি ধরে রেখেছে)। আমরা আপনাকে হোস্ট করলে, একটি লোকাল ইনস্ট্যান্সও চালাবেন না।

5টেস্ট চ্যাট

একটি ভিন্ন Telegram অ্যাকাউন্ট থেকে (দ্বিতীয় একটি অ্যাকাউন্ট বা কোনো বন্ধু), আপনার ব্যক্তিগত অ্যাকাউন্টে (বটে নয়!) একটি বিদেশি ভাষার DM পাঠান — যেমন স্প্যানিশে "Hola, ¿cuánto cuesta?"। কয়েক সেকেন্ডের মধ্যে, প্রেরকের নামে একটি নতুন টপিক আপনার কনসোল গ্রুপে হাজির হওয়ার কথা:

📋 LingoDesk Console · টপিক: @amigo_es
my_lingodesk_bot🆕 নতুন কন্টাক্ট @amigo_es (es)
মূল: Hola, ¿cuánto cuesta?
🌐 হাই, এর দাম কত?
─────
↳ এখানে নিজের ভাষায় টাইপ করুন — তা es-এ চলে যায়, আপনার নামেই পাঠানো
প্যাকেজ A-এর দাম $100 এবং এতে সব ফিচার অন্তর্ভুক্ত।
my_lingodesk_bot📤 অনুবাদ প্রিভিউ (→es), শুধু আপনার নিশ্চিতকরণের পরই পাঠানো:

El paquete A cuesta 100 dólares e incluye todas las funciones.

(আপনার বার্তা: প্যাকেজ A-এর দাম $100…)

[ ✅ গ্রাহককে পাঠান ] [ ✏️ বাতিল ]

"✅ গ্রাহককে পাঠান"-এ ট্যাপ করুন — অপর প্রান্ত দেখে আপনার ব্যক্তিগত অ্যাকাউন্টই সাবলীল স্প্যানিশে উত্তর দিচ্ছে। পুরো লুপটি এখন লাইভ 🎉

🔧 সমস্যা সমাধান

একজন গ্রাহক আমাকে লিখেছে কিন্তু কনসোল গ্রুপে কিছুই আসছে না

ক্রম অনুযায়ী যাচাই করুন: ① BotFather → Business Mode চালু আছে (ধাপ 1a); ② Telegram Business → Chatbots-এ আপনার বট লিংক করা এবং সেই চ্যাটটি স্কোপের মধ্যে (ধাপ ২); ③ বটটি গ্রুপ অ্যাডমিন এবং "Manage Topics" আছে (ধাপ ৩); ④ কনসোল গ্রুপটি বাউন্ড — এতে /bind পাঠান; ⑤ সেলফ-হোস্টার: বট প্রসেসটি এখনো ত্রুটি ছাড়াই চলছে।

বট যোগ করার সময় পপআপ: "This bot doesn't support Telegram Business yet"

BotFather-এ Business Mode চালু নেই (ধাপ 1a)। @BotFather → /mybots → আপনার বট → Bot Settings → Business Mode → Turn on-এ যান। এটি সঙ্গে সঙ্গে কার্যকর হয় — বট আবার তৈরি বা টোকেন আবার জমা দেওয়ার দরকার নেই; শুধু Telegram Business → Chatbots-এ ফিরে গিয়ে আবার যোগ করুন। ক্লাউড-হোস্টেড ব্যবহারকারীরা এটি ডাবল-চেক করতে @LingoDeskbot-কে /status DM করতে পারেন।

আমি গ্রুপে /bind পাঠাই কিন্তু কিছুই হয় না

① Group Privacy এখনো চালু (ধাপ 1b) — এটি বন্ধ করুন, তারপর বটটি সরিয়ে আবার যোগ করুন; ② গ্রুপে Topics চালু নেই; ③ ক্লাউড-হোস্টেড ব্যবহারকারী: নিশ্চিত করুন @LingoDeskbot "Activated" উত্তর দিয়েছে (যাচাই করতে এটিকে /status DM করুন); ④ সেলফ-হোস্টার: নিশ্চিত করুন প্রসেসটি চলছে।

ক্লাউড হোস্টিংয়ের জন্য আমার BOT_TOKEN তুলে দেওয়া কি নিরাপদ?

টোকেনটি এনক্রিপ্টেড অবস্থায় সংরক্ষিত হয় এবং শুধু Telegram Business-এ আপনার অনুমোদিত স্কোপের মধ্যে চ্যাট রিলে করতেই ব্যবহৃত হয় — এবং আপনি ব্যক্তিগত কন্টাক্ট বাদ দিতে পারেন (ধাপ ২)। নিয়ন্ত্রণ আপনার হাতেই থাকে: যেকোনো সময় BotFather → /mybots → API Token → Revoke দিয়ে বাতিল করুন; পুরনো টোকেন সঙ্গে সঙ্গে অকেজো হয় এবং সেবা বন্ধ হয়। আবার শুরু করতে, শুধু নতুন টোকেনটি @LingoDeskbot-কে পাঠান।

আমি টপিকে টাইপ করি কিন্তু বট কিছুই করে না

দশবারে নয়বারই এটি Group Privacy এখনো চালু থাকার কারণে (ধাপ 1b)। BotFather → Bot Settings → Group Privacy → Turn off, তারপর বটটি গ্রুপ থেকে সরিয়ে আবার যোগ করুন (পরিবর্তনটি শুধু আবার যোগ দেওয়ার পরই প্রযোজ্য), এবং আবার অ্যাডমিন করুন।

409 Conflict দিয়ে স্টার্টআপ ব্যর্থ হয়

একই টোকেনে দুটি ইনস্ট্যান্স চলছে। পুরনো প্রসেসটি খুঁজে বন্ধ করুন (Ctrl+C বা pkill -f "tsx.*main.ts"), দশ সেকেন্ড অপেক্ষা করুন, আবার শুরু করুন।

"গ্রাহককে পাঠান" একটি সাধারণ ত্রুটি দিয়ে ব্যর্থ হয়

সম্ভাবনার ক্রম অনুযায়ী যাচাই করুন: ① "Reply to messages" অনুমতি বন্ধ (সবচেয়ে সাধারণ) — Settings → Telegram Business → Chat Automation (Chatbots) → আপনার বট → "Reply to messages" চালু করুন; এটি ছাড়া বট পড়তে পারে কিন্তু কখনো পাঠাতে পারে না; ② গ্রাহকের চ্যাটটি বটের অ্যাক্সেসযোগ্য-চ্যাট স্কোপের মধ্যে নেই (একই পৃষ্ঠা); ③ কন্টাক্টটি ২৪ ঘণ্টার বেশি সময় ধরে আপনাকে মেসেজ করেনি — Telegram বট-শুরু করা পাঠানো ব্লক করে; তাদের আগে যেকোনো কিছু পাঠাতে বলুন। ক্লাউড-হোস্টেড ব্যবহারকারী: @LingoDeskbot-কে /status DM করুন — "reply permission" লাইনটি সরাসরি উত্তর দেয়।

"গ্রাহককে পাঠান" ব্যর্থ: কন্টাক্ট বহুক্ষণ নিষ্ক্রিয়

একটি Telegram বিধিনিষেধ: একটি কথোপকথন বহুক্ষণ নিষ্ক্রিয় থাকলে, বট আপনার হয়ে শুরু করতে পারে না (BUSINESS_PEER_USAGE_MISSING)। পুনরায় সক্রিয় করতে তাদের যেকোনো কিছু পাঠাতে বলুন, অথবা এবারের জন্য ফোন থেকে নিজে হাতে উত্তর দিন।

পাঠানো ব্যর্থ: business connection invalid

Settings → Telegram Business → Chatbots-এ যান, বটটি সরিয়ে আবার যোগ করুন — অথবা শুধু গ্রাহকের পরবর্তী বার্তার জন্য অপেক্ষা করুন, যা বটকে স্বয়ংক্রিয়ভাবে একটি নতুন কানেকশন ধরতে দেয়।

ভুল ভাষা শনাক্ত / ভিন্ন লক্ষ্য ভাষা চাই

ভাষা কন্টাক্টের প্রথম বার্তায় লক হয় (ছোট টেক্সটে বারবার বদল এড়াতে)। সংশোধন করতে সেই কন্টাক্টের টপিকে /lang code পাঠান, যেমন /lang pt (পর্তুগিজ) বা /lang ar (আরবি)।

রিস্টার্টের পর, পুরনো "Send / Cancel" বোতাম কাজ করা বন্ধ করেছে

অপেক্ষমাণ প্রিভিউগুলো মেমরিতে থাকে এবং রিস্টার্টে মেয়াদ শেষ হয় (বোতামটি আপনাকে বলে দেবে)। শুধু টপিকে আবার আপনার উত্তর টাইপ করুন। কন্টাক্ট এবং চ্যাট ইতিহাস ডেটাবেসে থাকে — কিছুই হারায় না।

🎉 সব ঠিকঠাক চলছে?

এখন থেকে, গ্রাহকেরা যে ভাষায় খুশি লেখেন — আপনি শুধু নিজের ভাষায় টাইপ করেন। কিছু ভেঙে গেলে, প্রথমে উপরের সমস্যা সমাধানের তালিকাটি দেখে নিন; তবু আটকে থাকলে, টার্মিনাল ত্রুটির একটি স্ক্রিনশটসহ আমাদের ইমেইল করুন।

✉️ [email protected]