Skip to main content

Metadata Coverage: Extract & Deploy Status

Last updated: 2026-04-18. Codebase state: post-security-fixes branch. HubSpot API research: актуально на апрель 2026.


Легенда

СимволЗначение
Реализовано и работает надёжно
⚠️Реализовано с оговорками / частично
🔴Не деплоится (read-only или заблокировано)
Не реализовано, но API HubSpot позволяет
HubSpot API не поддерживает (read-only или нет публичного API)

1. Что сейчас в репо: 17 типов

CRM — Схемы

ТипЭкстрактДеплойПодводные камни
custom_objectsПри create — properties/associations вкладываются иерархически в payload
standard_objects⚠️Всегда update — стандартные объекты уже есть на любом портале, нельзя создать
custom_object_propertyBatch create (100/запрос), sequential update
standard_object_propertyАналогично custom
crm_propertiesПростые свойства (contact, company, deal и т.д.)
property_groupsДолжны деплоиться до properties — порядок в DependencyGraph исправлен
association_definitionsТребуют чтобы оба объекта уже существовали на таргете
pipelines
pipeline_stagesПри create pipeline — stages вкладываются в payload

Маркетинг и автоматизация

ТипЭкстрактДеплойПодводные камни
forms⚠️V3/V1-legacy — ок. V4-формы: not_deployable=true выставляется, но Orchestrator его не проверяет → 4xx при деплое
workflows⚠️Полный деплой с actions через /automation/v4/flows. Если referenced объект (список, форма) не существует на таргете — resolveURN вернёт null, workflow создастся с битыми ссылками без ошибки
hubspot_lists⚠️Dynamic/Snapshot — ok. Manual lists: filterBranch не поддерживается → 400. ⚠️ Lists API v1 sunset 30 апреля 2026 — нужна миграция на v3
campaigns⚠️Кампания создаётся, но ассоциации с ассетами (письма, страницы) — отдельный API, не реализованы
ctas⚠️Legacy V1 CTA deprecated. Новые Button CTA (V3) поддержаны. Роутинг по ctaType
sequences🔴ReadOnlyHandler — HubSpot не поддерживает запись sequences через public API

CMS контент

ТипЭкстрактДеплойПодводные камни
email_templates⚠️template_path должен существовать на таргете. Если нет — 400 или пустой шаблон без ошибки
landing_pages⚠️Аналогично: зависимость от шаблонов и модулей. Переносить без предварительного деплоя тем через HubSpot CLI бессмысленно
site_pages⚠️Аналогично landing_pages
blog_posts⚠️Требует существующего blog на таргете с тем же slug

Служебные

ТипЭкстрактДеплойПодводные камни
quote_templates⚠️Требует Sales Hub. На порталах без плана — 403
hubspot_owners🔴Read-only. Используются только для reference resolution при экстракте. Owners создаются только добавлением пользователя

2. Что можно добавить: HubSpot API это поддерживает

Высокий приоритет

ТипAPI HubSpotСложностьПримечание
Custom behavioral events (схемы)/events/v3/event-definitionsСредняяGET+POST+PATCH. С 2025 — доступно на Pro (раньше только Enterprise). Важно для переноса аналитики
Tickets pipelines/crm/v3/pipelines/ticketsНизкаяАналогично deal pipelines — скорее всего покрывается текущим PipelinesHandler, но нет отдельного subtype
SLA configurationsService Hub APIВысокаяGET+POST+PATCH. Enterprise-only. С 2025 — active hours/timezone per rule
Property validation rules/crm/v3/property-validationsНизкаяНовый endpoint 2025. Правила валидации значений свойств

Средний приоритет

ТипAPI HubSpotПримечание
CMS Templates/content/api/v2/templatesGET+POST+PATCH. Полноценный read/write. Частично решает проблему зависимости CMS от шаблонов
CMS ModulesDesign Manager APIGET+POST+PATCH. React-модули поддержаны с 2025
Association labels (custom)Associations API v3Custom association labels — новая фича 2025
Custom workflow action definitionsDeveloper platform APIОпределения кастомных action-блоков для workflow
Scoring properties (формулы)Часть CRM schemasФормулы скоринга могут теряться при обычном экстракте свойств

