CRM migration

Migrate from Copper to Microsoft Dynamics 365 Sales

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

Copper logo

Copper

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

60%

6 of 10

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

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Migrating from Copper to Microsoft Dynamics 365 Sales is a structural shift from a Google Workspace-centric CRM with a flat People-and-Companies model to a hierarchical Dataverse-backed platform that separates Leads from Accounts and Contacts. Copper treats People as the primary contact object; Dynamics 365 treats Leads as the unqualified-prospect entry point that must be converted into Account and Contact records. We resolve that split during scoping by applying a qualification rule based on Copper's Lead Status and People relationship fields. Pipeline stages migrate as Dynamics 365 Sales Process stages with probability values. Activity history (emails, calls, meetings) transfers to Dynamics 365 EmailMessage, Task, and Event records. Workflows, bulk email sequences, and Zapier automations do not migrate; we deliver a written inventory of every automation requiring rebuild in Dynamics 365 Sales, Power Automate, or Azure Logic Apps. Attachment files stored in Google Drive require separate file migration to SharePoint or OneDrive before re-linking to Dynamics 365 records.

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

Copper logo

Copper

What's pushing teams away

  • Workflow automation, bulk email, and advanced reporting are gated behind Professional and Business tiers, pushing growing teams toward unexpected cost increases as their seat count and feature needs both climb.
  • Teams report the platform feels underpowered for complex sales motions, with limited customisation compared to Salesforce or HubSpot once use cases move beyond simple pipeline tracking.
  • Some users report that the interface is intuitive for basic tasks but becomes less intuitive when navigating advanced configuration, custom fields, or pipeline customisation.
  • The AI-assisted features such as email rewriting are only available on higher tiers and reviewers note they feel underdeveloped compared to AI capabilities offered by competitors.

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 Copper objects map to Microsoft Dynamics 365 Sales

Each row shows how a Copper 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.

Copper

People

maps to

Microsoft Dynamics 365 Sales

Lead or Contact (split required)

1:many
Fully supported

Copper People records map to either Dynamics 365 Lead or Contact depending on the prospect's qualification status. We apply a split rule during scoping based on whether the People record has a related Copper Lead, a converted Lead link, or a status indicating active opportunity involvement. Unqualified prospects become Leads; qualified contacts become Contacts attached to the mapped Account. The original Copper contact status and any custom person-level properties migrate to custom fields on both Lead and Contact for audit and reporting continuity.

Copper

Companies

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

Copper Company records map directly to Dynamics 365 Account. The Company domain or website URL becomes the Account Website field and serves as the dedupe key during import. Account is provisioned before any Contact or Lead import so that the parent Account lookup is satisfied at the moment of record insert. We preserve the Company-Industry mapping to Account Industry, and any Company custom fields become Account custom fields.

Copper

Opportunities

maps to

Microsoft Dynamics 365 Sales

Opportunity

1:1
Fully supported

Copper Opportunities map to Dynamics 365 Opportunity with Pipeline Stage mapped to the configured Sales Process stage. Closed-Won and Closed-Lost probabilities are set from the destination stage probabilities rather than carried from Copper, since Copper does not expose explicit probability values via API. Opportunity.Amount, CloseDate, and OwnerId resolve against the Account and User lookups created in earlier phases. We scope open Opportunities by default and document any closed deals included in the migration scope before extraction begins.

Copper

Pipeline

maps to

Microsoft Dynamics 365 Sales

Sales Process + Stage

lossy
Fully supported

Copper pipeline stage names and order map to Dynamics 365 Sales Process stage categories. Each Copper pipeline becomes a separate Sales Process in Dynamics 365, and stage probabilities are set to match Copper's stage percentages rounded to the nearest integer. Dynamics 365 requires Sales Processes to be configured in the target environment before Opportunities are imported with stage values, so this phase precedes record migration.

Copper

Leads

maps to

Microsoft Dynamics 365 Sales

Lead

1:1
Mapping required

