n8n Thai
by n8n Thai

n8n x Supabase: เชื่อมต่อ Backend สมัยใหม่

วิธีใช้ n8n กับ Supabase เพื่ออ่านเขียนข้อมูล PostgreSQL บน Cloud ผ่าน REST API โดยไม่ต้องตั้ง Server เอง

n8n x Supabase: เชื่อมต่อ Backend สมัยใหม่

Supabase เป็น Open Source Alternative ของ Firebase ที่ใช้ PostgreSQL เป็นฐาน ข้อดีหลักคือได้ทั้ง Database ที่แข็งแกร่ง, REST API อัตโนมัติ, Authentication, และ Realtime Subscription ในที่เดียว ทีม Dev สมัยใหม่นิยมใช้ Supabase เป็น Backend เพราะ Setup เร็ว Scale ได้ดี และมี Free Tier ที่ใช้ได้จริง

เมื่อใช้ n8n ร่วมกับ Supabase คุณได้ทั้งพลังของ PostgreSQL และความยืดหยุ่นของ n8n ในการสร้าง Automation ซับซ้อน ไม่ว่าจะเป็น Sync ข้อมูลระหว่างระบบ, Processing ข้อมูลก่อนบันทึก, หรือ Trigger Action เมื่อข้อมูลเปลี่ยน

ตั้งค่า Supabase Credentials ใน n8n

ขั้นตอนที่ 1: สร้าง Supabase Project

  1. ไปที่ supabase.com และสร้าง Account
  2. สร้าง New Project ตั้งชื่อและเลือก Region ที่ใกล้ที่สุด (Singapore เหมาะสำหรับไทย)
  3. รอสักครู่ให้ Project พร้อมใช้งาน

ขั้นตอนที่ 2: หา API Key และ URL

  1. ไปที่ Project Settings > API
  2. Copy:
    • Project URL — เช่น https://xxxxxxxxxxxx.supabase.co
    • anon public key — ใช้สำหรับ Public Access (Row Level Security ป้องกันอยู่)
    • service_role key — ใช้สำหรับ Admin Operations (เก็บเป็นความลับ)

ขั้นตอนที่ 3: ตั้งค่าใน n8n

  1. ไปที่ Settings > Credentials > Add Credential
  2. เลือก Supabase
  3. ใส่ Host (Project URL) และ Service Role Secret
  4. กด Test แล้ว Save

Operation: Get Many — ดึงข้อมูลหลายรายการ

ตัวอย่าง: ดึง User ทั้งหมดที่ยังใช้งานอยู่

  1. เพิ่ม Supabase Node
  2. เลือก Operation: Get Many
  3. ระบุ Table Name: users
  4. เพิ่ม Filter: is_active equals true
  5. ตั้ง Limit ตามต้องการ (ค่า Default คือ 100)

รองรับ Filter หลายเงื่อนไขพร้อมกัน เช่น status = 'active' AND created_at > '2026-01-01'

Operation: Create — เพิ่ม Record ใหม่

ตัวอย่าง: บันทึก Form Submission ลง Supabase

  1. รับข้อมูลจาก Webhook
  2. ใช้ Supabase Node เลือก Create
  3. ระบุ Table: form_submissions
  4. Map Fields จาก Webhook Data

Supabase จะคืน Record ที่สร้างใหม่พร้อม id ที่ Generate อัตโนมัติ (UUID หรือ Sequence แล้วแต่ Design)

Operation: Update — แก้ไข Record

ต้องระบุเงื่อนไขเพื่อระบุ Row ที่ต้องการแก้ไข เช่น id หรือ Field ที่ Unique

ตัวอย่าง: อัปเดตสถานะ Subscription

  1. เลือก Operation: Update
  2. Match Column: user_id equals {{ $json.user_id }}
  3. Update Field: subscription_status = premium

Operation: Delete — ลบ Record

