Hướng dẫn kết nối
Thiết lập Google Drive và Gmail để hệ thống hoạt động tự động
Hệ thống cần 2 kết nối để hoạt động tự động:
- Gmail OAuth — đọc email từ ShopeeFood / GrabFood của từng chi nhánh
- Google Drive — lưu file XLSX lên folder tháng tự động
- Telegram Bot — nhận cảnh báo scan, lỗi parse, email bất thường theo từng chi nhánh
Chia sẻ thư mục Google Drive cho hệ thống
Hệ thống dùng Service Account (tài khoản robot của Google) để tự động tải file lên Drive — không cần đăng nhập thủ công. Bạn chỉ cần chia sẻ thư mục Drive cho email robot một lần duy nhất.
- 1Truy cập Google DriveMở drive.google.com bằng tài khoản Google của công ty (hoặc tài khoản cá nhân bạn muốn lưu file).
- 2Tạo thư mục gốc (nếu chưa có)
Nhấn + Mới → Thư mục → đặt tên, ví dụ:
SFGF - Chè LiênMỗi chi nhánh có thể dùng thư mục riêng hoặc chung 1 thư mục.
- 3Lấy Folder ID từ URL
Mở thư mục vừa tạo. Nhìn URL trên trình duyệt:
https://drive.google.com/drive/folders/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upmsPhần được tô vàng chính là Folder ID. Copy lại.
- 4Chia sẻ thư mục cho Service Account
Nhấn chuột phải vào thư mục → Chia sẻ → Chia sẻ
Nhập email Service Account vào ô "Thêm người":
Email Service Account của hệ thống:invoice-agent@che-lien-agents.iam.gserviceaccount.comQuyền truy cập: chọn Người chỉnh sửa (Editor).
Bỏ tick "Thông báo cho mọi người" → nhấn Chia sẻ.
- 5Điền Folder ID vào Setup
Vào trang Setup → tìm chi nhánh tương ứng → dán Folder ID vào ô Google Drive Folder ID → nhấn Lưu.
Mỗi chi nhánh (HP, ĐBP) có thể điền folder riêng. Để trống → dùng folder mặc định cấu hình bởi admin.
📁 SFGF - Chè Liên ← Thư mục gốc (bạn tạo)
📁 File Dữ Liệu ← Tự động tạo
📁 Dữ Liệu GF T3/2026 ← Tự động tạo theo tháng
📄 HP_19032026_dulieu_GF.xlsx
📄 DBP_19032026_dulieu_GF.xlsx
📁 Dữ Liệu SF T3/2026
📄 HP_19032026_dulieu_SF.xlsx
📄 DBP_19032026_dulieu_SF.xlsx
📁 File ASP ← Tự động tạo
📁 ASP GF T3/2026
📄 HP_19032026_ASP_GF.xlsx
📄 DBP_19032026_ASP_GF.xlsx
📁 ASP SF T3/2026
📄 HP_19032026_ASP_SF.xlsx
📄 DBP_19032026_ASP_SF.xlsxMỗi kênh (SF/GF) tạo 2 file riêng để đối soát độc lập.
Kết nối Gmail của từng chi nhánh
Hệ thống cần quyền đọc Gmail để tự động tải file báo cáo từ ShopeeFood và GrabFood. Mỗi chi nhánh kết nối một lần — hệ thống sẽ tự gia hạn token mà không cần làm lại.
- 1Vào trang SetupTruy cập Setup → chọn chi nhánh cần kết nối.
- 2Nhấn Kết nối GmailNhấn nút Kết nối Gmail màu xanh. Trình duyệt sẽ chuyển sang trang đăng nhập Google.
- 3Đăng nhập đúng tài khoản Gmail
Đăng nhập bằng Gmail của chi nhánh đó (email nhận báo cáo từ ShopeeFood/GrabFood).
Lưu ý: Nếu bạn đang đăng nhập nhiều tài khoản Google, hãy chọn đúng tài khoản của chi nhánh. Nhầm tài khoản sẽ không scan được email. - 4Cấp quyềnGoogle sẽ hiển thị màn hình yêu cầu quyền. Nhấn Tiếp tục / Allow để đồng ý. Hệ thống chỉ đọc email — không gửi, không xóa.
- 5Hoàn tấtSau khi cấp quyền, trang sẽ tự chuyển về Setup và hiện thông báo Kết nối thành công kèm email vừa kết nối.
Thiết lập Telegram nhận cảnh báo
Hệ thống gửi thông báo Telegram khi scan xong, có lỗi parse, email bất thường hoặc dữ liệu không khớp kế toán. Mỗi chi nhánh có thể nhận cảnh báo vào group/chat riêng.
TELEGRAM_BOT_TOKEN do admin cấu hình trong .env (1 lần duy nhất). Chat ID từng chi nhánh điền tại trang Setup (không cần admin).- 1Mở BotFatherMở Telegram → tìm kiếm @BotFather → nhấn Start.
- 2Tạo bot mới
Gửi lệnh
/newbot→ BotFather hỏi tên bot → nhập tên hiển thị, ví dụ:Chè Liên SFGFTiếp theo nhập username (phải kết thúc bằng
bot), ví dụ:chelien_sfgf_bot - 3Lưu Bot Token
BotFather trả về token dạng:
7123456789:AAGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAdmin điền vào
.envtrên VPS:TELEGRAM_BOT_TOKEN=7123456789:AAGxxx...
- Tìm bot vừa tạo trên Telegram
- Nhấn Start (bắt buộc để bot nhận được tin)
- Mở trình duyệt, truy cập:
Tìm "chat":{"id": → số dương là Chat ID cá nhân.
- Thêm bot vào group với quyền thành viên
- Gửi 1 tin nhắn bất kỳ trong group
- Mở getUpdates tương tự bên trái
Chat ID group là số âm, dạng -1001234567890.
{
"result": [{
"message": {
"chat": {
"id": -1009876543210, ← Chat ID (copy số này)
"title": "Chè Liên HP - Báo cáo",
"type": "group"
}
}
}]
}- 1Vào trang SetupTruy cập Setup → tìm card chi nhánh tương ứng.
- 2Điền Telegram Chat IDDán Chat ID vào ô Telegram Chat ID → nhấn Lưu. Mỗi chi nhánh (HP, ĐBP) có thể điền chat ID khác nhau.
- 3Kiểm traChạy 1 lần scan tại Auto Scan → sau khi xong sẽ nhận được tin nhắn tóm tắt kết quả.
TELEGRAM_CHAT_ID mặc định từ env (nếu admin đã cấu hình).Kiểm tra kết nối hoạt động
- 1Kiểm tra GmailVào Auto Scan → nhấn Scan ngay cho chi nhánh vừa kết nối. Nếu có email chưa xử lý, hệ thống sẽ liệt kê file và trạng thái bên dưới.
- 2Kiểm tra DriveSau khi scan thành công, vào thư mục Drive đã chia sẻ — kiểm tra có thư mục tháng và 2 file XLSX được tạo không.
- 3Kiểm tra lịch sửVào Lịch sử — bản ghi mới nhất sẽ hiện link Drive trực tiếp.
Sử dụng hàng ngày
Cron job tự chạy 7:00 AM mỗi ngày. Hệ thống scan email, parse file, tạo XLSX và upload Drive mà không cần thao tác.
Bật/tắt tại trang Cấu hình.
Khi không nhận được email hoặc cần xử lý lại: vào Convert, tải file CSV/PDF lên, hệ thống xử lý và cho download ngay.
- Cuối tháng: vào Lịch sử lọc theo tháng → tải file ASP MISA về
- Import file XLSX vào phần mềm MISA theo hướng dẫn của MISA
- File Dữ Liệu dùng để đối soát với ShopeeFood/GrabFood
Câu hỏi thường gặp
Nút "Xóa dữ liệu test" — dùng khi nào và lưu ý gì?
Nút Xóa dữ liệu test nằm ở trang Setup. Mục đích: xóa sạch toàn bộ dữ liệu thử nghiệm trước khi đưa hệ thống vào sử dụng thật, đảm bảo không có dữ liệu rác lẫn vào báo cáo chính thức.
- • Toàn bộ lịch sử convert (ConvertHistory)
- • Dữ liệu tổng hợp theo ngày (DailyData)
- • Số chứng từ reset về NVK00001
- • Kết nối Gmail của từng chi nhánh
- • Cấu hình tài khoản kế toán (TK mapping)
- • Tên chi nhánh và cấu hình khác
- • File XLSX đã upload lên Google Drive
- • Label email trong Gmail (SFGF_Processed)
- Test hệ thống với dữ liệu thật của 1–2 ngày để kiểm tra file xuất đúng
- Trao đổi với kế toán xác nhận số chứng từ bắt đầu (ví dụ: NVK00123 nếu đã dùng đến NVK00122 trong MISA)
- Nhấn Xóa dữ liệu test để xóa sạch dữ liệu thử nghiệm
- Vào Cấu hình → cập nhật Số chứng từ bắt đầu đúng với số kế toán cung cấp
- Từ nay hệ thống sẽ đánh số chứng từ liên tục không trùng