Copper Lead records map directly to Dynamics 365 Lead. Copper's Lead_Status maps to the Dynamics 365 Lead Status field, and any lead score or grade values migrate to custom numeric fields. Leads without a matching Company in Copper map to Leads without an AccountName; Leads with a mapped Company resolve the AccountName on the Lead record during migration. We preserve the Lead creation date and owner from Copper for timeline accuracy.

Copper

Tasks

maps to

Microsoft Dynamics 365 Sales

Task

1:1
Fully supported

Copper Tasks migrate to Dynamics 365 Task records with Status, Priority, and ActivityDate preserved. The task Subject maps to Task.Subject, Description maps to Task.Description, and the related People or Company reference resolves to the WhoId or WhatId on the Task. Open tasks are imported with their existing due dates; completed tasks carry their completion timestamp as ActivityDate. Assignee resolution follows the Owner reconciliation phase.

Copper

Activities

maps to

Microsoft Dynamics 365 Sales

EmailMessage, Task, Event

1:1
Mapping required

Copper Activities of type email map to Dynamics 365 EmailMessage records (body content) paired with a Task record for the activity timeline entry. Call activities map to Task with TaskSubtype=Call and duration stored in a custom field. Meeting activities map to Event with StartDateTime, EndDateTime, and Location preserved. The WhoId on each record links to the migrated Lead or Contact; the WhatId links to the related Opportunity or Account. Activity timestamps are preserved exactly from Copper to maintain timeline ordering.

Copper

Custom Fields

maps to

Microsoft Dynamics 365 Sales

Custom Fields

lossy
Mapping required

Copper custom field definitions are enumerated via the Custom Field Definitions API during discovery. Each custom field is created as a new field in Dynamics 365 on the corresponding entity (Account, Contact, Lead, Opportunity, Task) with a type-mapped Dynamics 365 field type. Text fields map to Single Line of Text, numeric fields to Decimal or Whole Number, date fields to Date and Time, and checkbox fields to Two Options. Field labels and API names are preserved where possible, with __c suffix appended per Dynamics 365 convention. Validation rules on the target entity may require adjustment if they reference fields that Copper did not enforce.

Copper

Tags

maps to

Microsoft Dynamics 365 Sales

Text Field or Option Set

lossy
Mapping required

Copper tags (flat labels applied to People, Companies, and Opportunities) migrate to a custom text field on the corresponding Dynamics 365 entity. If the customer has fewer than 20 distinct tags per entity, we map them to a Dynamics 365 Option Set for filterable reporting. Tags with high cardinality (more than 50 distinct values) are migrated as plain text in a custom text field and the customer decides on consolidation or tagging strategy post-migration.

Copper

Projects

maps to

Microsoft Dynamics 365 Sales

Account or Custom Entity

1:1
Mapping required

Copper Projects have no direct equivalent in Dynamics 365 Sales. We migrate Projects as Accounts with a custom Account Type value of 'Project' to distinguish them from business Accounts. Associated Tasks migrate to Tasks with the WhatId pointing to the project Account. If the customer requires a distinct project object with budget, timeline, and milestone fields, we provision a custom Dataverse entity during schema design and map Projects there, with Tasks linked via the custom entity lookup.

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.

Copper logo

Copper gotchas

High

Contact limit enforcement varies by tier and can block imports

High

API rate limit of 180 requests per minute requires throttled extraction

Medium

Workflows, bulk email, and custom reports are tier-gated features

Medium

