CRM migration
Field-level mapping, validation, and rollback between SalesTown CRM and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
SalesTown CRM
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
5 of 9
objects map 1:1 between SalesTown CRM and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from SalesTown CRM to Microsoft Dynamics 365 Sales is a structural migration driven by API access and ecosystem scale. SalesTown CRM has no documented public API, forcing all data export through its in-product CSV/Excel batch mechanism with tier-based row caps. Microsoft Dynamics 365 Sales provides a full REST API with Bulk API support for high-volume activity ingestion. The primary migration complexity is reconstructing WhatsApp conversation threads from flat CSV rows using timestamp ordering and sender IDs. We sequence parent records (Users, Accounts) before child records (Contacts, Opportunities) to satisfy lookup dependencies, and we configure Dynamics 365 Sales Record Types and Sales Processes before loading pipeline data. Workflows, automation rules, and custom templates do not migrate as code; we deliver a written inventory of every SalesTown automation requiring rebuild in Dynamics 365 Sales Flow or Power Automate.
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
SalesTown CRM platform overview
Scorecard, SWOT, gotchas, and pricing for SalesTown CRM.
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 SalesTown CRM 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.
SalesTown CRM
Lead
Microsoft Dynamics 365 Sales
Lead
1:1SalesTown CRM Leads map directly to Dynamics 365 Sales Lead. The Lead Management System (LMS) association in SalesTown becomes a custom text field or lookup in Dynamics 365 if the destination org tracks LMS reference. We preserve lead score, status, source, and owner assignment during import. The lead record is loaded before Contact to maintain the Lead-to-Contact convert path in Dynamics 365 Sales.
SalesTown CRM
Contact
Microsoft Dynamics 365 Sales
Contact
1:1SalesTown CRM Contacts map to Dynamics 365 Sales Contact with full field-level preservation including name, phone, email, address, and any custom contact properties. We resolve the parent Account (from SalesTown Company) before Contact insert so that the AccountId lookup is satisfied. Owner assignment migrates by email match against the Dynamics 365 User table with a reconciliation queue for unresolved owners.
SalesTown CRM
Company
Microsoft Dynamics 365 Sales
Account
1:1SalesTown CRM Company records map to Dynamics 365 Sales Account. The Company's domain or website field becomes the Account Website field and serves as a dedupe key during import. Account is the first record type loaded in production migration to satisfy the AccountId lookup required on Contact. The Company field schema in SalesTown is not publicly documented; we inspect the export and map available fields, flagging any unmapped columns for the customer's admin to review.
SalesTown CRM
Deal
Microsoft Dynamics 365 Sales
Opportunity
1:1SalesTown CRM Deals map to Dynamics 365 Sales Opportunity. The deal amount, expected close date, owner, and stage migrate directly. We resolve the parent Account (via Company lookup), the Owner (via User email match), and the Record Type (via pipeline mapping) before Opportunity insert. Closed-Lost and Closed-Won statuses from SalesTown map to the equivalent Dynamics 365 stage values.
SalesTown CRM
Pipeline
Microsoft Dynamics 365 Sales
Record Type + Sales Process
lossySalesTown CRM Pipelines map to Dynamics 365 Sales Record Types on the Opportunity object. Each Pipeline gets its own Record Type with a corresponding Sales Process that whitelists the stage values from the source pipeline. If SalesTown has multiple pipelines with different stage counts, each becomes a separate Record Type in Dynamics 365 Sales so that stage values remain scoped per line of business.
SalesTown CRM
Pipeline Stage
Microsoft Dynamics 365 Sales
Opportunity Stage
lossySalesTown CRM Stages map to Dynamics 365 Sales Stage values within the Sales Process. We map stage-to-stage explicitly rather than by position to handle source and destination pipelines with different stage counts. Stage probability percentages migrate from SalesTown to Dynamics 365 Sales StageProbability, rounded to the nearest allowed integer. Stage ordering within the Sales Process is preserved.
SalesTown CRM
Activities (Calls, Emails, WhatsApp)
Microsoft Dynamics 365 Sales
Task and Event
1:manySalesTown CRM Activities (calls, emails, meetings) map to Dynamics 365 Sales Task and Event records. WhatsApp activities are the primary complexity: flat CSV exports split thread messages into individual rows, losing parent-child thread associations. We reconstruct thread relationships during the transform phase using timestamp ordering and sender IDs, rehydrating conversation continuity as grouped Task records with a custom WhatsApp thread reference field. Activity dates preserve the original SalesTown timestamps for timeline accuracy.
SalesTown CRM
User / Owner
Microsoft Dynamics 365 Sales
User
1:1SalesTown CRM Users and Owners map to Dynamics 365 Sales User records via email address match. The migration user must have an active Dynamics 365 User record before any record import begins because OwnerId is a required reference on most standard objects. We extract every distinct Owner referenced on Leads, Contacts, Deals, and Activities, run email matching against the destination User table, and hold unresolved owners in a reconciliation queue for the customer's admin to provision before record load resumes.
SalesTown CRM
Custom Templates
Microsoft Dynamics 365 Sales
Email Template
lossySalesTown CRM custom email and communication templates have no documented schema for export. We attempt to extract available template metadata and body content from the export and flag template mapping as a post-migration cleanup task. Dynamics 365 Sales email templates are rebuilt by the customer's admin in the native template editor or migrated separately with the template body preserved as a text asset.
| SalesTown CRM | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline | Record Type + Sales Processlossy | Fully supported | |
| Pipeline Stage | Opportunity Stagelossy | Fully supported | |
| Activities (Calls, Emails, WhatsApp) | Task and Event1:many | Mapping required | |
| User / Owner | User1:1 | Fully supported | |
| Custom Templates | Email Templatelossy | Mapping required |
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.
SalesTown CRM gotchas
iPhone-only app excludes iPad and small-screen devices
No documented public API for programmatic export
WhatsApp activity thread integrity across migration
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 export scoping
We audit the SalesTown CRM account to identify available objects, field counts per object, pipeline and stage definitions, user and owner rosters, and activity volume estimates. Because SalesTown has no public API, we work with the in-product CSV/Excel export to determine batch sizes, export cycle counts, and any tier-based row caps. We identify WhatsApp activity thread volume specifically because thread reconstruction is the primary transform complexity. We pair this with a Dynamics 365 Sales edition check (Sales Professional, Enterprise, or Premium) to confirm the feature scope available at the destination.
Schema inspection and pipeline mapping
We export samples of each object from SalesTown CRM to inspect field names, data types, and completeness. For Company records we work from the actual export rather than documentation since the schema is undocumented. We design the Dynamics 365 Sales destination schema including Account, Contact, Lead, and Opportunity field mappings, Record Types per SalesTown pipeline, and Sales Processes per Record Type. We confirm the Lead-versus-Contact treatment for records that exist in both forms in the source. The schema design is documented and reviewed before any data moves.
CSV export sequencing and thread reconstruction transform
We run the CSV export cycles in dependency order: Users and Owners first (for User email collection), then Companies (to populate AccountId before Contact insert), then Leads, then Contacts, then Deals, then Activities. For WhatsApp activities, we run a dedicated export cycle and apply the thread reconstruction transform using timestamp ordering and sender IDs to rehydrate conversation groups. We run multiple export cycles for large datasets to stay within any SalesTown tier-based batch caps. Each export cycle produces a row count that we reconcile against the destination load count.
Sandbox migration and reconciliation
We run a full migration into a Dynamics 365 Sales Sandbox (Full Copy or Developer if the customer prefers) using production-like data volumes. The customer's RevOps or admin lead reconciles record counts across each object type, spot-checks 20-30 records against the SalesTown source, and validates that pipeline-to-Record Type mapping produces the expected stage values in Dynamics 365 Sales. Any field mapping corrections, missing Owner provisioning, or Record Type configuration changes happen here before production migration begins.
Owner provisioning and User reconciliation
We extract every distinct SalesTown Owner referenced on Leads, Contacts, Deals, and Activities and match by email against the Dynamics 365 Sales destination User table. Any Owner without a matching User goes to a reconciliation queue for the customer's admin to provision before record import resumes. This step is blocking because OwnerId is a required lookup on most standard objects in Dynamics 365 Sales. We confirm all required Users exist (active or inactive per the customer's decision on former employee records) before proceeding to production migration.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from SalesTown Companies), Users (manual provisioning confirmed), Leads, Contacts (with AccountId resolved), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Activity history (Tasks and Events with WhatsApp thread groups reconstructed). Each phase emits a row-count reconciliation report before the next phase begins. We freeze SalesTown CRM writes during the cutover window, run a final delta export of any records modified during migration, then enable Dynamics 365 Sales as the system of record.
Platform deep dives
SalesTown CRM
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between SalesTown CRM and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across SalesTown CRM and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between SalesTown CRM and Microsoft Dynamics 365 Sales .
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
SalesTown CRM: Not publicly documented.
Data volume sensitivity
SalesTown CRM 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 SalesTown CRM to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your SalesTown CRM 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 SalesTown CRM
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.