CRM migration

Migrate from Bright to Microsoft Dynamics 365 Sales

Field-level mapping, validation, and rollback between Bright and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .

Bright logo

Bright

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

93%

13 of 14

objects map 1:1 between Bright and Microsoft Dynamics 365 Sales .

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Bright stores contacts, companies, and deals in a flat object model with custom properties and owner assignments. Dynamics 365 Sales uses Microsoft Dataverse as its underlying platform, organizing contacts under accounts, splitting leads and opportunities into separate entities, and requiring AccountId lookups for most contact operations. The migration carries everything Bright stores natively — contacts, companies, deals, activities, notes, attachments, and custom fields — into Dynamics 365's table-based model. The harder problems are mapping Bright's owner-by-email model to Dynamics 365 users (resolved by email match against Azure AD-synced accounts), preserving Bright custom properties as Dataverse custom columns with the new_ prefix, and handling Bright's activity log format (calls, emails, meetings) into the Dataverse activity tables. Workflows, automations, and Bright-specific integrations do not migrate and must be rebuilt using Power Automate flows or Dynamics 365 business rules post-migration. FlitStack sequences the load so foreign keys resolve correctly: accounts first, then contacts, then opportunities, with field-level validation before the full run commits.

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

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

What's pulling them in

  • Deep Microsoft 365, Teams, and Outlook integration makes Microsoft Dynamics 365 Sales a natural fit for Microsoft-first organizations already invested in that ecosystem
  • Sales Enterprise and Premium tiers offer unlimited custom tables and advanced AI-driven forecasting and predictive analytics not available in lower tiers
  • Professional tier pricing at $65 per user per month offers a lower entry cost than Salesforce for SMB teams with straightforward CRM needs
  • Flexible customization options allow businesses to build bespoke apps, tailor forms and views, and integrate with other Dynamics 365 modules
  • Microsoft Copilot AI tools are embedded directly into the sales workflow on Enterprise and Premium, automating routine tasks and providing deal intelligence

Object mapping

How Bright objects map to Microsoft Dynamics 365 Sales

Each row shows how a Bright object lands in Microsoft Dynamics 365 Sales , 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

Microsoft Dynamics 365 Sales

Contact

1:1
Fully supported

Bright contacts migrate as Dynamics 365 Contacts. Each contact requires a primary AccountId lookup; if a Bright contact has no company association, FlitStack links it to a default placeholder account, or your admin can define a fallback rule assigning unbound contacts to a designated holding account. The migration preserves the original created date, owner email, and custom fields, while enforcing referential integrity for downstream opportunities and activities.

Bright

Contact (early-stage)

maps to

Microsoft Dynamics 365 Sales

Lead

1:many
Fully supported

Bright contacts that represent early-stage prospects with no closed deal history can be routed to Dynamics 365 Lead. Your team decides the split threshold — for example, contacts with zero associated deals become Leads; those with deal history become Contacts.

Bright

Company

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

Bright companies map directly to Dynamics 365 Accounts. Parent‑company hierarchies are preserved using the Parent AccountId field, keeping the top‑level and subsidiary structure after migration. Bright's many‑to‑many contact‑company associations collapse to a single primary AccountId per contact, with relationships stored in Account Contact Relationships; FlitStack creates these records automatically. All custom fields on the company become Dataverse columns with the new_ prefix, and original created date and owner are retained.

Bright

Deal

maps to

Microsoft Dynamics 365 Sales

Opportunity

1:1
Fully supported

Bright deals map to Dynamics 365 Opportunities. The deal name becomes Opportunity Name, the amount maps to EstimatedValue, the close date to CloseDate, and the pipeline stage to StageName via value mapping. Owner resolves to OwnerId through email matching against Azure AD‑synced users, and custom fields on the deal become Dataverse new_* columns. Probability values are reapplied based on the target stage, while original created and modified timestamps are retained.

Bright

Pipeline

maps to

Microsoft Dynamics 365 Sales

Business Process Flow + Stage

1:1
Fully supported

Bright deal pipelines translate to Dynamics 365 Business Process Flows. Each Bright pipeline stage becomes a stage step in the BPF. If Bright uses multiple pipelines, FlitStack can create BPFs for each pipeline or collapse them into a single BPF with conditional branching that routes opportunities by pipeline type. The BPF is linked to opportunities at creation, and any pipeline‑specific custom fields map to Dataverse new_* columns on the opportunity.

Bright

Owner

maps to

Microsoft Dynamics 365 Sales

SystemUser (OwnerId)

1:1
Fully supported

Bright owner records are matched by email address against Dynamics 365 system users synced from Azure Active Directory. Unmatched owners are flagged before migration — your team either invites them to Dynamics 365 or assigns records to a designated fallback owner.

Bright

Activity (Call)

maps to

Microsoft Dynamics 365 Sales

PhoneCall

1:1
Fully supported

Bright call logs migrate as Dataverse PhoneCall activities. Subject, description, duration (in minutes), direction (mapped to DirectionCode), and timestamp transfer directly. Owner resolves via email to a system user, and the RegardingId links the call to the associated contact or account. Any Bright custom fields on the call become Dataverse new_* columns on the PhoneCall table, preserving additional metadata such as outcome or phone number.