Attachment files live in Google Drive, not Copper's own storage

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

  • Lead-Contact split requires qualification rule design before migration

    Copper treats People as the primary contact record regardless of qualification status, while Dynamics 365 requires unqualified prospects to enter as Leads and convert into Account and Contact pairs. There is no automated rule that correctly routes every Copper People record without explicit business logic from the customer. We define the split rule during scoping by reviewing the customer's Copper Lead records, People status fields, and opportunity involvement history. Records designated as Leads in Copper become Dynamics 365 Leads; all other People become Contacts attached to the mapped Account. Skipping this design step produces Contacts with no parent Account (orphaned records) or Leads for prospects who should have been converted immediately on day one.

  • Dynamics 365 pipeline stages require pre-configuration before Opportunity import

    Copper allows pipeline stages to be edited directly on Opportunities at any time. Dynamics 365 requires Sales Processes and Stage categories to be configured in the target environment before Opportunities with stage values can be imported. We configure the Sales Process stages during the schema design phase, mapping Copper stage names and probabilities to Dynamics 365 stage names and probability values. If the customer has multiple Copper pipelines, each becomes a separate Sales Process with its own stage category, and the Opportunity Record Type is assigned during migration. Without this pre-configuration, Opportunity imports either fail validation or land in a default stage that does not match the customer's process.

  • Attachment files live in Google Drive and require separate re-hosting

    Copper stores file attachments in the user's associated Google Drive account. Dynamics 365 uses SharePoint Online or OneDrive for Business document management by default. We cannot transfer file contents through the CRM API alone. During scoping, we enumerate all Copper records with attachment references, map the Google Drive file IDs, and coordinate a parallel Google Drive to SharePoint file migration. We then update the Dynamics 365 record's document location references to point to the new SharePoint URLs. Without this parallel track, attachment links become broken references at cutover. This is distinct from the CRM record migration and requires the customer's Google service account credentials and SharePoint destination library access.

  • Closed deal timestamps and stage history are not fully accessible via Copper API

    Copper's API exposes the current pipeline stage on an Opportunity but does not provide a complete stage-change history with timestamps for closed deals. When migrating Opportunities that have progressed through multiple stages, we import the current stage and set ClosedDate from Copper's close_date field. We flag any customer requirements for full stage history (such as time-in-stage analytics) and advise that stage transition logs do not transfer via API. Dynamics 365 Audit History can be enabled post-migration to capture future stage changes, but historical Copper stage progression is not retrievable through the API.

  • Inactive Copper owners need explicit User mapping before migration

    Copper's owner system is email-based and does not distinguish active from inactive team members at the API level. Dynamics 365 ties record ownership to Azure Active Directory User accounts, and records assigned to a User that does not exist or is inactive in the destination tenant fail to insert. We extract every distinct Copper owner from People, Company, Opportunity, Lead, and Activity records and match by email against the destination Dynamics 365 User table. Owners without a matching active User go to a reconciliation queue for the customer's IT or Dynamics 365 admin to provision before record migration proceeds. We do not default inactive owners to a generic system user without explicit approval because owner attribution is used for territory reporting and commission tracking.

