Chuyện thường gặp
Anh chị có bảng theo dõi khách. Cột tên, cột số, cột hẹn gọi lại.
Bảng thì đúng. Nhưng phải mở ra mới biết hôm nay cần gọi ai.
Hôm nào bận quá không mở, là mấy khách hẹn gọi lại hôm đó trôi luôn. Tuần sau nhớ ra thì khách đã mua chỗ khác.
Bảng không có lỗi. Lỗi ở chỗ bảng nằm im, chờ người mở.
Thứ anh chị cần không phải phần mềm đắt tiền
Google Sheet có sẵn một thứ ít người dùng: nó tự chạy được.
Đặt lịch cho bảng, mỗi sáng bảy giờ nó tự đọc chính mình, lọc ra việc đến hạn, rồi nhắn cho anh chị.
Không cần mở máy tính. Không cần bật gì. Bảng chạy trên máy chủ Google, miễn phí.
Bước 1 — Dựng bảng cho đúng
Mở Google Sheet, tạo bảng mới. Hàng đầu ghi tên cột — quan trọng là phải có một cột ngày:
Ngày hẹn | Việc | Khách | Số điện thoại | Trạng thái
Cột Ngày hẹn phải là ngày thật, không phải chữ. Chọn cả cột, bấm Định dạng → Số → Ngày.
Cột Trạng thái chỉ ghi hai chữ: Chưa hoặc Xong.
Điền thử vài dòng, trong đó một dòng để ngày hôm nay.
Bước 2 — Mở phần viết mã
Trong bảng đó, bấm Tiện ích mở rộng → Apps Script.
Cửa sổ mới mở ra, có sẵn mấy dòng. Xoá hết.
Bước 3 — Dán mã nhắc việc
Dán đoạn này vào, rồi thay hai dòng đầu bằng khoá và số nhà của anh chị:
var KHOA = "khoa-bot-cua-anh-chi";
var SO_NHA = "so-nha-cua-anh-chi";
function nhacViecMoiSang() {
var bang = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var duLieu = bang.getDataRange().getValues();
var homNay = Utilities.formatDate(new Date(), "GMT+7", "dd/MM/yyyy");
var danhSach = [];
for (var i = 1; i < duLieu.length; i++) {
var ngay = duLieu[i][0];
if (!ngay) continue;
var ngayChu = Utilities.formatDate(new Date(ngay), "GMT+7", "dd/MM/yyyy");
var trangThai = String(duLieu[i][4]).trim();
if (ngayChu === homNay && trangThai !== "Xong") {
danhSach.push("• " + duLieu[i][1] + " — " + duLieu[i][2] + " — " + duLieu[i][3]);
}
}
var tin = danhSach.length
? "☀️ Việc hôm nay (" + homNay + "):\n" + danhSach.join("\n")
: "☀️ Hôm nay (" + homNay + ") không có việc đến hạn.";
UrlFetchApp.fetch("https://api.telegram.org/bot" + KHOA + "/sendMessage", {
method: "post",
payload: { chat_id: SO_NHA, text: tin }
});
}
Bấm biểu tượng đĩa mềm để lưu.
Rồi bấm nút Chạy. Lần đầu nó xin cấp quyền — bấm cho phép, đi qua vài màn hình cảnh báo. Google cảnh báo vì đây là mã do chính anh chị vừa dán.
Điện thoại kêu là được.
Bước 4 — Đặt giờ chạy hằng ngày
Vẫn trong cửa sổ Apps Script, cột bên trái bấm biểu tượng đồng hồ (Trình kích hoạt) → Thêm trình kích hoạt.
Chọn đúng bốn ô này:
| Ô | Chọn |
|---|---|
| Hàm chạy | nhacViecMoiSang |
| Nguồn sự kiện | Dựa trên thời gian |
| Loại kích hoạt | Bộ hẹn giờ theo ngày |
| Khoảng thời gian | 7h – 8h sáng |
Bấm Lưu. Xong. Từ mai, sáng nào cũng có tin.
Bước 5 — Bảo máy làm bản báo cáo riêng của anh chị
Bảng của mỗi người mỗi khác. Đưa bảng của anh chị cho máy, bảo nó viết đúng:
📋 Câu lệnh — chép nguyên cả khối
Tôi có một bảng Google Sheet, các cột lần lượt là:
[liệt kê tên từng cột theo đúng thứ tự, ví dụ: Ngày, Khách, Món, Số tiền, Đã thu]
Tôi muốn một đoạn mã Apps Script làm việc này:
- Mỗi tối 21 giờ, đọc bảng và gửi cho tôi qua Telegram một bản chốt sổ trong ngày:
bao nhiêu đơn, tổng tiền, còn bao nhiêu đơn chưa thu tiền
- Nếu có đơn nào chưa thu quá 7 ngày thì liệt kê riêng ra để tôi nhắc
Khoá bot và chat id để thành hai biến ở đầu file cho tôi tự thay.
Hướng dẫn tôi đặt lịch chạy tự động, ghi rõ từng ô phải chọn.
Tôi không biết lập trình.
⛔ Ba luật an toàn
Bảng có số điện thoại khách là dữ liệu cá nhân. Đừng chia sẻ bảng ở chế độ "bất kỳ ai có đường dẫn". Chỉ chia sẻ đích danh cho người cần.
Khoá bot nằm trong Apps Script thì an toàn. Nhưng nếu anh chị chia sẻ quyền sửa bảng cho người khác, họ mở Apps Script ra là thấy khoá. Chia sẻ quyền xem thôi.
Báo cáo tiền chỉ để anh chị đọc. Máy cộng sổ có thể sai nếu cột bị bỏ trống hay ghi lẫn chữ. Coi con số nó gửi là bản nháp — trước khi báo cho ai hoặc quyết định gì, mở bảng đối chiếu lại.
Ba chỗ hay làm sai
Tin nhắn báo không có việc, mà bảng rõ ràng có. Cột ngày đang là chữ chứ không phải ngày. Chọn cả cột, đặt lại Định dạng → Số → Ngày, gõ lại một ô cho chắc.
Nhắc sai ngày, lệch một hôm. Múi giờ. Trong mã phải là "GMT+7", đúng giờ Việt Nam.
Chạy tay thì được, đặt lịch thì im. Trình kích hoạt chọn nhầm tên hàm. Vào lại phần đồng hồ, kiểm tra ô "Hàm chạy" đúng là nhacViecMoiSang.
Sau bài này anh chị có gì
Bảng Google Sheet
(nằm sẵn)
|
7h sáng → lọc việc đến hạn → Telegram: "Hôm nay gọi 3 khách"
21h tối → cộng sổ trong ngày → Telegram: "8 đơn, 4,2 triệu, 2 đơn chưa thu"
Bảng không còn nằm im chờ người mở nữa. Nó tự đọc mình và tự gọi anh chị. Muốn thêm bản nhắc nào, chỉ cần viết thêm một hàm và đặt thêm một cái đồng hồ.