n8n Thai
by n8n Thai

n8n x Google Sheets: อ่าน เขียน อัปเดต อัตโนมัติ

คู่มือครบใช้ n8n กับ Google Sheets ตั้งแต่ตั้งค่า Credentials จนถึงอ่าน เขียน อัปเดต และลบข้อมูลอัตโนมัติ

n8n x Google Sheets: อ่าน เขียน อัปเดต อัตโนมัติ

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

ใน n8n มี Google Sheets Node ที่ครอบคลุม Operation หลักครบ ได้แก่ Read Rows, Append Row, Update Row, Delete Row, และ Get Sheet Data สามารถใช้ร่วมกับบริการอื่นใน Workflow เดียวกันได้ไม่จำกัด

ตั้งค่า Google Sheets Credentials

ก่อนใช้ Google Sheets Node ต้องสร้าง OAuth2 Credential ก่อน (ถ้ายังไม่เคยทำดูขั้นตอนเต็มได้ที่คู่มือ n8n x Google Workspace)

สรุปสั้นๆ: สร้าง OAuth2 Client ID ใน Google Cloud Console เปิดใช้ Google Sheets API แล้วนำ Client ID และ Secret ไปใส่ใน n8n Settings > Credentials > Google Sheets OAuth2

Operation 1: Append Row — เพิ่มแถวใหม่

นี่คือ Operation ที่ใช้บ่อยที่สุด เหมาะสำหรับเก็บข้อมูลใหม่ เช่น บันทึก Lead, ออร์เดอร์ หรือผลลัพธ์จาก Webhook

ตั้งค่า Append Row Node:

  1. เพิ่ม Google Sheets Node ใน Workflow
  2. เลือก Credential ที่ตั้งค่าไว้
  3. เลือก Operation: Append Row
  4. ใส่ Spreadsheet ID (เลขใน URL ของ Sheets) และชื่อ Sheet
  5. ใน Columns to Match ใส่ชื่อ header ที่ตรงกับ Column ใน Sheets

ตัวอย่าง: ถ้า Sheets มี header Timestamp, Name, Email, Message ให้ Map ค่าจาก Node ก่อนหน้าเข้าหา field เหล่านี้

Timestamp → {{ $now.toISO() }}
Name      → {{ $json.name }}
Email     → {{ $json.email }}
Message   → {{ $json.message }}

n8n จะเพิ่มแถวใหม่ต่อท้ายข้อมูลที่มีอยู่โดยอัตโนมัติ

Operation 2: Read Rows — อ่านข้อมูล

ใช้เมื่อต้องการดึงข้อมูลจาก Sheets เพื่อประมวลผลต่อ เช่น ดึงรายชื่อลูกค้ามาส่งอีเมล หรือดึงสินค้าคงคลังมาตรวจสอบ

ตั้งค่า Read Rows Node:

  1. เลือก Operation: Read Rows
  2. ระบุ Spreadsheet ID และ Sheet Name
  3. กำหนด Filters ถ้าต้องการอ่านเฉพาะบางแถว เช่น กรองเฉพาะแถวที่คอลัมน์ Status มีค่า Pending

ผลลัพธ์จะออกมาเป็น Array ของ Object แต่ละ Object คือหนึ่งแถว ซึ่งสามารถส่งต่อให้ Loop Node หรือ Filter Node ประมวลผลต่อได้

Operation 3: Update Row — อัปเดตข้อมูล

ใช้เมื่อต้องการเปลี่ยนค่าในแถวที่มีอยู่แล้ว เช่น เปลี่ยน Status ของออร์เดอร์จาก Pending เป็น Shipped

ตั้งค่า Update Row Node:

  1. เลือก Operation: Update Row
  2. ระบุ Spreadsheet ID และ Sheet Name
  3. ในส่วน Row Number ระบุเลขแถวที่ต้องการอัปเดต (โดยทั่วไปได้มาจาก Read Rows ก่อนหน้า)
  4. ระบุค่าใหม่ในคอลัมน์ที่ต้องการเปลี่ยน