Migration approach

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

  1. Discovery and scoping

    We audit the Copper workspace across account plan tier, People count, Company count, Opportunity count and pipeline structure, Lead count, Task volume, Activity history volume, custom field definitions via the Custom Field Definitions API, and active tag taxonomy. We cross-reference this with the destination Dynamics 365 environment: licensed user count, existing Account and Contact volume, active Sales Processes, and any existing custom entities. We produce a written migration scope that defines the Lead-Contact split rule, the Opportunity pipeline-to-Sales Process mapping, and the custom field translation matrix. This phase also includes a Google Drive attachment audit to scope the parallel file migration track.

  2. Schema design and Dynamics 365 pre-configuration

    We configure the destination Dynamics 365 environment before any records are imported. This includes provisioning custom fields on Account, Contact, Lead, and Opportunity entities to receive Copper custom field values. We create Sales Processes matching each Copper pipeline with stage names and probabilities. We define Record Types on Opportunity if the customer requires separate page layouts per line of business. Schema configuration is deployed into a Dynamics 365 Sandbox environment first for validation by the customer's admin team. No records are written to production until schema is signed off.

  3. Sandbox migration and reconciliation

    We run a full migration into a Dynamics 365 Sandbox using production-like data volume extracted from Copper. The customer's Dynamics 365 admin and RevOps lead reconcile record counts, spot-check field mappings on 25-50 random records, and validate that the Lead-Contact split rule produces the expected distribution. Any field mapping corrections, custom field type adjustments, or stage probability corrections are documented and applied to the production migration scripts. The sandbox sign-off is a required gate before production migration begins.

  4. Owner reconciliation and User provisioning

    We extract every distinct Copper owner referenced on People, Company, Opportunity, Lead, and Activity records and match by email against the destination Dynamics 365 User table. Owners without a matching active User are listed in a reconciliation report with their email, record count, and record type. The customer's Dynamics 365 admin provisions missing Users in Azure Active Directory and assigns them to the appropriate Business Unit before production migration. Migration cannot proceed past record insertion until all owner references are resolvable.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Accounts (from Copper Companies), Leads (from Copper Lead records and the People split), Contacts (from Copper People records mapped via the split rule, with AccountId resolved), Opportunities (with AccountId, OwnerId, and Sales Process stage resolved), Tasks (with WhoId and WhatId resolved), Activities (EmailMessage, Task, Event via bulk insert with parent-record lookup), Custom Fields (as field values on each entity), Tags (as text or Option Set values). Each phase emits a row-count reconciliation report before the next phase begins. Bulk API chunking and exponential backoff are used for activity records to stay within Dataverse API rate limits.

  6. Cutover, validation, and automation handoff

    We freeze Copper writes during the cutover window, run a final delta migration of any records modified during the window, then re-link SharePoint attachment URLs to Dynamics 365 record document locations. We enable Dynamics 365 as the system of record and deliver the Workflow and Automation Inventory document listing every Copper workflow, Zapier trigger, and bulk email sequence that requires rebuild in Power Automate, Dynamics 365 Sales automation, or Azure Logic Apps. We support a one-week hypercare window for reconciliation issues. We do not rebuild Copper workflows as Power Automate flows as part of the migration scope; that work is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

Copper logo

Copper

Source

Strengths

  • Tight, native Google Workspace integration that embeds CRM functionality inside Gmail and Google Drive without context switching.
  • Per-seat pricing model with clear tier escalation and up to 26% annual billing discount provides cost predictability for small teams.
  • Automatic activity capture from email threads reduces manual data entry and keeps engagement history current without user discipline.
  • Clean, minimal interface that new team members can navigate without formal training or dedicated onboarding resources.
  • Custom fields are available across all main objects on all plans, allowing some degree of record customisation from Starter tier upward.

Weaknesses

  • Feature gating is aggressive: workflow automation, bulk email, custom reporting, and multi-currency are reserved for Professional and Business tiers, making the effective entry price higher than the $9 Starter headline.
  • API rate limit of 180 requests per minute constrains bulk data extraction during migration; large record sets require careful pagination and throttling.
  • Teams with complex sales motions or non-Google productivity stacks (Microsoft 365, for example) report Copper feels limited compared to broader CRM platforms.
  • AI-assisted features are minimal and tier-gated, which newer buyers expecting built-in intelligence may find underwhelming.
  • Contact limits on lower tiers (1,000 on Starter, 2,500 on Basic) can force an unexpected tier upgrade mid-growth.
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. 3 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 Copper and Microsoft Dynamics 365 Sales .

  • Object compatibility

    B

    3 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

    Copper: 180 requests per minute on a rolling window, returning HTTP 429 when exceeded. Bulk endpoints have a separate ceiling of 3 requests per second..

  • Data volume sensitivity

    A

    Copper exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Copper 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 Copper to Microsoft Dynamics 365 Sales data migrations

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

Can't find your answer?

Walk through your Copper 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 migrations land between four and eight weeks for accounts under 10,000 People, 2,000 Opportunities, and a manageable custom field set. Migrations with large engagement histories (over 200,000 activity records), many custom fields, multiple Copper pipelines, or a complex Lead-Contact split matrix move to ten to sixteen weeks because of Sales Process pre-configuration time, Dataverse schema design, and parent-record resolution during bulk load. Timeline is also affected by how quickly the customer's Dynamics 365 admin provisions User accounts for Owner reconciliation and signs off the sandbox migration.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Copper.
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