Конектор Notion

Свържете вашето работно пространство в Notion с Brevo за маркетингови работни потоци, задвижвани от съдържание, синхронизация на CRM бази данни и автоматизирани известия чрез Tajo.

Преглед

СвойствоСтойност
ПлатформаNotion
КатегорияПерсонализирана
Сложност на настройкаЛесна
Официална интеграцияНе
Синхронизирани данниБази данни, страници, потребители
Тип на APIREST API
АвтентикацияInternal Integration Token / OAuth 2.0
Base URLhttps://api.notion.com
Версия на API2022-06-28 (чрез Notion-Version header)

Функции

  • Синхронизация на бази данни – Синхронизирайте записи от бази данни в Notion към контакти и списъци в Brevo
  • CRM мост – Използвайте бази данни в Notion като лек CRM, синхронизиран с Brevo
  • Известия за съдържание – Задействайте кампании в Brevo, когато страници в Notion бъдат публикувани
  • Мапване на свойства – Мапвайте свойства на бази данни в Notion към атрибути на контактите в Brevo
  • Мониторинг на страници – Проследявайте обновления на страници и препращайте като събития в Brevo
  • Синхронизация на потребителска директория – Синхронизирайте членовете на работното пространство в Notion с контактите в Brevo

Предварителни условия

Преди да започнете, уверете се, че имате:

  1. Работно пространство в Notion с админ достъп
  2. Вътрешна интеграция в Notion или OAuth приложение
  3. Страници с бази данни, споделени с интеграцията
  4. Акаунт в Brevo с API достъп
  5. Акаунт в Tajo с активен абонамент

Автентикация

Notion поддържа два метода на автентикация.

Опция 1: Вътрешна интеграция (препоръчително за едно работно пространство)

  1. Отидете на notion.so/my-integrations
  2. Щракнете върху New integration
  3. Наименувайте я “Tajo Integration”
  4. Изберете вашето работно пространство
  5. Настройте възможности:
Content Capabilities:
Read content: ✓
Update content: ✓
Insert content: ✓
User Capabilities:
Read user information: ✓
  1. Копирайте Internal Integration Secret (започва с ntn_)

Изисква се споделяне на страници

Вътрешните интеграции имат достъп само до страници и бази данни, споделени изрично с тях. Споделете всяка целева база данни с вашата интеграция чрез меню ”…” > “Connections” > изберете вашата интеграция.

Опция 2: OAuth 2.0 (публични интеграции)

За интеграции, обслужващи множество работни пространства, използвайте OAuth 2.0 потока:

  1. Регистрирайте вашата интеграция като публична интеграция
  2. Пренасочете потребителите към: https://api.notion.com/v1/oauth/authorize?client_id=...
  3. Разменете кода за access token на /v1/oauth/token

Свързване към Tajo

Terminal window
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: TAGS

API крайни точки

Tajo се интегрира със следните Notion API крайни точки:

EndpointMethodЦел
/v1/databases/{id}/queryPOSTЗаявка на записи от база данни
/v1/databases/{id}GETИзвличане на схема на база данни
/v1/pagesPOSTСъздаване на нова страница
/v1/pages/{id}GETИзвличане на свойства на страница
/v1/pages/{id}PATCHОбновяване на свойства на страница
/v1/blocks/{id}/childrenGETИзвличане на блокови children
/v1/usersGETСписък на всички потребители в работното пространство
/v1/users/{id}GETИзвличане на потребител
/v1/searchPOSTТърсене в работното пространство

Примери за код

Инициализация на конектора

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 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
// }

Заявка и филтриране

// 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' }
]
});

Създаване на страница от 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() } }
}
});
}
});

Лимити на заявки

Notion налага лимити на заявките за всяка интеграция:

Тип лимитСтойност
Rate limit3 заявки в секунда за интеграция
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

Тестване на връзката

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

Най-добри практики

  1. Споделяйте базите данни изрично – Вътрешните интеграции виждат само споделено съдържание
  2. Използвайте database queries вместо search – Заявките са по-бързи и по-надеждни за известни бази данни
  3. Мапвайте типовете на свойствата внимателно – Notion има много типове свойства; съпоставете ги към типовете на атрибутите в Brevo
  4. Обработвайте пагинацията – Винаги итерирайте през всички курсорни страници за пълни данни
  5. Синхронизирайте инкрементално – Използвайте филтри last_edited_time, за да синхронизирате само променени записи
  6. Настройте график за допитване – Notion не поддържа webhooks нативно; допитвайте на редовни интервали

Сигурност

  • Bearer Token автентикация – Интеграционни тайни и OAuth токени
  • Само HTTPS – Цялата API комуникация е криптирана чрез TLS 1.2+
  • Обхванат достъп – Интеграциите имат достъп само до изрично споделено съдържание
  • OAuth 2.0 – Сигурен поток за оторизация за публични интеграции
  • Криптирано съхранение – Токените са криптирани в покой в Tajo
  • Изолация на работното пространство – Всяка интеграция е обхваната към едно работно пространство

Свързани ресурси

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI асистент

Здравейте! Попитайте ме за документацията.