Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

Konektor Notion

Hubungkan workspace Notion Anda ke Brevo untuk alur kerja pemasaran berbasis konten, sinkronisasi database CRM, dan notifikasi otomatis melalui Tajo.

Ikhtisar

PropertiNilai
PlatformNotion
KategoriCustom
Kompleksitas setupMudah
Integrasi resmiTidak
Data yang disinkronkanDatabase, halaman, pengguna
Tipe APIREST API
AutentikasiInternal Integration Token / OAuth 2.0
Base URLhttps://api.notion.com
Versi API2022-06-28 (via header Notion-Version)

Fitur

  • Sinkronisasi database - Sinkronkan entri database Notion ke kontak dan list Brevo
  • Jembatan CRM - Gunakan database Notion sebagai CRM ringan yang tersinkron ke Brevo
  • Notifikasi konten - Picu kampanye Brevo saat halaman Notion diterbitkan
  • Pemetaan properti - Petakan properti database Notion ke atribut kontak Brevo
  • Pemantauan halaman - Lacak pembaruan halaman dan teruskan sebagai event Brevo
  • Sinkronisasi direktori pengguna - Sinkronkan anggota workspace Notion ke kontak Brevo

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  1. Workspace Notion dengan akses admin
  2. Integrasi internal Notion atau aplikasi OAuth
  3. Halaman database yang dibagikan dengan integrasi tersebut
  4. Akun Brevo dengan akses API
  5. Akun Tajo dengan langganan aktif

Autentikasi

Notion mendukung dua metode autentikasi.

Opsi 1: Integrasi internal (direkomendasikan untuk satu workspace)

  1. Buka notion.so/my-integrations
  2. Klik New integration
  3. Beri nama “Tajo Integration”
  4. Pilih workspace Anda
  5. Tetapkan capabilities:
Content Capabilities:
Read content: ✓
Update content: ✓
Insert content: ✓
User Capabilities:
Read user information: ✓
  1. Salin Internal Integration Secret (diawali dengan ntn_)

Halaman wajib dibagikan

Integrasi internal hanya bisa mengakses halaman dan database yang secara eksplisit dibagikan kepadanya. Bagikan setiap database tujuan ke integrasi Anda melalui menu ”…” > “Connections” > pilih integrasi Anda.

Opsi 2: OAuth 2.0 (integrasi publik)

Untuk integrasi yang melayani banyak workspace, gunakan alur OAuth 2.0:

  1. Daftarkan integrasi Anda sebagai integrasi publik
  2. Arahkan pengguna ke: https://api.notion.com/v1/oauth/authorize?client_id=...
  3. Tukarkan code dengan access token di /v1/oauth/token

Menghubungkan ke Tajo

Terminal window
tajo connectors install notion \
--token $NOTION_TOKEN

Konfigurasi

Setup dasar

connectors:
notion:
enabled: true
api_version: "2022-06-28"
sync:
databases: true
pages: false
users: true
databases:
- id: "abc123def456"
name: "Customers"
sync_to_list: 25
- id: "ghi789jkl012"
name: "Leads"
sync_to_list: 26

Pemetaan field

Petakan properti database Notion ke atribut kontak Brevo:

field_mapping:
# Notion property -> Brevo attribute
Name:
type: title
target: FIRSTNAME
Email:
type: email
target: email
Phone:
type: phone_number
target: SMS
Company:
type: rich_text
target: COMPANY
Status:
type: select
target: LEAD_STATUS
Deal Value:
type: number
target: DEAL_VALUE
Last Contact:
type: date
target: LAST_CONTACT_DATE
Tags:
type: multi_select
target: TAGS

Endpoint API

Tajo terintegrasi dengan endpoint Notion API berikut:

EndpointMetodeTujuan
/v1/databases/{id}/queryPOSTMengkueri entri database
/v1/databases/{id}GETMengambil skema database
/v1/pagesPOSTMembuat halaman baru
/v1/pages/{id}GETMengambil properti halaman
/v1/pages/{id}PATCHMemperbarui properti halaman
/v1/blocks/{id}/childrenGETMengambil block turunan
/v1/usersGETMenampilkan semua pengguna workspace
/v1/users/{id}GETMengambil satu pengguna
/v1/searchPOSTMencari di seluruh workspace

