n8n Thai
by n8n Thai

Email Marketing อัตโนมัติด้วย n8n: ส่งเมลตาม Segment

สร้างระบบ Email Marketing อัตโนมัติด้วย n8n เชื่อม SMTP หรือ SendGrid แบ่ง segment ผู้รับ ส่งเมลตามพฤติกรรม และวัด open rate click rate อัตโนมัติ

Email Marketing อัตโนมัติด้วย n8n: ส่งเมลตาม Segment

Email marketing ยังคงให้ ROI สูงที่สุดในบรรดาช่องทาง digital marketing ทุกวันนี้ แต่การส่งเมล blast เดียวกันไปทุกคนได้ผลน้อยลงมากเมื่อเทียบกับการส่งเมลที่ตรงกับพฤติกรรมและความสนใจของแต่ละกลุ่ม n8n ทำ segmentation และ triggered emails ได้โดยไม่ต้องจ่ายค่า Email Marketing platform แพงๆ

ระบบที่สร้างด้วย n8n เหมาะกับธุรกิจที่มีรายชื่อไม่เกิน 50,000 รายการ และต้องการ logic การส่งที่ยืดหยุ่นกว่าที่ tools สำเร็จรูปให้ได้ เช่น เงื่อนไขที่ดึงข้อมูลจากระบบ CRM, ร้านค้า หรือ database ของตัวเอง

เลือก Email Provider ที่ใช้ร่วมกับ n8n

n8n มี node สำเร็จรูปสำหรับ email หลายตัว

Providern8n Nodeราคาเหมาะกับ
GmailGmail nodeฟรี (500/วัน)ทดสอบ, volume น้อย
SendGridSendGrid nodeฟรีถึง 100/วันSME, volume ปานกลาง
MailchimpMailchimp nodeฟรีถึง 1,000/เดือนมี list management ในตัว
SMTPEmail nodeตามค่า hostingมี SMTP server อยู่แล้ว
AWS SESHTTP Request$0.10/1000 เมลvolume สูง, ราคาถูก

สำหรับการเริ่มต้น SendGrid ให้ 100 เมลฟรีต่อวันและ API ใช้งานง่าย

ขั้นตอนที่ 1: ตั้งค่า SendGrid

  1. สมัครที่ sendgrid.com
  2. ไปที่ Settings → API Keys → Create API Key
  3. เลือก “Full Access” หรือ Custom ที่มีสิทธิ์ Mail Send
  4. ใน n8n ไปที่ Credentials → SendGrid API → ใส่ API Key

ตั้งค่า Sender Authentication ใน SendGrid ด้วย เพื่อให้เมลผ่าน spam filter และ open rate ดีขึ้น

ขั้นตอนที่ 2: ออกแบบ Database รายชื่อ

ใช้ Google Sheets หรือ database เก็บข้อมูลผู้รับ

Sheet: subscribers

คอลัมน์ตัวอย่าง
emailuser@example.com
first_nameสมชาย
last_nameใจดี
segmentcustomer, lead, vip
subscribed_at2026-01-15
last_purchase_date2026-03-20
total_spend15000
last_email_sent2026-04-01
open_count12
click_count5
unsubscribedFALSE
tagsnew_customer,promo_accepted

กฎ Segmentation ตัวอย่าง:

  • VIP: total_spend > 10,000 และ last_purchase_date ภายใน 90 วัน
  • Lapsed: ซื้อครั้งสุดท้ายนานกว่า 180 วัน
  • New: subscribed ภายใน 30 วัน ยังไม่เคยซื้อ
  • Engaged: open_count > 5 ใน 3 เดือนล่าสุด

Workflow 1: Welcome Email Series

Trigger: มี subscriber ใหม่เข้ามา (Webhook จาก form หรือ Google Sheets รายการใหม่)

Webhook / Google Sheets Trigger
  → Code: ตรวจสอบว่าส่ง welcome แล้วยัง
  → IF: ยังไม่ได้ส่ง?
    → SendGrid: ส่ง Email วันที่ 1
    → Google Sheets: บันทึก "welcome_sent: true"
    → Wait 3 วัน
    → SendGrid: ส่ง Email วันที่ 3 (Tips & Resources)
    → Wait 4 วัน
    → SendGrid: ส่ง Email วันที่ 7 (Case Study / Social Proof)

