CRM migration

Migrate from Function 365 to Pipedrive

Field-level mapping, validation, and rollback between Function 365 and Pipedrive. We move data and schema; workflows are rebuilt natively in Pipedrive.

Function 365 logo

Function 365

Source

Pipedrive

Destination

Pipedrive logo

Compatibility

93%

14 of 15

objects map 1:1 between Function 365 and Pipedrive.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Function 365 logo

Function 365

What's pushing teams away

  • Functional Medicine + private-healthcare niche means general medical practices, NHS-primary settings, or non-UK clinics often have a tighter fit with Cliniko, Pabau, or country-specific PMS.
  • Implementation requires a paid specialist session (£55/session) plus optional onsite training (£350) — small clinics that expected pure self-serve may find the onboarding gate frustrating.
  • Smaller installed base than Cliniko, Pabau, or Halaxy means fewer integrations, fewer third-party services, and less peer benchmarking for procurement.
  • No public API documentation surfaced in research; integration with lab vendors, payment processors, or downstream EHRs may require vendor coordination.
  • Solo Practitioner tier (£132/month) is steeper than freemium-style PMS competitors; smallest practices may find the entry price hard to justify against single-clinician alternatives.

Choosing

Pipedrive logo

Pipedrive

What's pulling them in

  • Clean drag-and-drop pipeline interface with minimal learning curve, making it approachable for small sales teams without dedicated CRM admins.
  • Visual deal tracking keeps reps focused on next actions — activities, calls, and follow-up tasks surface directly in the pipeline view.
  • Strong integrations via Zapier and native marketplace apps let teams wire Pipedrive into Calendly, ActiveCampaign, and similar sales-stack tools.
  • Mobile apps for iOS and Android keep field reps connected to deals, contacts, and tasks without a desktop session.
  • Reputation and review volume — over 3,000 verified reviews across G2 and Capterra — signal reliability for teams evaluating CRM options.

Object mapping

How Function 365 objects map to Pipedrive

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)

maps to

Pipedrive

Person (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

Lead (Pipedrive) or Person (Pipedrive)

1:many
Fully supported

Dynamics 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)

maps to

Pipedrive

