Когда сделка закрывается в HubSpot, команда онбординга и успеха должна получить контекст о клиенте - сумму, продукт, account manager, специфику договорённостей. Кастомная интеграция через HubSpot webhook и Notion API решает это без ручного копирования: при переходе сделки в «Closed Won» в Notion автоматически создаётся страница клиента со всеми ключевыми полями.
Нативная интеграция HubSpot с Notion существует, но решает другую задачу - она позволяет встраивать страницы Notion в карточку HubSpot. В обратную сторону, из CRM в базу знаний, данные не передаются.
В проектах Exceltic.dev это один из самых повторяющихся запросов от компаний сегмента 20-80 человек: продажи работают в HubSpot, команда исполнения - в Notion. Разрыв между ними стоит реального времени при каждом онбординге. Статья разбирает архитектуру связки, конкретные поля API и схему двусторонней записи.
Операционная боль
Каждый раз когда сделка закрывается, account manager тратит 15-30 минут: копирует сумму контракта, контакт, продукт, свои заметки из HubSpot - и вставляет их в Notion вручную. При 10-15 сделках в месяц это 2-4 часа только на перенос данных. Хуже - часть информации теряется или устаревает к моменту онбординга. Команда успеха начинает работу с неполным контекстом.
База знаний клиентов - это структурированное хранилище страниц Notion, где каждый клиент представлен отдельной записью с полями из CRM, историей взаимодействий и внутренними заметками команды.
Что умеет нативная интеграция (и где потолок)
HubSpot App Marketplace содержит несколько коннекторов для Notion - как от самой Notion, так и от третьих сторон (Zapier, Make, n8n). По состоянию на Q2 2026, ни один из них не закрывает задачу полноценной синхронизации клиентской карточки.
Что работает в нативных вариантах:
- Встраивание страниц Notion внутрь карточки HubSpot в режиме просмотра
- Ручное создание страниц через Make/Zapier при срабатывании триггера
Что не работает:
- Нативная интеграция HubSpot-Notion не записывает данные в timeline сделки и не создаёт страницы Notion с полями CRM
- Zapier и Make поддерживают только стандартные поля HubSpot - кастомные свойства сделки не передаются
- Обратная запись из Notion в HubSpot (URL страницы, заметки) через no-code инструменты требует отдельного зеркального workflow и часто ломается при обновлении API
- Polling-архитектура Make/Zapier создаёт задержку 5-15 минут и стоит дорого при объёме
Главный потолок: нет двусторонней связки. Account manager не видит в HubSpot ссылку на Notion-страницу клиента, команда успеха не может добавить заметку в Notion и иметь её отражение в CRM.
Что реализуется через кастомную интеграцию
HubSpot webhook на deal closed-won -> создание страницы в Notion
Логика простая: HubSpot Workflows позволяет настроить триггер «Deal stage = Closed Won» и отправить POST-запрос на внешний webhook-эндпоинт. Сервер-обработчик получает payload с идентификатором сделки, запрашивает полные данные через HubSpot CRM API (GET /crm/v3/objects/deals/{dealId}?properties=dealname,amount,closedate,dealstage,hubspot_owner_id), и затем вызывает Notion API для создания страницы.
Структура запроса к Notion API (POST https://api.notion.com/v1/pages) выглядит так:
{
"parent": { "database_id": "<your-notion-database-id>" },
"properties": {
"Name": {
"title": [{ "text": { "content": "Acme Corp - Enterprise" } }]
},
"Amount": {
"number": 45000
},
"Close Date": {
"date": { "start": "2026-06-15" }
},
"Product": {
"select": { "name": "HubSpot Integration" }
},
"Account Manager": {
"rich_text": [{ "text": { "content": "Anna Ivanova" } }]
},
"HubSpot Deal URL": {
"url": "https://app.hubspot.com/contacts/xxx/deal/12345"
}
}
}
Аутентификация: заголовок Authorization: Bearer <integration-token> плюс Notion-Version: 2026-03-11. Токен выдаётся при создании Internal Integration в настройках Notion и имеет доступ только к тем базам данных, которые вы явно расшарили интеграции.
Поддерживаемые типы свойств Notion для маппинга из HubSpot: title, rich_text, number, select, multi_select, date, url, email, phone_number, checkbox. Это покрывает все стандартные поля сделки и большинство кастомных.
Обратная запись: Notion page URL в HubSpot + двусторонние заметки
После создания страницы в Notion API возвращает id и url новой записи. Сервер-обработчик немедленно записывает этот URL в кастомное свойство сделки HubSpot через PATCH /crm/v3/objects/deals/{dealId}. Теперь из любой HubSpot-карточки можно одним кликом перейти в Notion-страницу клиента.
Двусторонние заметки реализуются через Notion webhook (доступен в API): при добавлении блока в страницу клиента в Notion - обработчик создаёт Note engagement в HubSpot через POST /crm/v3/objects/notes. Это даёт account manager полную картину: внутренние обсуждения команды успеха видны в timeline сделки.
Пошаговая схема интеграции
- Настройка HubSpot Workflow - триггер «Deal Stage = Closed Won», действие «Send Webhook» с полезной нагрузкой:
dealId,dealname,amount,closedate,associated_contact_id - Сервер-обработчик (Node.js/Python, хостинг: Railway, Heroku, AWS Lambda) принимает POST, верифицирует подпись HubSpot (
X-HubSpot-Signature), запрашивает полные данные сделки - Запрос к HubSpot CRM API - GET
/crm/v3/objects/deals/{dealId}с нужными properties, GET/crm/v3/objects/contacts/{contactId}для email, имени, компании контакта - Маппинг полей - преобразование типов данных HubSpot в типы Notion (например, HubSpot timestamp в ISO-8601 для Notion
date, числовая сумма напрямую вnumber) - POST к Notion API - создание страницы в базе знаний клиентов, получение
idиurlстраницы в ответе - Обратная запись в HubSpot - PATCH сделки с Notion URL в кастомное свойство
notion_page_url - Notion webhook для заметок (опционально) - подписка на события базы данных, запись новых блоков как Notes в HubSpot timeline
Идемпотентность: перед созданием страницы обработчик проверяет, нет ли уже записи с этим dealId в базе Notion (запрос POST /v1/databases/{db_id}/query с фильтром по полю HubSpot Deal ID). Это предотвращает дубли при повторных срабатываниях webhook.
Реальный кейс
Команда из 35 человек, B2B SaaS, закрывает 12-18 сделок в месяц. До интеграции: account manager тратил около 20 минут на ручной перенос данных в Notion при каждой сделке, ещё 10-15 минут - менеджер по онбордингу на уточнение деталей в Slack. Итого: около 6 часов команды в месяц только на передачу контекста.
После запуска кастомной интеграции: страница в Notion создаётся в течение 30 секунд после закрытия сделки. Поля: сумма, продукт, контакт, account manager, дата закрытия, ссылка на карточку HubSpot. Время внедрения - 3 рабочих дня (настройка webhook, сервер-обработчик, маппинг полей, тестирование на стейджинге). Типичная стоимость поддержки после запуска - нулевая при стабильном стеке.
Отдельный выигрыш: менеджер по успеху добавляет первые заметки об онбординге прямо в Notion - они автоматически появляются в timeline сделки HubSpot. Head of sales видит активность по клиенту не переключаясь между инструментами.
Связать HubSpot с другими рабочими инструментами команды - паттерн, который Exceltic.dev реализует в разных конфигурациях. Например, HubSpot + Slack: уведомления о сделках решают похожую задачу для real-time алертов команды.
Для кого подходит эта интеграция
Интеграция актуальна для B2B-компаний от 20 человек, где продажи и исполнение работают в разных инструментах. Конкретнее - если выполняются три условия: HubSpot как основная CRM, Notion как база знаний или инструмент команды успеха/онбординга, и регулярный поток закрытых сделок от 5+ в месяц. При меньшем объёме ручной перенос занимает меньше времени, чем стоит настройка.
Если в вашем стеке есть кастомные интеграции с HubSpot для других сервисов - Notion легко добавляется в тот же обработчик без отдельной инфраструктуры.
Не подходит: если Notion используется только как личный инструмент нескольких человек без общей базы данных клиентов - создание страниц без структурированной базы не даёт ценности.
Часто задаваемые вопросы
Какие поля сделки HubSpot можно передать в Notion?
Через HubSpot CRM API (GET /crm/v3/objects/deals/{dealId}) доступны все стандартные свойства сделки: dealname, amount, closedate, dealstage, hubspot_owner_id, а также любые кастомные свойства, созданные в вашем HubSpot-аккаунте. Дополнительно через associations можно получить связанные контакты и компании. В Notion это маппируется в свойства типа title, number, date, select, rich_text, url. Единственное ограничение - длинные текстовые поля (например, заметки из HubSpot) обрезаются до 2000 символов в одном rich_text-элементе Notion, поэтому длинные тексты лучше передавать как блоки страницы (children), а не как свойства.
Почему не использовать Zapier или Make вместо кастомной разработки?
Zapier и Make справляются с простыми сценариями: одно поле из стандартного HubSpot-свойства в один Notion-блок. Проблемы начинаются на кастомных полях, обратной записи URL в HubSpot, идемпотентности (Zapier не проверяет дубли), объёме (при 20+ сделках в месяц стоимость Zapier на этом workflow составит $50-100/месяц дополнительно), и особенно на двусторонней синхронизации заметок. Кастомная интеграция решает все эти задачи за единоразовую стоимость разработки без recurring-платежей за каждый «зап».
Как настроить аутентификацию Notion API?
Для Internal Integration (наиболее распространённый случай) создайте интеграцию на developers.notion.com/reference: Settings -> My integrations -> New integration. Вы получите токен вида secret_xxxxxxxx. Добавьте интеграцию к нужным базам данных Notion через Share -> Invite. В запросах используйте заголовок Authorization: Bearer secret_xxxxxxxx плюс Notion-Version: 2026-03-11. Токен не протухает автоматически, но при компрометации его можно ротировать в настройках интеграции без изменения кода.
Что происходит если webhook HubSpot срабатывает дважды для одной сделки?
Это реальный сценарий: если менеджер случайно перевёл сделку из «Closed Won» в другой статус и обратно, workflow сработает повторно. Защита от дублей: перед созданием страницы обработчик запрашивает базу Notion (POST /v1/databases/{db_id}/query) с фильтром по кастомному полю «HubSpot Deal ID». Если запись уже существует - обработчик обновляет её (PATCH /v1/pages/{page_id}) вместо создания новой. Это стандартный паттерн идемпотентности для webhook-интеграций.
Сколько времени занимает внедрение?
Для стандартного сценария (HubSpot Workflow -> webhook -> создание страницы Notion с 5-8 полями -> обратная запись URL) - 2-3 рабочих дня включая тестирование. Если нужна двусторонняя синхронизация заметок - ещё 1-2 дня. Добавление новых полей после запуска занимает 1-2 часа. Предварительное условие: наличие структурированной Notion-базы данных клиентов со схемой, в которую будут записываться данные.
Если в вашей команде продажи работают в HubSpot, а онбординг и успех - в Notion, и между ними сейчас Slack-переписка и ручной copy-paste - опишите задачу команде Exceltic.dev. Разберём схему маппинга полей под ваш стек и оценим объём работ.
Смотрите также: HubSpot AI summary звонков в карточку контакта - похожий паттерн автоматического обогащения CRM-карточки из внешних источников.