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


สวัสดีครับ วันนี้ผมอยากจะมาแชร์วิธีสร้างระบบ แจ้งซ่อมง่าย ๆ ด้วย Make.com โดยเขียนโค้ดน้อยมาก
ในระบบนี้ ผู้ใช้งานจะสามารถ:
แจ้งซ่อมผ่าน Google Form
ติดตามสถานะการแจ้งซ่อมผ่าน LINE Official Account (LINE OA)
ก่อนเริ่มต้น ขอทักทายทุกท่านครับ
อย่างที่เราทราบกันดีว่าทุกวันนี้ AI และระบบ Automation มีบทบาทมากขึ้นในหลายด้าน ทั้งในการทำงาน การเรียน หรือการแก้ปัญหาในชีวิตประจำวัน
บทความนี้จะพาทุกท่านมาลองทำ ระบบแจ้งซ่อม ที่ใช้งานได้จริง โดยแทบจะไม่ต้องเขียนโค้ดเลยครับ 😊
สิ่งที่ต้องเตรียมก่อนเริ่ม
บัญชี Make.com (สมัครใช้งานฟรีได้ที่ Make.com)
บัญชี Google
บัญชี AWS
บัญชี LINE Official Account (Line OA) (ดูวิธีสมัครได้ที่นี่: LINE for Business)
รูปแบบการทำงานของระบบ
- แจ้งซ่อมผ่าน 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
- เพิ่มใน Webhook URL (1) ใน Line Developer Console และกด Update (2)
- คลิกที่ ‘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 ได้แล้วครับ
Subscribe to my newsletter
Read articles from BOBOdev directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
