JABPHAP
Code.gs · 1020 บรรทัด
/**
 * ═══════════════════════════════════════════════════════════════════════════
 *  ระบบจองคิวสัมภาษณ์งาน  ·  Interview Booking
 *  ระบบที่ 39/100  —  กลุ่มงานบุคคล (HR) & จัดการเวลาทำงาน
 * ───────────────────────────────────────────────────────────────────────────
 *  ปัญหาที่แก้ : "โทรนัดสัมภาษณ์ทีละคน สายไม่ติด โทรกลับไม่เจอ ·
 *                นัดชนกันเอง 2 คนเวลาเดียว · ผู้สมัครไม่มา ไม่แจ้งล่วงหน้า ·
 *                ผู้สัมภาษณ์ติดประชุมแต่ HR ไม่รู้ นัดทับ"
 *
 *  ⭐ จุดเด่น
 *   1. ส่งลิงก์เดียวให้ผู้สมัคร → เลือกเวลาเองจากช่องที่ว่างจริง (ไม่ต้องล็อกอิน)
 *   2. 🔒 กันจองซ้ำระดับ LockService — 2 คนกดพร้อมกัน ได้แค่คนเดียว อีกคนเห็นทันที
 *   3. 📅 เช็กชนกับ Google Calendar ของผู้สัมภาษณ์ก่อนเปิดช่วงเวลา
 *   4. 🔗 ผู้สมัครเลื่อน/ยกเลิกนัดเองได้ ไม่ต้องโทรหา HR
🔒

กรอกอีเมลด้านขวาเพื่อดูโค้ดเต็มและคัดลอก

ฟรี ไม่มีค่าใช้จ่าย

ข้อควรรู้ก่อนใช้

1. ต้องแชร์ปฏิทินให้เจ้าของสคริปต์ ถ้าใส่ Calendar ID ของคนอื่น ต้องแชร์สิทธิ์ "แก้ไขกิจกรรม" ให้บัญชีที่ Deploy สคริปต์ ไม่งั้นระบบเช็กเวลาว่างไม่ได้และสร้างนัดไม่ได้ — จะเงียบ ๆ ข้ามไป (บันทึกไว้ในชีต Log) 2. การเช็กปฏิทินทำตอน "สร้างช่วงเวลา" เท่านั้น ถ้าผู้สัมภาษณ์นัดประชุมใหม่ทับทีหลัง ระบบไม่รู้ → ทางแก้: สร้างช่วงเวลาล่วงหน้าไม่เกิน 2 สัปดาห์ และดูตารางนัดสม่ำเสมอ 3. โควตาอีเมล — Gmail ฟรี 100 ฉบับ/วัน · Workspace 1,500 ฉบับ/วัน ระบบส่งครั้งละไม่เกิน 40 คน และเตือนก่อนถ้าโควตาไม่พอ 4. การเช็กปฏิทินทำให้สร้างช่วงเวลาช้าลง สร้าง 100+ ช่วงพร้อมเช็กปฏิทินอาจใช้เวลา 30–60 วินาที (Apps Script จำกัด 6 นาที/ครั้ง) — ระบบจึงหยุดที่ 500 ช่วงต่อครั้ง ถ้าไม่ต้องการเช็ก ให้ติ๊กออกในหน้าสร้าง 5. ยังไม่มีสิทธิ์ระดับผู้สัมภาษณ์ PIN เดียวเห็นทุกอย่าง — ผู้สัมภาษณ์รับตารางทางอีเมลและปฏิทินแทน

ติดตั้งยังไง (ประมาณ 10 นาที)

  1. 1 แตกไฟล์ ZIP จะได้ Code.gs · index.html · appsscript.json และคู่มือ README.md
  2. 2 เปิด script.google.comNew project → Project Settings ติ๊ก Show "appsscript.json"
  3. 3 วางเนื้อหา appsscript.json และ Code.gs แล้วกด + → HTML ตั้งชื่อ index วาง index.html
  4. 4 เลือกฟังก์ชัน setup → กด Run → อนุญาตสิทธิ์ ระบบจะสร้าง Google Sheet ให้เอง
  5. 5 Deploy → New deployment → Web app แล้วเปิดลิงก์ที่ได้ใช้งานได้เลย

📘 ขั้นตอนละเอียด การตั้งค่า (เช่น LINE Token ใน Script Properties) โครงสร้างชีต และคำถามที่พบบ่อย อยู่ในไฟล์ README.md ที่แนบใน ZIP — เปิดด้วย Notepad หรือ VS Code ได้เลย

⚠️ ตอนกด Run ครั้งแรก Google จะขึ้นเตือนว่า “แอปนี้ยังไม่ได้รับการยืนยัน” เป็นเรื่องปกติของสคริปต์ที่เราเขียนเอง กด Advanced → Go to (ชื่อโปรเจกต์) เพื่อไปต่อ · สคริปต์ทำงานในบัญชี Google ของคุณเอง เราไม่เห็นไฟล์ของคุณ

เกี่ยวกับเครื่องมือนี้

ปัญหาที่เจอกันจริง • โทรนัดทีละคน สายไม่ติด โทรกลับไม่เจอ — นัดคนเดียวใช้เวลา 3 วัน ผู้สมัครไปที่อื่นก่อน • นัดชนกันเอง 2 คนเวลาเดียว — ผู้สมัครนั่งรอหน้าห้อง เสียภาพลักษณ์บริษัท • ผู้สัมภาษณ์ติดประชุมแต่ HR ไม่รู้ — ต้องเลื่อนนัดกะทันหัน โทรขอโทษผู้สมัคร • ผู้สมัครไม่มา ไม่แจ้งล่วงหน้า — เสียเวลาผู้สัมภาษณ์ทั้งช่วง ไม่มีใครมาแทน • ลืมบอกว่าต้องเตรียมเอกสารอะไร — สัมภาษณ์เสร็จต้องนัดส่งเอกสารอีกรอบ จุดเด่นของระบบนี้ 1. 🔒 กันจองซ้ำจริง ไม่ใช่แค่หวังว่าจะไม่ชน 2 คนกดจองช่วงเดียวกันในวินาทีเดียวกัน — เกิดขึ้นได้จริงเมื่อส่งอีเมลพร้อมกัน 50 ฉบับ const lock = LockService.getScriptLock(); if (!lock.tryLock(30000)) throw new Error('ระบบกำลังมีคนจองพร้อมกัน กรุณาลองใหม่'); // ► อ่านสถานะสด ๆ จากชีตอีกครั้ง ไม่เชื่อค่าที่อ่านมาก่อนหน้า const live = shL.getRange(slot.row, L.STATUS).getValue(); if (live !== 'ว่าง') throw new Error('ขออภัย ช่วงเวลานี้เพิ่งถูกจองไปแล้ว 😅'); คนที่ช้ากว่าเห็นข้อความทันทีและเลือกเวลาอื่นได้ ไม่ใช่ทั้งคู่ได้ช่วงเดียวกันแล้วมาเจอกันหน้าห้อง 2. 📅 เช็กปฏิทินผู้สัมภาษณ์ก่อนเปิดช่วงเวลา ตอนกด ⚡ สร้างช่วงเวลา ระบบจะถาม Google Calendar ของผู้สัมภาษณ์ทีละช่วง ถ้าช่วงไหนมีประชุมอยู่แล้ว → ข้ามไปเลย ไม่สร้าง ผลคือช่วงเวลาที่ผู้สมัครเห็น คือเวลาที่ผู้สัมภาษณ์ว่างจริง จองสำเร็จแล้วระบบสร้าง Event ในปฏิทิน + ส่ง invite ให้ทั้งผู้สมัครและผู้สัมภาษณ์ ยกเลิกนัด → ลบ Event ให้อัตโนมัติ ไม่มีนัดผีค้างในปฏิทิน 3. ⚡ สร้างช่วงเวลาทั้งเดือนใน 10 วินาที กรอกรูปแบบครั้งเดียว: ผู้สัมภาษณ์: วิชัย ช่วงวันที่: 1–31 ส.ค. วันในสัปดาห์: จ. อ. พ. พฤ. ศ. เวลา 09:00–17:00 ช่วงละ 45 นาที พักระหว่างช่วง 15 นาที พักเที่ยง 12:00–13:00 → ได้ช่วงเวลาว่างครบทั้งเดือน ข้ามพักเที่ยง ข้ามวันหยุด ข้ามช่วงที่ชนประชุม 4. 🔗 ผู้สมัครเลื่อน/ยกเลิกเองได้ ลิงก์เดิมใช้ได้ตลอด — เข้ามาดูนัด กดเลื่อน กดยกเลิก ช่วงเวลาที่ปล่อยคืน กลับมาว่างให้คนอื่นจองได้ทันที และ HR ได้อีเมลแจ้ง ตั้งเงื่อนไขได้ว่าต้องเปลี่ยนล่วงหน้ากี่ชั่วโมง (ค่าเริ่มต้น 12 ชม.) — ใกล้กว่านั้นต้องโทรหา HR 5. ⏰ เตือนอัตโนมัติ ลดอัตราไม่มาตามนัด Trigger ทำงานทุกวัน 08:00 น. • ผู้สมัคร — เวลา สถานที่ ผู้สัมภาษณ์ และ สิ่งที่ต้องเตรียมมา (ดึงจากตำแหน่งที่สมัคร) • ผู้สัมภาษณ์ — สรุปคิวทั้งวันพรุ่งนี้ในอีเมลฉบับเดียว พร้อมเบอร์ผู้สมัคร ระบบเก็บสถิติ อัตราการมาตามนัด ให้ด้วย (สัมภาษณ์แล้ว ÷ (สัมภาษณ์แล้ว + ไม่มาตามนัด)) 6. ผู้สมัครไม่ต้องล็อกอิน ไม่ต้องมี Google Account เปิดจากมือถือ เห็นช่วงเวลาแยกตามวัน กดปุ่มเดียวจบ

ระบบจองคิวสัมภาษณ์งาน

ส่งลิงก์เดียว → ผู้สมัครเลือกเวลาเอง → เข้าปฏิทินอัตโนมัติ → เตือนก่อนวันนัด

ฟรี ไม่มีค่าใช้จ่าย
  • Web App พร้อมใช้ ข้อมูลเก็บใน Google Sheet ของคุณเอง
  • ได้ครบทุกไฟล์ + คู่มือติดตั้งภาษาไทย (README.md)
  • แก้โค้ดต่อเองได้ ไม่ล็อก ไม่มีค่ารายเดือน

กรอกอีเมลเพื่อรับลิงก์ดาวน์โหลด และรับพรีเซ็ตใหม่ก่อนใคร

ใช้ส่งลิงก์และข่าวเครื่องมือใหม่เท่านั้น ไม่ส่งต่อให้ใคร

มีคำถาม ทักแชทได้เลย
โหลดแล้ว 0 ครั้ง 34 KB
LINE