Organization (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

Deal (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

Pipeline Stage (Pipedrive)

1:1
Fully supported

Each 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)

maps to

Pipedrive

Deal Person Association (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

Activity — Task / Call / Email (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

Activity — Meeting (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

Activity — Note (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

Product (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

Custom Field (Pipedrive)

1:1
Fully supported

Every 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)

maps to

Pipedrive

User (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

Currency (Pipedrive)

1:1
Fully supported

Dynamics 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)

maps to

Pipedrive

File (Pipedrive)

1:1
Fully supported

Email 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

maps to

Pipedrive

No equivalent

1:1
Fully supported

Dynamics 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.

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.

Function 365 logo

Function 365 gotchas

High

AI-assisted notes are proprietary — verify clinical-record export coverage

High

NHS Number format must be preserved exactly

Medium

Implementation specialist time is paid extra at £55/session

Medium

GDPR consent timestamps are regulatory artefacts

Pipedrive logo

Pipedrive gotchas

High

Custom field hash keys differ per account

High

Export access gated by visibility groups

Medium

Token-based API rate limits since December 2024

Medium

Sequences and Automations not exposed via REST API

Low

Cost escalates via workflow caps and add-ons

Pair-specific challenges

  • Dynamics Lead-to-Contact routing has no Pipedrive equivalent

    Dynamics 365 distinguishes Leads (raw prospects) from Contacts (qualified accounts) with a conversion step that creates a Contact from a Lead and links it to an Account. Pipedrive does not have this two-step model — Persons serve both roles. A Dynamics Lead that was never converted carries no Contact record. When migrating unconverted Leads, FlitStack creates Pipedrive Persons with a lead_status flag set from the Dynamics statecode. If your Dynamics instance has a large backlog of unconverted Leads, this routing decision determines whether they appear as Leads or Persons in Pipedrive — your admin should confirm the routing rule before migration commits.

  • Pipedrive API v2 token-based rate limits throttle bulk writes

    Pipedrive introduced token-based rate limits in December 2024, with different caps per plan tier (100–500 requests/minute for most plans). Dynamics 365 exports can yield tens of thousands of records. FlitStack sequences bulk operations using the Pipedrive v2 API with exponential backoff on 429 responses, pauses between batch writes, and concurrent-safe item processing. If your Dynamics instance has over 200,000 records, the bulk migration run may take multiple hours within the rate-limit budget. We surface estimated run duration and throttle-adjusted throughput before the full migration begins.

  • Dynamics opportunity probability is not native in Pipedrive

    Dynamics 365 stores close probability as a field on the Opportunity (closeprobability) tied to the opportunitystage pick-list. Pipedrive has no built-in stage probability field — forecast category is the closest native construct but it maps forecast categories (Omitted, Pipeline, Bestcase, Committed), not per-stage probabilities. Teams migrating from Dynamics that rely on probability-weighted pipeline reporting must add a custom number field (Probability__c) to Pipedrive Deals and repopulate values per stage mapping. FlitStack includes this custom field creation in the migration plan.

  • Dynamics business-unit security has no Pipedrive equivalent

    Dynamics 365 uses business units to scope security roles — users can only see records owned by users in their business unit or child business units. Pipedrive uses a visibility group model where admins assign records to specific users or teams. There is no 1:1 translation from Dynamics business-unit hierarchies to Pipedrive visibility. FlitStack maps the top-level business unit to a Pipedrive team and assigns all records to that team. Finer-grained business-unit scoping must be reconfigured manually in Pipedrive after migration using visibility groups.

  • Dynamics email attachments stored in Exchange require separate export

    Dynamics 365 activities linked to Exchange Online mailboxes (emailactivitypointer records) store attachments in Exchange rather than in Dataverse. Standard Dataverse exports do not capture Exchange-hosted attachments. Teams that need email attachment history migrated to Pipedrive Files must run a separate Exchange Online export (via eDiscovery or PowerShell) before the CRM migration window. FlitStack identifies email activity records with Exchange-hosted attachments and flags them for pre-migration extraction. Using the Exchange Online Management PowerShell module, admins can bulk-download attachments while respecting mailbox size limits, and FlitStack logs activity IDs so exported files can be linked to the correct Pipedrive records after migration.

Migration approach

Six steps for a successful Function 365 to Pipedrive data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

Function 365 logo

Function 365

Source

Strengths

  • Integrated PMS (booking, notes, prescriptions, billing, lab orders, telehealth) in one product.
  • GDPR and HIPAA support built into the data model.
  • Transparent per-licence published pricing on the vendor shop.
  • AI-assisted clinical note generation reduces practitioner admin time.
  • Tiered licence pricing rewards larger practices with lower per-seat cost.

Weaknesses

  • Niche fit (UK private healthcare + Functional Medicine) — not suited for NHS-primary or non-UK general practice.
  • Implementation specialist time billed separately (£55/session) plus £350 onsite training.
  • Smaller installed base than Cliniko/Pabau means thinner integration ecosystem.
  • No public API documentation visible in research.
  • Solo Practitioner price (£132/month) higher than some freemium-style PMS competitors.
Pipedrive logo

Pipedrive

Destination

Strengths

  • Intuitive drag-and-drop pipeline that sales reps actually use without resistance or training overhead.
  • Per-seat unlimited-deals model on all tiers — reps cannot be blocked from logging activity.
  • Active marketplace with 400+ integrations and a documented REST API with OpenAPI 3 specs.
  • Mobile apps with offline access, call logging, and calendar sync keep field teams operational.
  • Strong focus on sales activity tracking — next-action reminders and follow-up scheduling are first-class features.

Weaknesses

  • No custom objects — teams needing non-standard data structures must work around the four standard entity types.
  • Workflow automation limits by tier (30, 60, 90 active workflows) force upgrades as processes grow.
  • No free permanent plan — teams evaluating fit must commit to a trial without a freemium option.
  • Limited advanced reporting and custom dashboard capabilities compared to HubSpot or Salesforce.
  • Export permissions are gated by visibility groups, meaning data scoping must account for who can see what before migration.

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 Function 365 and Pipedrive.

  • 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

    Function 365: Not publicly documented.

  • Data volume sensitivity

    B

    Function 365 doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Function 365 to Pipedrive 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 Function 365 to Pipedrive data migrations

Answers to the questions buyers ask most during Function 365 to Pipedrive migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most Function 365 to Pipedrive migrations complete in 48–72 hours of clock time for under 50,000 records. Larger setups with 200,000+ records or complex multi-entity Dynamics 365 configurations with 50+ custom fields extend to 5–10 days. The longest step is building the Pipedrive field schema and resolving option-set value mappings before data arrives — that planning phase typically takes 3–5 business days.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Function 365.
Land in Pipedrive, 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