CRM migration
Field-level mapping, validation, and rollback between Function 365 and Pipedrive. We move data and schema; workflows are rebuilt natively in Pipedrive.
Function 365
Source
Pipedrive
Destination
Compatibility
14 of 15
objects map 1:1 between Function 365 and Pipedrive.
Complexity
BStandard
Timeline
48–72 hours
Overview
Function 365 (Dynamics 365 Sales) uses a split Lead-to-Contact model tied to Accounts and Opportunities, with record types, business units, and a configurable opportunity field model. Pipedrive collapses this into Persons (contacts), Organizations (accounts), Deals (opportunities), and a flat pipeline-stage model — Leads are a separate object in Pipedrive, not a routing stage on Contact. We map Dynamics Leads and Contacts to Pipedrive Persons, Dynamics Accounts to Organizations, and Dynamics Opportunities to Deals. Custom fields migrate as Pipedrive custom fields using the /personFields, /organizationFields, and /dealFields API endpoints. Activity data (tasks, phone calls, emails) maps to Pipedrive Activities. Dynamics workflows, Power Automate flows, and business rules do not migrate — we export definitions as JSON for your Pipedrive admin to rebuild with Pipedrive Automations. We use the Pipedrive API v2 with token-based rate limiting (100–500 requests/minute depending on plan) and sequence bulk operations to avoid throttling. Our delta-pickup window (24–48 hours) captures in-flight changes during cutover, and a sample migration with field-level diff runs first so you validate mappings before the full commit.
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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Function 365 object lands in Pipedrive, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Function 365
Contact (Dynamics 365)
Pipedrive
Person (Pipedrive)
1:1Dynamics 365 Contacts map directly to Pipedrive Persons. The primary email, phone, name fields, and address fields carry over as-is. Dynamics Contact's AccountId (lookup to Account) maps to Pipedrive Person's org_id (lookup to Organization). Multi-company contacts in Dynamics collapse to one primary Organization link in Pipedrive; secondary company associations are preserved as additional Organization links if the data model allows.
Function 365
Lead (Dynamics 365)
Pipedrive
Lead (Pipedrive) or Person (Pipedrive)
1:manyDynamics Leads can route to either Pipedrive Leads (if the separate Leads feature is enabled) or Pipedrive Persons. The routing rule applies per record: Leads with a qualified status map to Person, unqualified or new Leads map to Pipedrive's Lead object. Lead address, company name, and phone fields map to the equivalent Pipedrive Lead or Person fields. Dynamics Lead source and rating (Active / Qualified) map to Pipedrive's lead_status custom field.
Function 365
Account (Dynamics 365)
Pipedrive
Organization (Pipedrive)
1:1Dynamics 365 Accounts map to Pipedrive Organizations. Account name, website, address, industry, employee count, and annual revenue carry over. Parent account hierarchies (Account.ParentId) map to Pipedrive Organization's parent_org_id. Multi-site organizations from Dynamics with child accounts become sibling Organizations linked by the parent_org_id in Pipedrive.
Function 365
Opportunity (Dynamics 365)
Pipedrive
Deal (Pipedrive)
1:1Dynamics 365 Opportunities map to Pipedrive Deals. The deal name, estimated close date, actual close date, and amount fields carry over directly. The Dynamics Opportunity's StageName (opportunitystage) maps to Pipedrive's pipeline stage_id on the Deal. Dynamics EstimatedValue and DealCurrency map to Pipedrive's weighted_value and currency_id.
Function 365
Opportunity Stage / Sales Process (Dynamics 365)
Pipedrive
Pipeline Stage (Pipedrive)
1:1Each Dynamics 365 Sales Process (pipeline) becomes a Pipedrive Pipeline. Each Dynamics Opportunity Stage within that Sales Process maps to a Pipedrive Stage within the corresponding pipeline. Stage probability values from Dynamics re-enter as custom probability fields in Pipedrive since Pipedrive does not enforce stage probability natively — forecast category is the closest built-in field but requires manual mapping per stage.
Function 365
OpportunityContactRole (Dynamics 365)
Pipedrive
Deal Person Association (Pipedrive)
1:1Dynamics OpportunityContactRole records linking Contacts to Opportunities map to Pipedrive Deal-Person associations. In Pipedrive, each Deal can have multiple linked Persons with a visible role label. The primary contact on a Dynamics Opportunity maps to the first Deal Person link in Pipedrive. Role names (decision-maker, evaluator, etc.) are preserved as custom text labels in Pipedrive.
Function 365
Task / PhoneCall / Email (Dynamics 365 Activities)
Pipedrive
Activity — Task / Call / Email (Pipedrive)
1:1Dynamics 365 Task entities map to Pipedrive Activities of type 'task'. PhoneCall activities map to Pipedrive Activities of type 'call'. Email (emailactivity) maps to Pipedrive Activities of type 'email'. The Regarding (regardingobjectid) lookup in Dynamics becomes the linked deal_id, person_id, or org_id in Pipedrive. Original timestamps, duration (for calls), and subject line carry over. Dynamics activityparty records (attendees, recipients) map to Pipedrive's attendee list on the corresponding activity.
Function 365
Appointment (Dynamics 365)
Pipedrive
Activity — Meeting (Pipedrive)
1:1Dynamics 365 Appointment records map to Pipedrive Activities of type 'meeting'. Start time, end time, location, and subject carry over. Dynamics RequiredAttendees and OptionalAttendees activityparty records map to Pipedrive attendee user_ids on the meeting activity. Body/notes on the appointment become the Pipedrive meeting activity's note field.
Function 365
Note / Annotation (Dynamics 365)
Pipedrive
Activity — Note (Pipedrive)
1:1Dynamics 365 Note (annotation) records with isdocument=false map to Pipedrive Activity of type 'note'. The notetext field becomes the Pipedrive note content. Dynamics Note's object references (objectid) map to Pipedrive's deal_id, person_id, or org_id depending on the parent entity. File attachments on Notes (annotationattachments) re-upload as Pipedrive Files linked to the same parent record.
Function 365
Product (Dynamics 365)
Pipedrive
Product (Pipedrive)
1:1Dynamics 365 Product records (productentitlement) map to Pipedrive Products. Product name, SKU, unit, price list entries, and description carry over. Pipedrive Products can be linked to Deals for line-item tracking. If Dynamics pricing is complex (volume discounts, tiered pricing), the pricing rules are noted as rebuild items in Pipedrive's Product Catalog settings post-migration.
Function 365
Custom Field / User-Defined Field (Dynamics 365)
Pipedrive
Custom Field (Pipedrive)
1:1Every Dynamics 365 custom field (created via Power Apps > Customizations or the X++ extension model) is evaluated for a Pipedrive equivalent. Text, number, date, and pick-list fields map directly. Option-set (pick-list) values in Dynamics require value-by-value mapping in Pipedrive because Pipedrive generates unique hash keys per field per account. Lookup fields (regardingobjectid) in Dynamics that point to custom entities become custom fields in Pipedrive unless a matching Pipedrive entity exists.
Function 365
Owner / SystemUser (Dynamics 365)
Pipedrive
User (Pipedrive)
1:1Dynamics 365 SystemUser records map to Pipedrive Users. OwnerId on any Dynamics entity (Contact, Account, Opportunity) resolves by email address match to a Pipedrive user. Unmatched owners are flagged before migration and assigned to a designated fallback Pipedrive user. Business unit hierarchy from Dynamics is not transferred — Pipedrive's visibility group model replaces it and must be configured post-migration.
Function 365
Currency (Dynamics 365)
Pipedrive
Currency (Pipedrive)
1:1Dynamics 365 transactioncurrency records (currency ISO codes and exchange rates) map to Pipedrive's currency configuration. The active exchange rate at time of migration is applied to deal amounts. Pipedrive stores deal amounts in the selected currency; multi-currency pipelines in Dynamics require explicit currency_id assignment per deal.
Function 365
Email attachment (Dynamics 365 / Exchange)
Pipedrive
File (Pipedrive)
1:1Email attachments stored in Dynamics 365 or Exchange Online mailboxes re-upload as Pipedrive Files linked to the corresponding email Activity or Contact Person. File size validation runs against Pipedrive plan limits (5GB/user on Lite, 100GB on Power, unlimited on Enterprise). Files exceeding limit are flagged for alternative storage and linked by URL reference.
Function 365
Dynamics 365 Workflow / Power Automate Flow
Pipedrive
No equivalent
1:1Dynamics 365 workflows, Power Automate cloud flows, business rules, and real-time plugins do not migrate. These are destination-platform automation constructs. FlitStack exports the full workflow definition (trigger conditions, actions, branch logic) as a JSON reference file for your Pipedrive admin to rebuild using Pipedrive Automations. Power Automate flows that reference Dataverse tables will need equivalent Pipedrive Automations or Zapier/Make scenarios.
| Function 365 | Pipedrive | Compatibility | |
|---|---|---|---|
| Contact (Dynamics 365) | Person (Pipedrive)1:1 | Fully supported | |
| Lead (Dynamics 365) | Lead (Pipedrive) or Person (Pipedrive)1:many | Fully supported | |
| Account (Dynamics 365) | Organization (Pipedrive)1:1 | Fully supported | |
| Opportunity (Dynamics 365) | Deal (Pipedrive)1:1 | Fully supported | |
| Opportunity Stage / Sales Process (Dynamics 365) | Pipeline Stage (Pipedrive)1:1 | Fully supported | |
| OpportunityContactRole (Dynamics 365) | Deal Person Association (Pipedrive)1:1 | Fully supported | |
| Task / PhoneCall / Email (Dynamics 365 Activities) | Activity — Task / Call / Email (Pipedrive)1:1 | Fully supported | |
| Appointment (Dynamics 365) | Activity — Meeting (Pipedrive)1:1 | Fully supported | |
| Note / Annotation (Dynamics 365) | Activity — Note (Pipedrive)1:1 | Fully supported | |
| Product (Dynamics 365) | Product (Pipedrive)1:1 | Fully supported | |
| Custom Field / User-Defined Field (Dynamics 365) | Custom Field (Pipedrive)1:1 | Fully supported | |
| Owner / SystemUser (Dynamics 365) | User (Pipedrive)1:1 | Fully supported | |
| Currency (Dynamics 365) | Currency (Pipedrive)1:1 | Fully supported | |
| Email attachment (Dynamics 365 / Exchange) | File (Pipedrive)1:1 | Fully supported | |
| Dynamics 365 Workflow / Power Automate Flow | No equivalent1: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.
Function 365 gotchas
AI-assisted notes are proprietary — verify clinical-record export coverage
NHS Number format must be preserved exactly
Implementation specialist time is paid extra at £55/session
GDPR consent timestamps are regulatory artefacts
Pipedrive gotchas
Custom field hash keys differ per account
Export access gated by visibility groups
Token-based API rate limits since December 2024
Sequences and Automations not exposed via REST API
Cost escalates via workflow caps and add-ons
Pair-specific challenges
Migration approach
Audit Dynamics 365 entity inventory and export structure
FlitStack connects to your Dynamics 365 instance via the Dataverse API and inventories all entities with data — Contacts, Accounts, Leads, Opportunities, Activities, Products, and any custom entities. We generate a record-count breakdown per entity, identify custom fields and option-set values, and surface any Dynamics-specific constructs (business units, record types, option-set configurations) that require mapping decisions. This audit output becomes the migration blueprint: entity list, field map, and ownership resolution plan. No data leaves your tenant during this step.
Build Pipedrive pipeline and field schema before data arrives
Before any data moves, FlitStack provisions the Pipedrive-side schema based on the Dynamics audit. This means creating Pipedrive Pipelines that mirror Dynamics Sales Processes, adding stage columns that match opportunitystage pick-list values, creating custom fields via the Pipedrive API v2 (using /personFields, /organizationFields, /dealFields) for every Dynamics custom field, and setting up visibility groups to approximate your Dynamics business-unit structure. We deliver a schema setup plan so your Pipedrive admin can review and approve before fields and pipelines are committed.
Resolve owners and link Accounts before migrating Contacts and Deals
Dynamics ownership is tied to SystemUser records. FlitStack matches Dynamics SystemUser email addresses against Pipedrive user email addresses. Matches are confirmed; mismatches are flagged with a fallback owner assignment. Accounts (Dynamics) must be migrated before Contacts (Dynamics) because Pipedrive Persons require an org_id for the Account lookup. Opportunities (Dynamics) migrate last because they require both an org_id (Account) and person_id (Contact) before the Deal can link correctly. Activity records follow their parent records once those foreign keys are resolved.
Run sample migration with field-level diff before full commit
A representative slice — typically 100–500 records across Contacts, Accounts, Deals, Leads, and Activities — migrates first. FlitStack generates a field-level diff report comparing source values against destination field values for every mapped field. You verify that Dynamics contactname, opportunity amount, stage probability, owner assignment, and custom field values appear correctly in Pipedrive. Only after you sign off on the sample does the full migration proceed. This step prevents a full-run commit where mis-mapped option-set values or missing custom fields would require a rollback.
Cut over with delta-pickup window and one-click rollback available
The full migration runs against Pipedrive using batch API writes with rate-limit management. A delta-pickup window (typically 24–48 hours) runs after the bulk migration completes, capturing any records modified in Dynamics 365 during the cutover window. Every operation is logged in an audit trail. If reconciliation fails — record counts don't match, foreign keys are broken, or custom field values are missing — one-click rollback reverts the Pipedrive instance to its pre-migration state so the team can re-run with corrected mappings.
Platform deep dives
Function 365
Source
Strengths
Weaknesses
Pipedrive
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 Function 365 and Pipedrive.
Object compatibility
3 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
Function 365: Not publicly documented.
Data volume sensitivity
Function 365 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 Function 365 to Pipedrive migration scoping. Not seeing yours? Book a call.
Walk through your Function 365 to Pipedrive migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Function 365
Other ways to arrive at Pipedrive
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.