n8n Thai
by n8n Thai

ใช้ Google Sheets เป็น CRM ง่ายๆ ด้วย n8n

สร้างระบบ CRM บน Google Sheets โดยใช้ n8n จัดการ Lead บันทึก Follow-up และส่งข้อความติดตามลูกค้าอัตโนมัติ

ใช้ Google Sheets เป็น CRM ง่ายๆ ด้วย n8n

CRM (Customer Relationship Management) ไม่จำเป็นต้องเป็นซอฟต์แวร์ราคาแพงเสมอไป สำหรับธุรกิจขนาดเล็กถึงกลางที่มีทีม Sales ไม่ใหญ่ Google Sheets เป็นฐานข้อมูลลูกค้าที่ใช้ได้ดีมาก เพราะทุกคนในทีมเข้าถึงได้ง่าย แก้ไขพร้อมกันได้ และไม่มีค่าใช้จ่ายเพิ่ม

ส่วน n8n ทำหน้าที่เป็น Automation Engine ที่เชื่อม Sheets เข้ากับช่องทางติดต่อลูกค้า ทั้ง Gmail, LINE, และระบบภายนอก ทำให้ Sheets ไม่ใช่แค่ที่เก็บข้อมูล แต่กลายเป็นระบบที่ทำงานอัตโนมัติได้จริง

โครงสร้าง CRM Sheet

ก่อนสร้าง Workflow ต้องออกแบบโครงสร้าง Sheet ก่อน ตัวอย่างพื้นฐานที่ทำงานได้จริง:

Sheet: Leads

IDNameEmailPhoneSourceStatusOwnerCreatedLast ContactNext Follow UpNotes
  • Source: ที่มาของ Lead เช่น LINE, Website, Facebook, Referral
  • Status: New, Contacted, Qualified, Proposal, Won, Lost
  • Owner: ชื่อ Sales ที่รับผิดชอบ
  • Next Follow Up: วันที่ต้องติดตาม (n8n ใช้คอลัมน์นี้ Trigger การแจ้งเตือน)

Sheet: Interactions

| Lead_ID | Date | Type | Notes | Sales |

เก็บประวัติการติดต่อทุกครั้ง ทำให้รู้ว่าคุยกับลูกค้าเรื่องอะไรไปแล้วบ้าง

Workflow 1: บันทึก Lead ใหม่อัตโนมัติ

ทุกครั้งที่มี Lead เข้ามาจากช่องทางต่างๆ n8n บันทึกลง CRM Sheet อัตโนมัติ

จาก LINE OA:

  1. LINE Webhook Node รับข้อความแรกจากผู้ใช้ใหม่
  2. IF Node ตรวจว่า User ID นี้มีในฐานข้อมูลยังหรือไม่
  3. ถ้าไม่มี → Google Sheets Node Append Row บันทึก Lead ใหม่:
    • Source: LINE
    • Status: New
    • Created: {{ $now }}
  4. LINE Node ส่งข้อความต้อนรับอัตโนมัติ

จาก Google Forms (ลงทะเบียนรับโบรชัวร์/ทดลองใช้):

  1. รับข้อมูลจาก Forms ผ่านวิธีที่อธิบายไว้ในคู่มือ Google Forms
  2. Google Sheets Node Append Row บันทึก Lead พร้อม Source: Website Form
  3. Gmail Node ส่ง Welcome Email พร้อมสิ่งที่ลูกค้าร้องขอ (เช่น ไฟล์โบรชัวร์)

Workflow 2: แจ้งเตือน Follow-up

นี่คือ Workflow ที่ทำให้ Sales ไม่ลืมติดตามลูกค้า

  1. Cron Node ทำงานทุกเช้า 8 โมง
  2. Google Sheets Node Read Rows จาก Sheet Leads
  3. Filter Node กรองเฉพาะแถวที่:
    • Status ไม่ใช่ Won หรือ Lost
    • Next Follow Up มีค่าเท่ากับวันนี้หรือก่อนหน้า
  4. Loop Node วนสำหรับแต่ละ Lead
  5. Gmail Node ส่งอีเมลแจ้ง Sales เจ้าของ Lead:
