CRM migration
Field-level mapping, validation, and rollback between Perfectview and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Perfectview
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
7 of 10
objects map 1:1 between Perfectview and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Perfectview to Microsoft Microsoft Dynamics 365 Sales requires resolving a fundamental schema mismatch. Perfectview organises its entire data model around Relations, a single object type that conflates company and contact data with role-based address fields. Microsoft Dynamics 365 Sales uses separate Account, Contact, and Lead objects with explicit Lookup relationships. We split each Relation into one Account record and one or more Contact records during the transform phase, using the Relation role and address fields to determine placement and dedupe. Activity history (calls, emails, meetings, tasks) migrates as Tasks and Events attached to the resolved Contact or Account via the Dynamics 365 Bulk API 2.0 with parent-record lookup resolution. Owner assignments on Relations resolve to Dynamics 365 User records by email match, with unresolved owners flagged in a reconciliation queue. Perfectview's bulk export function caps at 1,000 records per pass, which we handle through scripted chunking by date range or alphabetical segment to ensure complete coverage. Workflows, automations, and reports do not migrate as code; we document them for the customer's admin to rebuild in Dynamics 365.
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.
Source platform
Perfectview platform overview
Scorecard, SWOT, gotchas, and pricing for Perfectview.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Perfectview 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.
Perfectview
Relation
Microsoft Dynamics 365 Sales
Account
1:manyEach Perfectview Relation maps to one Account record in Microsoft Dynamics 365 Sales . The company-level fields from the Relation (company name, address, phone, website, industry) become the Account fields. We use RelationName as Account Name and the primary business address fields as BillingAddress. Account is created before any Contact import so that the AccountId Lookup is satisfied at the moment of Contact insert. Relations without a distinguishable company component (individual-only records) skip Account creation and go directly to Contact with no Account link.
Perfectview
Relation
Microsoft Dynamics 365 Sales
Contact
1:manyEach role-address instance within a Relation (for example, a Relation with both a billing contact and a sales contact) generates a separate Contact record linked to the parent Account. We use the Role field on the Relation address to set Contact Title and Department. The primary email and phone fields from the Relation become Contact Email and Phone. If a Relation has only one Contact role, we create one Contact; if it has five roles, we create five Contact records. The original Relation ID is preserved in a custom field pv_relation_id__c for audit trail and future delta-sync.
Perfectview
Lead
Microsoft Dynamics 365 Sales
Lead
1:1Perfectview Leads that are not yet converted to Relations map directly to Microsoft Dynamics 365 Sales Lead. We use LeadSource to capture the original lead acquisition channel and preserve any Perfectview lead score in a custom field pv_lead_score__c. Lead conversion during migration is handled by the customer's admin post-migration rather than as part of the bulk import to avoid creating duplicate Accounts.
Perfectview
Deal
Microsoft Dynamics 365 Sales
Opportunity
1:1Perfectview Deals map to Microsoft Dynamics 365 Sales Opportunity. The Deal amount, stage, close date, and owner migrate to Opportunity Amount, StageName, CloseDate, and OwnerId respectively. We map Perfectview's dealstage values to a Salesforce-compatible stage name set defined during scoping. The Opportunity AccountId is resolved by matching the parent Relation's company fields to the newly created Account record.
Perfectview
Activity
Microsoft Dynamics 365 Sales
Task and Event
1:1Perfectview Activities (calls, emails, meetings, tasks) migrate as Microsoft Dynamics 365 Sales Task and Event records. Call dispositions and durations map to custom Task fields; meeting start and end times map to Event StartDateTime and EndDateTime. Each Activity is linked to the parent Contact or Account via the Regarding (regardingobjectid) lookup. We use the Bulk API 2.0 for Activity migration because the record volume typically exceeds what the Dynamics 365 REST API can handle without batching.
Perfectview
Case
Microsoft Dynamics 365 Sales
Case
1:1Perfectview Cases migrate to Microsoft Dynamics 365 Sales Case with Status, Priority, Description, and Case Origin preserved. The Case Contact and Case Account are resolved by matching the original linked Relation to the newly created Account and Contact records. Case comments and conversation history migrate as EmailMessage records linked to the Case. If the Dynamics 365 tenant does not include Service Cloud, Cases are migrated as custom records in a custom object with equivalent fields.
Perfectview
Document
Microsoft Dynamics 365 Sales
SharePoint Online / ContentDocument
lossyPerfectview Document metadata (filename, file type, upload date, author) migrates to Dynamics 365 SharePoint integration document locations or to Salesforce ContentDocument records if the tenant uses Dataverse file attachments. The document binary files are exported from Perfectview via the bulk export function or API download endpoint, then re-uploaded to the equivalent SharePoint document library or ContentVersion record. The mapping between the original document ID and the new location ID is preserved in the migration mapping file.
Perfectview
Quote
Microsoft Dynamics 365 Sales
Quote
1:1Perfectview Quotes migrate to Microsoft Dynamics 365 Sales Quote. Quote headers (quotenumber, account, contact, validity period) map to Quote fields. Line items map to QuoteLineItem records, with Product2 and PricebookEntry resolved at migration time. Signed Quote PDFs migrate as ContentDocument attached to the Quote. Quote status (Draft, Active, Revised, Accepted, Closed) maps to the Dynamics 365 Quote Status field.
Perfectview
Owner
Microsoft Dynamics 365 Sales
User
1:1Perfectview Owners map to Dynamics 365 User records by email match. We resolve each Owner referenced on Relation, Deal, Activity, Case, and Quote to a Dynamics 365 User. Any Owner without a matching Dynamics 365 User is held in a reconciliation queue for the customer's admin to provision before the relevant record phase begins. OwnerId references on all migrated records are resolved at migration time using the finalised User lookup table.
Perfectview
Custom Fields
Microsoft Dynamics 365 Sales
Custom Fields
1:1Perfectview custom fields added to Relation, Activity, Case, and other objects are discovered during the discovery phase and mapped to equivalent Dynamics 365 custom fields. Field data types are mapped from Perfectview's type definitions to the closest Dynamics 365 field type (text to Text, date to Date, number to Number, checkbox to Two Options). Custom fields are deployed to the Dynamics 365 sandbox before migration begins and the mapping file is validated against the live schema.
| Perfectview | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Relation | Account1:many | Fully supported | |
| Relation | Contact1:many | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Activity | Task and Event1:1 | Fully supported | |
| Case | Case1:1 | Fully supported | |
| Document | SharePoint Online / ContentDocumentlossy | Fully supported | |
| Quote | Quote1:1 | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Custom Fields | Custom Fields1:1 | Mapping required |
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.
Perfectview gotchas
Relations object conflates Companies and Contacts
Bulk export function caps at 1000 records per operation
Workflows and automations cannot be exported
API rate limits are not publicly documented
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Discovery and schema mapping
We audit the Perfectview tenant to capture the full Relation structure (including all role-based contact fields), Activity types and volume, Case status and priority values, Deal pipeline stages, and any custom fields on Relation, Activity, and Case objects. We document every active workflow for the workflow inventory deliverable. We pair this with a Microsoft Dynamics 365 Sales environment audit to identify the installed edition (Professional, Enterprise, or Premium), existing Record Types, Sales Processes, and custom field definitions. The discovery output is a written migration scope with the Relation split logic, field-level mapping, and Dynamics 365 edition recommendation.
Schema provisioning in Dynamics 365 Sandbox
We deploy the destination schema to a Dynamics 365 Sandbox using the Configuration Migration Tool or Microsoft Dataverse REST API. This includes creating any custom fields not already present (pv_relation_id__c, pv_lead_score__c, and other migration audit fields), extending picklist value sets to match Perfectview's enumerated values, and creating the Record Types and Sales Processes needed to represent each Perfectview Deal pipeline. Schema validation runs against a subset of source data before the full migration proceeds.
Sandbox migration and reconciliation
We run a full migration into the Dynamics 365 Sandbox using production-like data volume drawn from the Perfectview export. The customer's RevOps lead spot-checks 25-50 randomly selected Relations against their corresponding Account and Contact records in Dynamics 365, verifies that Activity timelines are intact, and signs off the field mapping before production migration begins. Any split logic errors or field mapping corrections are applied to the transform scripts before the production run.
Owner reconciliation and User provisioning
We extract every distinct Perfectview Owner referenced on Relation, Deal, Case, Activity, and Quote records and match by email against the Dynamics 365 destination org's User table. Owners without a matching User are held in a reconciliation queue for the customer's admin to provision matching Dynamics 365 Users. Migration cannot proceed to the child record phase until OwnerId references are resolved because OwnerId is a required field on Opportunity and Case records.
Production migration in dependency order
We run the production migration in strict record-dependency order: Accounts (from Relation company fields), Users (validated), Contacts (with AccountId resolved from the Account lookup table), Leads, Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Quotes and QuoteLineItems, Activities (Tasks and Events via Bulk API 2.0 with regardingobjectid resolved), Cases, Documents (metadata and file attachments), and custom field values last. Each phase emits a row-count reconciliation report and a field-null-rate report before the next phase begins.
Cutover, validation, and automation rebuild handoff
We freeze writes to the Perfectview tenant during cutover and run a final delta migration of any records created or modified during the migration window. We enable Microsoft Dynamics 365 Sales as the system of record and deliver the workflow inventory document, the automation rebuild guide mapping each Perfectview workflow to its recommended Dynamics 365 Power Automate or Workflow equivalent, and the report rebuild checklist. We support a three-day hypercare window where we resolve reconciliation issues raised by the customer's sales team. We do not rebuild Perfectview workflows as Dynamics 365 automations inside the standard migration scope; that is a separate engagement.
Platform deep dives
Perfectview
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 4 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 Perfectview and Microsoft Dynamics 365 Sales .
Object compatibility
4 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
Perfectview: Not publicly documented in summary form..
Data volume sensitivity
Perfectview exposes a bulk API — large-volume migrations stream efficiently.
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 Perfectview to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Perfectview to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Perfectview
Other ways to arrive at Microsoft Dynamics 365 Sales
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.