Tạo Báo Cáo Tự Động — Không Cần Ai Bấm Nút Mỗi Sáng

Tóm tắt nhanh: Trigger theo thời gian (time-driven trigger) cho phép 1 script tự chạy vào giờ cố định mỗi ngày — không cần ai mở máy, mở Sheets, hay bấm nút. Đây là cách biến 1 script thành hệ thống báo cáo tự động thực sự, không chỉ là công cụ chạy tay.
Khái niệm: time-driven triggerNhư cron job Unix, không cần serverGiới hạn: tối đa 6 phút/lần chạy

2 bài trước bạn học viết script lấy dữ liệu (API) và xử lý dữ liệu (Sheets/Gmail). Nhưng script đó vẫn cần CÓ NGƯỜI bấm nút “Run” mỗi lần. Bài này học cách để script tự chạy theo giờ đã định — biến công cụ thủ công thành hệ thống tự động thật.

Time-driven trigger — “đồng hồ báo thức” cho script

7:00 sángScript tự chạy(không ai bấm nút)Email báo cáotự động gửi
Đặt lịch 1 lần, script sẽ tự chạy đúng giờ mỗi ngày — kể cả khi không ai mở máy tính, vì script chạy trên máy chủ Google, không phải máy cá nhân.

2 cách đặt lịch — và giới hạn cần biết

Time-driven trigger — giống “cron job” nhưng không cần serverCách 1: giao diện kéo-thảTrình soạn Apps Script → Trình kích hoạt→ chọn hàm, chọn “theo thời gian”→ chọn 7-8 giờ sáng mỗi ngàyCách 2: viết code (ClockTriggerBuilder)ScriptApp.newTrigger(“guiBaoCao”).timeBased().everyDays(1).atHour(7).create();Giới hạn cần biết: script chạy tối đa 6 phút, tối thiểu cách nhau 1 phút giữa các lần chạy
Cách 1 (giao diện) dễ cho người mới. Cách 2 (code) linh hoạt hơn khi cần tạo/xóa trigger tự động theo điều kiện.

Google gọi đây là time-driven trigger (hay “clock trigger”) — nguyên lý giống “cron job” trong Linux mà nhiều hệ thống server vẫn dùng, nhưng bạn không cần tự quản lý server nào cả — Google Apps Script làm điều đó cho bạn hoàn toàn miễn phí (trong giới hạn hạn ngạch tài khoản cá nhân).

2 giới hạn quan trọng cần nhớ: mỗi lần chạy tối đa 6 phút (nếu xử lý dữ liệu quá lớn sẽ bị ngắt giữa đường), và tần suất tối thiểu là cách nhau 1 phút giữa các lần chạy — đủ dùng cho hầu hết nhu cầu báo cáo cá nhân/công việc hàng ngày.

Xem thêm

Video này (tiếng Anh) hướng dẫn trực tiếp cách đặt time trigger qua giao diện, đúng bước vừa học ở trên.

Checklist tự kiểm tra sau bài này
  • Bạn biết cách đặt time-driven trigger qua giao diện kéo-thả trong trình soạn Apps Script.
  • Bạn giải thích được sự khác nhau giữa chạy tay (Run) và chạy tự động (trigger).
  • Bạn nhớ được 2 giới hạn: tối đa 6 phút/lần chạy, tối thiểu 1 phút giữa các lần.
Cần nhớ

Sự khác biệt giữa “viết được script” và “có hệ thống tự động thật” chính là trigger. Nếu bạn vẫn phải nhớ mở máy bấm nút mỗi sáng, đó chưa phải tự động hóa — chỉ khi script tự chạy không cần ai nhớ, đó mới là tự động hóa đúng nghĩa.

Câu hỏi thường gặp

Nếu script lỗi khi tự chạy, tôi có biết không?

Có — Google tự động gửi email báo lỗi về tài khoản của bạn khi 1 trigger chạy thất bại, kèm link để sửa hoặc tắt trigger đó.

Có thể đặt nhiều trigger cho nhiều script khác nhau không?

Được — mỗi tài khoản có thể quản lý nhiều trigger cùng lúc qua Apps Script Dashboard, xem được toàn bộ lịch chạy ở 1 nơi duy nhất.

Kỹ thuật này có áp dụng để tự động cập nhật báo cáo đầu tư mỗi sáng không?

Chính xác — ghép với bài trước (lấy dữ liệu API), bạn có thể đặt trigger 7h sáng để tự lấy giá cổ phiếu mới nhất và gửi email tổng hợp, không cần tự làm tay mỗi ngày.

Nguồn: tài liệu chính thức Google Apps Script — “Installable Triggers” (developers.google.com/apps-script). Nội dung diễn giải lại bằng lời riêng.