CRM migration
Field-level mapping, validation, and rollback between SalesTown CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
SalesTown CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
8 of 12
objects map 1:1 between SalesTown CRM and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from SalesTown CRM to Salesforce Sales Cloud is a migration from a mobile-first, WhatsApp-native platform with no public API to the world's largest CRM with a fully documented REST and Bulk API ecosystem. The structural shift is significant: SalesTown organizes Leads through its Lead Management System with Deals flowing through customizable Pipelines and Stages, while Salesforce separates Leads from Contacts attached to Accounts and maps Pipelines to Record Types and Sales Processes. The most consequential constraint is extraction: SalesTown CRM has no documented public API, so all data leaves the source via the platform's in-product CSV/Excel export, which is subject to the platform's own per-tier row and field limits. We design a multi-cycle export strategy to paginate through large datasets, treat each export batch as a scheduled extract, and reconstruct WhatsApp thread relationships during the transform phase using timestamp ordering and sender IDs. Salesforce Pipelines and Stages must be configured in the destination before any Deal records load, so we complete the pipeline setup phase before the first production migration run. Workflows, Sequences, Custom Templates, and Reports do not migrate; we deliver a written inventory of these for the customer's Salesforce admin to rebuild in Lightning Flow or the appropriate Salesforce tool.
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 SalesTown CRM 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.
SalesTown CRM
Lead
Salesforce Sales Cloud
Lead
1:1SalesTown CRM Leads are the primary acquisition object, collected via auto-capture and distributed through smart rules in the Lead Management System. We map them directly to Salesforce Lead, preserving lead source, owner assignment, lead status, and any scoring properties. The Lead object is created in Salesforce before Contact migration begins so that any Leads-to-Contacts conversions can proceed post-migration. Custom lead properties from SalesTown CRM export inspect the available fields and map them to typed Salesforce custom fields on the Lead object.
SalesTown CRM
Contact
Salesforce Sales Cloud
Contact
1:1SalesTown CRM Contacts carry name, phone, email, and custom properties linked to the Lead Management System. We map them to Salesforce Contact, preserving owner assignment (resolved by email match), phone numbers, and any custom contact-level fields available in the export. Contacts are inserted after Account creation so that the AccountId lookup is satisfied at insert time. If the source export contains Contacts without an associated Company/Account, we create a placeholder Account named after the Contact's company field or personal name for solo contacts.
SalesTown CRM
Company
Salesforce Sales Cloud
Account
1:1SalesTown CRM Company records exist but their field schema is not publicly documented. We inspect the CSV export during the discovery phase to enumerate available company fields, map each to the corresponding Salesforce Account field, and flag any unmapped fields for a post-migration cleanup. Company domain or website becomes the Account Website field and serves as the dedupe key. Account is inserted before Contact to establish the parent lookup relationship.
SalesTown CRM
Deal
Salesforce Sales Cloud
Opportunity
1:1SalesTown CRM Deals carry amount, stage, owner, expected close date, and associated pipeline reference. We map them to Salesforce Opportunity, preserving Amount, CloseDate, Description, and OwnerId (resolved by email). The dealstage property maps to the Salesforce StageName value that corresponds to the destination pipeline's configured stage. Deals are inserted only after the destination Salesforce Pipeline, Record Type, and Sales Process are fully configured, so that RecordTypeId and StageName are valid at insert time.
SalesTown CRM
Pipeline
Salesforce Sales Cloud
Record Type + Sales Process
lossySalesTown CRM Pipelines are customizable with configurable Stages per pipeline. We export pipeline names, stage order, and stage-specific win/loss flags from SalesTown CRM during discovery. In Salesforce, each SalesTown Pipeline becomes a Record Type on Opportunity with a corresponding Sales Process that whitelists the stage values. We configure this in Salesforce Setup or via metadata API before any Deal records are migrated, ensuring that every incoming Deal has a valid StageName and RecordTypeId.
SalesTown CRM
Pipeline Stage
Salesforce Sales Cloud
Opportunity Stage
lossySalesTown CRM Stages are pipeline-specific with names, probabilities, and ordering. We map stage-to-stage explicitly rather than by position, because source and destination pipelines may have different stage counts. The SalesTown stage probability maps to Salesforce StageProbability (rounded to the nearest integer). Closed-Lost and Closed-Won stages from SalesTown CRM are mapped to the corresponding Salesforce standard stage values.
SalesTown CRM
Activities (Calls, Emails, WhatsApp)
Salesforce Sales Cloud
Task, Event, EmailMessage
1:1SalesTown CRM Activities log individual touchpoints (calls, emails, WhatsApp) linked to Contacts or Leads. We split the activity type at migration time: call activities map to Task with TaskSubtype=Call and CallDurationInSeconds; email activities map to Salesforce EmailMessage records linked to an Activity Task; WhatsApp activities map to Task with a custom TaskSubtype and a custom WhatsApp body field, since Salesforce does not have a native WhatsApp object. The WhoId on each activity resolves to the migrated Salesforce Lead or Contact ID. WhatsApp message status flags map to custom picklist fields.
SalesTown CRM
WhatsApp Thread
Salesforce Sales Cloud
Task (reconstructed)
1:1SalesTown CRM WhatsApp activities carry thread-level metadata including message status flags and timestamp sequences that flat CSV exports split into individual rows, losing parent-child thread associations. We reconstruct thread relationships during the transform phase by grouping rows on ConversationID (or a composite of ContactID + date range when no explicit thread ID is available), ordering by timestamp, and setting a custom thread_reference__c field on all rows belonging to the same WhatsApp conversation. The thread ordering is preserved via the ActivityDate sequence, rehydrating conversation continuity in the Salesforce Activity Timeline.
SalesTown CRM
User / Owner
Salesforce Sales Cloud
User
1:1SalesTown CRM Users carry name, email, and team assignment. We map SalesTown Users to Salesforce Users by email match. Any SalesTown Owner whose email does not correspond to a Salesforce User record is held in a reconciliation queue for the customer's admin to provision before record import resumes, because OwnerId is a required reference on most Salesforce standard objects. We flag any duplicate email addresses in the destination org before migration begins.
SalesTown CRM
Custom Templates
Salesforce Sales Cloud
Email Template (documentation only)
lossySalesTown CRM customizable email and communication templates exist but have no documented export schema. We export available template metadata (name, subject, associated pipeline, and any visible body text) and flag the template body mapping as a post-migration task. The customer's admin rebuilds the template content in Salesforce Email Templates or Lightning Email Templates using the exported metadata as a reference. We do not attempt to reconstruct template body HTML from the export without schema documentation.
SalesTown CRM
Reports / Dashboards
Salesforce Sales Cloud
Reports (not migrated)
1:1SalesTown CRM Reports and Dashboard definitions are stored server-side with no documented export mechanism. We do not migrate report or dashboard configurations. We migrate the underlying data (Leads, Contacts, Accounts, Deals, Activities) so that the customer's Salesforce admin can rebuild equivalent reports in Salesforce Reports & Dashboards using the migrated dataset. We provide a written mapping of SalesTown report names to the corresponding Salesforce report types and objects for the admin's reference rebuild.
SalesTown CRM
Lead Distribution Rules
Salesforce Sales Cloud
Assignment Rules (documentation only)
lossySalesTown CRM's smart lead distribution rules assign Leads to Users based on geography, team, or round-robin logic. These rules do not have a documented export mechanism and cannot be migrated as code. We document the rule logic identified during discovery interviews and deliver an Assignment Rules design document for the customer's Salesforce admin to configure in Salesforce Lead Assignment Rules or Omni-Channel. The admin implements the equivalent routing logic post-migration.
| SalesTown CRM | Salesforce Sales Cloud | 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, Event, EmailMessage1:1 | Mapping required | |
| WhatsApp Thread | Task (reconstructed)1:1 | Fully supported | |
| User / Owner | User1:1 | Fully supported | |
| Custom Templates | Email Template (documentation only)lossy | Mapping required | |
| Reports / Dashboards | Reports (not migrated)1:1 | Not supported | |
| Lead Distribution Rules | Assignment Rules (documentation only)lossy | 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.
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
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
Discovery export and tier audit
We request a full CSV export from SalesTown CRM covering Leads, Contacts, Companies, Deals, Pipelines, Stages, Activities (calls, emails, WhatsApp), Users, and any available custom fields. We simultaneously audit the subscription tier to determine the per-cycle export row cap, which determines how many export batches are required for each object. We inspect the Company export to enumerate the actual company field schema and identify any custom company fields used in the specific account. We document the pipeline names, stage order, and stage probabilities from the Pipelines export. The discovery phase output is a written data inventory with estimated record counts per object, an export batch plan, and a preliminary field mapping spreadsheet.
Salesforce pipeline and schema configuration
Before any data loads into Salesforce, we configure the destination schema including Record Types (one per SalesTown Pipeline), Sales Processes (stage whitelist per Record Type), Stage values with probabilities mapped from SalesTown, custom fields on Lead, Contact, Account, and Opportunity (typed per Salesforce field type), and AccountId lookups on Contact. This configuration is deployed into a Salesforce Sandbox first for validation, then migrated to Production. Salesforce Pipelines and Stages must be fully configured before the first Deal record loads, because Opportunity.StageName and Opportunity.RecordTypeId are validated against the active Sales Process at insert time.
User and Owner reconciliation
We extract every distinct SalesTown User referenced on Lead, Contact, Deal, and Activity records and match by email against the Salesforce destination org's User table. Users without a matching Salesforce User record are held in a reconciliation queue for the customer's admin to provision before record import resumes. OwnerId references must be resolvable at insert time on Lead, Contact, Opportunity, and Task, so this step gates the production migration. We flag any duplicate email addresses in the destination org before migration begins.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox using production-equivalent data volume to validate the pipeline configuration, field mapping, Owner resolution, and thread reconstruction logic. The customer's Salesforce admin and RevOps lead reconcile record counts (Leads in, Contacts in, Accounts in, Opportunities in, Activities in), spot-check 25-50 random records against the SalesTown CSV export, and validate that Deal stage values match the source pipeline stages. Any mapping corrections, missing field additions, or pipeline stage adjustments happen in Sandbox before the production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Users (validated against Salesforce User table), Accounts (from SalesTown Company export), Contacts (with AccountId resolved from Account mapping), Leads (with owner resolved from User mapping), Opportunities (with RecordTypeId, Sales Process, StageName, AccountId, and OwnerId resolved), Activity history (Tasks, Events, EmailMessages via Salesforce Bulk API 2.0 with chunking and WhoId/WhatId lookup resolution). WhatsApp activities include thread reconstruction using the timestamp-ordered grouping logic. Each phase emits a row-count reconciliation report before the next phase begins. We freeze SalesTown CRM write access during the final cutover window to prevent sync drift between export and load.
Cutover, validation, and rebuild handoff
After the final delta migration of records modified during the cutover window, we enable Salesforce as the system of record. We deliver the Custom Template metadata inventory, the Lead Distribution Rules design document, and the Report rebuild reference mapping to the customer's Salesforce admin. We provide a one-week hypercare window to resolve any reconciliation issues raised by the sales team. We do not rebuild SalesTown CRM workflows or sequences as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task documented in the handoff package.
Platform deep dives
SalesTown CRM
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 SalesTown CRM and Salesforce Sales Cloud.
Object compatibility
1 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
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your SalesTown CRM 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 SalesTown CRM
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.