ใช้ Trigger ใน Google Apps Script ตั้งเวลาให้สคริปต์ทำงานอัตโนมัติ
อัปเดต 5 ตุลาคม 2026
Trigger คือกลไกที่ทำให้ Apps Script ทำงานเองโดยไม่ต้องกดปุ่ม เช่น สรุปยอดขายส่ง LINE ทุกคืน สำรองข้อมูลทุกสัปดาห์ หรือแจ้งเตือนทันทีเมื่อมีคนแก้ไขชีต
ระบบพร้อมใช้ที่เกี่ยวข้อง
ประเภทของ Trigger
| ประเภท | ทำงานเมื่อ | ตัวอย่างการใช้ |
|---|---|---|
onOpen(e) (simple) |
เปิดไฟล์ | สร้างเมนูกำหนดเอง |
onEdit(e) (simple) |
ผู้ใช้แก้ไขเซลล์ | ใส่วันเวลาอัตโนมัติ |
| เมื่อส่งแบบฟอร์ม (installable) | มีคนส่ง Google Form | แจ้งเตือน LINE |
| ตามเวลา (time-driven) | ทุกนาที/ชั่วโมง/วัน | สรุปยอดทุกคืน |
Simple trigger ทำงานได้ทันทีแต่ ทำงานที่ต้องขอสิทธิ์ไม่ได้ (เช่น ส่งอีเมล เรียก URL ภายนอก) ถ้าต้องใช้ ให้ตั้งเป็น installable trigger
สร้าง Trigger ด้วยโค้ด
function setupTriggers() {
// ลบของเดิมก่อน กันซ้ำ
ScriptApp.getProjectTriggers().forEach(t => ScriptApp.deleteTrigger(t));
ScriptApp.newTrigger('dailyReport')
.timeBased().atHour(22).everyDays(1)
.inTimezone('Asia/Bangkok')
.create();
}
function dailyReport() {
// สรุปยอดวันนี้ แล้วส่ง LINE / อีเมล
}
Trigger ไม่ทำงาน ตรวจอะไรบ้าง
- ดูที่เมนู การดำเนินการ (Executions) ว่ามี error อะไร
- ตั้ง เขตเวลาของโปรเจกต์ เป็น Asia/Bangkok ในการตั้งค่าโปรเจกต์
- Trigger แบบตามเวลาจะทำงาน "ในช่วง" ชั่วโมงที่กำหนด ไม่ใช่ตรงนาที
- เจ้าของ Trigger ต้องยังมีสิทธิ์ในไฟล์ และไม่ถูกเพิกถอนสิทธิ์
- ระวังโควต้าเวลาทำงานรวมของ Trigger ต่อวัน
คำถามที่พบบ่อย: Trigger ใน Apps Script
Time-driven trigger รายวันทำงานในช่วงชั่วโมงที่เลือก (คลาดเคลื่อนได้ไม่เกินประมาณ 1 ชั่วโมง) ถ้าต้องตรงเวลามากขึ้นใช้ trigger ทุกนาทีแล้วเช็กเวลาเอง
Simple trigger ไม่มีสิทธิ์เรียกบริการที่ต้องขออนุญาต ให้สร้าง installable trigger ประเภท "เมื่อแก้ไข" ชี้ไปที่ฟังก์ชันชื่ออื่นแทน
จำกัดจำนวน Trigger ต่อผู้ใช้ต่อสคริปต์ (ประมาณ 20 ตัว) ควรรวมงานหลายอย่างไว้ในฟังก์ชันเดียว
ระบบอื่นที่น่าสนใจ
POS ร้านขายยา
จ่ายยาถูกคน ถูกล็อต ไม่มียาหมดอายุค้างชั้น · ชื่อสามัญ ประเภทยา เภสัชกรยืนยัน เตือนแพ้ยา ล็อต FEFO ฉลากยา บัญชีขายยาอันตราย · บน Google Sheets ของร้านเอง ไม่มีค่ารายเดือน
POS ร้านอาหาร (โต๊ะ ครัว QR สั่งอาหาร)
ผังโต๊ะสด · ลูกค้าสแกน QR สั่งอาหารที่โต๊ะ · จอครัว · แจ้งเตือนเรียกพนักงาน · ค่าบริการ · เมนูหมดอัตโนมัติ + แจ้งวัตถุดิบหมดทาง LINE/อีเมล · ไม่มีค่ารายเดือน