n8n Thai
by n8n Thai

รับข้อมูลจาก Google Forms แล้วทำ Automation ด้วย n8n

เชื่อม Google Forms กับ n8n ผ่าน Webhook หรือ Sheets บันทึกข้อมูล ส่งอีเมลยืนยัน และสร้างนัดหมายอัตโนมัติ

รับข้อมูลจาก Google Forms แล้วทำ Automation ด้วย n8n

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

วิธีที่ Google Forms เชื่อมกับ n8n

Google Forms ไม่มี Webhook หรือ API โดยตรงที่ n8n ดึงข้อมูลได้ทันที วิธีที่ใช้ได้จริงมีสองแบบ:

วิธีที่ 1: Poll Google Sheets (แนะนำสำหรับส่วนใหญ่)

ผูก Google Forms กับ Google Sheets (Forms มีตัวเลือก “Link to Spreadsheet” ในเมนู Responses) แล้วตั้ง n8n ให้ดึงข้อมูลจาก Sheets ทุกไม่กี่นาที

ข้อดี: ตั้งค่าง่าย ไม่ต้องการ Script พิเศษ ข้อเสีย: มี Delay ตามรอบ Poll เช่นทุก 5 นาที ไม่ Real-time

วิธีที่ 2: Google Apps Script Webhook

เขียน Apps Script ใน Forms ให้ยิง HTTP POST ไปหา n8n Webhook ทันทีที่มีการ Submit

ข้อดี: Real-time ทันทีที่กรอก ข้อเสีย: ต้องเขียนโค้ด Apps Script เล็กน้อย

บทความนี้จะอธิบายทั้งสองวิธี

วิธีที่ 1: เชื่อมผ่าน Google Sheets (Poll)

ขั้นตอนที่ 1: ผูก Forms กับ Sheets

  1. เปิด Google Form ที่ต้องการ
  2. ไปที่แท็บ Responses แล้วคลิกไอคอน Google Sheets
  3. เลือก Create a new spreadsheet หรือ Select existing spreadsheet
  4. Sheets จะมี Sheet ชื่อ “Form Responses 1” ที่มีข้อมูลทุก Submission โดยอัตโนมัติ

ขั้นตอนที่ 2: สร้าง Workflow ใน n8n

  1. เพิ่ม Cron Node ตั้ง Schedule ทุก 5 นาที (หรือตามความเหมาะสม)
  2. เพิ่ม Google Sheets Node เลือก Operation: Read Rows อ่านข้อมูลจาก Sheet ที่ผูกกับ Form
  3. เพิ่ม Filter Node กรองเฉพาะแถวที่มีค่า Timestamp ใหม่กว่าครั้งที่ Workflow รันล่าสุด

เทคนิคสำคัญ: เก็บ Timestamp ของแถวล่าสุดที่ประมวลผลไว้ใน Static Data หรือคอลัมน์ Processed ใน Sheets เอง แล้ว Filter แถวที่ยังไม่ได้ Mark ว่า Processed

ตัวอย่าง Filter: เพิ่มคอลัมน์ Status ใน Sheets ค่าเริ่มต้นว่างเปล่า เมื่อ n8n ประมวลผลแล้วให้ Update ค่าเป็น done Workflow รอบถัดไปจะ Filter เฉพาะแถวที่ Status ว่างเปล่า

วิธีที่ 2: Real-time ผ่าน Apps Script

ขั้นตอนที่ 1: สร้าง Webhook ใน n8n

  1. เพิ่ม Webhook Node ใน Workflow ใหม่
  2. Copy URL ของ Webhook
  3. ตั้งค่า Authentication เป็น None หรือ Header Auth ตามความเหมาะสม

ขั้นตอนที่ 2: เพิ่ม Apps Script ใน Google Forms

  1. เปิด Google Form แล้วไปที่ More (⋮) > Script Editor
  2. ใส่โค้ดนี้:
function onFormSubmit(e) {
  var webhookUrl = 'https://your-n8n-domain/webhook/your-webhook-id';
  var formResponse = e.response;
  var itemResponses = formResponse.getItemResponses();
  
  var data = {
    timestamp: formResponse.getTimestamp().toISOString(),
    email: formResponse.getRespondentEmail(),
    responses: {}
  };
  
  itemResponses.forEach(function(item) {
    data.responses[item.getItem().getTitle()] = item.getResponse();
  });
  
  UrlFetchApp.fetch(webhookUrl, {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify(data)
  });
}
  1. บันทึก Script แล้วไปที่ Triggers (นาฬิกา)
  2. เพิ่ม Trigger ใหม่: Function onFormSubmit, Event source: From form, Event type: On form submit
  3. บันทึก Trigger (อาจต้องให้สิทธิ์ Google)

ทุกครั้งที่มีคนกรอก Form n8n จะรับข้อมูลทันที

ต่อยอด Workflow หลังรับข้อมูลจาก Forms

เมื่อ n8n ได้รับข้อมูลจาก Forms แล้ว สามารถทำต่อได้หลายอย่าง:

ส่งอีเมลยืนยันอัตโนมัติ

เพิ่ม Gmail Node ส่งอีเมลไปหา Email ที่กรอกใน Form ใส่ข้อมูลสรุปสิ่งที่กรอกไว้ในอีเมล ทำให้ผู้กรอกรู้ว่าระบบได้รับข้อมูลแล้ว

บันทึกลง Google Sheets อีกชีท

บางครั้งต้องการแยก Sheets ตามประเภท เช่น Form รับสมัครงานเก็บลง Sheets HR, Form รับ Feedback เก็บลง Sheets Quality แทนที่จะใช้ Sheets ที่ Form ผูกไว้โดยตรง

สร้างนัดหมายใน Google Calendar

ถ้า Form ใช้สำหรับจองบริการ ให้เพิ่ม Google Calendar Node สร้าง Event อัตโนมัติจากข้อมูลที่กรอก รวมถึงเชิญทั้งลูกค้าและผู้ให้บริการเข้า Event เดียวกัน ดูรายละเอียดเพิ่มเติมได้ที่คู่มือ n8n x Google Calendar

แจ้งเตือนทีมผ่าน LINE หรือ Slack

เพิ่ม Node ส่งข้อความแจ้งทีมเมื่อมี Submission ใหม่ รวมข้อมูลสำคัญไว้ในข้อความเลย ไม่ต้องให้ทีมเข้าไปเช็ค Sheets เอง

ตัวอย่าง Workflow จริง: ระบบจองคลาสเรียน

สมมุติว่าคุณเปิดสอน Online Class แล้วใช้ Google Forms รับการจอง Workflow จะเป็นแบบนี้:

  1. Webhook / Cron รับข้อมูลการจองจาก Forms
  2. Google Sheets Node บันทึกข้อมูลผู้จองลง Sheets ฐานข้อมูล
  3. IF Node ตรวจสอบว่าที่นั่งในคลาสยังว่างอยู่ไหม (เทียบกับ Sheets คลาส)
  4. แตก Branch:
    • ถ้าว่าง: Gmail ส่งอีเมลยืนยัน + Calendar สร้างนัด + Sheets Update จำนวนที่นั่ง
    • ถ้าเต็ม: Gmail ส่งอีเมลแจ้งว่าเต็มแล้ว พร้อมลิงก์จองคลาสรอบต่อไป

Workflow นี้ทำงานได้โดยไม่ต้องมีคนดูแลตลอดเวลา ประหยัดเวลาได้มากโดยเฉพาะตอน Launch คอร์สใหม่ที่มีคนจองจำนวนมากในเวลาสั้น

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

Related posts