Contoh kode

Inisialisasi konektor

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('notion', {
token: process.env.NOTION_TOKEN
});

Menyinkronkan database ke Brevo

// Sync a Notion database to a Brevo list
await tajo.connectors.sync('notion', {
type: 'full',
resources: ['databases'],
databaseId: 'abc123def456',
targetList: 25
});
const status = await tajo.connectors.status('notion');
console.log(status);
// {
// connected: true,
// lastSync: '2024-03-15T14:30:00Z',
// databasesSynced: 2,
// pagesTracked: 1450,
// usersCount: 32
// }

Mengkueri dan memfilter

// Query Notion database with filters
const results = await tajo.connectors.query('notion', {
databaseId: 'abc123def456',
filter: {
property: 'Status',
select: { equals: 'Active' }
},
sorts: [
{ property: 'Last Contact', direction: 'descending' }
]
});

Membuat halaman dari event Brevo

// Create a Notion page when a Brevo contact reaches a milestone
tajo.events.on('contact.attribute_updated', async (event) => {
if (event.attribute === 'LIFECYCLE_STAGE' && event.value === 'customer') {
await tajo.connectors.create('notion', {
databaseId: 'ghi789jkl012',
properties: {
Name: { title: [{ text: { content: event.contact.name } }] },
Email: { email: event.contact.email },
'Converted Date': { date: { start: new Date().toISOString() } }
}
});
}
});

Batas rate

Notion menerapkan batas rate per integrasi:

Tipe batasNilai
Batas rate3 permintaan per detik per integrasi
Batas burstBurst singkat diizinkan, setelah itu dibatasi
Ukuran halamanMaksimum 100 item per permintaan berpaginasi

Paginasi berbasis cursor

Notion menggunakan paginasi berbasis cursor. Tajo menanganinya secara otomatis, menelusuri seluruh halaman memakai parameter next_cursor sampai has_more mengembalikan false.

Notion mengembalikan 429 Too Many Requests saat batas rate terlampaui, disertai header Retry-After.

Pemecahan masalah

Masalah umum

MasalahPenyebabSolusi
401 UnauthorizedToken tidak valid atau kedaluwarsaBuat ulang token integrasi
403 ForbiddenHalaman tidak dibagikan ke integrasiBagikan halaman/database ke integrasi melalui Connections
404 Object not foundID database salah atau tidak dibagikanPeriksa ID database dan pengaturan berbagi
Properti hilangSkema tidak cocokSinkronkan ulang skema database dan perbarui pemetaan field
Batas rate terlampauiTerlalu banyak permintaan beruntunKurangi frekuensi sinkronisasi atau ukuran batch

Mode debug

connectors:
notion:
debug: true
log_level: verbose
log_api_calls: true

Menguji koneksi

Terminal window
tajo connectors test notion
# ✓ API authentication successful
# ✓ Database access verified
# ✓ User list accessible
# ✓ Search operational
# ✓ Page creation available

Praktik terbaik

  1. Bagikan database secara eksplisit - Integrasi internal hanya melihat konten yang dibagikan
  2. Gunakan kueri database dibanding search - Kueri lebih cepat dan lebih andal untuk database yang sudah diketahui
  3. Petakan tipe properti dengan cermat - Notion memiliki banyak tipe properti; cocokkan dengan tipe atribut Brevo
  4. Tangani paginasi - Selalu telusuri seluruh halaman cursor untuk data yang lengkap
  5. Sinkronkan secara inkremental - Gunakan filter last_edited_time agar hanya entri yang berubah tersinkron
  6. Siapkan jadwal polling - Notion tidak mendukung webhook secara native; lakukan polling pada interval tetap

Keamanan

  • Autentikasi Bearer Token - Integration secret dan token OAuth
  • Hanya HTTPS - Seluruh komunikasi API dienkripsi via TLS 1.2+
  • Akses tersegmentasi - Integrasi hanya mengakses konten yang dibagikan secara eksplisit
  • OAuth 2.0 - Alur otorisasi aman untuk integrasi publik
  • Penyimpanan terenkripsi - Token dienkripsi saat disimpan di Tajo
  • Isolasi workspace - Setiap integrasi dibatasi pada satu workspace

Sumber daya terkait

Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

deteksi otomatis
Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.