CRM migration
Field-level mapping, validation, and rollback between Bright and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Bright
Source
Salesforce Sales Cloud
Destination
Compatibility
10 of 11
objects map 1:1 between Bright and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
48–72 hours
Overview
Bright serves as an operational platform combining HR, payroll, and lightweight CRM functions — companies and contacts managed in Bright have straightforward equivalents in Salesforce: Company becomes Account, Contact stays Contact, and Deal maps to Opportunity. The migration carries every standard object, custom field, and activity record into Salesforce Sales Cloud using the Bulk API for large record volumes and the REST API for smaller datasets. The key schema decisions happen before data lands: which Bright pipelines become Salesforce Sales Processes keyed by RecordTypeId, how Bright lifecycle-stage values distribute across Salesforce's Lead and Contact objects, and whether Bright's multi-company associations collapse to a single primary AccountId per contact. Workflows, sequences, and automations in Bright have no Salesforce equivalent and must be rebuilt manually using Salesforce Flow or Process Builder — we export Bright workflow definitions as a rebuild reference. During the cutover, Bright remains accessible with scoped read-only access while a delta-pickup window captures any in-flight changes.
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 Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Bright
Contact
Salesforce Sales Cloud
Contact
1:1Direct map. Salesforce requires AccountId for most Contact records — Bright contacts without a primary company land in Salesforce as standalone Contacts attached to a default 'Unassigned Account' placeholder. We flag any Bright contacts without a company link before migration so your admin can make routing decisions.
Bright
Contact (lifecycle_stage = lead, prospect, unqualified)
Salesforce Sales Cloud
Lead
1:manyBright lifecycle-stage values that indicate an unqualified or early-stage contact route to Salesforce Lead. Values indicating a converted or active customer (e.g., lifecycle_stage = active, customer) route to Salesforce Contact. The split is applied at migration time based on the source lifecycle value — we surface the routing rule in the mapping plan before the first record loads.
Bright
Company
Salesforce Sales Cloud
Account
1:1Direct map. Bright company hierarchies (parent/child) translate to Salesforce ParentId on Account. Multi-company contacts in Bright (N:N relationship) collapse to one primary AccountId plus Account Contact Relations in Salesforce — we use the most-recently-modified company as the primary unless you specify a different rule.
Bright
Deal
Salesforce Sales Cloud
Opportunity
1:1Direct map. Bright deal pipelines become Salesforce Sales Processes keyed by RecordTypeId. Each Bright pipeline requires a corresponding Salesforce Record Type so stage pick-list values are scoped correctly — teams with four Bright pipelines end up with four Salesforce Record Types, each with its own page layout and stage values.
Bright
Pipeline
Salesforce Sales Cloud
Sales Process + Record Type
1:1A Bright pipeline has no single Salesforce equivalent — it splits into a Sales Process (which governs stage-label naming conventions) and a Record Type (which scopes available stage pick-list values per deal type). We deliver a pipeline-to-RecordType mapping table as part of the migration plan so your Salesforce admin can pre-create the schema before data lands.
Bright
Pipeline Stage
Salesforce Sales Cloud
Opportunity StageName
1:1Stage names map value-by-value per Record Type — each pipeline stage from Bright becomes a distinct Opportunity StageName value in Salesforce. Probability and forecast category are re-applied based on Salesforce's stage-metrics model. Stage-entered timestamps from Bright are preserved as custom datetime fields (Stage_Entered__c) for reporting continuity.
Bright
Lifecycle Stage
Salesforce Sales Cloud
Custom pick-list field on Contact and Lead
1:1Salesforce has no native lifecycle_stage equivalent. Bright's lifecycle values migrate as a custom pick-list field (Lifecycle_Stage__c) on both Contact and Lead. Stage-change timestamps migrate as Lifecycle_Stage_Updated__c custom datetime fields. The pick-list values are defined in the migration plan so your admin can create them in Salesforce Setup before the first record loads.
Bright
Engagement (call, email, meeting, note)
Salesforce Sales Cloud
Task / Event / Note
1:1Bright calls and emails map to Salesforce Tasks with Type set to 'Call' or 'Email' respectively. Meetings map to Salesforce Events with original start/end times and owner assignments preserved. Notes map to Salesforce Notes (enhanced format). Original timestamps and owner assignments carry over so activity history in Salesforce reflects the complete record from Bright.
Bright
Custom Object
Salesforce Sales Cloud
Custom Object (__c)
1:1Bright custom objects migrate 1:1 to Salesforce custom objects. Custom object names get the __c suffix in Salesforce. Any Bright custom-object associations that use an N:N model need Salesforce junction objects — we identify these in the pre-migration audit and include junction-object creation in the schema plan.
Bright
Workflow / Automation
Salesforce Sales Cloud
Salesforce Flow
1:1Bright workflows and automations do not have a Salesforce equivalent that migrates automatically. We export Bright workflow definitions as structured JSON and plain-text documentation so your Salesforce admin can rebuild them in Flow or Process Builder. This is explicitly scoped outside the data migration and priced separately as an advisory service.
Bright
Attachment / File
Salesforce Sales Cloud
Salesforce Files
1:1Bright file attachments on records re-upload to Salesforce Files. Salesforce's default per-file size limit is 25MB — files exceeding this threshold are flagged for manual handling. Inline images embedded in Bright notes are extracted, downloaded, and re-hosted as Salesforce Files linked to the parent record.
| Bright | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Contact (lifecycle_stage = lead, prospect, unqualified) | Lead1:many | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline | Sales Process + Record Type1:1 | Fully supported | |
| Pipeline Stage | Opportunity StageName1:1 | Fully supported | |
| Lifecycle Stage | Custom pick-list field on Contact and Lead1:1 | Fully supported | |
| Engagement (call, email, meeting, note) | Task / Event / Note1:1 | Fully supported | |
| Custom Object | Custom Object (__c)1:1 | Fully supported | |
| Workflow / Automation | Salesforce Flow1:1 | Fully supported | |
| Attachment / File | Salesforce Files1: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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Deliver Salesforce schema setup plan
Before any data moves, we analyze Bright's object and field inventory and produce a Salesforce schema setup plan. This includes: a RecordTypeId table mapping each Bright pipeline to a Salesforce Record Type name and Sales Process; a custom field manifest (Bright field → Salesforce __c field) with pick-list value sets for every custom field; and a page layout assignment plan per Record Type. Your Salesforce admin (or our team) creates Record Types, custom fields, and page layouts in Salesforce Setup using the manifest. We cannot validate field mappings until the schema exists on the Salesforce side.
Resolve owners by email match
Bright owner IDs map to Salesforce users via email address. We run an email-matching query against your Salesforce user list before migration — matched owners resolve directly; unmatched owners are flagged and routed to a designated fallback owner (or your team invites them to Salesforce first). No Opportunity, Contact, or Lead record lands in Salesforce without a valid OwnerId. Owner resolution is sequenced before any object migration so foreign-key dependencies resolve cleanly.
Migrate accounts before contacts before leads before opportunities
Salesforce enforces foreign-key ordering: Account.Id must exist before Contact.AccountId can be set, and Contact.Id must exist before Opportunity can reference Contact Roles. We sequence the migration in dependency order: Companies → Accounts, then Contacts and Leads (split by lifecycle-stage routing rule), then Deals → Opportunities with RecordTypeId, stage, and Amount populated. Activities (Tasks, Events, Notes) load last with parent-record lookups resolved from the migrated IDs. Custom objects load after their related standard objects.
Run sample migration with field-level diff
A representative sample — typically 100–500 records spanning the main object types — migrates first into a Salesforce sandbox or scratch org designated for validation. We generate a field-level diff comparing source values against destination field values for every mapped field. You review lifecycle-stage routing, pipeline-to-RecordTypeId mapping, owner resolution rates, and custom field completeness. Field mismatches are corrected in the mapping plan before the full run commits. This step prevents data-quality issues from propagating across a full record set.
Execute full migration with delta-pickup cutover
The full migration runs against your production Salesforce org using Bulk API for record volumes exceeding 10,000 and REST API for smaller objects and activities. A delta-pickup window — typically 24–48 hours from the start of the full run — captures any records created or modified in Bright during cutover. We reconcile migrated record counts against source record counts for each object. If reconciliation fails, one-click rollback reverts all migrated records. An audit log documents every operation: object, record ID, action (insert/update), and timestamp.
Platform deep dives
Bright
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Salesforce Sales Cloud.
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Bright to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.