เทคนิค: เมื่อใช้ Read Rows แล้วกรองข้อมูล n8n จะคืน rowNumber มาให้ด้วย ใช้ {{ $json.rowNumber }} ใน Update Node เพื่ออ้างอิงแถวนั้น

Operation 4: Delete Row — ลบแถว

ใช้เมื่อต้องการลบข้อมูลที่ไม่ต้องการออก เช่น ลบออร์เดอร์ที่ยกเลิก หรือล้างข้อมูล Test

หมายเหตุด้านความปลอดภัย: การลบข้อมูลใน Google Sheets ผ่าน n8n ไม่สามารถ Undo ได้ง่ายเหมือนกด Ctrl+Z ใน Sheets โดยตรง ควรทดสอบ Workflow อย่างระมัดระวังก่อน Deploy จริง แนะนำให้เพิ่ม IF Node ตรวจสอบเงื่อนไขก่อน Delete เสมอ

Pattern ที่ใช้บ่อยใน Workflow จริง

Pattern 1: Webhook → Sheets

รับข้อมูลจาก Form หรือ API ภายนอกแล้วบันทึกทันที เป็น Pattern ที่ง่ายและใช้บ่อยที่สุด Nodes ที่ใช้: Webhook → Set → Google Sheets (Append)

Pattern 2: Sheets → Email Campaign

ดึงรายชื่อผู้รับจาก Sheets แล้วส่งอีเมลทีละคน Nodes ที่ใช้: Cron → Google Sheets (Read) → Split In Batches → Gmail/SendGrid

Pattern 3: ตรวจสอบข้อมูลใหม่ใน Sheets → แจ้งเตือน

Poll Sheets ทุก N นาที ตรวจหาแถวใหม่ที่ยังไม่ได้ประมวลผล แล้วส่ง LINE หรือ Slack แจ้งทีม Nodes ที่ใช้: Cron → Google Sheets (Read) → Filter → LINE / Slack → Google Sheets (Update status)

Pattern 4: Sync ข้อมูลระหว่าง Sheets สองชีท

ดึงข้อมูลจาก Sheets ต้นทาง ประมวลผล แล้วเขียนลง Sheets ปลายทาง ใช้สำหรับสรุปข้อมูลหรือแยก Report ตามทีม

เคล็ดลับประสิทธิภาพ

หลีกเลี่ยง Loop เดี่ยว: ถ้าต้องอัปเดตหลายแถวพร้อมกัน ใช้ Batch Mode แทนการ Loop อ่านทีละแถวเพื่อลด API Calls

ใช้ Named Range: ตั้งชื่อ Range ใน Sheets แล้วอ้างอิงชื่อใน n8n แทน A1:Z100 ทำให้ Workflow ดูแลรักษาง่ายกว่า

Cache ข้อมูลที่ไม่เปลี่ยนบ่อย: ถ้ามี Lookup Table ใน Sheets ที่ไม่ได้อัปเดตทุกวัน ให้ดึงข้อมูลนั้นมาเก็บใน Variable แล้วใช้ซ้ำใน Run เดียวกันแทนการดึงซ้ำ

Header Row ต้องชัดเจน: n8n ใช้ Row แรกเป็นชื่อ Column เสมอ ตั้งชื่อ Header ให้สื่อความหมาย ไม่มีช่องว่าง ใช้ตัวอักษรภาษาอังกฤษหรือขีดล่างเพื่อหลีกเลี่ยงปัญหาการ Map

Use Case ต่อยอด

เมื่อเข้าใจ Google Sheets Node แล้ว สามารถต่อยอดได้หลากหลาย เช่นสร้าง Dashboard อัตโนมัติบน Sheets ที่รวมข้อมูลจากหลายแหล่ง หรือใช้ Sheets เป็น CRM ง่ายๆ สำหรับจัดการข้อมูลลูกค้าโดยไม่ต้องซื้อซอฟต์แวร์ราคาแพง

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

Related posts