Skip to content
// hd
Writing

Hai tiếng, hai giây: Telegram bot

Ở phần trước tôi kể chuyện dùng Google Apps Script để tự động hóa report ở AhaMove. Bài này kể phần hai: nối Apps Script với Telegram bot.

Hồi đó team tôi dùng Telegram để liên lạc. Mỗi sáng, ai đó phải vào sheet kéo số, format, rồi gửi vào group. Mỗi lần có form response mới, ai đó phải check rồi báo lại. Mỗi lần dashboard có số bất thường, ai đó phải phát hiện rồi ping team.

“Ai đó” thường là tôi….

Nên tôi viết bot. Mất một buổi chiều. Từ đó bot làm thay.

Cách setup đơn giản. Mở Telegram, tìm BotFather, gõ /newbot, đặt tên, nhận token. Mở Google Sheets, vào Extensions, chọn Apps Script, paste đoạn này.

var TELEGRAM_BOT_TOKEN = 'YOUR_BOT_TOKEN';
var CHAT_ID = 'YOUR_CHAT_ID';

function sendMessageToTelegram(message) {
  var telegramUrl = 'https://api.telegram.org/bot' + 
  TELEGRAM_BOT_TOKEN + '/sendMessage';
  var payload = {
    method: 'POST',
    payload: {
      chat_id: CHAT_ID,
      text: message,
      parse_mode: 'HTML'
    }
  };
  UrlFetchApp.fetch(telegramUrl, payload);
}

Thay token và chat ID vào, chạy thử, thấy tin nhắn trong Telegram. Xong. Phần còn lại chỉ là viết thêm function cho từng việc.

Ở AhaMove tôi dùng nó cho mấy chuyện:

Gửi số vào group mỗi sáng. Script kéo data từ sheet, format thành tin nhắn, gửi vào Telegram lúc 7h. Team mở điện thoại là thấy số, không cần mở laptop.

function dailyReport() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dashboard');
  var revenue = sheet.getRange('B2').getValue();
  var orders = sheet.getRange('B3').getValue();
  var message = "📊 Báo cáo sáng:\nDoanh thu: " + revenue + "\nĐơn hàng: " + orders;
  sendMessageToTelegram(message);
}

Báo khi có form response mới. Khách hàng điền form feedback, bot tự gửi vào group ngay lập tức. Không ai phải ngồi canh.

function onFormSubmit(e) {
  var response = e.values;
  var message = "📝 Feedback mới:\n" + response.join("\n");
  sendMessageToTelegram(message);
}

Cảnh báo khi số bất thường. Script check sheet mỗi giờ, nếu đơn hàng giảm dưới ngưỡng hoặc có dòng lỗi, bot ping ngay. Team không cần ngồi nhìn dashboard cả ngày.

Tự động append dòng vào sheet. Mỗi lần có data mới từ nguồn khác, script tự thêm dòng vào sheet, rồi bot báo “đã cập nhật.” Không ai phải copy paste.

Tự động fill số vào slides. Mỗi thứ sáu, script kéo số từ dashboard, điền vào Google Slides template, team chỉ việc mở ra trình bày. Không ai phải ngồi làm slide bằng tay nữa.

Gửi email tự động. Report hàng tuần gửi cho manager, script kéo số, format thành email, gửi qua Gmail. Tôi set trigger chạy mỗi thứ hai lúc 8h sáng.

Mỗi cái dưới 50 dòng code. Không fancy. Nhưng cộng lại, team tiết kiệm được vài tiếng mỗi tuần cho những việc không ai muốn làm mà ai cũng phải làm.

Phần lớn automation không cần tool phức tạp. Chỉ cần một cái sheet, vài dòng script, và một bot biết gửi tin nhắn đúng lúc.

Reach me if you have other perspectives, or just want to say hello.

Say something.