CRM migration
Field-level mapping, validation, and rollback between AddressTwo and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
AddressTwo
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
5 of 10
objects map 1:1 between AddressTwo and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from AddressTwo to Microsoft Microsoft Dynamics 365 Sales is a step up from a flat-rate small-business tool into an enterprise-grade CRM with the full Microsoft 365 ecosystem behind it. AddressTwo stores company data as fields on the Contact record; Dynamics 365 requires a separate Account record with Contact as a child lookup. We split AddressTwo contact records into Account and Contact pairs during migration, resolve owner assignments against the destination User table, and preserve activity timestamps against the correct parent records. AddressTwo's flat-rate $14.95/month model expands into Dynamics 365 per-user licensing ($65-$165/user/month depending on tier), which is the most significant cost delta to model before committing to migration. We do not migrate AddressTwo workflows, automations, or mass-email campaign logic as code; we deliver a written inventory of these for your 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
AddressTwo platform overview
Scorecard, SWOT, gotchas, and pricing for AddressTwo.
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 AddressTwo 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.
AddressTwo
Contact
Microsoft Dynamics 365 Sales
Account + Contact
1:manyAddressTwo stores company information as fields on the Contact record (company name, address, phone). We extract those fields to create a Dynamics 365 Account record first, then attach the Contact as a child record with AccountId pointing to the newly created Account. The original AddressTwo company name becomes Account.Name; the Contact's full name splits into Contact.FirstName and Contact.LastName. Any contact without a company value in AddressTwo creates a standalone Contact with AccountId left null for admin review.
AddressTwo
Deal
Microsoft Dynamics 365 Sales
Opportunity
1:1AddressTwo Deals map directly to Dynamics 365 Opportunities. The deal name becomes Opportunity.Name, deal value maps to Amount, close date maps to CloseDate, and pipeline stage maps to StageName. We create a Microsoft Dynamics 365 Sales Process per AddressTwo pipeline before migration so that the stage probability values align. Closed-Lost and Closed-Won states from AddressTwo carry forward as Opportunity.StateCode values.
AddressTwo
Activity (Call, Meeting, Task)
Microsoft Dynamics 365 Sales
Task + Event
1:1AddressTwo Activities are date-stamped events tied to a Contact. Calls and tasks migrate as Dynamics 365 Task records; meetings migrate as Event records. The original timestamp becomes ActivityDate on Task or StartDateTime on Event, preserving the chronological timeline. Owner assignment resolves via the AddressTwo owner-to-Dynamics User lookup by email.
AddressTwo
Note
Microsoft Dynamics 365 Sales
Annotation
1:1AddressTwo free-text notes attached to Contacts migrate to Dynamics 365 Annotations (Notes) linked via the Regarding field to the corresponding Contact or Opportunity. Notes are stored as plain text body in Annotation.Body with IsPrivate set to false. Rich-text formatting does not carry forward from AddressTwo's note storage format.
AddressTwo
Email History (BCC thread)
Microsoft Dynamics 365 Sales
Email (Activity)
1:1AddressTwo BCC-collected email threads stored per Contact migrate as Dynamics 365 Email activities linked to the Contact record via the Regarding lookup. Each email in the thread becomes a separate Email record with the sender, recipient, subject, and body preserved. We flatten the thread into a chronological sequence but note that Dynamics 365 does not display threaded conversation view natively; customers who rely on threaded email history may want to review the Microsoft Teams conversation integration post-migration.
AddressTwo
Tag
Microsoft Dynamics 365 Sales
Category
lossyAddressTwo Contact tags migrate to Dynamics 365 Categories. We create a Category record per unique tag value and link it to the Contact via the CategoryId lookup. Tags used for segmentation are preserved as Category assignments so that filtering and reporting in Dynamics 365 reflect the original AddressTwo segmentation logic.
AddressTwo
Mass Email Campaign
Microsoft Dynamics 365 Sales
Campaign + CampaignMember
lossyAddressTwo campaign membership (which contacts were sent a mass email) migrates to Dynamics 365 Campaign and CampaignMember records. We create a Campaign record per AddressTwo campaign, populate Campaign.Type and Campaign.Status, and add each Contact as a CampaignMember with MemberStatus reflecting sent status. Campaign-level analytics such as open rates and click rates are not available from AddressTwo's export and are not migrated.
AddressTwo
Custom Field (Contact)
Microsoft Dynamics 365 Sales
Custom Field (Contact)
lossyAddressTwo custom fields on Contacts migrate as custom fields on the Dynamics 365 Contact form. We create fields in the destination environment before migration using the Dataverse custom field API, matching field types (text, number, date, picklist) to their Dynamics 365 equivalents. Fields without a clear Dynamics 365 type are flagged for customer review during scoping.
AddressTwo
Custom Field (Deal)
Microsoft Dynamics 365 Sales
Custom Field (Opportunity)
lossyAddressTwo custom fields on Deals migrate as custom fields on the Dynamics 365 Opportunity form. Same approach as Contact custom fields: Dataverse field creation before import, type matching, and customer review for any fields without a clear destination equivalent.
AddressTwo
Owner
Microsoft Dynamics 365 Sales
User
1:1AddressTwo record owners are resolved by email match against the Dynamics 365 User table in the destination org. Any AddressTwo owner without a matching Dynamics 365 User is held in a reconciliation queue for the customer's admin to provision before record import proceeds. OwnerId is a required reference on Opportunity and strongly recommended on Contact for reporting.
| AddressTwo | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Account + Contact1:many | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Activity (Call, Meeting, Task) | Task + Event1:1 | Fully supported | |
| Note | Annotation1:1 | Fully supported | |
| Email History (BCC thread) | Email (Activity)1:1 | Fully supported | |
| Tag | Categorylossy | Fully supported | |
| Mass Email Campaign | Campaign + CampaignMemberlossy | Fully supported | |
| Custom Field (Contact) | Custom Field (Contact)lossy | Fully supported | |
| Custom Field (Deal) | Custom Field (Opportunity)lossy | Fully supported | |
| Owner | User1: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.
AddressTwo gotchas
API requires approved key obtained via email to support
No self-service data export or bulk download
Duplicate contact creation during email sync
QuickBooks integration does not exist
No formally documented API rate limits
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 data export request
We audit the AddressTwo account for record counts (Contacts, Companies, Deals, Activities, Notes), custom field definitions, pipeline stage names, owner assignments, and any active mass email campaigns. We file a data export request with AddressTwo support on the customer's behalf to obtain the most complete dataset available, and simultaneously attempt to secure an API key via email to [email protected]. The discovery output is a written scope document listing every object and custom field to migrate, the export method (API or CSV), and the owner reconciliation list.
Owner reconciliation and Dynamics 365 User provisioning
We extract every distinct owner email from the AddressTwo export and generate a reconciliation report against the destination Dynamics 365 org's User table. The customer's admin provisions any missing Users (must be active and licensed before OwnerId assignments can be saved on imported records). Migration cannot proceed past this step because Opportunity.OwnerId and Contact.OwnerId are required references in most Dynamics 365 configurations.
Schema setup in Dynamics 365
We create any custom fields on the Contact, Account, and Opportunity entities that correspond to AddressTwo custom fields identified during discovery. We configure a Sales Process in Dynamics 365 matching the AddressTwo pipeline stage names and probabilities. If the customer uses multiple AddressTwo pipelines, we create multiple Sales Processes or Record Types to preserve the pipeline separation. Custom fields are created via the Dataverse API or manually in the Dynamics 365 Solution before any data loads begin.
Two-phase record import: Accounts then Contacts
We import in strict dependency order. First: Account records created from AddressTwo company fields. Second: Contact records with AccountId lookup resolved to the corresponding Account. Any Contact without a company value in AddressTwo is imported as a standalone Contact and flagged for admin review. The de-duplication pass runs before Contact import to catch any duplicates generated by AddressTwo's BCC sync behavior.
Opportunity import with Sales Process stage mapping
We import Deals as Opportunities once all Account and Contact records are present. Each AddressTwo deal is mapped to a StageName value within the configured Sales Process, with deal value mapped to EstimatedValue and close date mapped to EstimatedCloseDate. OwnerId resolves via the owner reconciliation table. Closed-Lost and Closed-Won states map to the corresponding StateCode values in Dynamics 365.
Activity and email history import
We import Activity history (Tasks, Events) via the Dataverse API with conservative request staggering to avoid throttling. Email threads from AddressTwo's BCC collection migrate as individual Email activity records linked to the Contact. Notes migrate as Annotation records. We preserve original timestamps to maintain the chronological activity timeline. Each activity batch emits a row-count reconciliation report before the next batch begins.
Cutover, validation, and automation handoff
We freeze AddressTwo write access during cutover, run a final delta import of any records modified during the migration window, then hand the Dynamics 365 org to the customer as the system of record. We deliver a written automation inventory listing every AddressTwo workflow, task reminder, and automation rule that requires rebuild in Dynamics 365 Power Automate or the native workflow designer. Post-migration hypercare is available as a separate engagement.
Platform deep dives
AddressTwo
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 AddressTwo and Microsoft Dynamics 365 Sales .
Object compatibility
2 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
AddressTwo: Not publicly documented.
Data volume sensitivity
AddressTwo 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 AddressTwo to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your AddressTwo 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 AddressTwo
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.