สร้างระบบแจ้งซ่อมง่าย ๆ ด้วย Make + Google Form + LINE OA + AWS Lambda มือใหม่ก็ทำได้!

BOBOdevBOBOdev
4 min read

สวัสดีครับ วันนี้ผมอยากจะมาแชร์วิธีสร้างระบบ แจ้งซ่อมง่าย ๆ ด้วย Make.com โดยเขียนโค้ดน้อยมาก

ในระบบนี้ ผู้ใช้งานจะสามารถ:

  • แจ้งซ่อมผ่าน Google Form

  • ติดตามสถานะการแจ้งซ่อมผ่าน LINE Official Account (LINE OA)

ก่อนเริ่มต้น ขอทักทายทุกท่านครับ

อย่างที่เราทราบกันดีว่าทุกวันนี้ AI และระบบ Automation มีบทบาทมากขึ้นในหลายด้าน ทั้งในการทำงาน การเรียน หรือการแก้ปัญหาในชีวิตประจำวัน

บทความนี้จะพาทุกท่านมาลองทำ ระบบแจ้งซ่อม ที่ใช้งานได้จริง โดยแทบจะไม่ต้องเขียนโค้ดเลยครับ 😊

สิ่งที่ต้องเตรียมก่อนเริ่ม

  1. บัญชี Make.com (สมัครใช้งานฟรีได้ที่ Make.com)

  2. บัญชี Google

  3. บัญชี AWS

  4. บัญชี LINE Official Account (Line OA) (ดูวิธีสมัครได้ที่นี่: LINE for Business)

รูปแบบการทำงานของระบบ

  1. แจ้งซ่อมผ่าน Google Form
  • ผู้ใช้งานกรอกแบบฟอร์มแจ้งซ่อม

  • ข้อมูลการแจ้งซ่อมจะถูกบันทึกลงใน Google Sheet (Responses)

2. ติดตามสถานะผ่าน LINE OA

  • ผู้ใช้งานสามารถค้นหาหรือเช็กสถานะการแจ้งซ่อมได้โดยใช้ เบอร์โทรศัพท์ ผ่าน LINE OA

3. ระบบ Automation (Make.com)

  • ทำหน้าที่ค้นหาข้อมูลจาก Google Sheet

  • ส่งผลลัพธ์ไปแปลงค่าบน AWS Lambda

  • ตอบกลับผู้ใช้งานผ่านทาง LINE OA โดยอัตโนมัติ

ขั้นตอนการทำ

1. สร้าง Google Forms สำหรับแจ้งซ่อม โดยมีฟิลด์ดังนี้

  • ชื่อผู้แจ้ง (จำเป็นต้องกรอก)

  • เบอร์โทรศัพท์ (จำเป็นต้องกรอก)

  • รายละเอียดสิ่งของที่ต้องการซ่อม (จำเป็นต้องกรอก)

หลังจากนั้นให้เรากดปุ่ม ‘Publish’ ที่มุมบนขวาข้องหน้าจอ

เมื่อเราทำการ Publish แล้วให้เราทดลองกรอก Forms ของเราด้วยการ ‘Copy responder link’

  • ให้เราทำการทดลองกรอก Form ของเราครับ

  • เมื่อทำการกรอกเสร็จแล้ว หลังจากกด Submit เสร็จแล้ว ในหน้าของการสร้าง Form ของเราจะเห็นว่ามี Reponses เพิ่มมา 1 response (1) ครับ

  • ให้เราทำการกดที่ Tab Response และกดไปที่ Link to Sheets (2) เพื่อทำการเปิด Google Sheets ของเราครับ

  • ให้เราเลือก ‘Create a new spreadsheet’ (1) ครับ

  • คลิก Create (2)

เพียงเท่านี้เราก็สามารถรับการแจ้งซ่อมได้แล้วครับ


2. เพิ่มสถานะการซ่อมให้กับรายการแจ้งซ่อม

แต่เดี๋ยวก่อนครับ ตอนนี้เมื่อเรามีรายการแจ้งซ่อมแล้ว แต่ว่าเรายังไม่มีสถานะการซ่อม ดังนั้นเราจะต้องเพิ่มฟังก์ชันเพื่อระบุสถานะการซ่อมครับ

  • ขั้นตอนการเพิ่มสถานะการซ่อม ให้เรากดไปที่ Extensions -> Apps Script

  • ให้เราเพิ่มโค้ดตามภาพ หลังจากเพิ่มโค้ดเสร็จแล้ว ให้เรากด Ctrl + S หรือ CMD + S เพื่อทำการบันทึก
function addStatus(e) {
  var row = e.range.getRow()
  var sheet = e.range.getSheet()
  sheet.getRange(row, 5).setValue('รับแจ้ง')
}

  • คลิกที่ Triggers (1) และ Add Trigger (2)

  • ในหัวข้อ Select event type ให้เลือกเป็น On form submit (1) (ให้โค้ดของเราทำงานเมื่อมีการส่ง Form เข้ามา)

  • คลิก Save (2)

  • จากนั้นให้เรากรอก Form อีกครั้ง และจะเห็นได้ว่าตอนนี้ใน Google Sheets ของเราจะมีสถานะการซ่อมเพิ่มขึ้นมาแล้ว


3. เตรียม Line Channel Access token

