CRM migration

Migrate from Bright to Salesforce Sales Cloud

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 logo

Bright

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

91%

10 of 11

objects map 1:1 between Bright and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Bright logo

Bright

What's pushing teams away

  • Reporting flexibility is limited compared to enterprise payroll systems — customers needing custom analytics often bridge to external BI tools.
  • Document storage and viewer functionality lacks the polish of dedicated document management platforms, an annoyance for HR-heavy users.
  • UK-only focus means companies expanding internationally have to migrate to multi-country payroll providers like Deel, Remote, or ADP iHCM.
  • Bureau pricing scales aggressively (e.g., £329 for 10 employers, £549 for 25 employers per tax year), pushing larger payroll bureaus toward subscription-based alternatives.
  • Cloud transition is still in progress — historically a desktop-installed Windows product, customers wanting fully cloud-native payroll without local install evaluate alternatives during the transition window.

Choosing

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Bright objects map to Salesforce Sales Cloud

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

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

Direct 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)

maps to

Salesforce Sales Cloud

Lead

1:many
Fully supported

Bright 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

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

Direct 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

maps to

Salesforce Sales Cloud

Opportunity

1:1
Fully supported

Direct 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

maps to

Salesforce Sales Cloud

Sales Process + Record Type

1:1
Fully supported

A 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

maps to

Salesforce Sales Cloud

Opportunity StageName

1:1
Fully supported

Stage 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

maps to

Salesforce Sales Cloud

Custom pick-list field on Contact and Lead

1:1
Fully supported

Salesforce 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)

maps to

Salesforce Sales Cloud

Task / Event / Note

1:1
Fully supported

Bright 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

maps to

Salesforce Sales Cloud

Custom Object (__c)

1:1
Fully supported

Bright 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

maps to

Salesforce Sales Cloud

Salesforce Flow

1:1
Fully supported

Bright 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

maps to

Salesforce Sales Cloud

Salesforce Files

1:1
Fully supported

Bright 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.

Gotchas + challenges

What specifically takes care here

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 logo

Bright gotchas

Medium

CIS deduction rates are employee-specific and must transfer as discrete fields

High

No bulk document export API forces manual file downloads

Low

Leave entitlement balances require separate export alongside the request history

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • Lifecycle-stage-to-Lead/Contact routing requires upfront decision rules

    Bright stores all people in a single Contact object with a lifecycle_stage property. Salesforce splits this into Lead (unqualified) and Contact (qualified). FlitStack AI routes Bright contacts with early-stage lifecycle values (e.g., 'lead', 'prospect') to Salesforce Lead and late-stage values (e.g., 'active', 'customer') to Salesforce Contact. The routing table must be defined in the migration plan before the first record loads — because Salesforce Lead and Contact are separate objects, the routing decision affects every downstream object that references the contact, including Opportunity Contact Roles. We deliver this table as part of the pre-migration schema audit.

  • Every Bright pipeline needs its own Salesforce Record Type before deal migration

    Salesforce Opportunity StageName pick-list values are scoped by RecordTypeId — two Bright pipelines with a stage named 'Negotiation' would conflict if mapped to a single Salesforce Record Type because Salesforce allows only one pick-list value per label per Record Type. Teams with four Bright pipelines need four Salesforce Record Types, each with its own stage pick-list set and page layout. We deliver a RecordTypeId setup plan listing every pipeline, its Salesforce Record Type name, and its stage-to-StageName value map. Salesforce admins create Record Types in Setup before data validation runs — this is the longest planning step in most Bright-to-Salesforce migrations.

  • Multi-company contact associations collapse to one primary AccountId

    Bright supports N:N contact-to-company associations natively — one contact can belong to multiple companies simultaneously. Salesforce contacts have a single primary AccountId plus Account Contact Relations for secondary associations. We migrate one primary company per contact (defaulting to the most-recently-modified by Bright, or to your specified rule) and surface the rest as Account Contact Relations. Contacts that had zero associated companies in Bright land as standalone Salesforce Contacts — we flag these for admin review so they can be linked to an Account or left as-is in Salesforce's model.

  • Original created_at timestamps require custom field preservation in Salesforce

    Salesforce sets CreatedDate at record insertion time — you cannot backdate it via API or Data Loader. For Bright records where the original create date is commercially meaningful (e.g., a deal created in 2021 that closed in 2024), we preserve the Bright created_at as a custom datetime field (Original_Create_Date__c) on every object. Your Salesforce reports that need historical reporting use this custom field as the date axis — standard Salesforce reports using CreatedDate will show the migration date, not the source date. We surface this in the reconciliation step so your report authors update their date filters before go-live.

  • Workflows and automations have no Salesforce equivalent — rebuild required

    Bright workflows, sequences, and automation rules are configuration data, not data records. They do not export in a transferable format and have no Salesforce counterpart that accepts a direct migration. The Bright automation model (which uses triggers, conditions, and action blocks) maps conceptually to Salesforce Flow, but the translation is manual and requires a Bright-to-Flow audit. We export Bright workflow definitions as structured documentation that your Salesforce admin can use as a functional specification for rebuilding in Flow. This work is scoped outside the data migration as an advisory service because the rebuild scope depends on how many automations Bright contains and how complex they are.

Migration approach

Six steps for a successful Bright to Salesforce Sales Cloud data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

Bright logo

Bright

Source

Strengths

  • Integrated RTI payroll submissions for UK construction companies under the CIS scheme
  • Clock-in and timesheet tracking with leave management in a single platform
  • CIS verification and deduction calculation built directly into the payroll workflow
  • Support team rated highly in G2 reviews for setup and query resolution

Weaknesses

  • Document storage interface lacks the polish of dedicated document management tools
  • Reporting flexibility is limited compared to standalone payroll systems
  • Pricing and tier structure is not publicly documented in a standard pricing page
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Bright and Salesforce Sales Cloud.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Bright: Not publicly documented.

  • Data volume sensitivity

    B

    Bright doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Bright to Salesforce Sales Cloud migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Bright to Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during Bright to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most Bright-to-Salesforce migrations complete in 48–72 hours of clock time for under 50,000 total records. Large datasets with 500,000+ records or setups with more than five Bright pipelines extend to 5–10 days. The longest single step is Salesforce Record Type and page layout setup — your admin (or our team) needs to pre-create the schema before field mapping validation runs. We recommend allocating two to three business days for schema setup before the migration window opens.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Bright.
Land in Salesforce Sales Cloud, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day