Workflow 2: Segment-based Broadcast

ส่ง newsletter ไปยังกลุ่มเฉพาะ รันทุกอาทิตย์

Schedule Trigger (ทุกวันอังคาร 10:00)
  → Google Sheets: ดึง subscribers ทั้งหมดที่ unsubscribed = FALSE
  → Code: คัดแยกตาม segment logic
  → Split In Batches (batch size 50)
  → Loop:
    → Code: สร้าง personalized content ตาม segment
    → SendGrid: ส่งเมล
    → Wait 1 วินาที (rate limiting)
    → Google Sheets: update last_email_sent
  → Log: บันทึกสถิติการส่ง

Code node สำหรับสร้าง personalized content:

const subscriber = $input.first().json;
let subject, preheader, cta_text, cta_url;

if (subscriber.segment === 'vip') {
  subject = `${subscriber.first_name} สิทธิพิเศษสำหรับลูกค้า VIP เดือนนี้`;
  preheader = 'ส่วนลด 20% เฉพาะคุณ';
  cta_text = 'ดูสิทธิพิเศษ';
  cta_url = 'https://yoursite.com/vip-offer';
} else if (subscriber.segment === 'lapsed') {
  subject = `${subscriber.first_name} เรายังคิดถึงคุณอยู่`;
  preheader = 'กลับมาช้อปรับส่วนลด 15%';
  cta_text = 'ช้อปเลย';
  cta_url = 'https://yoursite.com/comeback';
} else {
  subject = 'อัปเดตสินค้าใหม่ประจำสัปดาห์';
  preheader = 'สินค้าใหม่มาแล้ว';
  cta_text = 'ดูสินค้าใหม่';
  cta_url = 'https://yoursite.com/new-arrivals';
}

return [{
  json: {
    ...subscriber,
    email_subject: subject,
    email_preheader: preheader,
    email_cta_text: cta_text,
    email_cta_url: cta_url
  }
}];

Workflow 3: Abandoned Cart Email

Trigger: ลูกค้าเพิ่มสินค้าในตะกร้าแต่ไม่ checkout ภายใน 1 ชั่วโมง

Webhook (จาก e-commerce platform)
  → Code: ตรวจสอบว่ามี cart item
  → Wait 1 ชั่วโมง
  → HTTP Request: ตรวจสอบว่า order complete แล้วหรือยัง
  → IF: ยังไม่ complete?
    → SendGrid: ส่ง Abandoned Cart Email
    → Wait 24 ชั่วโมง
    → HTTP Request: ตรวจอีกครั้ง
    → IF: ยังไม่ complete?
      → SendGrid: ส่งเมล reminder พร้อมส่วนลด

วัด Open Rate และ Click Rate

SendGrid รองรับ Event Webhook ที่ส่ง event กลับมาเมื่อมี open หรือ click สร้าง Webhook endpoint ใน n8n รับ event แล้วอัปเดต Google Sheets

n8n Webhook endpoint:

POST /webhook/sendgrid-events
Body (จาก SendGrid):
[
  {
    "email": "user@example.com",
    "event": "open",
    "timestamp": 1712345678,
    "sg_message_id": "abc123"
  }
]

Update Sheets:

// เพิ่ม open_count หรือ click_count
const event = $input.first().json;
if (event.event === 'open') {
  // หา row ใน subscribers sheet แล้ว +1 open_count
} else if (event.event === 'click') {
  // +1 click_count
} else if (event.event === 'unsubscribe') {
  // set unsubscribed = TRUE
}

จัดการ Unsubscribe อย่างถูกต้อง

กฎหมาย PDPA ของไทยและ CAN-SPAM กำหนดให้มีกลไก unsubscribe ทุกเมล ใช้ SendGrid Unsubscribe Group หรือสร้างระบบเอง ทุก unsubscribe event จาก SendGrid Webhook ต้องอัปเดต database ทันทีและหยุดส่งเมลไปยัง email นั้น ไม่มีข้อยกเว้น

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

Related posts