From Kommo to HubSpot: full data migration without losses

Moving from Kommo to HubSpot is a strategic decision typically made by companies during scaling: they need deeper analytics, marketing automation, Service Hub, or enterprise features. Technically the migration looks simple — export a CSV, import into HubSpot. In practice this is a source of serious data losses: activity history does not transfer via CSV, Kommo custom fields have no direct HubSpot equivalents, the lead and contact structure differs fundamentally, and pipelines require manual recreation. Here is how to do the migration correctly.


The key difference: Kommo vs HubSpot data model

Before discussing data transfer, it is important to understand the fundamental architectural difference that makes a simple CSV import insufficient.

Kommo ObjectHubSpot ObjectMapping note
LeadDealKommo combines contact and deal in a lead — in HubSpot these are separate objects
ContactContactDirect match
CompanyCompanyDirect match
PipelinePipelineDifferent stage names, must be recreated
TaskTaskDirect match, but fields differ
NoteNoteTransferred as activity in timeline
TagList / PropertyIn HubSpot tags = lists or properties
Lead custom fieldDeal PropertyField type must match
Contact custom fieldContact PropertyField type must match
Inbound messagesActivity (Email/Chat)Partial transfer — depends on channel

The main architectural problem: in Kommo, a lead is a single object that contains both deal data and contact data. In HubSpot, Contact and Deal are separate objects linked via Associations. During migration, each Kommo lead must be “decomposed” into a Contact + Deal and correctly associated. CSV import does not do this automatically.


What is lost when migrating via CSV

The standard migration path — export from Kommo to CSV and import into HubSpot — transfers only the flat data of the current state:

  • ✅ Basic contact fields: name, email, phone
  • ✅ Current custom field values
  • Activity history — calls, emails, meetings, stage changes are not transferred via CSV
  • Notes and comments — completely lost
  • Stage change history — no record of when and by whom a deal stage was changed
  • Associations between objects — contact not linked to company, deal not linked to contact
  • Tasks and events — team activities are lost
  • Inbound messages from messengers — WhatsApp, Telegram, Instagram conversations are not transferred
  • Files and documents — attachments in lead cards are not transferred
  • Source attribution — UTM parameters and lead sources are lost

Step-by-step process for a proper migration

Step 1: Kommo data audit

Before migration, an inventory of what exists in Kommo must be conducted:

  • Number of leads, contacts, companies
  • List of all custom fields and their types (text, number, date, list, multi-select)
  • List of pipelines and stages
  • History volume: how many notes, tasks, activities
  • Lead sources: which integrations are active (WhatsApp, Instagram, email, etc.)
  • Date of the oldest lead — determines the volume of historical data

Step 2: Preparing HubSpot

Before data transfer begins, HubSpot must be configured to match the Kommo structure:

  • All custom properties for Contacts and Deals created with correct field types
  • Pipelines created with stages corresponding to Kommo pipelines
  • Validation rules and required fields configured
  • Required Lists and Views created for segmentation

Critical mistake: starting data import before configuring the HubSpot structure. Data without the correct structure will create chaos that is harder to fix than starting over.

Step 3: Field mapping

A mapping table is created: each Kommo field → corresponding HubSpot property. Particular attention to:

  • Field types — a Kommo list should become a Dropdown or Multi-select in HubSpot depending on the logic
  • List values — all option values for custom lists must be created in HubSpot before import
  • HubSpot required fields — if a field was not required in Kommo, some records may have no value

Step 4: Transfer via API

A proper migration uses the Kommo API and HubSpot API directly:

Extracted from Kommo API:

text

GET /api/v4/leads — all leads with custom fields GET /api/v4/contacts — all contacts GET /api/v4/companies — all companies GET /api/v4/leads/{id}/notes — lead notes GET /api/v4/tasks — tasks GET /api/v4/events — activity history

Created in HubSpot API:

text

POST /crm/v3/objects/contacts — create contact POST /crm/v3/objects/deals — create deal POST /crm/v3/objects/deals/{id}/associations/contacts/{contactId} — association POST /crm/v3/objects/notes — transfer notes as activities POST /crm/v3/objects/tasks — transfer tasks POST /engagements/v1/engagements — activity history

Step 5: Delta migration

