แจกฟรี ระบบแจ้งซ่อม พร้อม script แจ้งเตือน Google Form เข้า Line

ถ้าเรามีการสร้างระบบต่างๆโดยใช้การกรอกข้อมูลผ่านทาง Google Form แล้วเราอยากให้ระบบแจ้งเตือนเข้ามายังไลน์ของเราเมื่อมีคนกรอกฟอร์มเข้ามา

โพสในวันนี้ผมจะมาแจก script ที่สามารถ copy ไปใช้งานกับระบบของเราได้ทันที พร้อมกับสอนวิธีการปรับแต่ง script ที่ทำได้ไม่ยาก ไม่จำเป็นต้องมีความรู้ด้าน programming ก็สามารถทำได้ครับ

อันดับแรกให้เราทำการสร้าง Form Google Form โดยการผูกกับระบบ Google Sheets ของเราก่อน

Screenshot

หลังจากนั้นให้เราทำการเพิ่ม script ใน google sheets ของเราโดยการกดที่เมนู “ส่วนขยาย-App Script”

Screenshot

หลังจากนั้นให้ทำการ copy script ด้านล่างนี้ไปวางได้เลย

const LINE_ACCESS_TOKEN = 'Line Access Token';
const USER_ID = 'User_ID';

function onFormSubmit(e) {
  const responses = e.values;
  
  const nickname = responses[1];  // Adjust index as per your form order
  const firstname = responses[2]; 
  const lastname = responses[3]; 
  const tel = responses[4]; 

  const payload = {
    to: USER_ID,
    messages: [{
      type: "flex",
      altText: "มีการส่งฟอร์มใหม่",
      contents: {
        type: "bubble",
        header: {
          type: "box",
          layout: "vertical",
          contents: [
            { type: "text", text: "แจ้งเตือนการส่งฟอร์ม", weight: "bold", size: "lg" }
          ]
        },
        body: {
          type: "box",
          layout: "vertical",
          spacing: "md",
          contents: [
            {
              type: "box",
              layout: "baseline",
              spacing: "sm",
              contents: [
                { type: "text", text: "ชื่อเล่น:", color: "#aaaaaa", size: "sm", flex: 3 },
                { type: "text", text: nickname, wrap: true, size: "sm", flex: 5 }
              ]
            },
            {
              type: "box",
              layout: "baseline",
              spacing: "sm",
              contents: [
                { type: "text", text: "ชื่อจริง:", color: "#aaaaaa", size: "sm", flex: 3 },
                { type: "text", text: firstname, wrap: true, size: "sm", flex: 5 }
              ]
            },
            {
              type: "box",
              layout: "baseline",
              spacing: "sm",
              contents: [
                { type: "text", text: "นามสกุล:", color: "#aaaaaa", size: "sm", flex: 3 },
                { type: "text", text: lastname, wrap: true, size: "sm", flex: 5 }
              ]
            },
            {
              type: "box",
              layout: "baseline",
              spacing: "sm",
              contents: [
                { type: "text", text: "เบอร์ติดต่อ:", color: "#aaaaaa", size: "sm", flex: 3 },
                { type: "text", text: tel, wrap: true, size: "sm", flex: 5 }
              ]
            }
          ]
        }
      }
    }]
  };

  UrlFetchApp.fetch("https://api.line.me/v2/bot/message/push", {
    method: 'post',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${LINE_ACCESS_TOKEN}`
    },
    payload: JSON.stringify(payload)
  });
}

โดยให้เราทำการเปลี่ยนค่าในบรรทัดที่ 1 และ 2 ของ code

  1. Line Access Token – ให้ ทำการ copy ได้จากหน้า developers.line.biz
    โดยเราจะต้องมีการสร้างตัว LineOA ขึ้นมาก่อน โดยสามารถดูวิธีการสร้างได้จากคลิปนี้เลยครับ
    แจกฟรี template การส่งแจ้งเตือนจาก Google Sheets ไปยัง Line ด้วย Line Messaging API
  2. USER_ID – คือค่า ID ที่เราต้องการจะส่งข้อความไปหา ในกรณีส่งผ่านบุคคลให้เรานำค่า userid มาใส่ ส่วนในกรณีที่เราจะส่งไปยังกลุ่มก็สามารถใส่เป็นค่า groupid ได้
    วิธีการหาค่า user_id สามารถดูได้จากคลิปด้านล่างเลยครับ

หลังจากนั้นให้เราทำการสร้างตัวแปรตามค่าที่เราต้องการจะรับมาจาก Google Form แทนที่ code ในบรรทัดที่ 7-10 ได้ทันที

Screenshot

โดยถ้าเราต้องการจะสร้างตัวแปรที่รับค่าชื่อผู้แจ้งมาจาก Google Form ก็ให้เราไปทำการดูข้อมูลในหน้า Google Sheets ได้เลยว่า column ชื่อผู้แจ้งนั้นอยู่ใน column ที่เท่าไหร่ของชีท และให้ทำการนำเอาลำดับของ column – 1 เราก็สามารถสร้างตัวแปรขึ้นมาเป็นแบบนี้ได้เลย

const name = responses[3];

ในที่นี้ผมจะเก็บข้อมูลชื่อผู้แจ้งไว้ในตัวแปรที่ชื่อว่า name แล้วให้ดึงค่าจาก column D

หลังจากที่เราทำการเก็บข้อมูลที่ต้องการไว้ในตัวแปรทั้งหมดแล้วก็ให้ทำการปรับแก้ข้อมูลใน flexmessage ด้านล่างได้ทันที
โดยให้เรา focus ในบริเวณบรรทัดของ code หลังจากคำว่า “contents: [“

{
              type: "box",
              layout: "baseline",
              spacing: "sm",
              contents: [
                { type: "text", text: "ชื่อเล่น:", color: "#aaaaaa", size: "sm", flex: 3 },
                { type: "text", text: nickname, wrap: true, size: "sm", flex: 5 }
              ]
},

ในที่นี้ถ้าเราต้องการจะแสดงชื่อผู้แจ้งซ่อม เราสามารถเปลี่ยนคำพูดชื่อหัวข้อ จาก “ชื่อเล่น :” ให้เป็น “ชื่อผู้แจ้ง :”
และเปลี่ยนตัวแปร nickname ให้เป็น name ตามที่เราได้ประกาศไว้ที่บรรทัดที่ 7 ได้ทันที

{
              type: "box",
              layout: "baseline",
              spacing: "sm",
              contents: [
                { type: "text", text: "ชื่อผู้แจ้ง:", color: "#aaaaaa", size: "sm", flex: 3 },
                { type: "text", text: name, wrap: true, size: "sm", flex: 5 }
              ]
},

และสุดท้ายให้เราทำการสร้าง Trigger โดยการกดที่ปุ่มในภาพด้านล่างในหน้า script

Screenshot

โดยให้เราเพิ่ม script ใหม่ตามค่าดังต่อไปนี้เพื่อให้ function ส่ง line นั้นทำงานทุกครั้งที่มีฟอร์มส่งเข้ามา

Screenshot

แค่นี้เราก็จะได้ระบบส่งแจ้งเตือน line จาก Google Form แล้วเป็นที่เรียบร้อย 🙂

ถ้าใครงงขั้นตอนใหนก็สามารถกดดูรายละเอียดเพิ่มเติมได้ที่คลิปด้านล่างเลยครับ

https://youtu.be/YZ__LFXMGDI

สามารถ download template ระบบแจ้งซ่อมงานได้ที่นี้เลยครับ
🔗 Link download Template แจ้งซ่อมงาน

💳 ชอบคลิปที่ช่วยเพิ่มประสิทธิภาพการทำงานแบบนี้สามารถสมัครสมาชิกช่องได้ที่ 
https://www.youtube.com/channel/UChxmhkD8uSSzUOkfMO_p5oQ/join

🎥 อุปกรณ์ที่ผมใช้

กล้อง Sony ZV-E10 kit 16-50mm
Mouse Logitech MX Master 3s
MacBook Air M2
ไมค์ wireless Saramonic Blink 500
เก้าอี้ Anda Seat X-Air Pro Ergonomic Gaming Chair
แขนจับจอ Anda Seat Stealth A6L Ergonomic Monitor Arm
ไมโครโฟน AKG Lyra
ไฟส่องหน้าจอ Xiaomi Light Bar

Leave a Reply

Your email address will not be published. Required fields are marked *