Chuyện thường gặp
Có trang web rồi. Khách quan tâm thì nhắn tin, gọi điện, hoặc để lại số ở đâu đó.
Rồi thông tin nằm rải rác: cái trong Zalo, cái trong tin nhắn Facebook, cái ghi vội ra mảnh giấy.
Cuối tháng muốn xem tháng này có bao nhiêu người hỏi — không đếm nổi.
Thứ anh chị cần không phải phần mềm đắt tiền
Chỉ cần một bảng Google Sheet và một đoạn nối.
Khách điền trên web, tự động thêm một dòng vào bảng. Bảng đó anh chị mở bằng điện thoại, xem lúc nào cũng được, không mất đồng nào.
Đây là thứ nhiều nơi bán mấy trăm nghìn một tháng.
Bước 1 — Tạo bảng
Mở Google Sheet, tạo bảng mới. Hàng đầu tiên ghi tên các cột:
Thời gian | Tên | Số điện thoại | Nội dung | Nguồn
Đặt tên bảng cho dễ nhớ. Xong.
Bước 2 — Mở phần viết mã của bảng
Trong bảng vừa tạo, trên thanh trình đơn bấm:
Tiện ích mở rộng → Apps Script
Cửa sổ mới mở ra, có sẵn mấy dòng chữ. Xoá hết, dán đoạn này vào:
function doPost(e) {
var bang = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var d = JSON.parse(e.postData.contents);
bang.appendRow([
new Date(),
d.ten || "",
d.dienthoai || "",
d.noidung || "",
d.nguon || ""
]);
return ContentService.createTextOutput(JSON.stringify({ok: true}))
.setMimeType(ContentService.MimeType.JSON);
}
Bấm biểu tượng đĩa mềm để lưu.
Bước 3 — Cho phép trang web gọi vào
Vẫn trong cửa sổ đó, góc trên bên phải bấm Triển khai → Triển khai mới.
Chọn đúng ba ô này — sai một ô là không chạy:
| Ô | Chọn |
|---|---|
| Loại | Ứng dụng web |
| Thực thi với tư cách | Tôi |
| Ai có quyền truy cập | Bất kỳ ai |
Bấm Triển khai. Lần đầu nó hỏi 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, không phải mã của Google.
Xong, nó trả về một đường dẫn kết thúc bằng /exec. Chép lại.
Bước 4 — Nối vào trang web
Đưa đường dẫn đó cho máy, bảo nó viết phần trên web:
📋 Câu lệnh — chép nguyên cả khối
Tôi có một bảng Google Sheet nhận dữ liệu qua đường dẫn này:
[dán đường dẫn kết thúc bằng /exec]
Bảng nhận 4 thông tin, tên các ô lần lượt là: ten, dienthoai, noidung, nguon
Viết cho tôi một ô nhập thông tin để gắn vào trang web, gồm:
- Ô nhập tên, ô nhập số điện thoại, ô nhập nội dung
- Nút gửi
- Gửi xong hiện lời cảm ơn ngay tại chỗ, không nhảy sang trang khác
- Gửi lỗi thì báo cho khách biết, đừng im lặng
- Có một câu hỏi đơn giản kiểu "hai cộng ba bằng mấy" để chặn máy tự động điền rác
Viết bằng HTML và JavaScript thuần, không dùng thư viện ngoài.
Nói rõ cho tôi dán đoạn này vào chỗ nào trong trang web.
Dán đoạn nó trả về vào trang. Điền thử một cái — mở bảng ra, dòng đầu tiên đã nằm đó.
Bước 5 — Cho nó bắn luôn về Telegram
Đây là chỗ hay nhất. Khách điền xong, điện thoại anh chị kêu ngay.
Quay lại Apps Script, thêm mấy dòng này vào trước dòng return:
var KHOA = "khoa-bot-cua-anh-chi";
var SO_NHA = "so-nha-cua-anh-chi";
var tin = "Khách mới!"
+ "\nTên: " + (d.ten || "")
+ "\nĐiện thoại: " + (d.dienthoai || "")
+ "\nNội dung: " + (d.noidung || "");
UrlFetchApp.fetch("https://api.telegram.org/bot" + KHOA + "/sendMessage", {
method: "post",
payload: { chat_id: SO_NHA, text: tin }
});
Lưu, rồi bấm Triển khai → Quản lý bản triển khai → sửa → Phiên bản mới. Bước cuối này hay bị quên, quên là mã mới không chạy.
Từ giờ: khách điền trên web → một dòng vào bảng → điện thoại anh chị kêu. Không phải ngồi canh gì cả.
⛔ Ba điều phải nhớ về an toàn
Khoá bot để trong Apps Script, đừng để trong mã trang web. Mã trang web ai cũng xem được — bấm chuột phải chọn "xem nguồn trang" là thấy hết. Apps Script chạy trên máy chủ của Google, người ngoài không đọc được.
Đừng để đường dẫn /exec lộ ra chỗ công cộng. Ai có đường dẫn đó cũng đẩy được dữ liệu rác vào bảng của anh chị. Không nguy hiểm lắm nhưng phiền.
Nhớ thêm câu hỏi chặn máy tự động. Không có nó thì vài hôm bảng đầy dòng rác.
Sau bài này anh chị có gì
Trang web Bảng Google Sheet Điện thoại
(khách điền) → (lưu lại) → (mình biết ngay)
Ba thứ này miễn phí, chạy mãi, và không phụ thuộc vào ai cả. Muốn xem tháng này bao nhiêu người hỏi thì mở bảng ra đếm — có sẵn cả thời gian, cả nguồn khách đến từ đâu.