CRM migration
Field-level mapping, validation, and rollback between Bright and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.
Bright
Source
HubSpot
Destination
Compatibility
12 of 12
objects map 1:1 between Bright and HubSpot.
Complexity
BStandard
Timeline
48–72 hours
Overview
Bright CRM stores customer data using a standard SMB object model: contacts linked to companies (many-to-many), deals attached to contacts or companies with stage progression, and activity records tied to individual contacts. HubSpot uses a similar entity model but differs in key ways: lifecycle_stage is a unidirectional property that only advances forward (no historical backtracking), deal pipelines are HubSpot-native with configurable stages and probability, and contact-to-company associations are natively many-to-many. FlitStack AI extracts Bright data via API, maps each standard field (name, email, phone, address, deal amount, close date) to HubSpot's equivalent properties, and handles custom fields by creating HubSpot custom properties with type-aware mapping. Workflows, sequences, and automation logic do not migrate — those must be rebuilt in HubSpot's automation tools. The migration runs in a staged sequence: companies first (for foreign-key resolution), then contacts with lifecycle-stage mapping, then deals with pipeline-stage value mapping, and finally activity records. A 24-48 hour delta-pickup window captures any records modified during cutover.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Bright object lands in HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Bright
Contact
HubSpot
Contact
1:1Bright contacts map directly to HubSpot contacts. Bright stores name, email, phone, job title, and address fields on the contact record — these map to HubSpot's equivalent contact properties. The Bright contact's associated company resolves to a HubSpot company via the contact-company association.
Bright
Company
HubSpot
Company
1:1Bright companies map directly to HubSpot companies. HubSpot's company model includes name, domain, industry, employee count, annual revenue, and address fields. For multi-location Bright companies, each location can become a separate HubSpot company record, or a single company with multiple address entries, preserving city, state, country, and zip code so that geographic segmentation remains intact in HubSpot reporting.
Bright
Deal
HubSpot
Deal
1:1Bright deals map to HubSpot deals, carrying deal name, amount, close date, and owner. The Bright deal stage maps to HubSpot's dealstage property. If Bright uses multiple pipelines, each maps to a separate HubSpot deal pipeline with its own stage configuration.
Bright
Pipeline
HubSpot
Deal Pipeline
1:1Bright's pipeline concept (if the account uses multiple deal pipelines) translates to HubSpot's native deal pipeline model. Each Bright pipeline becomes a separate HubSpot deal pipeline with its own set of stages, probability weights, and display order. The migration plan includes a pipeline-mapping matrix that links each Bright pipeline ID to its HubSpot counterpart, ensuring stage names, probabilities, and order are faithfully reproduced in the target account.
Bright
Deal Stage
HubSpot
Deal Stage
1:1Bright deal stage names map to HubSpot deal stage names value-by-value. If Bright uses stage names like 'Proposal' or 'Negotiation', these map directly to HubSpot stages with the same names. Stage probability percentages are assigned from HubSpot's default stage configuration unless custom probabilities are specified.
Bright
Activity (Call / Email / Meeting)
HubSpot
Engagement Timeline
1:1Bright's activity records (calls, emails, meetings) map to HubSpot's engagement timeline. Each activity type appears as a distinct timeline entry on the associated contact or company record, preserving original timestamps, engagement direction (sent/received), and body content. Calls retain disposition outcomes, meetings retain start/end times, and email threads preserve subject and body, ensuring a complete historical record in HubSpot's activity feed.
Bright
Note
HubSpot
Note
1:1Bright notes map to HubSpot notes on the associated contact or company record. The note body, created date, and owning user are preserved during import. Rich-text formatting present in Bright notes converts to plain text, and any embedded file links are reattached as HubSpot file associations. Timestamps retain the original date and time, allowing full chronological context in the HubSpot timeline.
Bright
Owner
HubSpot
User
1:1Bright owner IDs resolve to HubSpot users by matching email addresses. Bright users without a corresponding HubSpot user are flagged before migration. Unmatched owners can be assigned to a fallback HubSpot user or the records can be imported without an owner for manual assignment post-migration.
Bright
Custom Field (Contact)
HubSpot
Custom Property (Contact)
1:1Bright custom fields on contacts that have no direct HubSpot equivalent become HubSpot custom contact properties. Each custom property is created in HubSpot with a type matching the source field type (text, number, date, picklist). Custom property names in HubSpot follow a snake_case internal name convention.
Bright
Custom Field (Deal)
HubSpot
Custom Property (Deal)
1:1Bright deal custom fields migrate as HubSpot deal custom properties. HubSpot deal custom properties are accessible from the deal record and can be included in deal views, workflows, and reports. The custom property must be created in HubSpot before the migration run.
Bright
Task
HubSpot
Task
1:1Bright tasks map to HubSpot tasks on the associated contact, company, or deal record. All task fields—including subject, body, due date, priority, and owner—are preserved. HubSpot task statuses (not started, in progress, completed) correspond directly to Bright task completion flags, and any recurring task patterns are imported as individual task records with their original recurrence schedule intact.
Bright
Attachment / File
HubSpot
File
1:1Bright file attachments linked to contacts, companies, or deals are downloaded and re‑uploaded to HubSpot Files. Each file is attached to the matching HubSpot record, preserving the original filename, file type, and size. HubSpot's file storage limits per account tier apply, and large files are flagged for review if they exceed the tier's maximum upload size, ensuring compliance with HubSpot's storage policy.
| Bright | HubSpot | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Pipeline | Deal Pipeline1:1 | Fully supported | |
| Deal Stage | Deal Stage1:1 | Fully supported | |
| Activity (Call / Email / Meeting) | Engagement Timeline1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Custom Field (Contact) | Custom Property (Contact)1:1 | Fully supported | |
| Custom Field (Deal) | Custom Property (Deal)1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Attachment / File | File1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Bright gotchas
CIS deduction rates are employee-specific and must transfer as discrete fields
No bulk document export API forces manual file downloads
Leave entitlement balances require separate export alongside the request history
HubSpot gotchas
Marketing Contacts billing model is migration-critical
Feature tier gating is not visible until onboarding
Mandatory onboarding fees inflate year-one cost
HubSpot CSV importer cannot migrate engagements or attachments
Custom objects require Enterprise and a pre-existing schema
Pair-specific challenges
Migration approach
Extract Bright data via API with field inventory
FlitStack AI authenticates to Bright via API using read-only credentials scoped to the migration. We pull a complete field inventory listing every standard and custom field present on contacts, companies, deals, and activities. This inventory drives the mapping plan and identifies which Bright custom fields require HubSpot custom property creation. We also capture association data (which contacts link to which companies, which deals attach to which contacts) as adjacency lists for HubSpot association creation.
Create HubSpot custom properties and configure deal pipelines
Before data lands, FlitStack AI creates the HubSpot custom properties identified in the field inventory. Each custom property is created with the matching field type (text, number, date, checkbox, picklist) and configured with the same options as the Bright source field where applicable. If Bright uses multiple deal pipelines, we configure corresponding HubSpot deal pipelines with stage names mapped from Bright. This step requires a HubSpot admin to grant FlitStack AI the property-creation permissions; we provide the exact API payload for each custom property.
Migrate companies first, then contacts with association resolution
HubSpot requires companies to exist before contacts can associate to them. We sequence the migration: companies load first (via HubSpot bulk import API), then contacts with their associated-company IDs resolved against the newly created HubSpot company records. For Bright contacts with multiple associated companies, all associations are created via HubSpot's association API after the primary company is set. Lifecycle stage values on contacts are written as the HubSpot lifecyclestage property during this phase.
Migrate deals with pipeline and stage value mapping
Bright deals load into HubSpot after contacts are confirmed. Each deal is assigned to the correct HubSpot deal pipeline based on the Bright pipeline-to-HubSpot pipeline mapping. Deal stage names map to HubSpot stage values per the value-mapping configuration. Deal owner assignment resolves via email match to HubSpot users. Any Bright deal fields without a direct HubSpot equivalent are written to the pre-created custom deal properties.
Migrate activity history and run field-level sample diff
Bright activity records (emails, calls, meetings, notes) load into HubSpot's engagement timeline for the corresponding contacts. Original timestamps and engagement metadata are preserved. We run a field-level sample diff on a representative slice (typically 100-500 records) before committing the full migration. The diff report shows every mapped field with source and destination values side-by-side so you can verify lifecycle stage mapping, association resolution, and owner assignment before the full run.
Cut over with delta-pickup window and audit log
After sample diff approval, the full migration runs. A delta-pickup window of 24-48 hours captures any Bright records modified during the cutover period. FlitStack AI maintains an audit log of every record created, updated, or skipped during migration. If reconciliation fails (record count mismatch, validation error), one-click rollback reverts the HubSpot account to its pre-migration state. Post-migration, we deliver a reconciliation report showing record counts by object, any records skipped with reason codes, and the delta-pickup summary.
Platform deep dives
Bright
Source
Strengths
Weaknesses
HubSpot
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Bright and HubSpot.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Bright: Not publicly documented.
Data volume sensitivity
Bright doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Bright to HubSpot migration scoping. Not seeing yours? Book a call.
Walk through your Bright to HubSpot migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Bright
Other ways to arrive at HubSpot
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.