ตัวอย่าง: ลบ Record ที่หมดอายุ

  1. เลือก Operation: Delete
  2. Match Column: expires_at lessThan {{ $now.toISO() }}

ใช้ HTTP Request Node กับ Supabase REST API

สำหรับ Operation ที่ Supabase Node ไม่รองรับโดยตรง เช่น Complex Query หรือ Stored Procedure สามารถใช้ HTTP Request Node เรียก Supabase REST API โดยตรงได้

ตัวอย่าง: Query ด้วย Filter ซับซ้อน

Method: GET
URL: https://xxxxxxxxxxxx.supabase.co/rest/v1/orders
Headers:
  apikey: YOUR_ANON_KEY
  Authorization: Bearer YOUR_SERVICE_ROLE_KEY
  Content-Type: application/json
Query Parameters:
  status=eq.pending&created_at=gte.2026-01-01&select=id,customer_name,total

Supabase REST API ใช้ PostgREST ซึ่งรองรับ Operator หลากหลาย เช่น eq, neq, gt, lt, like, in และ or

ใช้ Supabase กับ n8n สำหรับงาน AI

Supabase รองรับ pgvector Extension ซึ่งทำให้สามารถเก็บ Vector Embeddings ใน PostgreSQL ได้โดยตรง เหมาะสำหรับสร้าง RAG (Retrieval Augmented Generation) System

โครงสร้าง Workflow:

  1. รับ Document ใหม่ (PDF, ข้อความ)
  2. ส่งให้ OpenAI สร้าง Embedding
  3. บันทึก Embedding ลง Supabase ผ่าน HTTP Request
  4. เมื่อมีคำถาม ค้นหา Document ที่ใกล้เคียงที่สุดด้วย pgvector
  5. ส่งผลลัพธ์ให้ LLM สรุปคำตอบ

Workflow ตัวอย่าง: ระบบจัดการสมาชิก

สถานการณ์: ร้านค้าออนไลน์ต้องการส่งอีเมลต้อนรับเมื่อมีสมาชิกใหม่ลงทะเบียน

Workflow:

  1. Webhook Trigger — รับข้อมูลจากฟอร์มลงทะเบียน
  2. Supabase Create — บันทึก User ลงตาราง users
  3. Email Node — ส่งอีเมลต้อนรับพร้อม Activation Link
  4. Supabase Update — อัปเดต welcome_email_sent = true

ความแตกต่างระหว่าง Supabase Node และ PostgreSQL Node

n8n มีทั้ง Supabase Node และ PostgreSQL Node ต่างกันอย่างไร?

Supabase Node ใช้ REST API ของ Supabase ไม่ต้องเปิด Port Database ตรงๆ ปลอดภัยกว่า เหมาะกับการใช้งานทั่วไป

PostgreSQL Node เชื่อมต่อ Database โดยตรง รองรับ SQL Query ซับซ้อนได้เต็มที่ เหมาะถ้าต้องการ JOIN, Transaction หรือ Stored Procedure ต้องเปิด Database Connection Port จากภายนอก

แนะนำให้เริ่มจาก Supabase Node ก่อน ถ้าต้องการ Query ที่ Supabase Node ทำไม่ได้ค่อยเปลี่ยนไปใช้ PostgreSQL Node

ข้อควรระวัง

Row Level Security (RLS): ถ้าใช้ anon key ข้อมูลจะถูกกรองตาม RLS Policy ที่ตั้งไว้ ถ้าต้องการ Access ข้อมูลทั้งหมดให้ใช้ service_role key แต่เก็บไว้เป็นความลับเสมอ

Free Tier Limits: Supabase Free Tier หยุดทำงานหลังไม่ได้ใช้ 1 สัปดาห์ ถ้า Production ควร Upgrade เป็น Pro Plan

Database Backup: Supabase Pro Plan มี Daily Backup อัตโนมัติ Free Tier ไม่มี ควร Export ข้อมูลสำคัญเป็นระยะ

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

Related posts