ขั้นตอนนี้เราจะต้องทำการสร้าง Channel Access token เพื่อเข้าถึงการ รับ-ส่งข้อความใน Line OA ของเราครับ

  • ให้เราเปิดไปที่ Line Developer Console https://developers.line.biz/console/

  • เลือกไปที่ Line OA ที่เราสร้างไว้

  • เลื่อนลงมาด้านล่าง จะเห็น Channel access token ให้เราทำการกดปุ่ม Issue

  • ให้ทำการ Copy Channel access token เพื่อที่เราจะใช้ในขั้นตอนต่อไปครับ ❌(ห้ามแชร์ให้ใครนะครับ)


4. สร้าง function บน AWS Lambda

มาถึงขั้นตอนในการสร้างฟังก์ชั่นบน AWS Lambda เพื่อทำการแปลงข้อมูลการแจ้งซ่อมให้อยู่ในรูปแบบที่เราต้องการครับ

  • ทำการเข้าสู่ระบบบน AWS ค้นหา ‘lamda’ (1) และคลิกที่ Lambda service (2)

  • คลิก Create function

  • ตั้วชื่อฟังก์ชัน และตั้งค่าตามรูปด้านล่าง และคลิก Create function

  • เพิ่มโค้ด (1) และคลิก Deploy (2)
export const handler = async (event) => {
  try {
    // Parse the incoming JSON body
    const { items } = JSON.parse(event.body);

    // Format each item into a readable string
    const formattedText = items
      .map(item => 
        `ผู้แจ้ง: ${item['1']}, เบอร์โทรศัพท์: ${item['2']}, รายละเอียด: ${item['3']}, สถานะ: ${item['4']}`
      )
      .join("\n\n");

    // Return a 200 response with the combined message
    return {
      statusCode: 200,
      body: formattedText,
    };
  } catch (error) {
    // Handle JSON parsing or formatting errors
    return {
      statusCode: 400,
      body: 'Invalid request format',
    };
  }
};

  • ทำการ Copy URL เราจะได้ใช้ในขั้นตอนถัดไปครับ


5. สร้าง Automation Workflow ด้วย Make.com

มาถึงขั้นตอนในการใช้ Make.com ในการทำการค้นหาข้อมูลการแจ้งซ่อม และแจ้งเตือนผ่าน Line OA กันแล้วครับ

  • ให้เราไปที่เมนู Scenario (1) และกด Create a new Scenario (2) ครับ

  • ให้เราเลือก Module LINE และ Watch Events

  • กด Create a webhook (1), Add (2) และทำการตั้งชื่อ Connection name (3) (เป็นอะไรก็ได้ครับ) และใส่ Channel access token (4) ที่เราทำเมื่อขั้นตอนที่แล้วครับ

  • ให้เรา Copy webhook URL

  • คลิกที่ ‘Use webhook’ เพื่อเปิดใช้งาน webhook

  • คลิกขวาที่ Icon LINE และ Run this module only เพื่อทำการทดสอบว่าเราสามารถได้รับข้อความจาก Line อย่างถูกต้องครับ

  • ส่งข้อความไปใน Line OA เราก็จะได้ข้อมูลแบบนี้ครับ

  • คลิกที่ Operation count (1) เราจะเห็นข้อความที่เราส่งมาจาก Line ครับง

  • คลิกเครื่องหมาย + (1) ที่ Module Line และเลือก Google Sheets -> Search Rows

  • สร้าง Google Connection โดยคลิก Add (1) -> Sign in with Google (2)

  • เลือก Select from My Drive (3)

  • เลือก Spreadsheet ID (ชื่อของ Google Sheets) (4)

  • เลือก Sheet Name (5)

  • Table contains headers -> Yes (6)

  • Column range -> A-CZ (7)

  • เลือก Filter -> Mobile No (2)

  • คลิกเลือก Events -> Message -> Text (3)(4)

  • คลิกที่ Run once (1) -> Wait for new data (2)

  • ส่งข้อความไปยัง Line OA ด้วยเบอร์โทรศัพท์ที่ใช้ในการแจ้งซ่อม

  • คลิกที่ Operation Count (1) เราก็จะได้ข้อมูลการแจ้งซ่อมจาก Google Sheets มาแล้วครับ

  • เพิ่ม Module Flow Control -> Array aggregator

  • เลือก Source Module -> Google Sheets — Search Rows (1)

  • เลือก (B, C, D, E) (2)

  • เพิ่ม Module HTTP -> Make a request

  • ใส่ URL ของ AWS Lambda (1) ที่ได้มาจากขั้นตอนที่ 4

  • เลือก Method -> POST (2)

  • เลือก Body type -> Raw (3)

  • เลือก Content type -> JSON (application/json) (4)

  • ระบุข้อมูล (5) และเลือก Array[] จาก Flow Control (6)

{
    "items": []
}

  • เพิ่ม Module ใหม่ Line -> Send a Reply Message

  • ในช่อง Reply Token (1) ให้เลือก Reply Token จากฝั่งซ้าย (2)

  • Type -> Text (1)

  • ในช่อง Text ให้เลือก Data จาก Module HTTP (2)

  • กด Save (1) และ Enable ‘Immediately as data arrives’ (2)

  • ทดสอบส่งข้อความผ่านทาง Line OA เพื่อค้นหารายการแจ้งซ่อมกันเลยครับ

เพียงเท่านี้เราก็จะได้ระบบแจ้งซ่อมที่แจ้งเตือนผ่าน Line OA ได้แล้วครับ

0
Subscribe to my newsletter

Read articles from BOBOdev directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

BOBOdev
BOBOdev