На первый взгляд нативная интеграция HubSpot и Shopify выглядит полноценно: заказы синхронизируются, контакты создаются, e-commerce аналитика появляется в дашбордах. Но при реальном использовании обнаруживаются проблемы, которые ломают работу команды: дубли контактов, сброс кастомных этапов воронки, отсутствие metafields и невозможность синхронизировать несколько магазинов. Разбираем честно.
Что умеет нативная интеграция
Официальный коннектор HubSpot + Shopify закрывает базовые e-commerce сценарии:
- Синхронизация заказов Shopify в объекты HubSpot (Deals или Contacts)
- Создание и обновление контактов при новых заказах
- Сегментация клиентов по покупательскому поведению: LTV, количество заказов, средний чек
- E-commerce аналитика в HubSpot: revenue, AOV, repeat purchase rate
- Базовые триггеры для HubSpot Workflows на основе событий Shopify
Для небольшого магазина с простой структурой данных и стандартными продуктами этого достаточно. Но как только появляется кастомизация — начинаются проблемы.
Где нативная интеграция ломается
Metafields не передаются.
Это наиболее критичное ограничение для большинства Shopify-магазинов. Metafields — кастомные атрибуты продуктов, заказов и клиентов — являются стандартным инструментом кастомизации Shopify. Размер, материал, артикул поставщика, программа лояльности, диетические предпочтения — всё это хранится в metafields. Нативная интеграция их не передаёт. В HubSpot попадают только стандартные поля заказа.
Дубли контактов.
Если клиент оформил заказ с одним email, а в HubSpot уже существует контакт с другим email или без email — интеграция создаёт дубль. При базе в несколько тысяч клиентов это быстро превращается в серьёзную проблему качества данных.
Сброс кастомных этапов воронки.
Известная проблема: подключение Shopify к HubSpot может сбросить кастомные этапы pipeline и заменить их стандартными e-commerce этапами. Компании, потратившие время на настройку воронки под свои процессы, обнаруживают это уже после подключения.
Подписки через сторонние Shopify-приложения не синхронизируются.
Большинство Shopify-магазинов с подписочной моделью используют сторонние apps: ReCharge, Bold Subscriptions, Smartrr. Нативная интеграция HubSpot не видит данные этих приложений — статус подписки, billing cycle, churn не передаются в CRM.
Shopify REST API устаревает.
Shopify активно мигрирует с REST API на GraphQL API. Интеграции, построенные на REST через платформы типа Zapier или Make, могут перестать работать без предупреждения при обновлениях Shopify.
Нет синхронизации нескольких магазинов.
Нативная интеграция поддерживает только один Shopify-магазин на один HubSpot-аккаунт. Бренды с несколькими магазинами — разные регионы, разные продуктовые линейки — не могут получить единую картину по всем магазинам в одном CRM.
Что решает кастомная интеграция от Exceltic.dev
- Передача metafields — кастомные атрибуты продуктов, заказов и клиентов из Shopify Metafields API маппируются на кастомные свойства контактов, компаний и сделок HubSpot
- Дедупликация контактов — перед созданием нового контакта система проверяет наличие существующего по email, телефону и кастомным идентификаторам; найденный контакт обновляется, дубль не создаётся
- Сохранение кастомных этапов pipeline — интеграция не трогает существующую структуру воронки; новые заказы попадают в нужный pipeline с сохранением всех кастомных этапов
- Синхронизация подписочных приложений — middleware подключается к ReCharge, Bold или Smartrr API напрямую и передаёт данные подписок в кастомные свойства HubSpot
- Мультимагазинная архитектура — несколько Shopify-магазинов синхронизируются в один HubSpot-аккаунт с тегированием источника заказа
- GraphQL API — интеграция построена на Shopify GraphQL Admin API, что гарантирует долгосрочную совместимость без риска поломки при миграции Shopify
- Обратная синхронизация — обновление данных клиента в HubSpot (например, сегмент лояльности) передаётся обратно в соответствующий metafield Shopify
Как работает интеграция — технический процесс
Архитектура подключения
Интеграция построена на связке Shopify Webhooks → middleware Exceltic → HubSpot CRM API v3. Shopify отправляет события в реальном времени: orders/create, orders/updated, orders/paid, customers/create, customers/update, refunds/create. Для получения metafields middleware выполняет дополнительный запрос через Shopify GraphQL Admin API — REST API не возвращает metafields в webhook payload.
Аутентификация с Shopify реализована через Custom App с минимально необходимыми scopes: read_orders, read_customers, read_products, read_metaobjects. Аутентификация с HubSpot через Private App Token.
Пошаговый сценарий: новый заказ с metafields
- Клиент оформляет заказ в Shopify — отправляется webhook
orders/create - Middleware получает базовые данные заказа:
customer_email,total_price,line_items - Дополнительный запрос к Shopify GraphQL API для получения metafields заказа и клиента
- Система ищет существующий контакт в HubSpot:
GET /crm/v3/objects/contacts?email={email} - Если контакт найден — обновляются свойства: LTV, количество заказов, дата последней покупки, metafields
- Если не найден — создаётся новый контакт с полным набором данных включая metafields
- Создаётся Deal в нужном pipeline с суммой заказа и line items
- Deal привязывается к контакту через Association API
- При статусе
paid— Deal переводится на этап «Оплачен» - Данные сегментации обновляются в HubSpot для триггеров Workflows
Мультимагазинная синхронизация
Каждый Shopify-магазин регистрируется в middleware как отдельный источник с уникальным store_id. При создании контакта и сделки в HubSpot добавляется свойство Shopify Store Source с названием магазина. Это позволяет сегментировать клиентов по магазинам, строить отдельные воронки и запускать персонализированные Workflows для каждого магазина из единого HubSpot-аккаунта.
Что происходит при ошибке
Shopify гарантирует повторную доставку webhook при ошибках до 19 раз в течение 48 часов. Middleware использует idempotency keys на основе shopify_order_id — каждый заказ обрабатывается ровно один раз. При недоступности HubSpot API событие сохраняется в очередь с exponential backoff.
Реальный кейс
Оптовый дистрибьютор спортивного питания, 10 менеджеров, ~200 заказов в месяц, два Shopify-магазина: EU и UK.
Компания столкнулась с классической проблемой мультимагазинности: нативная интеграция HubSpot поддерживала только один магазин. Данные по UK-магазину вносились вручную. Дополнительно в Shopify активно использовались metafields для хранения диетических предпочтений клиентов (vegan, gluten-free, lactose-free) — ключевые данные для персонализации email-кампаний. Нативная интеграция их не передавала.
После подключения нативного коннектора обнаружилась ещё одна проблема: кастомная воронка менеджеров по оптовым продажам сбросилась до стандартных e-commerce этапов. Команда потеряла настройки, которые выстраивались несколько месяцев.
Кастомная интеграция решила все три проблемы: оба магазина синхронизируются в один HubSpot с тегированием источника, metafields диетических предпочтений передаются в свойства контактов, кастомная воронка оптовых продаж сохранена и не затронута.
Результат: единая база клиентов по двум магазинам в HubSpot, персонализированные email-кампании на основе metafields увеличили CTR на 34%, 0 ручного ввода данных по UK-магазину.
Для каких бизнесов подходит
Кастомная интеграция наиболее актуальна для e-commerce брендов с несколькими Shopify-магазинами — разные регионы, языки или продуктовые линейки. Нативная интеграция HubSpot физически не поддерживает этот сценарий.
Критически важна для магазинов с подписочной моделью через ReCharge или аналоги — без кастомной интеграции статус подписок, churn и renewal data не попадают в HubSpot, что делает сегментацию и автоматизацию retention неполными.
Часто задаваемые вопросы
Почему нативная интеграция HubSpot + Shopify не передаёт metafields?
Нативная интеграция использует стандартные объекты Shopify Webhook payload, который не включает metafields. Для получения metafields необходим дополнительный запрос к Shopify GraphQL Admin API после получения webhook-события. Это архитектурное решение нативного коннектора — он не выполняет дополнительных API-запросов после получения события.
Можно ли подключить несколько Shopify-магазинов к одному HubSpot через кастомную интеграцию?
Да. Middleware поддерживает неограниченное количество Shopify-магазинов с единым HubSpot-аккаунтом. Каждый магазин получает уникальный идентификатор источника, который записывается в свойство контакта и сделки — это обеспечивает полную сегментацию и аналитику в разрезе магазинов.
Как решается проблема дублей контактов при нескольких магазинах?
Перед созданием контакта middleware проверяет наличие существующего по email (primary), телефону и кастомному идентификатору. При нахождении совпадения — обновляются свойства существующего контакта, добавляется информация о новом заказе и источнике. Дубль не создаётся.
Поддерживает ли интеграция ReCharge и другие подписочные приложения Shopify?
Да. Middleware подключается к ReCharge Webhooks API, Bold Subscriptions API и Smartrr API напрямую. События подписок (активация, пауза, отмена, failed payment) передаются в кастомные свойства контакта HubSpot и запускают соответствующие Workflows.
Сколько времени занимает разработка интеграции HubSpot и Shopify?
Базовая интеграция с metafields и дедупликацией — 4–6 рабочих дней. Мультимагазинная версия с подписочными приложениями и обратной синхронизацией — 10–14 рабочих дней. Exceltic.dev определяет точные сроки после технического брифа.
Если нативная интеграция HubSpot + Shopify не закрывает ваши сценарии — опишите задачу команде Exceltic.dev. Разберём архитектуру и предложим решение под вашу e-commerce структуру.