จัดการ LINE Rich Menu อัตโนมัติด้วย n8n
ใช้ n8n เชื่อม LINE Messaging API เพื่อสร้าง เปลี่ยน และลบ Rich Menu อัตโนมัติ รองรับ Rich Menu ตาม user segment
Rich Menu คือแถบเมนูที่แสดงอยู่ด้านล่างหน้าต่าง chat ใน LINE OA ช่วยให้ผู้ใช้เข้าถึงตัวเลือกสำคัญได้ทันทีโดยไม่ต้องพิมพ์ บทความนี้อธิบายวิธีจัดการ Rich Menu ผ่าน n8n ตั้งแต่การสร้างไปจนถึงการสลับ menu ตาม user แบบอัตโนมัติ
Rich Menu คืออะไร?
Rich Menu เป็นรูปภาพที่มี “hotspot” ซึ่งผู้ใช้สามารถกดได้ แต่ละ hotspot กำหนด action ได้ เช่น:
- ส่งข้อความเฉพาะ (Postback)
- เปิดหน้าเว็บ (URI)
- โทร
- เปิด LINE app ส่วนต่างๆ
ตัวอย่าง Rich Menu ที่ธุรกิจใช้:
- เมนูหลัก: ดูสินค้า, ติดต่อเรา, เช็คออเดอร์, โปรโมชัน
- เมนูสมาชิก: คะแนนสะสม, ประวัติการซื้อ, ตั้งค่า
- เมนูพิเศษ (ช่วง sale): Banner โปรโมชัน พร้อมลิงก์ไปหน้า sale
ทำไมถึงจัดการ Rich Menu ผ่าน n8n?
LINE Console ให้ตั้ง Rich Menu แบบ static ได้ แต่ n8n ทำให้ทำสิ่งเหล่านี้อัตโนมัติ:
- เปลี่ยน Rich Menu ตาม user — แสดงเมนูต่างกันสำหรับสมาชิกใหม่ vs สมาชิกเก่า
- สลับ menu ตาม campaign — เปิด sale menu อัตโนมัติตามกำหนดการ
- กำหนด menu ทันทีที่ user follow — ต้อนรับด้วยเมนูที่เหมาะสม
- ลบ menu เมื่อ campaign สิ้นสุด
LINE Rich Menu API ที่ต้องรู้จัก
| Action | Endpoint | Method |
|---|---|---|
| สร้าง Rich Menu | /v2/bot/richmenu | POST |
| Upload รูป Rich Menu | /v2/bot/richmenu/{id}/content | POST |
| กำหนด default menu | /v2/bot/user/all/richmenu/{id} | POST |
| กำหนด menu ให้ user คนเดียว | /v2/bot/user/{userId}/richmenu/{id} | POST |
| ดึงรายการ menu ทั้งหมด | /v2/bot/richmenu/list | GET |
| ลบ Rich Menu | /v2/bot/richmenu/{id} | DELETE |
ขั้นตอนที่ 1: เตรียมรูปภาพ Rich Menu
Rich Menu ต้องการรูปภาพตามข้อกำหนดของ LINE:
- ขนาด: 2500x1686 px (full size) หรือ 2500x843 px (half size)
- รูปแบบไฟล์: JPEG หรือ PNG
- ขนาดไฟล์: ไม่เกิน 1 MB
ออกแบบรูปด้วย Figma หรือ Canva แล้ว export เป็น JPEG ก่อนนำมาใช้
ขั้นตอนที่ 2: สร้าง Rich Menu ด้วย n8n
เพิ่ม HTTP Request Node พร้อมข้อมูล:
- URL:
https://api.line.me/v2/bot/richmenu - Method: POST
- Headers:
Authorization: Bearer YOUR_TOKEN,Content-Type: application/json - Body (JSON):
{
"size": {
"width": 2500,
"height": 1686
},
"selected": true,
"name": "Main Menu",
"chatBarText": "เมนูหลัก",
"areas": [
{
"bounds": { "x": 0, "y": 0, "width": 833, "height": 843 },
"action": {
"type": "uri",
"label": "ดูสินค้า",
"uri": "https://yourshop.com/products"
}
},
{
"bounds": { "x": 833, "y": 0, "width": 833, "height": 843 },
"action": {
"type": "message",
"label": "เช็คออเดอร์",
"text": "เช็คออเดอร์"
}
},
{
"bounds": { "x": 1666, "y": 0, "width": 834, "height": 843 },
"action": {
"type": "uri",
"label": "ติดต่อเรา",
"uri": "https://yourshop.com/contact"
}
}
]
}
Response จะมี richMenuId ที่ต้องใช้ในขั้นตอนต่อไป
ขั้นตอนที่ 3: Upload รูปภาพ
เพิ่ม HTTP Request Node อีกตัวสำหรับ upload รูป:
- URL:
https://api-data.line.me/v2/bot/richmenu/{{ $json.richMenuId }}/content - Method: POST
- Headers:
Authorization: Bearer YOUR_TOKEN,Content-Type: image/jpeg - Body: Binary (รูปภาพ)
ใน n8n สามารถใช้ Read Binary File Node เพื่ออ่านรูปจาก local หรือ HTTP Request Node เพื่อดึงรูปจาก URL แล้วส่งต่อ
ขั้นตอนที่ 4: กำหนด Default Rich Menu
HTTP Request:
- URL: https://api.line.me/v2/bot/user/all/richmenu/{{ $json.richMenuId }}
- Method: POST
ทุก user ที่ยังไม่ได้ถูกกำหนด menu เฉพาะจะเห็น menu นี้
Workflow: สลับ Rich Menu อัตโนมัติ
ตัวอย่าง workflow เปลี่ยน menu เมื่อเริ่ม campaign:
Schedule Trigger (ทุกวันจันทร์ 9.00)
→ IF Node (ตรวจว่าอยู่ในช่วง campaign หรือไม่)
→ HTTP Request (กำหนด Sale Rich Menu เป็น default)
Schedule Trigger (วันอาทิตย์ 23.59)
→ HTTP Request (เปลี่ยนกลับเป็น Regular Rich Menu)
Workflow: กำหนด Menu ตาม User Segment
เมื่อ user follow LINE OA:
Webhook (รับ event follow)
→ HTTP Request (ดึง user profile)
→ IF Node (ตรวจสอบ user type จาก database)
→ HTTP Request (กำหนด menu ที่เหมาะกับ user นี้)
URL สำหรับกำหนด menu เฉพาะ user:
https://api.line.me/v2/bot/user/{{ $json.userId }}/richmenu/{{ $json.richMenuId }}
ดูบทความที่เกี่ยวข้อง: สร้าง LINE Flex Message สวยๆ | คู่มือ LINE Automation ครบทุกวิธี
อยากเรียน n8n แบบเป็นระบบ ตั้งแต่เริ่มต้นจนสร้าง Workflow ใช้งานจริงได้ ลองดู คอร์สสอน n8n ที่ aiunlock.co
Related posts
n8n x LINE: คู่มือเชื่อมต่อ LINE ทำ Automation ครบทุกวิธี
รวมทุกวิธีเชื่อมต่อ LINE กับ n8n ตั้งแต่ LINE Notify, Messaging API, Flex Message ไปจนถึง Rich Menu และ AI Chatbot
ส่ง LINE Notify ด้วย n8n: แจ้งเตือนอัตโนมัติ
สร้าง workflow แจ้งเตือน LINE Notify ด้วย n8n ทีละขั้นตอน ตั้งแต่ขอ Token ไปจนถึงส่งข้อความอัตโนมัติ
แจ้งสถานะพัสดุลูกค้าอัตโนมัติด้วย n8n
สร้าง Workflow ใน n8n เพื่อดึงสถานะพัสดุจาก Kerry, Flash Express, J&T และ EMS แล้วแจ้งลูกค้าผ่าน LINE อัตโนมัติ ลดคำถาม 'ของถึงไหนแล้ว' ได้ทันที