แจ้งสถานะพัสดุลูกค้าอัตโนมัติด้วย n8n
สร้าง Workflow ใน n8n เพื่อดึงสถานะพัสดุจาก Kerry, Flash Express, J&T และ EMS แล้วแจ้งลูกค้าผ่าน LINE อัตโนมัติ ลดคำถาม 'ของถึงไหนแล้ว' ได้ทันที
ปัญหาที่ร้านออนไลน์ทุกร้านเจอ
“ของถึงไหนแล้วคะ?” คือคำถามที่ admin ร้านออนไลน์ได้รับทุกวัน บางร้านต้องตอบคำถามนี้วันละหลายสิบครั้ง n8n แก้ปัญหานี้ได้ด้วยการส่งแจ้งเตือนสถานะพัสดุผ่าน LINE ให้ลูกค้าอัตโนมัติ ก่อนที่ลูกค้าจะถาม
บทความนี้เป็นส่วนหนึ่งของคลัสเตอร์ Automation สำหรับร้านค้าออนไลน์ด้วย n8n
ภาพรวม Workflow
ได้เลข Tracking จากขนส่ง
→ บันทึก Tracking ลง Google Sheets
→ Schedule Trigger (ทุก 2 ชั่วโมง)
→ Loop ผ่านออเดอร์ที่ยังไม่ delivered
→ เรียก Tracking API
→ เปรียบเทียบสถานะกับสถานะเดิม
→ มีการเปลี่ยนแปลง? → ส่ง LINE แจ้งลูกค้า
→ อัปเดตสถานะใน Google Sheets
ขั้นตอนที่ 1: เตรียม Google Sheets ติดตาม Tracking
สร้าง Sheet ชื่อ “Order Tracking” ที่มี columns ดังนี้
| Column | ชื่อ | ตัวอย่าง |
|---|---|---|
| A | order_id | ORD-2026-001 |
| B | customer_name | คุณสมชาย |
| C | customer_line_id | Uxxxxxxxx |
| D | tracking_number | TH123456789 |
| E | carrier | kerry |
| F | last_status | in_transit |
| G | last_update | 2026-04-10 09:00 |
| H | delivered | FALSE |
customer_line_id คือ User ID ของลูกค้าที่ได้จากการ chat กับ LINE OA ก่อน จำเป็นสำหรับการส่งข้อความแบบ push message
ขั้นตอนที่ 2: เชื่อมกับ Tracking API
ขนส่งแต่ละเจ้ามี API ต่างกัน แต่มีบริการรวม tracking API ที่ดี เช่น
ตัวเลือก A: Track&Trace API (ไทย)
บริการรวม tracking หลายขนส่งในไทยในครั้งเดียว รองรับ Kerry, Flash, J&T, Thailand Post (EMS/ลงทะเบียน), Ninja Van และอื่นๆ
HTTP Request node
- Method: GET
- URL: https://api.tracktrace.th/v1/tracking/{{$json.tracking_number}}
- Headers:
Authorization: Bearer {{$credentials.trackntrace_api_key}}
ตัวเลือก B: Kerry Express API โดยตรง
Kerry มี Developer API สำหรับ merchant ที่มีปริมาณการส่งสูง ติดต่อ Kerry เพื่อขอ access
HTTP Request node
- Method: POST
- URL: https://www.kerryexpress.com/th/track/api/
- Body: { "TrackingNumber": "{{$json.tracking_number}}" }
ตัวเลือก C: Scraping หรือ Third-party API
หากขนส่งที่ใช้ไม่มี API ให้ตรง มีบริการ third-party เช่น Aftership หรือ 17track ที่รวม tracking หลายขนส่งทั่วโลก
ขั้นตอนที่ 3: สร้าง Workflow หลัก
Node 1: Schedule Trigger
ตั้งให้ทำงานทุก 2 ชั่วโมงในช่วงเวลา 08:00-22:00
Schedule Trigger
- Mode: Custom Cron
- Cron Expression: 0 8,10,12,14,16,18,20,22 * * *
Node 2: อ่านออเดอร์ที่ยังไม่ delivered
Google Sheets node
- Operation: Get Rows
- Sheet: Order Tracking
- Filter: Column H (delivered) = FALSE
Node 3: Loop Over Items
Loop Over Items node
→ (ภายใน loop)
→ HTTP Request (Tracking API)
→ IF node: สถานะเปลี่ยนจากเดิม?
→ YES: ส่งแจ้งเตือน LINE
→ อัปเดต Google Sheets
Node 4: ส่ง LINE Push Message
HTTP Request node
- Method: POST
- URL: https://api.line.me/v2/bot/message/push
- Headers:
Authorization: Bearer {{$credentials.line_channel_token}}
Content-Type: application/json
- Body:
{
"to": "{{$json.customer_line_id}}",
"messages": [{
"type": "text",
"text": "📦 อัปเดตสถานะพัสดุของคุณ {{$json.customer_name}}\n\nเลข Tracking: {{$json.tracking_number}}\nสถานะ: {{$json.status_thai}}\nเวลา: {{$json.status_time}}\n\nขอบคุณที่ใช้บริการครับ/ค่ะ"
}]
}
หมายเหตุ: LINE Push Message ต้องการ Line Official Account Plan ที่รองรับ messaging API และ User ID ของลูกค้า ซึ่งได้มาเมื่อลูกค้า Follow LINE OA และส่งข้อความมาก่อน
ขั้นตอนที่ 4: แปลงสถานะเป็นภาษาไทย
สถานะจาก Tracking API เป็นภาษาอังกฤษ ต้องแปลงให้เป็นมิตรกับลูกค้า
ใช้ Switch node หรือ Code node สำหรับ mapping
const statusMap = {
'picked_up': 'รับพัสดุแล้ว — อยู่ระหว่างเตรียมจัดส่ง',
'in_transit': 'อยู่ระหว่างการขนส่ง',
'out_for_delivery': 'นำจ่าย — พนักงานกำลังนำส่งถึงบ้านคุณ',
'delivered': 'จัดส่งสำเร็จ — ได้รับพัสดุแล้ว',
'failed_delivery': 'จัดส่งไม่สำเร็จ — กรุณาติดต่อขนส่ง',
'return_to_sender': 'ส่งคืนผู้ส่ง — กรุณาติดต่อร้านค้า'
};
const statusThai = statusMap[$json.status] || $json.status;
return [{ json: { ...$json, status_thai: statusThai } }];
ขั้นตอนที่ 5: แจ้งเตือนพิเศษ
เมื่อพัสดุถึงแล้ว (Delivered)
เพิ่ม IF node ตรวจสอบว่าสถานะเป็น delivered แล้วส่งข้อความพิเศษ
IF node: status == "delivered"
→ YES:
LINE Push Message (ข้อความพิเศษพร้อมขอรีวิว)
Google Sheets (Update delivered = TRUE)
→ (Optional) เชื่อมต่อ Workflow ขอรีวิว
เมื่อจัดส่งไม่สำเร็จ
IF node: status == "failed_delivery"
→ YES:
LINE Push Message (แจ้งลูกค้าพร้อมขั้นตอนแก้ไข)
LINE Notify (แจ้ง admin ด้วย)
ข้อควรระวัง
LINE User ID ต้องได้รับก่อน: ต้องให้ลูกค้า Follow LINE OA และส่งข้อความมาก่อน จึงจะมี User ID สำหรับ push message ทางออกคือให้ลูกค้ากรอก LINE ID ตอนสั่งซื้อ หรือใช้ LINE Notify ที่ลูกค้า subscribe เอง
Tracking API Cost: บริการ third-party tracking API มักมีค่าใช้จ่ายตาม request สำหรับร้านที่ส่งสินค้ามาก ควรคำนวณต้นทุนก่อน
Rate Limit Tracking API: ตั้ง Wait node ระหว่างการ check tracking แต่ละรายการ ไม่ควร request เร็วเกินไป
สรุป
Workflow แจ้งสถานะพัสดุอัตโนมัติลด workload admin ได้จริงและทำให้ลูกค้าพึงพอใจมากขึ้น เพราะได้รับข้อมูลก่อนที่จะต้องถาม เริ่มต้นด้วยการ track ขนส่งหลักที่ใช้ก่อน แล้วค่อยขยายเพิ่ม
เมื่อพัสดุ delivered แล้ว ต่อยอดด้วย Workflow ขอรีวิวได้ทันที ดูได้ที่ จัดการรีวิวลูกค้าอัตโนมัติด้วย n8n
อยากเรียน 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 ไปจนถึงส่งข้อความอัตโนมัติ
แจ้งออเดอร์ใหม่เข้า LINE OA ด้วย n8n
สร้าง workflow แจ้งออเดอร์ใหม่เข้า LINE OA อัตโนมัติ รองรับ WooCommerce, Shopify และ custom webhook ทุกแพลตฟอร์ม