จัดระเบียบงานไม่ให้พลาด: วิธีสร้างระบบแจ้งเตือนงานผ่าน LINE แบบฟรี ด้วย Google Sheets + Apps Script

ในแต่ละวันของคุณครูและคนทำงาน มักจะมีภารกิจที่ต้องทำมากมายจนบางครั้งงานชิ้นสำคัญหรือเส้นตาย (Deadline) ก็อาจจะเลื่อนหลุดสายตาไปได้ง่ายๆ ค่ะ แม้ว่าบริการยอดฮิตในอดีตอย่าง LINE Notify จะปิดตัวลงไปแล้ว แต่รู้ไหมคะว่าเรายังสามารถใช้เครื่องมือฟรีที่มีความยั่งยืนและปลอดภัยกว่าอย่าง LINE Messaging API (โหมดส่งข้อความฟรี 200 ข้อความ/เดือน) มาร่วมร่างกับ Google Sheets เพื่อทำระบบแจ้งเตือนงานค้างส่งตรงเข้ามือถือเราได้ฟรี 100% ค่ะ

วันนี้เราจะมาสร้างเลขาส่วนตัวในไลน์คอยเตือนใจไม่ให้ลืมงานกันใน 4 ขั้นตอนง่ายๆ ค่ะ


ขั้นตอนที่ 1: ตั้งค่า LINE Developers เพื่อสร้างบอทแจ้งเตือน

เราจะสร้างบัญชี LINE Official Account (LINE OA) ขนาดเล็กเพื่อทำหน้าที่เป็นบอทคอยส่งข้อความเตือนเราค่ะ

  1. ไปที่เว็บ LINE Developers แล้วเข้าสู่ระบบด้วยบัญชี LINE ส่วนตัวของคุณ
  2. กดสร้าง Provider (ตั้งชื่อเป็นชื่อเราหรือชื่อโปรเจกต์ เช่น “MyTaskAlert”)
  3. เลือกสร้าง Messaging API Channel กรอกข้อมูลทั่วไป (ชื่อบอท, อีเมล) ให้ครบถ้วนแล้วกดสร้าง
  4. เมื่อสร้างเสร็จ ให้คลิกเข้าไปที่แท็บ Messaging API เลื่อนลงมาล่างสุด ตรงหัวข้อ Channel access token ให้กดปุ่ม Issue แล้วคัดลอกรหัสยาวๆ นั้นเก็บไว้ค่ะ
  5. สแกน QR Code ที่ปรากฏในหน้านั้นเพื่อ “เพิ่มเพื่อน” กับบอทที่เราเพิ่งสร้างขึ้นมาในมือถือค่ะ
  6. ย้ายไปที่แท็บ Basic settings เลื่อนลงล่างสุด คัดลอกรหัสในช่อง Your user ID เก็บไว้ (รหัสนี้คือที่อยู่สำหรับให้บอทยิงข้อความตรงมาหา LINE ส่วนตัวของเราค่ะ)

ขั้นตอนที่ 2: เตรียมตารางงานบน Google Sheets

สร้าง Google Sheets ขึ้นมา 1 ไฟล์ และตั้งชื่อคอลัมน์ในแถวแรก (แถวที่ 1) ดังนี้ค่ะ:

  • คอลัมน์ A: ชื่องาน / ภารกิจ
  • คอลัมน์ B: วันกำหนดส่ง (Deadline) (แนะนำให้จัดรูปแบบช่องนี้เป็น วัน/เดือน/ปี ค.ศ.)
  • คอลัมน์ C: สถานะ (เช่น “ยังไม่ทำ” หรือ “เสร็จแล้ว”)

ขั้นตอนที่ 3: เขียนโค้ดสคริปต์สั่งเช็กงานและแจ้งเตือน

เราจะเขียนคำสั่งให้ระบบคอยเข้ามาตรวจดูตารางงาน และส่งไลน์หาเราหากพบงานที่ยังไม่เสร็จค่ะ

  1. ที่หน้า Google Sheets ไปที่เมนู ส่วนขยาย (Extensions) -> Apps Script
  2. ลบโค้ดเริ่มต้นออกให้หมด แล้ววางโค้ดชุดนี้ลงไปแทนค่ะ:

JavaScript

// คัดลอกข้อมูลจากขั้นตอนที่ 1 มาวางในเครื่องหมายอัญประกาศนะคะ
const LINE_ACCESS_TOKEN = "วาง_Channel_access_token_ตรงนี้ค่ะ";
const MY_LINE_USER_ID = "วาง_Your_user_id_ตรงนี้ค่ะ";

