CRM migration

Migrate from Attio to Microsoft Dynamics 365 Sales

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

Attio logo

Attio

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

88%

7 of 8

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

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Attio's flat CSV export does not include relationship join keys, so Deals arrive in Microsoft Dynamics 365 Sales orphaned from their parent Accounts unless we query relationship attributes via the Attio API before migration. We handle this by building the parent-child chain during the transform phase so that every Opportunity receives its AccountId at insert time. Attio's flexible object model (People, Companies, Deals, Custom Objects) maps to Dynamics 365's relational schema (Contacts, Accounts, Opportunities, custom entities) with the same sequencing constraints: Accounts must exist before Contacts, and Accounts must exist before Opportunities. Notes, Tasks, and historical email and calendar sync data attach to the correct Contact and Account records in Dynamics with parent-record references preserved. Attio Workflows and List memberships do not migrate as automation; Workflows require a rebuild inventory for the customer's admin to recreate in Dynamics Flow, and List memberships are denormalized into custom fields since Microsoft Dynamics 365 Sales has no native List object equivalent.

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

Attio logo

Attio

What's pushing teams away

  • The data model flexibility requires significant upfront configuration time, and sales teams without technical resources struggle to build a useful workspace from scratch.
  • Reporting features lack depth—users cite weak pipeline analytics, missing date-based segmentation, and limited data visualization as ongoing frustrations.
  • Native integrations are limited; syncing with tools like Aircall and HubSpot requires workarounds or third-party sync platforms, breaking GTM stack cohesion.
  • The workspace credit model creates unpredictable monthly costs—AI enrichment and automation steps consume credits faster than teams anticipate on Plus plans.
  • Teams cite a steep learning curve where the flexibility that attracts technical founders becomes a burden for adoption across sales, marketing, and CS teams.

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

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

Attio

People

maps to

Microsoft Dynamics 365 Sales

Contact (and optionally Lead)

1:1
Fully supported

Attio People records map to Dynamics 365 Contact with all native and custom attributes preserved. We deduplicate by email address before import to avoid duplicate Contact creation. Role attributes on People (e.g., Primary Contact, Billing Contact) that have no direct Dynamics field migrate to custom Contact fields. If the Attio workspace uses People records for both qualified and unqualified prospects, we can split them into Lead and Contact objects by evaluating a lifecycle or status attribute during scoping, creating a custom field attio_original_type__c for audit trail.

Attio

Company

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

Attio Company records map to Dynamics 365 Account. Domain from the Company record becomes the Account Website field and is used as the deduplication key. Company must be inserted before any Contact import so that the AccountId reference is satisfied at Contact insert time. If the Attio workspace has Companies linked to other Companies as parent-child, we replicate that as the Account.ParentId lookup chain.

Attio

Deal

maps to

Microsoft Dynamics 365 Sales

Opportunity

1:1
Fully supported

Attio Deals map to Dynamics 365 Opportunity. We resolve the parent Company relationship via Attio's API relationship attributes and write the resulting AccountId on each Opportunity at insert time. Pipeline stages from Attio map to a Dynamics Sales Process and Record Type that we configure before migration. Deal amount, close date, and status (Open, Won, Lost) migrate directly with closedate preserved as a date field rather than text.

Attio

Custom Object

maps to

Microsoft Dynamics 365 Sales

Custom Entity (customizeable entity)

1:1
Fully supported

Attio custom objects (3 on Free, 5 on Plus, 12 on Pro, unlimited on Enterprise) migrate to Microsoft Dynamics 365 Sales custom entities. We pre-create the destination schema including all custom fields, field types, and lookup relationships during the schema design phase. Attio relationship attributes linking custom objects to standard objects (Companies, People, Deals) become Dynamics lookup fields on the custom entity. Plan tier validation happens during scoping: if the source has more custom objects than the destination plan supports, we flag an upgrade requirement or consolidate objects before migration.

Attio

Notes

maps to

Microsoft Dynamics 365 Sales

Note (annotation)

1:1
Fully supported

Attio Notes attached to People, Companies, and Deals migrate to Dynamics Note records (annotation entity) linked via ContentDocumentLink to the parent Contact, Account, or Opportunity. Note body, author, and timestamp preserve. Notes on custom object records link to the custom entity using the custom entity's primary key as the objectid reference.