Низкий приоритет

ТипAPI HubSpotПримечание
Products catalog/crm/v3/objects/productsГраница между данными и метаданными. Скорее для data backup
Tax ratesCommerce Hub API (новый 2025)Актуально если используют Commerce Hub
Subscription types/communication-preferences/v3/definitionsRead-only, но полезно для сравнения
Webhooks subscriptions/webhooks/v3Конфиги вебхуков — переносимы

3. Что не покрыть никогда: нет публичного API

ТипСтатус
Reporting dashboards / custom reports❌ Нет публичного API
Playbooks❌ Нет публичного API
Approval workflows (Sales Hub)❌ Нет публичного API
Chat flows / Bot flows (Conversations)❌ Ограниченный API, запись недоступна
Meeting scheduler settings❌ Нет публичного API
Sequences❌ Нет write API (только read)

4. Срочные проблемы в текущей реализации

🔴 Баг: not_deployable не проверяется

Файлы: Extractor.js:471-475, DeploymentOrchestrator.js:175-177

V4-формы помечаются additional_details.not_deployable = true при экстракте. Поле доходит до hydrated item в ChangesetHydrator (строка 258), но DeploymentOrchestrator фильтрует только по skipDeployment. Попытка задеплоить V4-форму упадёт с 4xx.

Фикс:

// DeploymentOrchestrator.js — перед scope validation
const notDeployableItems = hydratedItems.filter(i => i.additional_details?.not_deployable);
const deployableItems = hydratedItems.filter(i => !i.additional_details?.not_deployable);
// notDeployableItems → blockedResults с reason = i.additional_details.not_deployable_reason

🔴 Срочно: Lists API v1 sunset 30 апреля 2026

HubSpot окончательно отключает оставшиеся 3 endpoint Lists API v1 30 апреля 2026. Нужно проверить, на какой версии работает ListHandler и hubspot_lists экстракт.


⚠️ Workflows: тихие битые ссылки

MappingService.resolveURN() при отсутствии маппинга может вернуть null или исходный URN-string вместо реального HubSpot ID. HubSpot примет такой workflow без ошибки валидации — но enrollment triggers и actions будут работать некорректно или не работать вообще. Нужен pre-flight check перед деплоем workflow.


⚠️ CMS: деплой без шаблонов бессмысленен

Landing pages, site pages, email templates зависят от шаблонов (template_path/templateId), которые живут в Design Manager и не переносятся этим инструментом. В assisted deploy нужно предупреждение если в changeset есть CMS-типы и таргет — другой портал.


5. Предупреждения для assisted deploy UI

ТипТекст предупреждения
forms + V4"V4 forms cannot be deployed via API. Deploy manually in HubSpot."
workflows"Workflow triggers and actions referencing lists, forms or other objects require those to exist on the target portal first."
landing_pages / site_pages / email_templates"CMS templates must exist on the target portal. Deploy templates via HubSpot CLI before proceeding."
sequences"Sequences are read-only and cannot be deployed via API."
hubspot_owners"Owners cannot be created via API. Add users manually in HubSpot."
quote_templates"Requires Sales Hub subscription on the target portal."
campaigns"Campaign asset associations (emails, pages) will not be migrated — link them manually after deploy."
hubspot_lists (manual)"Manual lists cannot have filter rules deployed. List will be created empty."

6. Дорожная карта по покрытию

Сейчас (17 типов в репо)
├── Баги: not_deployable, lists v1 sunset
├── Быстрые wins: custom behavioral events, property validation rules, association labels
├── Средние: CMS Templates + Modules (частично решает CMS-проблему)
└── Долгосрочно: SLA configs, custom workflow actions, tickets pipelines subtype