Subject: [Follow-up] {{ $json.Name }} - ต้องติดต่อวันนี้
Body:
สวัสดี {{ $json.Owner }},
{{ $json.Name }} ({{ $json.Phone }}) รอการติดตามของคุณอยู่
สถานะปัจจุบัน: {{ $json.Status }}
Note ล่าสุด: {{ $json.Notes }}
  1. ไม่ต้องอัปเดต Sheet ในขั้นตอนนี้ ให้ Sales อัปเดตเองหลังติดต่อแล้ว

Workflow 3: ส่ง Drip Email ตาม Status

ลูกค้าที่อยู่ใน Stage ต่างๆ ควรได้รับเนื้อหาที่เหมาะสม n8n ทำ Drip Campaign อัตโนมัติได้

  1. Cron Node ทุกวัน 9 โมงเช้า
  2. Google Sheets Node ดึง Lead ทั้งหมดที่ Status เป็น New และ Created เมื่อ 2 วันที่แล้ว
  3. Gmail Node ส่ง Follow-up Email ที่ 2 วัน:
Subject: ยังสนใจ [ชื่อสินค้า] อยู่ไหม?
Body: สวัสดีคุณ {{ $json.Name }}, เราอยากส่งข้อมูลเพิ่มเติม...
  1. Google Sheets Node Update Status เป็น Contacted และ Last Contact เป็นวันนี้

ทำ Workflow คล้ายกันสำหรับ 7 วัน, 14 วัน เพื่อ Nurture Lead ที่ยังไม่ตัดสินใจ

Workflow 4: อัปเดตสถานะอัตโนมัติ

เมื่อลูกค้าตอบรับ ทำการซื้อ หรือปฏิเสธ สถานะควรอัปเดตทันที

เมื่อลูกค้าชำระเงินผ่านระบบออนไลน์:

  1. Webhook Node รับ Payment Confirmation
  2. Google Sheets Node Read Rows ค้นหา Lead ที่ Email ตรงกัน
  3. Google Sheets Node Update Row เปลี่ยน Status เป็น Won และบันทึกวันที่

เมื่อลูกค้า Unsubscribe จาก Email:

  1. Webhook Node รับ Unsubscribe Event จาก Email Service
  2. Google Sheets Node ค้นหาและอัปเดต Status เป็น Lost
  3. บันทึกใน Sheet Interactions ว่า Type: Unsubscribe

รายงานสถานะ Pipeline รายสัปดาห์

  1. Cron Node ทุกวันศุกร์บ่ายสาม
  2. Google Sheets Node Read ทุกแถวใน Leads
  3. Code Node คำนวณ:
const leads = $input.all();
const summary = {
  total: leads.length,
  new: leads.filter(l => l.json.Status === 'New').length,
  contacted: leads.filter(l => l.json.Status === 'Contacted').length,
  qualified: leads.filter(l => l.json.Status === 'Qualified').length,
  won: leads.filter(l => l.json.Status === 'Won').length,
  lost: leads.filter(l => l.json.Status === 'Lost').length,
  conversion_rate: (leads.filter(l => l.json.Status === 'Won').length / leads.length * 100).toFixed(1) + '%'
};
return [{ json: summary }];
  1. Gmail Node ส่งรายงาน Sales Pipeline ให้ Manager

เมื่อไหรควรอัปเกรดจาก Sheets CRM

Sheets CRM ทำงานได้ดีจนถึงจุดหนึ่ง แต่เมื่อธุรกิจเติบโตอาจพบข้อจำกัด:

  • Team Sales มากกว่า 10 คน การแก้ไขพร้อมกันอาจชนกัน
  • Lead เกิน 10,000 รายการ Sheets เริ่มช้า
  • ต้องการ Pipeline View แบบ Kanban ที่ Sheets ทำได้ไม่สวย
  • ต้องการ Permission แยกแต่ละ Sales ให้เห็นเฉพาะ Lead ของตัวเอง

เมื่อถึงจุดนั้นค่อยพิจารณาย้ายไป CRM จริงเช่น HubSpot หรือ Pipedrive แต่ n8n ก็เชื่อมต่อกับ CRM เหล่านั้นได้เช่นกัน ทำให้ Workflow อัตโนมัติที่สร้างไว้ยังใช้ต่อได้

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

Related posts