function checkAndAlertTasks() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();
  const today = new Date();
  
  // ตั้งค่าเวลาวันนี้ให้เป็น 00:00 น. เพื่อให้เปรียบเทียบเฉพาะวันที่ได้แม่นยำ
  today.setHours(0,0,0,0);
  
  let alertMessage = "🔔 [แจ้งเตือนงานค้างชำระ/งานใกล้เส้นตาย]\n\n";
  let hasPendingTask = false;

  // ลูปเช็กข้อมูลตั้งแต่แถวที่ 2 เป็นต้นไป
  for (let i = 1; i < data.length; i++) {
    let taskName = data[i][0];
    let deadline = new Date(data[i][1]);
    let status = data[i][2];
    
    deadline.setHours(0,0,0,0);
    
    // เงื่อนไข: ถ้าสถานะคือ "ยังไม่ทำ" และ วันกำหนดส่งเท่ากับวันนี้ หรือผ่านไปแล้ว
    if (status === "ยังไม่ทำ" && deadline <= today) {
      let formattedDate = Utilities.formatDate(deadline, "GMT+7", "dd/MM/yyyy");
      alertMessage += `📌 งาน: ${taskName}\n📅 กำหนดส่ง: ${formattedDate}\n\n`;
      hasPendingTask = true;
    }
  }

  // ถ้ามีงานค้าง ให้ส่งข้อความเข้า LINE
  if (hasPendingTask) {
    sendLinePush(MY_LINE_USER_ID, alertMessage.trim());
  }
}

// ฟังก์ชันส่งข้อความผ่าน LINE Messaging API
function sendLinePush(toId, text) {
  const url = "https://api.line.me/v2/bot/message/push";
  const payload = {
    "to": toId,
    "messages": [{ "type": "text", "text": text }]
  };
  const options = {
    "method": "post",
    "headers": {
      "Content-Type": "application/json",
      "Authorization": "Bearer " + LINE_ACCESS_TOKEN
    },
    "payload": JSON.stringify(payload)
  };
  
  UrlFetchApp.fetch(url, options);
}
  1. แทนที่ค่าในตัวแปร LINE_ACCESS_TOKEN และ MY_LINE_USER_ID ด้วยรหัสที่คุณคัดลอกมาในขั้นตอนแรกค่ะ
  2. กดปุ่ม บันทึก (Save) (ไอคอนแผ่นดิสก์) จากนั้นลองเลือกฟังก์ชัน checkAndAlertTasks แล้วกด เรียกใช้ (Run) ดูค่ะ (ระบบจะขอสิทธิ์การเข้าถึงข้อมูลในครั้งแรก ให้กดอนุมัติสิทธิ์ให้เรียบร้อยค่ะ)
  3. หากข้อมูลในชีตเข้าเงื่อนไข บอทจะเด้งเตือนใน LINE ของคุณทันทีค่ะ

ขั้นตอนที่ 4: ตั้งเวลาให้ระบบทำงานอัตโนมัติทุกวัน (Triggers)

เพื่อให้ระบบทำงานเองโดยที่เราไม่ต้องมากดรันโค้ดทุกวัน ให้เราตั้งเวลาดังนี้ค่ะ:

  1. ที่เมนูด้านซ้ายของหน้า Apps Script ให้คลิกที่ไอคอนรูปนาฬิกา “ทริกเกอร์” (Triggers)
  2. คลิกปุ่ม + เพิ่มทริกเกอร์ (+ Add Trigger) ที่มุมขวาล่าง
  3. เลือกตั้งค่าดังนี้:
    • เลือกฟังก์ชันที่จะเรียกใช้: checkAndAlertTasks
    • เลือกแหล่งที่มาของเหตุการณ์: ตามเวลาที่กำหนด (Time-driven)
    • เลือกประเภททริกเกอร์ตามเวลา: เครื่องจับเวลาวัน (Day timer)
    • เลือกเวลาของวัน: เลือกช่วงเวลาที่คุณต้องการให้ระบบแจ้งเตือน (เช่น 07:00 น. ถึง 08:00 น. เพื่อเตือนรับเช้าวันใหม่)
  4. กด บันทึก (Save) เป็นอันเสร็จสิ้นกระบวนการค่ะ

บทสรุป

เพียงเท่านี้ คุณก็จะได้ระบบแจ้งเตือนภารกิจส่วนตัวที่ทำงานได้อย่างเที่ยงตรงในทุกๆ เช้า โดยระบบจะไปสแกนหาเฉพาะงานที่มีสถานะ “ยังไม่ทำ” และถึงกำหนดส่ง นำมาสรุปยอดส่งตรงเข้า LINE ของคุณทันที ช่วยให้คุณวางแผนวันทำงานได้อย่างมีประสิทธิภาพโดยไม่มีค่าใช้จ่าย และไม่ต้องกังวลเรื่องการลืมงานสำคัญอีกต่อไปค่ะ ลองนำไปปรับใช้กันดูนะคะ

Scroll to Top