---
title: "Trình Kết Nối Supabase"
description: "Hướng dẫn tích hợp Supabase đầy đủ để đồng bộ dữ liệu database, authentication users và realtime events với Brevo qua Tajo."
url: https://tajo.io/vi/docs/connectors/custom/supabase/
markdown: https://tajo.io/vi/docs/connectors/custom/supabase.md
lang: vi-VN
robots: noindex
---

Đăng ký quyền truy cập sớm

Nhập tên và địa chỉ email công việc của bạn. Chúng tôi sẽ gửi liên kết để xác nhận yêu cầu truy cập Tajo.

# Trình Kết Nối Supabase

Trạng thái trình kết nối: Dự kiến Chưa được xây dựng. Hiện Tajo chưa chạy trình kết nối này.

| Trường nguồn | Trường đích | Giá trị mẫu |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Kết nối Supabase với Brevo qua Tajo để đồng bộ database records, auth users và realtime events, kích hoạt chiến dịch marketing tự động từ thay đổi dữ liệu ứng dụng.

## Tổng Quan

| Thuộc Tính | Giá Trị |
| --- | --- |
| **Nền Tảng** | Supabase |
| **Danh Mục** | Tùy Chỉnh |
| **Độ Phức Tạp Thiết Lập** | Dễ |
| **Tích Hợp Chính Thức** | Không |
| **Dữ Liệu Đồng Bộ** | Database, Auth Users, Realtime |
| **Loại API** | PostgREST API + Auth API |
| **URL API** | `https://[project-ref].supabase.co` |

## Tính Năng

- **Đồng bộ database table** - Truy vấn và đồng bộ bất kỳ Supabase table nào
- **Auth users** - Nhập Supabase auth users vào liên hệ Brevo
- **Realtime subscriptions** - Nhận cập nhật khi database rows thay đổi
- **Row Level Security** - Truy cập dữ liệu an toàn với Supabase service role
- **Functions** - Gọi Supabase Edge Functions để xử lý dữ liệu tùy chỉnh

## Yêu Cầu

Trước khi bắt đầu, hãy đảm bảo bạn có:

1. Tài khoản Supabase với project hoạt động
2. Project URL và API keys
3. Tài khoản Brevo với quyền truy cập API
4. Tài khoản Tajo

## Xác Thực

API Keys

Sử dụng `service_role` key cho server-side integrations vì nó bypass Row Level Security. Không bao giờ expose `service_role` key phía client — chỉ dùng `anon` key ở phía client.

```bash
# Sử dụng service role key cho tích hợp server-side
curl "https://[ref].supabase.co/rest/v1/users" \
  -H "apikey: YOUR_SERVICE_ROLE_KEY" \
  -H "Authorization: Bearer YOUR_SERVICE_ROLE_KEY"
```

### Kết Nối với Tajo

```bash
tajo connectors install supabase \
  --project-url $SUPABASE_URL \
  --service-role-key $SUPABASE_SERVICE_ROLE_KEY
```

## Cấu Hình

### Thiết Lập Cơ Bản

```yaml
connectors:
  supabase:
    enabled: true
    project_url: "${SUPABASE_URL}"
    service_role_key: "${SUPABASE_SERVICE_ROLE_KEY}"

    sync:
      auth_users: true
      tables:
        - name: "profiles"
          primary_key: "user_id"
          sync_to: brevo_contacts
        - name: "subscriptions"
          sync_to: brevo_attributes

    realtime:
      enabled: false  # Bật nếu cần realtime updates
      tables: ["profiles", "subscriptions"]
```

### Ánh Xạ Trường

```yaml
field_mapping:
  # Auth user fields
  email: email
  raw_user_meta_data->>'full_name': FULLNAME
  created_at: SIGNUP_DATE
  last_sign_in_at: LAST_LOGIN

  # Profile table fields
  profiles.phone: SMS
  profiles.company: COMPANY_NAME
  profiles.plan: PLAN_TYPE

  # Subscription fields
  subscriptions.status: SUBSCRIPTION_STATUS
  subscriptions.current_period_end: SUBSCRIPTION_RENEWAL
```

## API Endpoints

| Phương Thức | Endpoint | Mô Tả |
| --- | --- | --- |
| `GET` | `/rest/v1/{table}` | Query table data |
| `POST` | `/rest/v1/{table}` | Insert rows |
| `PATCH` | `/rest/v1/{table}?filter` | Update rows |
| `DELETE` | `/rest/v1/{table}?filter` | Delete rows |
| `GET` | `/auth/v1/admin/users` | Liệt kê auth users |
| `GET` | `/auth/v1/admin/users/{id}` | Lấy auth user theo ID |

## Ví Dụ Code

### Khởi Tạo Trình Kết Nối

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

await tajo.connectors.connect('supabase', {
  projectUrl: process.env.SUPABASE_URL,
  serviceRoleKey: process.env.SUPABASE_SERVICE_ROLE_KEY
});
```

### Đồng Bộ Users Sang Brevo

```javascript
// Đồng bộ Supabase auth users sang liên hệ Brevo
await tajo.connectors.sync('supabase', {
  type: 'incremental',
  resources: ['auth_users', 'profiles'],
  since: '2024-01-01',
  joinTables: true
});
```

Giới Hạn Tốc Độ API

Supabase enforces rate limits dựa trên gói của bạn. Free plan giới hạn 500 yêu cầu/giây. Theo dõi header `x-ratelimit-remaining` để tránh lỗi 429.

## Giới Hạn Tốc Độ

| Gói | Giới Hạn |
| --- | --- |
| Free | 500 yêu cầu/giây |
| Pro | 1.000 yêu cầu/giây |
| Team | 5.000 yêu cầu/giây |
| Enterprise | Tùy chỉnh |

## Khắc Phục Sự Cố

| Sự Cố | Nguyên Nhân | Giải Pháp |
| --- | --- | --- |
| 401 Unauthorized | API key không hợp lệ | Kiểm tra service role key trong Supabase dashboard |
| RLS blocking access | Row Level Security | Đảm bảo dùng service\_role key, không phải anon key |
| Table không tìm thấy | Tên table sai | Kiểm tra schema và tên table chính xác |
| Auth users rỗng | Quyền admin thiếu | Service role key cần quyền admin để truy cập auth.users |

## Tài Nguyên Liên Quan

- [Tài Liệu API Supabase](https://supabase.com/docs/reference/api/introduction)
- [Supabase Auth Admin API](https://supabase.com/docs/reference/javascript/auth-admin-listusers)
- [Customer Sync Skill](https://tajo.io/vi/docs/skills/data-sync/customer-sync)
