CRM migration
Field-level mapping, validation, and rollback between Profi and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Profi
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
9 of 10
objects map 1:1 between Profi and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
Profi organizes client-facing coaching data as unified objects: clients with lifecycle and contact details, session histories, program enrollments, coach assignments, and payment records. Dynamics 365 Sales structures CRM data on the Dataverse engine using Account, Contact, Lead, and Opportunity entities — with a strict split between Leads (pre-Qualification) and Contact records. FlitStack AI maps Profi clients to Dynamics 365 Contacts, Profi company data to Account records, and resolves owner assignments by matching coach emails against Dynamics 365 users. Coaching-specific data — program enrollments, session records, coach profiles, and billing history — requires custom Dataverse tables and custom fields, since no native Dynamics 365 entity represents these concepts. The migration sequence runs Accounts and Contacts first, establishing foreign-key relationships, then creates the custom coaching tables, followed by activity history. A sample diff validates field mapping accuracy, and a 24–48 hour delta window captures any in-flight changes at cutover, ensuring data continuity throughout the transition.
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
Profi platform overview
Scorecard, SWOT, gotchas, and pricing for Profi.
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 Profi 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.
Profi
Client
Microsoft Dynamics 365 Sales
Contact
1:1Profi clients map directly to Dynamics 365 Contacts. All standard contact fields (name, email, phone, address) translate field-for-field. Profi lifecycle stage data migrates as a custom pick-list field (Client_Lifecycle_Stage__c) on the Contact since Dynamics has no native coaching-progression equivalent. This custom field can be placed on the Contact form for reporting and segmentation, and original creation timestamps are preserved via the Original_Create_Date__c custom field to maintain audit continuity.
Profi
Company
Microsoft Dynamics 365 Sales
Account
1:1Profi company data maps to Dynamics 365 Account records. Industry, employee count, annual revenue, and address fields translate directly. Profi's company type field (e.g., individual coach, coaching firm, corporate client) migrates as a custom pick-list field (Company_Type__c) on the Account.
Profi
Client (pre-coaching lead)
Microsoft Dynamics 365 Sales
Lead
1:manyProfi contacts who have not yet booked a session are treated as Leads in Dynamics 365 Sales. We split Profi clients into Leads (no session history) and Contacts (at least one session booked). The split rule is configurable — your team can specify the threshold based on Profi's enrollment or activity data.
Profi
Booking / Session
Microsoft Dynamics 365 Sales
Activity (Task or Email)
1:1Profi session records migrate as Dataverse Activities. Each session becomes a Task with Subject set to the session name, and custom fields for Session_Type__c, Duration_Minutes__c, Session_Date__c, and Session_Status__c. Coach assignment resolves by email match to a Dynamics 365 user. The Task's Regarding field links to the Contact record, preserving the client relationship in the Dynamics 365 activity timeline.
Profi
Program / Course Enrollment
Microsoft Dynamics 365 Sales
Custom Table: Program_Enrollment__c
1:1Profi program and course enrollment data has no native equivalent in Dynamics 365 Sales. We create a custom Dataverse table (Program_Enrollment__c) linked to the Contact record via a lookup relationship. Enrollment status and progress percentage migrate as custom fields on this table.
Profi
Payment / Invoice
Microsoft Dynamics 365 Sales
Custom Table: Coaching_Payment__c
1:1Profi payment and invoice records do not map to any standard Dynamics 365 entity. We create a custom Dataverse table (Coaching_Payment__c) linked to the Contact, with fields for Amount, Currency, Payment_Date, and Payment_Status (value-mapped from Profi statuses to Dynamics-compliant pick-list values).
Profi
Coach / Staff
Microsoft Dynamics 365 Sales
System User + Custom Table: Coach__c
1:1Profi coaches and staff members are resolved by email match to existing Dynamics 365 users for ownership assignment. Coach profile data (specialty, credentials, bio) that does not fit on the system User record migrates to a custom Coach__c Dataverse table linked to the corresponding User.
Profi
Note / Session Note
Microsoft Dynamics 365 Sales
Annotation
1:1Profi session notes and client notes map to Dataverse Annotations. The note text, created-on timestamp, and owning user all transfer. Rich-text formatting is preserved where Profi's format is compatible with the Annotation body field. Any embedded file attachments in Profi notes are migrated as Dynamics 365 file attachments (annotationattachments), and the notes can be visualized in Power BI using the Dataverse Notes entity for reporting and analysis.
Profi
Custom Field (Profi platform-specific)
Microsoft Dynamics 365 Sales
Custom Field on relevant entity
1:1Any Profi custom fields added by your team — client-specific properties, program attributes, or billing metadata — are audited during discovery. Each custom field is type-matched to a Dataverse field type and created on the appropriate entity before migration data loads.
Profi
User / Owner Assignment
Microsoft Dynamics 365 Sales
System User (Owner)
1:1Owner assignment across all Profi objects resolves by matching the owner or coach email address to a Dynamics 365 system user record. Unmatched owners are flagged before migration so your team can either invite them to Dynamics 365 or reassign their records to a designated fallback owner.
| Profi | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Client | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Client (pre-coaching lead) | Lead1:many | Fully supported | |
| Booking / Session | Activity (Task or Email)1:1 | Fully supported | |
| Program / Course Enrollment | Custom Table: Program_Enrollment__c1:1 | Fully supported | |
| Payment / Invoice | Custom Table: Coaching_Payment__c1:1 | Fully supported | |
| Coach / Staff | System User + Custom Table: Coach__c1:1 | Fully supported | |
| Note / Session Note | Annotation1:1 | Fully supported | |
| Custom Field (Profi platform-specific) | Custom Field on relevant entity1:1 | Fully supported | |
| User / Owner Assignment | System User (Owner)1: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.
Profi gotchas
No public API for bulk data export
Package-to-session linkage breaks in export
Video recordings stored outside standard export
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
Audit Profi data model and build Dynamics 365 custom entity schema
FlitStack connects to Profi via its API or export endpoint and inventories all active objects — clients, sessions, programs, coaches, payments, and any custom fields. We then produce a custom Dataverse table schema specifying the tables, fields, pick-list values, and relationships required for each Profi coaching entity. Your Dynamics 365 admin creates the tables and fields (or FlitStack creates them via Dataverse API) before any data moves.
Resolve coach and owner email matches to Dynamics 365 users
All Profi owner and coach assignments are resolved by matching their email address to existing Dynamics 365 user accounts. FlitStack generates a pre-migration match report listing matched users, unmatched users, and records that will fall to the designated fallback owner. Your team resolves unmatched users — inviting them to Dynamics 365 or reassigning their records — before the migration run starts.
Migrate core records in dependency order: Accounts, Contacts, Leads, then custom tables
Dynamics 365 requires Account records to exist before Contacts (via the primary contact lookup), and Contact records to exist before Activity records can link to them. FlitStack sequences the migration in strict dependency order: Accounts first, then Contacts/Leads split by session history, then custom Dataverse tables (Program_Enrollment__c, Coaching_Payment__c, Coach__c), then Activity records. This ordering ensures every foreign-key lookup resolves correctly at load time.
Run a sample migration with field-level diff across all entity types
Run a sample migration with field-level diff across all entity types. A representative sample — typically 200–500 records spanning clients, companies, sessions, program enrollments, and payments — migrates first. FlitStack produces a field-level diff report showing every source field, its mapped destination value, and any transformation applied. You verify lifecycle-stage mapping, session-to-Activity translation, and custom table data before the full migration commits. Any discrepancies highlighted by the diff are corrected in the mapping rules before the final load, reducing the risk of data integrity issues during cutover.
Execute full migration with delta-pickup and one-click rollback
The full Profi dataset migrates into Dynamics 365. A 24–48 hour delta-pickup window runs concurrently, capturing any records created or modified in Profi during the cutover period. FlitStack maintains a full audit log of every record written. If reconciliation fails — missing foreign keys, pick-list mismatches, or data integrity issues — one-click rollback reverts the Dynamics 365 environment to its pre-migration state so the team can resolve and re-run without data loss.
Platform deep dives
Profi
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Profi and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Profi and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Profi and Microsoft Dynamics 365 Sales .
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
Profi: Not publicly documented.
Data volume sensitivity
Profi 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 Profi to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Profi 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 Profi
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.