Attio

Task

maps to

Microsoft Dynamics 365 Sales

Task

1:1
Fully supported

Attio Tasks with assignee, due date, status, and description migrate to Dynamics Task records with Owner resolved via email match to the Dynamics User table. Tasks without a matching Dynamics User enter a reconciliation queue for the customer admin to provision before migration resumes. Status and priority values map directly to Dynamics Task State and Priority picklist values.

Attio

List

maps to

Microsoft Dynamics 365 Sales

Custom Field (denormalized)

lossy
Fully supported

Attio Lists are workflow-context record collections with no direct Microsoft Dynamics 365 Sales equivalent. We extract list memberships from the Attio API and denormalize them into a custom multi-select picklist field on the relevant object (Contact or Account). For example, a Contact appearing on the High-Value Prospects list receives the picklist value 'High-Value Prospects'. Dynamics admins can use this field for segmentation, filtered views, and targeted workflows after migration.

Attio

Activities (Email Sync, Calendar Sync)

maps to

Microsoft Dynamics 365 Sales

EmailMessage + Event

1:1
Fully supported

Attio's two-way Gmail and Outlook sync for People and Company records generates email and calendar entries that migrate to Dynamics EmailMessage and Event records attached to the parent Contact and Account. We query the sync history via the Attio API, reconstruct the Contact and Account references, and insert via the Dynamics Web API with WhoId (Contact) and Regarding (Account) resolved before each write. Email body, timestamp, and direction (sent/received) preserve. Note that email and calendar sync in Attio only covers People and Company records; custom object activity timelines must be reconstructed from notes or external integrations.

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.

Attio logo

Attio gotchas

High

CSV exports flatten relationship chains

Medium

Credit consumption burns budget faster than seat price suggests

Medium

Custom objects gated by plan tier during migration

Low

Email sync only for People and Company records

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

  • Attio CSV export flattens relationship chains

    Attio's workspace export produces flat CSV files per object with no join keys for relationships. A Deal CSV has no column showing which Company owns the Deal, and a Contact CSV has no column showing which Company the Contact belongs to. We handle this by querying relationship attributes via the Attio API to build the full parent-child chain before writing to Dynamics. Migrations relying on the CSV export alone arrive with Opportunities orphaned from Accounts and Contacts without Account lookups, which breaks pipeline reporting in Dynamics from day one.

  • Custom object count gated by Attio plan tier

    Attio plan tiers cap the number of custom objects: 3 on Free, 5 on Plus, 12 on Pro, unlimited on Enterprise. If the source workspace uses more custom objects than the destination Dynamics 365 plan supports (custom entities are available but the total object count per org has practical limits), migration fails on object creation. We audit the source object count and API name during scoping and either recommend an Attio Enterprise upgrade or consolidate source objects before migration begins.

  • Attio field types do not auto-match Dynamics field types

    Attio allows user-defined attribute types including multi-select, rating scales, currency, and free-text. Dynamics 365 enforces field types at the schema level, and Dynamics field types differ in precision, max length, and picklist constraints. Multi-select attributes may need to become text fields or option sets; currency fields require decimal precision alignment; date fields require format normalization. We validate field types against Dynamics constraints during the mapping phase and flag any type mismatches before production migration to avoid bulk insert rejections.

  • Attio Workflows do not migrate to Dynamics Flow

    Attio Workflows are credit-consuming automation objects that trigger on record changes or list events. Dynamics 365 uses Salesforce Flow with record-triggered, scheduled, and screen variants, and the underlying logic structures are incompatible. We do not migrate Workflows as code. We deliver a written inventory of every active Attio Workflow documenting its trigger, conditions, action blocks, and monthly credit consumption so the customer's admin or a Dynamics partner can rebuild equivalent logic in Flow. Credit consumption context helps the admin estimate Flow action count as a sizing reference.

