n8n Thai
by n8n Thai

แจ้งสถานะพัสดุลูกค้าอัตโนมัติด้วย n8n

สร้าง Workflow ใน n8n เพื่อดึงสถานะพัสดุจาก Kerry, Flash Express, J&T และ EMS แล้วแจ้งลูกค้าผ่าน LINE อัตโนมัติ ลดคำถาม 'ของถึงไหนแล้ว' ได้ทันที

แจ้งสถานะพัสดุลูกค้าอัตโนมัติด้วย n8n

ปัญหาที่ร้านออนไลน์ทุกร้านเจอ

“ของถึงไหนแล้วคะ?” คือคำถามที่ 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ชื่อตัวอย่าง
Aorder_idORD-2026-001
Bcustomer_nameคุณสมชาย
Ccustomer_line_idUxxxxxxxx
Dtracking_numberTH123456789
Ecarrierkerry
Flast_statusin_transit
Glast_update2026-04-10 09:00
HdeliveredFALSE

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