Конектор Notion
Свържете вашето работно пространство в Notion с Brevo за маркетингови работни потоци, задвижвани от съдържание, синхронизация на CRM бази данни и автоматизирани известия чрез Tajo.
Преглед
| Свойство | Стойност |
|---|---|
| Платформа | Notion |
| Категория | Персонализирана |
| Сложност на настройка | Лесна |
| Официална интеграция | Не |
| Синхронизирани данни | Бази данни, страници, потребители |
| Тип на API | REST API |
| Автентикация | Internal Integration Token / OAuth 2.0 |
| Base URL | https://api.notion.com |
| Версия на API | 2022-06-28 (чрез Notion-Version header) |
Функции
- Синхронизация на бази данни – Синхронизирайте записи от бази данни в Notion към контакти и списъци в Brevo
- CRM мост – Използвайте бази данни в Notion като лек CRM, синхронизиран с Brevo
- Известия за съдържание – Задействайте кампании в Brevo, когато страници в Notion бъдат публикувани
- Мапване на свойства – Мапвайте свойства на бази данни в Notion към атрибути на контактите в Brevo
- Мониторинг на страници – Проследявайте обновления на страници и препращайте като събития в Brevo
- Синхронизация на потребителска директория – Синхронизирайте членовете на работното пространство в Notion с контактите в Brevo
Предварителни условия
Преди да започнете, уверете се, че имате:
- Работно пространство в Notion с админ достъп
- Вътрешна интеграция в Notion или OAuth приложение
- Страници с бази данни, споделени с интеграцията
- Акаунт в Brevo с API достъп
- Акаунт в Tajo с активен абонамент
Автентикация
Notion поддържа два метода на автентикация.
Опция 1: Вътрешна интеграция (препоръчително за едно работно пространство)
- Отидете на notion.so/my-integrations
- Щракнете върху New integration
- Наименувайте я “Tajo Integration”
- Изберете вашето работно пространство
- Настройте възможности:
Content Capabilities: Read content: ✓ Update content: ✓ Insert content: ✓
User Capabilities: Read user information: ✓- Копирайте Internal Integration Secret (започва с
ntn_)
Изисква се споделяне на страници
Вътрешните интеграции имат достъп само до страници и бази данни, споделени изрично с тях. Споделете всяка целева база данни с вашата интеграция чрез меню ”…” > “Connections” > изберете вашата интеграция.
Опция 2: OAuth 2.0 (публични интеграции)
За интеграции, обслужващи множество работни пространства, използвайте OAuth 2.0 потока:
- Регистрирайте вашата интеграция като публична интеграция
- Пренасочете потребителите към:
https://api.notion.com/v1/oauth/authorize?client_id=... - Разменете кода за access token на
/v1/oauth/token
Свързване към Tajo
tajo connectors install notion \ --token $NOTION_TOKENКонфигурация
Основна настройка
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Мапване на полета
Мапвайте свойства на бази данни в Notion към атрибути на контактите в 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: TAGSAPI крайни точки
Tajo се интегрира със следните Notion API крайни точки:
| Endpoint | Method | Цел |
|---|---|---|
/v1/databases/{id}/query | POST | Заявка на записи от база данни |
/v1/databases/{id} | GET | Извличане на схема на база данни |
/v1/pages | POST | Създаване на нова страница |
/v1/pages/{id} | GET | Извличане на свойства на страница |
/v1/pages/{id} | PATCH | Обновяване на свойства на страница |
/v1/blocks/{id}/children | GET | Извличане на блокови children |
/v1/users | GET | Списък на всички потребители в работното пространство |
/v1/users/{id} | GET | Извличане на потребител |
/v1/search | POST | Търсене в работното пространство |
Примери за код
Инициализация на конектора
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});Синхронизация на база данни към Brevo
// Sync a Notion database to a Brevo listawait 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// }Заявка и филтриране
// Query Notion database with filtersconst results = await tajo.connectors.query('notion', { databaseId: 'abc123def456', filter: { property: 'Status', select: { equals: 'Active' } }, sorts: [ { property: 'Last Contact', direction: 'descending' } ]});Създаване на страница от Brevo събитие
// Create a Notion page when a Brevo contact reaches a milestonetajo.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() } } } }); }});Лимити на заявки
Notion налага лимити на заявките за всяка интеграция:
| Тип лимит | Стойност |
|---|---|
| Rate limit | 3 заявки в секунда за интеграция |
| Burst limit | Позволени кратки изблици, след което throttling |
| Размер на страница | Максимум 100 елемента на пагинирана заявка |
Пагинация на базата на курсор
Notion използва пагинация на базата на курсор. Tajo се справя с това автоматично, итерирайки през всички страници чрез параметъра next_cursor, докато has_more върне false.
Notion връща 429 Too Many Requests, когато лимитите на заявките бъдат превишени, с header Retry-After.
Отстраняване на проблеми
Често срещани проблеми
| Проблем | Причина | Решение |
|---|---|---|
| 401 Unauthorized | Невалиден или изтекъл токен | Генерирайте нов интеграционен токен |
| 403 Forbidden | Страницата не е споделена с интеграцията | Споделете страница/база данни с интеграцията чрез Connections |
| 404 Object not found | Неправилно ID на база данни или не е споделена | Проверете ID на базата данни и настройките за споделяне |
| Липсващи свойства | Несъответствие на схемата | Ресинхронизирайте схемата на базата данни и обновете мапването на полета |
| Надвишен лимит на заявките | Твърде много бързи заявки | Намалете честотата или размера на batch-ове |
Debug режим
connectors: notion: debug: true log_level: verbose log_api_calls: trueТестване на връзката
tajo connectors test notion# ✓ API authentication successful# ✓ Database access verified# ✓ User list accessible# ✓ Search operational# ✓ Page creation availableНай-добри практики
- Споделяйте базите данни изрично – Вътрешните интеграции виждат само споделено съдържание
- Използвайте database queries вместо search – Заявките са по-бързи и по-надеждни за известни бази данни
- Мапвайте типовете на свойствата внимателно – Notion има много типове свойства; съпоставете ги към типовете на атрибутите в Brevo
- Обработвайте пагинацията – Винаги итерирайте през всички курсорни страници за пълни данни
- Синхронизирайте инкрементално – Използвайте филтри
last_edited_time, за да синхронизирате само променени записи - Настройте график за допитване – Notion не поддържа webhooks нативно; допитвайте на редовни интервали
Сигурност
- Bearer Token автентикация – Интеграционни тайни и OAuth токени
- Само HTTPS – Цялата API комуникация е криптирана чрез TLS 1.2+
- Обхванат достъп – Интеграциите имат достъп само до изрично споделено съдържание
- OAuth 2.0 – Сигурен поток за оторизация за публични интеграции
- Криптирано съхранение – Токените са криптирани в покой в Tajo
- Изолация на работното пространство – Всяка интеграция е обхваната към едно работно пространство