Bright

Activity (Email)

maps to

Microsoft Dynamics 365 Sales

Email

1:1
Fully supported

Bright email records map to Dataverse Email activities. Subject, body text, from/to addresses, and timestamp transfer, while direction (inbound/outbound) is stored in DirectionCode. Owner resolves via email to a system user, and RegardingId links the email to the contact or account. Email attachments migrate as annotation records attached to the email, and Bright custom fields on the email become Dataverse new_* columns on the Email table, preserving thread ID.

Bright

Activity (Meeting)

maps to

Microsoft Dynamics 365 Sales

Appointment

1:1
Fully supported

Bright meeting records become Dataverse Appointments with start time, end time, location, subject, and attendees. Required attendees are linked as ActivityParty records, and the meeting body maps to Description. Owner resolves via email to a system user, and RegardingId links the appointment to the contact or account. Bright custom fields on the meeting become Dataverse new_* columns on the Appointment table, preserving conference ID or meeting type.

Bright

Note

maps to

Microsoft Dynamics 365 Sales

Annotation

1:1
Fully supported

Bright notes migrate as Dataverse Annotations (note entity). The notetext, subject, and owner are preserved, and the created date is retained. Rich-text formatting in Bright notes converts to HTML so the appearance carries over to Dynamics 365. If a note contains file attachments, FlitStack extracts them as file annotations linked to the same parent record, and any Bright custom fields on notes become Dataverse new_* columns on the Annotation table.

Bright

Attachment / File

maps to

Microsoft Dynamics 365 Sales

Annotation (fileattachment)

1:1
Fully supported

Bright file attachments on contacts, companies, or deals re‑upload as Dataverse file annotations. The filename, mime type, and creation date are preserved, and the annotation is linked to the parent record via RegardingId. Dynamics 365 storage quotas limit file size; FlitStack flags any attachments exceeding the limit before migration and can split or compress them. Any Bright custom fields on the attachment become Dataverse new_* columns on the annotation table.

Bright

Custom Object

maps to

Microsoft Dynamics 365 Sales

Custom Table (new_*entity*)

1:1
Fully supported

Bright custom objects map 1:1 to Dataverse custom tables. Table names receive the new_ prefix. Custom object relationships using N:N associations may need junction tables in Dataverse — FlitStack identifies these during discovery and includes junction table creation in the migration plan.

Bright

Custom Field (on Contact)

maps to

Microsoft Dynamics 365 Sales

Custom Column (new_*field*) on Contact

1:1
Fully supported

Bright custom properties on contacts create new_* columns in the Dataverse Contact table. Data types map: text fields to nvarchar, number fields to integer or decimal, pick-lists to choice, dates to datetime. Your Dynamics admin publishes the solution before the data load.

Bright

Bright User

maps to

Microsoft Dynamics 365 Sales

SystemUser

1:1
Fully supported

Bright user records don't directly map to Dynamics 365 system users because Dynamics users must exist in Azure AD first. FlitStack resolves Bright owner emails against existing Dynamics system users; for Bright users not yet in Dynamics, the migration plan flags each one for your admin to provision or reassign.

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

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales gotchas

High

Professional tier 15-table custom table limit blocks migrations

High

October 2024 pricing increase applies at renewal for all customers

Medium

Custom fields must be created in the UI before API writes

Medium

Power Platform request limits apply to bulk migrations

Medium

Activity records orphaned to inactive owners fail silently

Pair-specific challenges

  • N:N contact-company associations collapse to primary AccountId

    Bright allows a contact to be associated with multiple companies simultaneously — a key feature for B2B relationships where a person holds roles at several organizations. Dynamics 365 Contacts require a single primary AccountId lookup field. The remaining company associations must use Account Contact Relationships (the N:N entity), which FlitStack creates automatically, but the primary assignment rule (most recent, or by your specification) must be decided before migration runs. If your Bright data relies heavily on multi-company contact associations, the relationship model post-migration will differ from the source view.

  • Dataverse API request limits cap bulk migration throughput

    Dynamics 365 Sales runs on Microsoft Dataverse, which enforces 100,000 API requests per 24-hour period per environment and concurrent request limits based on license tier. Large Bright datasets (100k+ records) require pagination and rate-limit-aware loading to avoid 429 errors that could interrupt the migration run. FlitStack implements exponential backoff and request queuing against the Dataverse API to stay within these limits while maximizing throughput during the delta window.

  • Custom properties require Dynamics solution deployment before data loads

    Bright custom fields on contacts, companies, and deals do not have a direct equivalent in Dynamics 365 until your admin creates the new_* columns in the Dataverse table schema via a managed solution. FlitStack generates a solution XML file listing all required custom columns, data types, and option set values. Your Dynamics admin must import and publish the solution in the target environment before the data migration phase begins — data loads into non-existent custom fields will fail.

  • Bright owner-to-Dynamics-user resolution depends on Azure AD sync

    Bright owner assignments reference a user by email. Dynamics 365 system users are provisioned from Azure Active Directory — if a Bright owner email does not match an Azure AD-synced user in Dynamics, FlitStack flags that owner as unmatched. Your admin must either provision the user in Azure AD (which syncs to Dynamics) or reassign those records to a fallback owner before the migration finalizes. Records without a valid OwnerId cannot be created in Dataverse.

  • Workflows, automations, and sequences cannot migrate to Power Automate

    Bright workflows and automation rules — including lead routing, deal stage triggers, notification sequences, and Bright-specific integrations — have no equivalent in Dynamics 365 and cannot be migrated automatically. Microsoft Power Automate is the native replacement for workflow automation in the Microsoft ecosystem, but each Bright workflow must be redesigned as a Power Automate cloud flow. FlitStack exports your Bright workflow definitions as a structured reference document to hand to your Dynamics admin for rebuild.