Migration approach

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

  1. Discovery and scoping

    We audit the Attio workspace via API across all plan tiers, custom objects, relationship attributes, List memberships, and email/calendar sync volume. We validate the custom object count against plan tier to flag any Enterprise-gated objects and recommend consolidation if needed. We produce a written migration scope document listing every object, record count estimate, relationship chain count, and a Dynamics 365 Professional versus Premium edition recommendation based on object count, custom entity volume, and whether Copilot AI is in scope. This phase establishes the migration baseline and pricing fixed-fee quote.

  2. Schema design in Dynamics 365

    We create the destination schema in Microsoft Dynamics 365 Sales before any data moves. This includes custom entities for each Attio custom object, custom fields typed to match Attio attribute types (with picklist normalization), and lookup fields resolving the relationship chain to standard entities (Account, Contact, Opportunity). If the customer chooses a Lead-Contact split strategy, we add a custom field on Lead and Contact to carry the original Attio object type for audit. We also create custom fields on Contact and Account to receive denormalized List membership values. Schema deploys into a Dynamics Sandbox first for validation.

  3. Sandbox migration and reconciliation

    We run a full migration into the Dynamics Sandbox using production-equivalent data volumes. The customer's admin or RevOps lead reconciles record counts against the Attio source (Contacts in, Accounts in, Opportunities in, Notes in, Tasks in), spot-checks 20-30 records per object for attribute accuracy, and validates that relationship chains are intact (every Opportunity has an AccountId, every Contact has an AccountId where applicable). Sign-off on the sandbox run authorizes the production migration date.

  4. Relationship chain extraction and transform

    We query every relationship attribute via the Attio API to build the full parent-child chain map. This produces a lookup table of Deal-to-Company IDs and Contact-to-Company IDs that we apply as AccountId on each Opportunity and Contact insert in Dynamics. We validate all field types against Dynamics constraints, normalize date formats, and resolve Owner references by email match to the Dynamics User table. Owners without a matching User enter a queue for admin provisioning before record insertion resumes.

  5. Production migration in dependency order

    We run production migration in the correct dependency sequence: Accounts (from Companies) first, then Contacts (with AccountId resolved), then Opportunities (with AccountId resolved from the relationship chain map), then Notes and Tasks (with owner references resolved), then custom entities (with their lookup fields pointing to the parent standard records), and finally activity history from Attio's email and calendar sync API. Each phase emits a row-count reconciliation report before the next phase begins. We use the Dynamics Web API with batch operations, rate-limit handling, and exponential backoff.

  6. Cutover, validation, and workflow handoff

    We freeze writes in Attio during the cutover window, migrate any records modified since the last sync, then enable Microsoft Dynamics 365 Sales as the system of record. We validate record counts and relationship chains one final time against the Attio source. We deliver the Workflow inventory document to the customer's admin team for Dynamics Flow rebuild. We support a one-week hypercare window for reconciliation issues raised by the sales team. We do not rebuild Attio Workflows, Lists as active segmentation, or Sequences as Salesforce Sales Engagement cadences inside the migration scope.

Platform deep dives

Context on both ends of the pair

Attio logo

Attio

Source

Strengths

  • Flexible object schema allows modeling any business entity, not just contacts and deals.
  • Permanent free tier with 50k records and 3 users for evaluation without a countdown timer.
  • Automatic email and calendar sync builds interaction history without manual data entry.
  • Workspace export to CSV covers all objects for backup and migration scoping.
  • Clean API-first architecture with webhooks and OAuth 2.0 for developer integrations.

Weaknesses

  • Reporting and analytics lack depth compared to established CRM platforms.
  • Integration library is thin—native connections to common GTM tools are limited or missing.
  • Credit consumption model makes monthly costs unpredictable for automation-heavy teams.
  • Learning curve is steep for non-technical users who expect a pre-built CRM experience.
  • Feature gates push growing teams to Pro ($69/user/mo) sooner than expected.
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. 1 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 Attio and Microsoft Dynamics 365 Sales .

  • Object compatibility

    B

    1 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

    Attio: 100 requests/sec for reads, 25 requests/sec for writes; sliding window algorithm with 10-second window. 429 responses include a Retry-After header.

  • Data volume sensitivity

    A

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

Estimator

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

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

Can't find your answer?

Walk through your Attio to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Simple migrations with under 10,000 People records, no custom objects, and no complex relationship chains complete in three to five weeks. Migrations with multiple custom objects, Deals-to-Account relationship resolution, large email and calendar sync histories, or multi-entity workspaces extend to eight to twelve weeks. Very large or multi-org destinations receive individual scoping.

Adjacent paths

Related migrations to explore

Ready when you are

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