Настройка интеграции Битрикс24 с Notion
Документация живёт в Notion, а сделки и задачи — в Битрикс24. Менеджер закрывает сделку, потом вручную идёт в Notion обновить таблицу с проектами. Разработчик фиксирует требования в базе данных Notion, а потом дублирует их в задачу Б24. Через месяц две системы показывают разную картину, и никто не знает, какая версия актуальна. Ручное копирование между Б24 и Notion — это гарантированное рассинхронизирование данных.
Архитектура интеграции
Связка работает через Notion API v1 и Б24 REST API. Notion предоставляет API для работы с базами данных, страницами и блоками. Б24 — вебхуки для подписки на события CRM, задач и бизнес-процессов. Между ними — middleware-сервер, который слушает события обеих сторон и транслирует данные.
Б24 (событие CRM/задачи) → Webhook → Middleware → Notion API → Database/Page
Notion (polling/webhook) → Middleware → Б24 REST API → CRM/задачи
Notion API пока не поддерживает нативные webhooks для отслеживания изменений. Middleware использует polling — опрос базы данных Notion с фильтром last_edited_time каждые 30–60 секунд. Для Б24 работают стандартные вебхуки через event.bind.
Синхронизация баз данных Notion с CRM
Основной сценарий — зеркалирование записей CRM в базу данных Notion. Настраиваем маппинг полей:
| Поле CRM Б24 | Свойство Notion Database | Тип |
|---|---|---|
| TITLE (название сделки) | Name (title) | title |
| STAGE_ID | Статус | select |
| OPPORTUNITY | Сумма | number |
| ASSIGNED_BY_ID | Ответственный | people / rich_text |
| COMPANY_ID → TITLE | Компания | rich_text |
| DATE_CREATE | Дата создания | date |
| UF_* (кастомные поля) | Кастомные свойства | по типу |
При смене стадии сделки в Б24 (событие ONCRMDEALUPDATE) middleware обновляет соответствующую запись в Notion через PATCH /v1/pages/{page_id} с новым значением select-свойства. В обратную сторону — при изменении статуса в Notion middleware вызывает crm.deal.update.
Создание страниц из событий CRM
При наступлении события в Б24 middleware автоматически создаёт страницу в Notion с заполненным контентом:
- Новая сделка → страница в базе «Проекты» с реквизитами клиента, суммой, ответственным. Тело страницы содержит шаблон: секции «Требования», «Сроки», «Контакты».
- Выигранная сделка → страница в базе «Активные проекты» с автоматическим переносом данных из карточки сделки.
- Новая задача → запись в канбан-базе Notion с привязкой к проекту.
Создание страницы — вызов POST /v1/pages с указанием parent.database_id и массива properties. Контент страницы передаётся как массив блоков: paragraph, heading_2, to_do, table.
Двунаправленные обновления
Middleware хранит таблицу маппинга: b24_entity_id ↔ notion_page_id. При каждом обновлении проверяется источник, чтобы избежать петель:
- Б24 обновляет сделку → middleware записывает
sync_source = "b24"в метаданные. - Middleware обновляет страницу Notion.
- При следующем polling middleware видит изменение, но проверяет timestamp — если обновление произошло в пределах 10 секунд после записи middleware, оно пропускается.
Для текстовых полей используется стратегия last write wins — побеждает последнее изменение. Для статусов — настраиваемый приоритет (можно указать, какая система является master).
Работа с Notion API: ограничения
Notion API имеет rate limit — 3 запроса в секунду на интеграцию. Middleware ставит запросы в очередь и выдерживает интервал. При получении 429 Too Many Requests — exponential backoff.
Размер payload ограничен: максимум 100 блоков на один запрос создания страницы. Для больших документов middleware разбивает контент на несколько вызовов PATCH /v1/blocks/{block_id}/children.
Аутентификация и доступы
- Notion: Internal Integration Token. Создаётся в Settings → Integrations. Интеграцию нужно вручную подключить к каждой базе данных через «Add connections» — без этого API не видит базу.
-
Б24: OAuth 2.0 с scope
crm,task,user. Refresh-токен обновляется автоматически. - Middleware хранит оба токена зашифрованными. Данные проходят только через ваш сервер.
Что внедряем
- Middleware для двусторонней синхронизации Б24 CRM и баз данных Notion
- Автоматическое создание страниц Notion из событий CRM
- Маппинг полей CRM на свойства Notion Database
- Двунаправленное обновление статусов с защитой от петель
- Очередь запросов с учётом rate limits Notion API
- Polling-механизм для отслеживания изменений в Notion







