---
title: "Коннектор Notion"
description: "Полное руководство по интеграции Notion для синхронизации баз данных, страниц и содержимого рабочего пространства с Brevo через Tajo."
url: https://tajo.io/ru/docs/connectors/custom/notion/
markdown: https://tajo.io/ru/docs/connectors/custom/notion.md
lang: ru-RU
robots: noindex
---

Подайте заявку на ранний доступ

Укажите имя и рабочий адрес электронной почты. Мы отправим ссылку для подтверждения запроса на доступ к Tajo.

# Коннектор Notion

Статус коннектора: Запланирован Ещё не создан. Сегодня Tajo не запускает этот коннектор.

| Поле источника | Поле назначения | Пример значения |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Подключите рабочее пространство Notion к Brevo для маркетинговых рабочих процессов на основе контента, синхронизации CRM-баз данных и автоматических уведомлений через Tajo.

## Обзор

| Свойство | Значение |
| --- | --- |
| **Платформа** | Notion |
| **Категория** | Custom |
| **Сложность настройки** | Простая |
| **Официальная интеграция** | Нет |
| **Синхронизируемые данные** | Базы данных, страницы, пользователи |
| **Тип API** | REST API |
| **Аутентификация** | Internal Integration Token / OAuth 2.0 |
| **Базовый URL** | `https://api.notion.com` |
| **Версия API** | `2022-06-28` (через заголовок `Notion-Version`) |

## Возможности

- **Синхронизация баз данных**, синхронизация записей баз данных 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: Internal Integration (рекомендуется для одного рабочего пространства)

1. Перейдите на [notion.so/my-integrations](https://www.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: ✓
```

6. Скопируйте **Internal Integration Secret** (начинается с `ntn_`)

Требуется предоставление доступа к страницам

Внутренние интеграции могут получать доступ только к страницам и базам данных, явно открытым для них. Откройте каждую целевую базу данных для интеграции через меню ”…” > “Connections” > выберите интеграцию.

### Вариант 2: OAuth 2.0 (публичные интеграции)

Для интеграций, обслуживающих несколько рабочих пространств, используйте поток OAuth 2.0:

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

### Подключение к Tajo

```bash
tajo connectors install notion \
  --token $NOTION_TOKEN
```

## Конфигурация

### Базовая настройка

```yaml
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:

```yaml
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:

| Эндпоинт | Метод | Назначение |
| --- | --- | --- |
| `/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 | Получить дочерние блоки |
| `/v1/users` | GET | Список всех пользователей рабочего пространства |
| `/v1/users/{id}` | GET | Получить данные пользователя |
| `/v1/search` | POST | Поиск по рабочему пространству |

## Примеры кода

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

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

### Синхронизация базы данных с Brevo

```javascript
// Синхронизация базы данных Notion с листом Brevo
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
// }
```

### Запрос с фильтрацией

```javascript
// Запрос базы данных Notion с фильтрами
const results = await tajo.connectors.query('notion', {
  databaseId: 'abc123def456',
  filter: {
    property: 'Status',
    select: { equals: 'Active' }
  },
  sorts: [
    { property: 'Last Contact', direction: 'descending' }
  ]
});
```

### Создание страницы из события Brevo

```javascript
// Создание страницы Notion при достижении контактом Brevo ключевого момента
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 устанавливает ограничения скорости для каждой интеграции:

| Тип лимита | Значение |
| --- | --- |
| **Ограничение скорости** | 3 запроса в секунду на интеграцию |
| **Burst-лимит** | Короткие всплески допустимы, затем регулирование |
| **Размер страницы** | Максимум 100 записей на запрос с пагинацией |

Пагинация на основе курсора

Notion использует пагинацию на основе курсора. Tajo обрабатывает это автоматически, перебирая все страницы с помощью параметра `next_cursor` до тех пор, пока `has_more` не вернёт `false`.

Notion возвращает `429 Too Many Requests` при превышении лимитов с заголовком `Retry-After`.

## Устранение неполадок

### Частые проблемы

| Проблема | Причина | Решение |
| --- | --- | --- |
| 401 Unauthorized | Недействительный или истёкший токен | Перегенерируйте токен интеграции |
| 403 Forbidden | Страница не открыта для интеграции | Откройте страницу/базу данных для интеграции через Connections |
| 404 Object not found | Неверный ID базы данных или нет доступа | Проверьте ID базы данных и настройки доступа |
| Отсутствующие свойства | Несоответствие схемы | Повторно синхронизируйте схему базы данных и обновите сопоставление полей |
| Превышен лимит запросов | Слишком много быстрых запросов | Уменьшите частоту синхронизации или размер пакета |

### Режим отладки

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

### Проверка подключения

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

## Лучшие практики

1. **Явно открывайте базы данных**, внутренние интеграции видят только открытый контент
2. **Используйте запросы к базам данных вместо поиска**, запросы быстрее и надёжнее для известных баз данных
3. **Тщательно сопоставляйте типы свойств**, у Notion много типов свойств; соотносите их с типами атрибутов Brevo
4. **Обрабатывайте пагинацию**, всегда перебирайте все страницы курсора для получения полных данных
5. **Синхронизируйте инкрементально**, используйте фильтры `last_edited_time` для синхронизации только изменённых записей
6. **Настройте расписание опроса**, Notion не поддерживает вебхуки нативно; опрашивайте API с регулярными интервалами

## Безопасность

- **Аутентификация по Bearer token**, секреты интеграций и OAuth-токены
- **Только HTTPS**, все API-коммуникации зашифрованы через TLS 1.2+
- **Ограниченный доступ**, интеграции обращаются только к явно открытому контенту
- **OAuth 2.0**, безопасный поток авторизации для публичных интеграций
- **Шифрованное хранение**, токены зашифрованы при хранении в Tajo
- **Изоляция рабочего пространства**, каждая интеграция ограничена одним рабочим пространством

## Связанные ресурсы

- [Коннектор Airtable](https://tajo.io/ru/docs/connectors/custom/airtable)
- [Коннектор GitHub](https://tajo.io/ru/docs/connectors/custom/github)
- [Коннектор Linear](https://tajo.io/ru/docs/connectors/custom/linear)
- [Brevo Contacts API](https://tajo.io/ru/docs/contact-management)