Migration approach

Six steps for a successful Bright to Microsoft Dynamics 365 Sales data migration

  1. Discover Bright schema and Dynamics 365 environment

    FlitStack connects to Bright via API to export the full object inventory: contacts, companies, deals, activities, custom objects, and custom fields. Simultaneously, we assess the Dynamics 365 target environment: license tier (Professional or Enterprise), existing table schema, Azure AD user directory, and any custom solutions already deployed. The discovery output is a pre-migration report listing record counts, custom field data types, owner resolution status, and a recommended Dynamics solution manifest for any required new_* columns.

  2. Deploy Dynamics 365 solution manifest and resolve owners

    Your Dynamics admin imports the FlitStack-generated solution file to create all required custom columns in Dataverse before data loads begin. Simultaneously, FlitStack runs the owner resolution pass — Bright owner emails are matched against the Azure AD-synced user list in Dynamics. Unmatched owners are exported to a resolution spreadsheet with recommended actions (invite user, reassign to fallback, or exclude from migration). No records load until all dependencies are confirmed.

  3. Migrate accounts and contacts before opportunities

    Dynamics 365 enforces referential integrity: AccountId on contacts, and for opportunities the customer (account or contact) and then the opportunity contact roles. FlitStack sequences the load in dependency order: Companies → Accounts first, then Contacts (splitting early-stage contacts to Lead where specified), then Opportunities with stage mapping, then Activities with RegardingId linking back to the parent records. Each phase runs field-level validation comparing source values against destination values before the next phase starts.

  4. Run sample migration with field-level diff

    A representative slice — typically 100–500 records spanning all object types and including edge cases like contacts with no company, deals with custom fields, and activities with attachments — migrates first. FlitStack generates a field-level diff report showing every mapped field, the source value, the destination value, and pass/fail status. You review the diff to confirm custom field mapping, stage value mapping, owner resolution, and activity linkage before the full run commits.

  5. Execute full migration with delta pickup window

    The full Bright dataset migrates to Dynamics 365 using bulk API operations against Dataverse. A delta pickup window — typically 24–48 hours — runs in parallel, capturing any Bright records created or modified during the migration window. FlitStack generates an audit log for every record operation (create, update, skip, error). If reconciliation identifies gaps, one-click rollback reverts the Dynamics environment to its pre-migration state so corrections can be made and the run restarts.

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
Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

Destination

Strengths

  • Native integration with Microsoft 365, Teams, Outlook, and SharePoint for unified productivity workflow
  • Unlimited custom tables and complex workflows on Enterprise tier enable deep customization for complex sales processes
  • AI-driven predictive analytics and deal intelligence on Enterprise and Premium tiers help sales teams prioritize pipeline
  • Dataverse unified data layer provides a consistent API and data model across all Dynamics 365 and Power Platform apps
  • Strong security model with Field-Level Security and Record Ownership rules for governance-conscious enterprises

Weaknesses

  • Sales Professional tier caps custom tables at 15, creating a migration ceiling for highly customized SMB environments
  • October 2024 pricing increases of $15 per user across all tiers apply to existing customers upon renewal
  • Implementation typically requires costly certified partners, adding 30–50% to total project cost
  • Updates and platform releases can disrupt customizations and plugins, requiring regression testing after each wave
  • Non-Microsoft integrations require additional configuration or middleware, limiting flexibility for heterogeneous tech stacks

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Bright and Microsoft Dynamics 365 Sales .

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Bright and Microsoft Dynamics 365 Sales .

  • Object compatibility

    A

    All 8 core objects map 1:1 between Bright and Microsoft Dynamics 365 Sales .

  • 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 Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales data migrations

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

Can't find your answer?

Walk through your Bright to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Bright-to-Dynamics 365 migrations complete in 48–72 hours for under 50,000 total records. Larger setups with 500k+ records, multiple custom objects, or extensive activity history extend to 5–10 days. The longest planning step is owner resolution — ensuring every Bright user has a corresponding Azure AD-synced Dynamics account — and deploying the Dynamics solution manifest for custom fields before data loads begin. The delta pickup window (24–48 hours) runs concurrently with go-live prep and adds minimal overhead to the overall timeline.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Bright.
Land in Microsoft Dynamics 365 Sales , 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