Bắt đầu nhanh: từ số không đến vận hành, không bỏ sót bước nào
Lối mặc định là lưu trữ trên đám mây: chỉ cần một chiếc điện thoại và khoảng 10 phút — không máy chủ, không lập trình. Mỗi bước đều cho bạn biết cần mở màn hình nào và chạm vào đâu, cùng những cạm bẫy mà người ta thực sự gặp phải.
🧾 Danh sách chuẩn bị
- Telegram Premium — các tính năng Telegram Business mà LingoDesk dựa vào (chuyển tiếp tin nhắn tới một con bot) chỉ dành cho Premium. Không có Premium thì không thứ gì hoạt động được.
- Một chiếc điện thoại — đó là tất cả những gì chế độ lưu trữ đám mây (mặc định) cần: làm Bước 1–3 trên điện thoại, gửi token cho chúng tôi, xong.
- Chỉ khi tự lưu trữ: Node.js ≥ 20 (hoặc Docker), một API Key của Anthropic, và một máy tính/máy chủ luôn bật. Mã nguồn miễn phí và mở trên GitHub.
1Tạo bot trong BotFather
Trong Telegram, tìm @BotFather (để ý huy hiệu xác minh màu xanh) và tiến hành đoạn hội thoại sau:
🤖 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…
- "name" chỉ là tên hiển thị; "username" phải là duy nhất trên toàn cầu và kết thúc bằng
bot — nếu đã có người dùng, hãy thử tên khác.
- Chuỗi
digits:letters trong câu trả lời cuối cùng chính là BOT_TOKEN của bạn. Sao chép và cất giữ nơi an toàn. Nó gần như là mật khẩu của bot — đừng bao giờ chia sẻ.
1a. Bật Secretary Mode (bắt buộc; trước đây là "Business Mode")
⚠️ Vào tháng 5 năm 2026, Telegram đã đổi tên công tắc này thành Secretary Mode; các phiên bản cũ có thể vẫn ghi là Business Mode — cùng một thứ. Hãy làm việc này bên trong khung chat @BotFather (không phải trang hồ sơ bot của bạn, và cũng không phải mục cài đặt Telegram trên điện thoại). Có hai giao diện — cái nào cũng được:
Giao diện ① Lệnh kiểu cũ — chỉ cần gửi tin nhắn:
/mybots→
@my_lingodesk_bot→
Bot Settings→
Secretary Mode→
Turn on
Giao diện ② Bảng quản lý mới — chạm nút Open màu xanh cạnh ô soạn tin của BotFather:
Open (bảng điều khiển)→
chọn bot của bạn→
Settings→
Mode Settings→
gạt bật Secretary Mode
Không tìm thấy? ① Nó có hai tên: Secretary Mode ở phiên bản mới, Business Mode ở phiên bản cũ — hãy tìm một trong hai; ② đảm bảo bạn đang ở trong @BotFather, không phải mục cài đặt bot của chính bạn; ③ công tắc này không liên quan gì đến Telegram Premium — Premium chỉ quan trọng khi liên kết ở phía tài khoản của bạn tại Bước 2; ai cũng có thể gạt công tắc này.
Nếu không bật Secretary Mode, Telegram sẽ hiện một cửa sổ bật lên — "This bot doesn't support Telegram Business yet" — khi bạn thử thêm bot ở Bước 2. Đây là rào cản phổ biến nhất. Cứ gạt công tắc: nó có hiệu lực tức thì, không cần tạo lại bot; chỉ việc thử thêm lại.
1b. Tắt Group Privacy (bắt buộc)
/mybots→
@my_lingodesk_bot→
Bot Settings→
Group Privacy→
Turn off
Group Privacy mặc định bật, và khi còn bật thì bot không thể thấy các câu trả lời bạn gõ trong nhóm console — triệu chứng là "tôi gõ trong chủ đề mà chẳng có gì xảy ra". Hãy tắt nó đi (BotFather phải báo Privacy mode is disabled).
2Liên kết bot trong Telegram Business
Trên ứng dụng Telegram di động (hiện thiết lập này chỉ có trên di động):
⚙️ Cài đặt→
💼 Telegram Business→
🤖 Chatbots
Ở phiên bản mới hơn, mục này có tên "Chat Automation" — nhãn khác, cùng một lối vào.
- Gõ username của bot (ví dụ
my_lingodesk_bot) vào ô tìm kiếm rồi chọn nó.
- Quyền: bật "Reply to messages" — nếu không, bot có thể đọc nhưng không bao giờ gửi thay bạn được.
- Với mục "những cuộc trò chuyện nào", hãy chọn All 1:1 Chats; thêm bất kỳ liên hệ riêng tư nào bạn muốn giữ ngoài luồng chuyển tiếp vào danh sách Excluded Chats.
Sau khi liên kết, mọi tin nhắn riêng tư bạn nhận được đều âm thầm được "cc" cho bot — phía bên kia chẳng nhận ra gì, và trải nghiệm chat của chính bạn cũng không thay đổi chút nào.
3Tạo nhóm diễn đàn console của bạn
Nhóm này là bàn làm việc của bạn: mỗi liên hệ một chủ đề, với các thẻ tin nhắn song ngữ hiện lên bên trong.
- Tạo một nhóm: New → New Group, thêm bot của bạn làm thành viên duy nhất (tìm theo username). Đặt tên tùy ý, ví dụ "LingoDesk Console".
- Bật Topics: mở nhóm → chạm vào tên để vào hồ sơ → Edit → gạt bật Topics. Nhóm sẽ nâng cấp thành supergroup và có danh sách chủ đề.
- Thăng bot lên quản trị viên: hồ sơ → Administrators → Add Admin → chọn bot của bạn → tích "Manage Topics" (giữ nguyên phần còn lại) → lưu.
Bot tự động tạo một chủ đề cho mỗi liên hệ. Nếu thiếu quyền admin + "Manage Topics" thì việc đó thất bại — triệu chứng là "khách hàng nhắn cho tôi nhưng chẳng thấy gì hiện trong nhóm".
Nhóm chỉ cần bạn và bot — không cần người nào khác. Nếu bạn thêm một cộng sự, các câu trả lời của họ trong một chủ đề cũng sẽ kích hoạt dịch và gửi đi y như của bạn.
4Chọn một: ☁️ Lưu trữ đám mây hoặc 💻 Tự lưu trữ
Mọi thứ ở phía điện thoại đã xong. Giờ hãy chọn lối đi của bạn — không có máy chủ? Chọn A: chẳng phải cài gì cả.
☁️ Phương án A · Lưu trữ đám mây (khuyên dùng: không máy chủ, không lập trình, tức thì)
- Nhắn cho bot kích hoạt chính thức @LingoDeskbot, gửi
/start, rồi dán thẳng BOT_TOKEN từ Bước 1 vào khung chat.
- Kích hoạt tự động tức thì: khi token được xác thực, bot trả lời "🎉 Activated" (và xóa tin nhắn chứa token của bạn). Gói Miễn phí gồm 300 câu trả lời được dịch/tháng; nâng lên Pro (500 ⭐/tháng) bất cứ lúc nào để dùng không giới hạn. Bộ máy dịch do chúng tôi lo — không phải đăng ký API Key nào cả.
- Làm theo câu trả lời của bot để hoàn tất liên kết, rồi gửi
/bind trong nhóm console của bạn — bot trả lời "✅ bound" là xong. Nhảy tới Bước 5 để thử. Nhắn /status cho bot bất cứ lúc nào, hoặc /native en để đặt ngôn ngữ của chính bạn.
Lo lắng khi giao token? Nó được lưu trữ dạng mã hóa và chỉ dùng để chuyển tiếp những cuộc trò chuyện bạn đã cho phép trong Telegram Business — và bạn luôn nắm quyền: thu hồi nó bất cứ lúc nào trong BotFather (/mybots → API Token → Revoke) và token cũ chết ngay lập tức.
💻 Phương án B · Tự lưu trữ (máy của riêng bạn, dữ liệu của riêng bạn)
Trước tiên lấy một khóa dịch tại console.anthropic.com → API Keys → Create Key (sk-ant-…; vài đô la tín dụng dùng được rất lâu với mức khoảng $0.001 mỗi tin nhắn). Rồi:
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
Khi bạn thấy dòng banner, gửi /bind trong nhóm console để liên kết (ID nhóm và ID người dùng của bạn được tự động nhận diện — không phải tra con số nào). Trên máy chủ, Docker chỉ một lệnh: docker compose up -d — xem GitHub README.
Một token bot = một phiên bản đang chạy, trên toàn cầu (409 Conflict = một tiến trình cũ vẫn đang giữ nó). Nếu chúng tôi lưu trữ giúp bạn, đừng chạy thêm một phiên bản cục bộ.
5Thử trò chuyện
Từ một tài khoản Telegram khác (tài khoản thứ hai hoặc của một người bạn), gửi một tin nhắn riêng bằng ngoại ngữ đến tài khoản cá nhân của bạn (không phải cho bot!) — chẳng hạn "Hola, ¿cuánto cuesta?" bằng tiếng Tây Ban Nha. Trong vài giây, một chủ đề mới mang tên người gửi sẽ xuất hiện trong nhóm console của bạn:
📋 LingoDesk Console · chủ đề: @amigo_es
my_lingodesk_bot🆕 Liên hệ mới @amigo_es (es)
Bản gốc: Hola, ¿cuánto cuesta?
🌐 Chào bạn, giá bao nhiêu vậy?
─────
↳ Gõ vào đây bằng ngôn ngữ của bạn — nó được gửi đi bằng es, dưới danh nghĩa chính bạn
Gói A giá $100 và bao gồm mọi tính năng.
my_lingodesk_bot📤 Xem trước bản dịch (→es), chỉ gửi sau khi bạn xác nhận:
El paquete A cuesta 100 dólares e incluye todas las funciones.
(Tin nhắn của bạn: Package A is $100…)
[ ✅ Gửi cho khách hàng ] [ ✏️ Hủy ]
Chạm "✅ Gửi cho khách hàng" — phía bên kia thấy tài khoản cá nhân của bạn trả lời bằng tiếng Tây Ban Nha lưu loát. Cả vòng lặp giờ đã chạy 🎉
- Ảnh, tệp và tin nhắn thoại họ gửi đều được chuyển vào chủ đề và lưu trữ tự động.
- Nhận diện sai ngôn ngữ? Gửi
/lang es trong chủ đề để chỉnh lại; /help liệt kê tất cả lệnh.
- Trả lời thủ công từ điện thoại cũng được — bot sẽ ghi lại vào kho lưu trữ của chủ đề.
- Bạn cũng có thể chủ động bắt chuyện — không cần chờ họ. Nhắn cho bất kỳ ai từ tài khoản thật của bạn (dù chỉ là "hi") và họ lập tức xuất hiện trong console với một chủ đề được tạo sẵn; từ đó, cứ gõ tại đây bằng ngôn ngữ của bạn để tiếp tục trò chuyện với họ.
🔧 Khắc phục sự cố
Khách hàng nhắn cho tôi nhưng chẳng thấy gì hiện trong nhóm console
Kiểm tra theo thứ tự: ① BotFather → Business Mode đã bật (Bước 1a); ② Telegram Business → Chatbots đã liên kết bot của bạn và cuộc trò chuyện đó nằm trong phạm vi (Bước 2); ③ bot là quản trị viên nhóm với quyền "Manage Topics" (Bước 3); ④ nhóm console đã được liên kết — gửi /bind trong đó; ⑤ với người tự lưu trữ: tiến trình bot vẫn đang chạy không lỗi.
Cửa sổ bật lên khi thêm bot: "This bot doesn't support Telegram Business yet"
Business Mode chưa được bật trong BotFather (Bước 1a). Vào @BotFather → /mybots → chọn bot của bạn → Bot Settings → Business Mode → Turn on. Nó có hiệu lực tức thì — không cần tạo lại bot hay gửi lại token; chỉ việc quay lại Telegram Business → Chatbots và thêm lại. Người dùng lưu trữ đám mây có thể nhắn @LingoDeskbot /status để kiểm tra lại mục này.
Tôi gửi /bind trong nhóm mà chẳng có gì xảy ra
① Group Privacy vẫn còn bật (Bước 1b) — hãy tắt nó, rồi xóa và thêm lại bot; ② Topics chưa được bật trên nhóm; ③ người dùng lưu trữ đám mây: đảm bảo @LingoDeskbot đã trả lời "Activated" (nhắn /status để kiểm tra); ④ người tự lưu trữ: đảm bảo tiến trình đang chạy.
Giao BOT_TOKEN của tôi cho dịch vụ lưu trữ đám mây có an toàn không?
Token được lưu trữ dạng mã hóa và chỉ dùng để chuyển tiếp các cuộc trò chuyện trong phạm vi bạn đã cho phép trong Telegram Business — và bạn có thể loại trừ các liên hệ riêng tư (Bước 2). Bạn luôn nắm quyền: thu hồi nó bất cứ lúc nào qua BotFather → /mybots → API Token → Revoke; token cũ chết ngay lập tức và dịch vụ dừng lại. Muốn tiếp tục, chỉ cần gửi token mới cho @LingoDeskbot.
Tôi gõ trong một chủ đề mà bot chẳng làm gì
Chín trên mười trường hợp là do Group Privacy vẫn còn bật (Bước 1b). BotFather → Bot Settings → Group Privacy → Turn off, rồi xóa bot khỏi nhóm và thêm lại (thay đổi chỉ áp dụng sau khi bot tham gia lại), và thăng nó lên admin một lần nữa.
Khởi động thất bại với 409 Conflict
Có hai phiên bản đang chạy trên cùng một token. Tìm và dừng tiến trình cũ (Ctrl+C hoặc pkill -f "tsx.*main.ts"), chờ mười giây, rồi khởi động lại.
"Gửi cho khách hàng" thất bại với một lỗi chung chung
Kiểm tra theo thứ tự khả năng: ① quyền "Reply to messages" đang tắt (phổ biến nhất) — Settings → Telegram Business → Chat Automation (Chatbots) → chọn bot của bạn → bật "Reply to messages"; không có nó bot có thể đọc nhưng không bao giờ gửi; ② cuộc trò chuyện của khách hàng không nằm trong phạm vi chat mà bot truy cập được (cùng trang đó); ③ liên hệ đã hơn 24 giờ không nhắn cho bạn — Telegram chặn việc bot chủ động gửi; hãy nhờ họ gửi bất cứ gì trước. Người dùng lưu trữ đám mây: nhắn @LingoDeskbot /status — dòng "reply permission" cho bạn câu trả lời trực tiếp.
"Gửi cho khách hàng" thất bại: liên hệ đã im lặng quá lâu
Một hạn chế của Telegram: nếu một cuộc trò chuyện đã ngừng hoạt động quá lâu, bot không thể chủ động thay bạn (BUSINESS_PEER_USAGE_MISSING). Hãy nhờ họ gửi bất cứ gì để kích hoạt lại, hoặc lần này trả lời thủ công từ điện thoại.
Gửi thất bại: business connection invalid
Vào Settings → Telegram Business → Chatbots, xóa và thêm lại bot — hoặc đơn giản chờ tin nhắn tiếp theo của khách hàng, nó cho phép bot tự động bắt được một kết nối mới.
Nhận diện sai ngôn ngữ / muốn một ngôn ngữ đích khác
Ngôn ngữ được khóa cố định ở tin nhắn đầu tiên của liên hệ (để tránh nhảy qua nhảy lại với các đoạn văn ngắn). Gửi /lang code trong chủ đề của liên hệ đó để chỉnh lại, ví dụ /lang pt (tiếng Bồ Đào Nha) hoặc /lang ar (tiếng Ả Rập).
Sau khi khởi động lại, các nút "Gửi / Hủy" cũ ngừng hoạt động
Các bản xem trước đang chờ nằm trong bộ nhớ và hết hạn khi khởi động lại (nút sẽ báo cho bạn biết). Chỉ cần gõ lại câu trả lời của bạn trong chủ đề. Liên hệ và lịch sử trò chuyện nằm trong cơ sở dữ liệu — không mất gì cả.
🎉 Mọi thứ đã chạy chưa?
Từ giờ, khách hàng cứ viết bằng bất kỳ ngôn ngữ nào họ thích — bạn chỉ việc gõ bằng ngôn ngữ của mình. Nếu có gì trục trặc, trước tiên hãy rà qua danh sách khắc phục sự cố ở trên; vẫn kẹt, hãy email cho chúng tôi kèm ảnh chụp lỗi trên terminal.
✉️ [email protected]