n8n Thai
by n8n Thai

บันทึกข้อมูลจาก LINE ลง Google Sheets อัตโนมัติ

เชื่อม LINE Messaging API กับ Google Sheets ผ่าน n8n บันทึกข้อความ ชื่อผู้ใช้ และข้อมูลลูกค้าลงชีทอัตโนมัติ

บันทึกข้อมูลจาก LINE ลง Google Sheets อัตโนมัติ

การบันทึกข้อมูลจาก LINE ลง Google Sheets ช่วยให้ธุรกิจมีข้อมูลลูกค้าที่พร้อมวิเคราะห์โดยไม่ต้องพิมพ์เองทุกครั้ง n8n ทำหน้าที่เป็นตัวกลางรับข้อมูลจาก LINE และส่งต่อไปยัง Sheets โดยอัตโนมัติ

Use Case ที่เหมาะกับ Workflow นี้

  • บันทึก lead จากลูกค้าที่ทัก LINE OA
  • เก็บประวัติการสั่งซื้อผ่าน LINE
  • รวบรวม feedback หรือแบบสอบถาม
  • log ข้อความสำหรับ audit หรือ training AI

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

  • LINE OA พร้อม Channel Access Token
  • Google Account ที่มีสิทธิ์แก้ไข Google Sheets
  • n8n instance พร้อม Public URL
  • Google Sheets ที่ตั้งค่า header แล้ว

ขั้นตอนที่ 1: เตรียม Google Sheets

สร้างชีทใหม่หรือเปิดชีทที่มีอยู่ แล้วตั้ง header ในแถวแรก:

TimestampUser IDDisplay NameMessageType

คอลัมน์สามารถปรับเพิ่มตามความต้องการ เช่น เพิ่ม Phone, Email หรือ Order ID

ขั้นตอนที่ 2: ตั้งค่า Google Sheets Credentials ใน n8n

  1. ใน n8n ไปที่ Settings > Credentials
  2. เพิ่ม Credential ใหม่ประเภท Google Sheets OAuth2
  3. ทำตามขั้นตอน OAuth เพื่อให้ n8n เข้าถึง Google Sheets ได้

ดูการตั้งค่า Credentials แบบละเอียดได้ที่ คู่มือ Credentials

ขั้นตอนที่ 3: สร้าง Workflow

โครงสร้าง workflow:

Webhook (รับ event จาก LINE)
  → Set Node (ดึงข้อมูลที่ต้องการ)
  → Google Sheets Node (บันทึกลงชีท)
  → HTTP Request Node (ตอบกลับ LINE — optional)

Webhook Node

  1. เพิ่ม Webhook Node เป็น Trigger
  2. Method: POST
  3. คัดลอก URL ไปใส่ใน LINE Developers Console ตามขั้นตอนใน บทความ Messaging API

Set Node — ดึงข้อมูลจาก LINE Event

LINE ส่ง payload มาในรูปแบบ JSON ข้อมูลที่ต้องการอยู่ใน events[0]:

userId = {{ $json.body.events[0].source.userId }}
messageText = {{ $json.body.events[0].message.text }}
messageType = {{ $json.body.events[0].message.type }}
timestamp = {{ new Date($json.body.events[0].timestamp).toISOString() }}

ขั้นตอนที่ 4: ดึงชื่อผู้ใช้จาก LINE

User ID ไม่ใช่ชื่อที่อ่านง่าย หากต้องการชื่อ display name ของผู้ใช้ให้เพิ่ม HTTP Request Node เพื่อ call LINE Profile API:

  • URL: https://api.line.me/v2/bot/profile/{{ $json.userId }}
  • Method: GET
  • Headers: Authorization: Bearer YOUR_TOKEN

Response จะมี displayName และ pictureUrl ให้ใช้ต่อได้

ขั้นตอนที่ 5: บันทึกลง Google Sheets

เพิ่ม Google Sheets Node:

  1. เลือก operation: Append or Update Row
  2. เลือก Spreadsheet และ Sheet ที่เตรียมไว้
  3. Map ข้อมูลตาม column:
    • Column A (Timestamp): {{ $json.timestamp }}
    • Column B (User ID): {{ $json.userId }}
    • Column C (Display Name): {{ $json.displayName }}
    • Column D (Message): {{ $json.messageText }}
    • Column E (Type): {{ $json.messageType }}

กรองประเภทข้อความก่อนบันทึก

ถ้าต้องการบันทึกเฉพาะข้อความ text ไม่บันทึก sticker หรือรูปภาพ เพิ่ม IF Node ระหว่าง Set Node กับ Google Sheets:

  • Condition: {{ $json.messageType }} equals text
  • True branch: บันทึกลง Sheets
  • False branch: ไม่ทำอะไร หรือ log ไว้ที่อื่น

สร้าง Dashboard จากข้อมูลใน Sheets

เมื่อมีข้อมูลสะสมแล้ว ใช้ Google Sheets built-in chart หรือ Looker Studio เพื่อ visualize จำนวนข้อความต่อวัน, ลูกค้าที่ active ที่สุด หรือ peak time ที่ลูกค้าทักมาบ่อย

ต่อยอด: ส่งข้อมูลกลับจาก Sheets ไป LINE

Workflow สามารถทำงานย้อนกลับได้ด้วย — ใช้ Google Sheets Trigger เพื่อส่งข้อความ Push Message ไปหาลูกค้าเมื่อมีการอัปเดตสถานะในชีท เช่น เมื่อสถานะออเดอร์เปลี่ยนเป็น “จัดส่งแล้ว”


อยากเรียน n8n แบบเป็นระบบ ตั้งแต่เริ่มต้นจนสร้าง Workflow ใช้งานจริงได้ ลองดู คอร์สสอน n8n ที่ aiunlock.co

Related posts