After the main transfer, a time gap exists between Kommo and HubSpot: the team continues working in Kommo while data correctness in HubSpot is being verified. During this time, new leads and activities appear. Delta migration transfers only data created or changed after the main transfer — this guarantees that no lead is lost during the switchover.

Step 6: Validation

Before officially switching the team to HubSpot, a spot-check is conducted:

  • 50 random leads: were all fields transferred correctly
  • 20 contacts: are they correctly linked to companies and deals
  • All custom fields: are values populated
  • Activity history: are notes visible in the timeline
  • Tasks: are they assigned to the correct users

Common problems when migrating Kommo to HubSpot

Duplicate contacts.
Kommo allows creating leads without an email — only with a name or phone. When importing to HubSpot without email deduplication, such records create duplicates. Preliminary data cleaning and deduplication rule configuration are required.

Lost messenger history.
WhatsApp, Telegram, Instagram conversations are stored in Kommo as inbound messages. This data is not accessible through a standard API export and requires special handling. Typically transferred as notes with the conversation text.

Field type mismatch.
A “Multi-select” field in Kommo may have a different structure than Multi-select in HubSpot. During import, values may be merged into a single string instead of separate values — this breaks segmentation.

Lost attribution.
Kommo stores the lead source (UTM parameters, channel, advertising campaign). HubSpot has its own attribution system. During migration, historical UTM data is transferred to custom properties — standard HubSpot Attribution reporting does not account for them.

Users and owners.
Tasks and leads in Kommo are assigned to specific users. In HubSpot this is hubspot_owner_id. Before migration, all users must be created in HubSpot and the mapping table kommo_user_id → hubspot_owner_id prepared in advance.


Real-world case

IT company, 12 people, 3,000 leads in Kommo, 5 pipelines, 2 years of history.

The company had grown to a point where Kommo no longer met its needs for marketing automation and detailed analytics. Decided to migrate to HubSpot Professional. First attempt via CSV export: transferred contacts and deals, lost all activity history and object associations. The team worked with “bare” cards without context — after a week they returned to Kommo.

Second attempt with a custom API migration: complete data audit, HubSpot structure preparation, mapping all custom fields, transfer via API with notes and tasks, delta migration, one week of validation with parallel work in both systems.

Result: 3,000 leads, 8,500 notes, 1,200 tasks transferred without losses. Team switchover took one day. Within a month, the first HubSpot Workflows were configured based on historical data.


Which companies benefit from this migration

The Kommo → HubSpot migration is typical for companies at a scaling stage that need HubSpot tools unavailable in Kommo: a full marketing hub, Service Hub for customer support, detailed attribution reporting, custom CRM objects, enterprise SSO and access permissions.

Also relevant for international companies operating in EU/UK markets — HubSpot has a more developed ecosystem of integrations with European tools and better GDPR infrastructure.


Frequently asked questions

How long does a Kommo → HubSpot migration take?
Depends on data volume and structural complexity. Basic migration of up to 1,000 leads without deep history — 3–5 business days. Full migration with activity history, custom fields, and multiple pipelines for 5,000+ leads — 2–3 weeks including validation and delta migration.

Can WhatsApp and Telegram conversations from Kommo be transferred to HubSpot?
Full conversation transfer is technically limited — messengers do not provide API for exporting chat history. Conversations are transferred as text notes in the HubSpot contact timeline, preserving dates and participants. This provides context but not a full chat history.

Does the team need to stop working during the migration?
No. A proper migration runs in parallel with the team working in Kommo. After the main transfer, delta migration synchronizes new data. Team switchover to HubSpot happens in one day after successful validation.

What happens to Kommo integrations — WhatsApp Business, Instagram, email?
Integrations are not transferred — they are reconfigured in HubSpot. Before migration, a list of all active Kommo integrations and their HubSpot equivalents is compiled. Some integrations (for example, WhatsApp Business) require separate setup via the HubSpot App Marketplace or custom solutions.

Can only part of the data be migrated — for example only active leads?
Yes. Migration supports filtering by: time period, pipeline stage, lead status (active/closed), assigned manager. It is possible to transfer only active leads from the last 2 years, leaving archived data in Kommo as a reference.

If you plan to move from Kommo to HubSpot and want to transfer data without losses — describe the task to the Exceltic.dev team. We will conduct a data audit and propose a migration plan suited to your structure.

More articles

All →