CRM migration
Field-level mapping, validation, and rollback between AddressTwo and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
AddressTwo
Source
Salesforce Sales Cloud
Destination
Compatibility
7 of 12
objects map 1:1 between AddressTwo and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from AddressTwo to Salesforce is a structural migration. AddressTwo stores company data as a field on the Contact record rather than as a separate object, so we reconstruct Salesforce Accounts from the company name field during extraction and reference them as parent lookups on every Contact import. Deals map to Salesforce Opportunities with stage values matched to the customer's configured Sales Process. Activity history (calls, meetings, tasks, notes) migrates as Salesforce Task and Event records through the Bulk API 2.0 to handle volume without timeout. AddressTwo has no self-service developer portal and no published bulk export, so we request data from their support team during scoping and use a CSV export fallback if the API key is delayed. We do not migrate AddressTwo automation rules or reminder sequences; these require rebuilding in Salesforce Flow and we deliver a written inventory for the customer to action post-migration.
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 AddressTwo object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
AddressTwo
Contact
Salesforce Sales Cloud
Account + Contact
1:manyAddressTwo stores company as a free-text field on the Contact record, not as a separate object. We extract the distinct company values during data extraction, create Salesforce Account records for each unique company name, then map the Contact to its parent Account via AccountId during Contact import. The Account.Name derives from the AddressTwo company field; the Account.Website attempts to resolve from the Contact email domain as a best-effort lookup.
AddressTwo
Contact
Salesforce Sales Cloud
Contact
1:1AddressTwo Contact records map directly to Salesforce Contact. Every standard Contact field (name, email, phone, title, address) maps to the Salesforce Contact equivalent. The Contact.OwnerId resolves via owner email match to the Salesforce User table. Custom fields on AddressTwo Contacts map to Salesforce custom fields on Contact.
AddressTwo
Deal
Salesforce Sales Cloud
Opportunity
1:1AddressTwo Deals map to Salesforce Opportunity. The deal name maps to Opportunity.Name, amount to Amount, close date to CloseDate, and owner to OwnerId via email lookup. The pipeline assignment maps to an Opportunity Record Type that we configure in Salesforce before migration. Closed-Lost reason from any custom field on the Deal becomes a Salesforce Loss Reason custom field.
AddressTwo
Deal Stage
Salesforce Sales Cloud
Opportunity Stage
lossyAddressTwo stage values map to Salesforce StageName via a customer-approved stage matrix. Each stage receives a probability percentage from the AddressTwo stage configuration, which we set on the Salesforce Sales Process before migration so historical Deals preserve their forecast value.
AddressTwo
Activity (Call, Meeting, Task)
Salesforce Sales Cloud
Task + Event
1:1AddressTwo Activities are date-stamped events tied to a Contact: calls become Task with TaskSubtype=Call, meetings become Event, and tasks become Task. The WhoId on each Salesforce record points to the converted Contact; ActivityDate and timestamps preserve the original sequence. We use Bulk API 2.0 for large activity volumes to avoid CSV loader timeout.
AddressTwo
Note
Salesforce Sales Cloud
Note
1:1Free-text Notes attached to an AddressTwo Contact migrate as Salesforce Note records linked via ContentDocumentLink to the parent Contact. Note body carries over verbatim; creation date preserves as Note.CreatedDate via the audit field permission.
AddressTwo
Email History (BCC thread)
Salesforce Sales Cloud
EmailMessage + Task
1:1AddressTwo BCC email threads stored per Contact migrate as Salesforce EmailMessage records linked to a companion Task on the Contact timeline. The thread is stored as a flattened conversation log in AddressTwo, which maps to EmailMessage.TextBody. Note that thread ordering across mixed activity types is not preserved in Salesforce's activity timeline; within-type ordering (email-only) is maintained via ActivityDate.
AddressTwo
Tag/Label
Salesforce Sales Cloud
Contact.MultiSelectCustomField__c
lossyAddressTwo contact tags migrate as a Salesforce multi-select picklist field on Contact. The customer approves the field name during scoping. Tags stored as a flat array on each Contact record are joined into the multi-select picklist value with semicolons as the Salesforce standard separator.
AddressTwo
Mass Email Campaign
Salesforce Sales Cloud
Campaign + CampaignMember
1:1AddressTwo campaign membership (which contacts were sent a mass email) migrates to Salesforce Campaign with CampaignMember records for each recipient. Campaign open rates, click rates, and delivery analytics are not exportable from AddressTwo and do not migrate; these metrics require a fresh start in Salesforce Campaigns or Marketing Cloud Account Engagement.
AddressTwo
Custom Field (Contact)
Salesforce Sales Cloud
Contact.CustomField__c
lossyAddressTwo custom fields on Contact map to Salesforce custom fields on Contact. We create the custom field in Salesforce before migration using the same label and a __c API name. Field type is mapped from AddressTwo type (text to text, number to number, date to date) and validated against Salesforce's available field types.
AddressTwo
Custom Field (Deal)
Salesforce Sales Cloud
Opportunity.CustomField__c
lossyAddressTwo custom fields on Deal map to Salesforce custom fields on Opportunity. Same creation-before-import approach as Contact custom fields. We flag any custom field that lacks a Salesforce type equivalent for the customer to approve before migration.
AddressTwo
Owner
Salesforce Sales Cloud
User
1:1AddressTwo record owners map to Salesforce User by email address. Owners without a matching Salesforce User are placed in a reconciliation queue; the customer's Salesforce admin provisions the missing Users before record import begins. Unowned records are assigned to a default active User at the customer's direction.
| AddressTwo | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Account + Contact1:many | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Deal Stage | Opportunity Stagelossy | Fully supported | |
| Activity (Call, Meeting, Task) | Task + Event1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Email History (BCC thread) | EmailMessage + Task1:1 | Fully supported | |
| Tag/Label | Contact.MultiSelectCustomField__clossy | Fully supported | |
| Mass Email Campaign | Campaign + CampaignMember1:1 | Fully supported | |
| Custom Field (Contact) | Contact.CustomField__clossy | Fully supported | |
| Custom Field (Deal) | Opportunity.CustomField__clossy | 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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Scoping and AddressTwo data request
We audit the AddressTwo account for record counts across Contacts, Deals, Activities, Notes, and campaign membership, and we identify custom field definitions by asking the customer to share their field setup. We submit a formal data export request to AddressTwo support on the customer's behalf, requesting the full account export including all available objects and fields. In parallel, we begin Salesforce destination configuration: defining the Account-Contact relationship model, identifying Deal pipeline stages, and identifying any custom fields required. If the AddressTwo API key is available, we begin API exploration to validate export scope. If the API key is delayed, we coordinate the CSV export path with AddressTwo support and continue Salesforce configuration on the extracted data.
Data extraction and deduplication
We extract the data from AddressTwo via API (if key granted) or via the support-provided CSV export. The exported Contact records are run through a de-duplication pass that identifies records sharing the same email address and merges them into a single entry with combined activity history before loading into Salesforce. The distinct company names from the Contact company field are extracted and prepared as Account insert records. Deal records, Activity records, and Notes are validated for required field completeness and flagged for manual review if the export is incomplete.
Mapping design and Salesforce schema deployment
We design the field mapping document covering every AddressTwo object to its Salesforce equivalent, including custom field creation specifications, Record Type assignments per Deal pipeline, and the Deal stage-to-Opportunity stage matrix approved by the customer. We deploy the Salesforce schema (custom fields, Record Types, Sales Processes, Page Layouts) into a Sandbox via metadata API or change set before any data moves. The mapping document is reviewed and signed off by the customer's Salesforce admin before production migration begins.
Sandbox migration and reconciliation
We run a full migration into the customer's Salesforce Sandbox using the extracted production-equivalent data volume. The customer reconciles record counts: Accounts in, Contacts in, Opportunities in, Tasks and Events in, Notes in. We spot-check 25-50 random Contact and Deal records against the AddressTwo source to verify field accuracy. The customer signs off on the Sandbox results before we proceed to production. Any mapping corrections are made in the mapping document and validated in Sandbox before touching production data.
Owner reconciliation and User provisioning
We extract every distinct AddressTwo owner referenced on Contacts, Deals, and Activities and match by email against the Salesforce destination org's User table. Any owner without a matching Salesforce User is placed in a reconciliation queue. The customer's Salesforce admin provisions the missing Users (active or inactive depending on whether the original AddressTwo user is still active) before production migration begins. OwnerId references are required on standard objects so this step gates the production import.
Production migration in dependency order
We run production migration in record-dependency order: Account creation first (from extracted company names), then Contacts with AccountId resolved, then Opportunities with AccountId, OwnerId, and RecordTypeId resolved, then Activity history via Bulk API 2.0 for large volumes. Each phase emits a row-count reconciliation report before the next phase begins. We pause migration and notify the customer if any phase's reconciliation falls below 95 percent of expected records.
Cutover, validation, and automation handoff
We coordinate a write-freeze window on AddressTwo during final cutover, run a delta migration of any records created or modified since the initial export, then hand off to the customer to set Salesforce as the system of record. We deliver a written inventory of any AddressTwo reminder sequences or follow-up automation rules that require rebuilding in Salesforce Flow, with a recommended Flow equivalent for each. We support a one-week hypercare window to resolve any data quality issues raised by the customer's team during initial Salesforce use.
Platform deep dives
AddressTwo
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 AddressTwo and Salesforce Sales Cloud.
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
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your AddressTwo to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.