CRM migration
Field-level mapping, validation, and rollback between Onsite CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Onsite CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
9 of 12
objects map 1:1 between Onsite CRM and Salesforce Sales Cloud.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from Onsite CRM to Salesforce is a manual-heavy migration because Onsite CRM has no publicly documented REST API, SDK, or webhook infrastructure according to apitracker.io. We cannot build an automated API-based extraction pipeline. Instead, we coordinate with your team on in-app CSV exports from the Weebly-hosted Onsite CRM interface, cross-reference the exported field headers against the platform's documented feature set, and request customer-supplied screenshots of the data structure during scoping to confirm what objects and fields the UI actually exposes before designing the migration sequence. We migrate Contacts, Companies/Accounts, Deals/Opportunities, Pipeline Stages, Activities, Tasks, Custom Fields, and Tags into Salesforce using the Bulk API for large record sets. Workflows, automations, and outbound sequences do not migrate; we deliver a written inventory of these for your admin to rebuild in Salesforce Flow or a Sales Engagement tool. Activity history export is a known limitation—Onsite CRM's in-app export options may not include rich historical call logs and email threads in a single downloadable file, and we advise requesting a pre-migration export of activity records separately.
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 Onsite 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.
Onsite CRM
Contact
Salesforce Sales Cloud
Lead or Contact (split required)
1:manyOnsite CRM Contacts map to either Salesforce Lead or Contact depending on qualification status. If the Contact has an associated deal or advanced lifecycle state in Onsite CRM, it maps to Salesforce Contact tied to an Account. If it is an unqualified prospect with no deal association, it maps to Salesforce Lead. We preserve the original Onsite CRM contact ID in a custom field onsite_crm_id__c on both Lead and Contact for audit. If Onsite CRM exposes a contact status or lifecycle property, we use it to determine the split rule during scoping.
Onsite CRM
Company
Salesforce Sales Cloud
Account
1:1Onsite CRM Company records map directly to Salesforce Account. Company name becomes Account Name, website maps to Website, and address fields map to the standard BillingAddress compound field. Account is created before any Contact import so that the AccountId Lookup is satisfied at Contact insert. The company-contact association from Onsite CRM is preserved by setting the AccountId reference on each Contact record during migration.
Onsite CRM
Deal
Salesforce Sales Cloud
Opportunity
1:1Onsite CRM Deal records map to Salesforce Opportunity. Deal name becomes Opportunity Name, deal value maps to Amount, expected close date maps to CloseDate, and the Onsite CRM pipeline stage maps to the Salesforce StageName. We resolve the AccountId (from the associated Company record) and OwnerId (from the associated User record) before Opportunity insert. Any Onsite CRM custom fields on Deal migrate as custom Opportunity fields after the destination schema is confirmed during scoping.
Onsite CRM
Pipeline Stage
Salesforce Sales Cloud
Opportunity Stage (Sales Process)
lossyEach custom pipeline stage defined in Onsite CRM becomes a Salesforce StageName value within a Sales Process that we configure in the destination org. Stage order and probability percentages migrate from Onsite CRM to the Salesforce stage setup. If Onsite CRM exposes multiple pipelines, we create a Salesforce Record Type per pipeline so that stage values stay scoped per line of business. All stage configuration happens in a Sandbox org before production migration.
Onsite CRM
Activity (calls, SMS, email logs)
Salesforce Sales Cloud
Task (TaskSubtype = Call) and Event
1:1Onsite CRM built-in calling, SMS, and email marketing logs are tracked as activities. We map call activity records to Salesforce Task with TaskSubtype = Call and call duration preserved. SMS logs map to Task with a custom subtype field for SMS. Email logs map to Task records with a custom email flag field. Meeting-type activities map to Salesforce Event with StartDateTime and EndDateTime preserved. The parent record (WhoId and WhatId) is resolved using the Contact or Deal lookup created during earlier migration phases. Note: if Onsite CRM's in-app export does not include rich activity history, we flag this during scoping and advise requesting a separate pre-migration export.
Onsite CRM
Task
Salesforce Sales Cloud
Task
1:1Onsite CRM Task records for follow-ups and reminders migrate as Salesforce Task records with Status, Priority, ActivityDate, and Subject preserved. Task assignment migrates by resolving the Onsite CRM user reference to the Salesforce User via the Owner reconciliation step. Completed status and completion timestamps migrate as Salesforce Task Status = Completed and ActivityDate set to the original completion date.
Onsite CRM
Custom Field (on any object)
Salesforce Sales Cloud
Custom Field (__c)
1:1Any custom fields on Contacts, Companies, Deals, or Activities in Onsite CRM require manual mapping during scoping. We extract the full field list from the CSV export headers, request customer-supplied screenshots of the data structure to confirm what fields the UI exposes, and map each to a typed Salesforce custom field. Custom field type mapping depends on Onsite CRM's data format in the export (text fields become Text, dates become Date, numbers become Number, picklist values become Picklist). We flag any fields that cannot be typed cleanly and resolve the mapping with the customer before migration.
Onsite CRM
User (owner)
Salesforce Sales Cloud
User
1:1Onsite CRM User records referenced as Deal owners, Task assignees, or Activity owners map to Salesforce User records. We resolve by email match against the destination org's User table during the Owner reconciliation step. Any Onsite CRM User without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision before record import resumes. User role metadata migrates to Salesforce UserRole if the role hierarchy is defined in Onsite CRM.
Onsite CRM
Tag
Salesforce Sales Cloud
Multi-Select Picklist or Topic
lossyTags applied to Contacts or Deals in Onsite CRM migrate to Salesforce as either multi-select picklist custom fields (if the tag set is closed and small) or as Salesforce Topics with TopicAssignment records (if the tag set is open and content-oriented). The customer chooses the tag strategy during scoping. We normalize tag values during transform to remove special characters that conflict with Salesforce field validation.
Onsite CRM
Documents and Attachments
Salesforce Sales Cloud
ContentDocument (flagged as manual)
1:1Onsite CRM does not appear to have a structured document management or file attachment object in its data model. Any attachments referenced in activity records or deal notes may not be exportable via CSV. We flag document extraction as a manual step during scoping and advise requesting any relevant files directly from the Onsite CRM UI before decommissioning. Salesforce ContentDocument records require separate file upload or a ContentWorkspace setup if the customer has a large document library.
Onsite CRM
Lead (if exposed in Onsite CRM)
Salesforce Sales Cloud
Lead
1:1If Onsite CRM exposes a separate Lead object distinct from Contact in its data model or UI, we map it directly to Salesforce Lead. Lead status, source, and scoring properties from Onsite CRM migrate as Salesforce Lead standard and custom fields. If Onsite CRM does not expose a separate Lead object, all unqualified prospects are handled via the Contact-to-Lead split defined in object mapping row 1.
Onsite CRM
Note (free-text notes on records)
Salesforce Sales Cloud
Note
1:1Free-text notes attached to Contacts, Companies, or Deals in Onsite CRM migrate as Salesforce Note records. We preserve the note body, creation date, and last-modified date. If the note author is resolvable via User mapping, we set the CreatedById on the Salesforce Note. Notes are imported after the parent record (Contact, Account, or Opportunity) has been created and validated in Salesforce to avoid orphaned records.
| Onsite CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Lead or Contact (split required)1:many | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stage (Sales Process)lossy | Fully supported | |
| Activity (calls, SMS, email logs) | Task (TaskSubtype = Call) and Event1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Custom Field (on any object) | Custom Field (__c)1:1 | Fully supported | |
| User (owner) | User1:1 | Fully supported | |
| Tag | Multi-Select Picklist or Topiclossy | Fully supported | |
| Documents and Attachments | ContentDocument (flagged as manual)1:1 | Fully supported | |
| Lead (if exposed in Onsite CRM) | Lead1:1 | Fully supported | |
| Note (free-text notes on records) | Note1: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.
Onsite CRM gotchas
No public API documentation found
Weebly-hosted infrastructure limits data access
Limited historical activity export
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 export coordination
We audit the Onsite CRM tenant by reviewing the CSV export structure your team provides, requesting screenshots of every object view (Contacts, Companies, Deals, Pipeline, Activities, Tasks), and confirming which custom fields appear in the UI versus the export. We identify any data that exists in the UI but not in the CSV and flag it as requiring a separate extraction step or manual re-entry. The scoping output is a written migration scope document listing every object, field, and estimated row count, plus a recommended Salesforce edition (Professional at $80/user or Enterprise at $165/user) based on the migration complexity.
CSV extraction and data validation
We coordinate with your team to run in-app CSV exports from Onsite CRM in a specific order: Users first (for owner mapping), then Companies, then Contacts (with the company association preserved), then Deals (with stage definitions), then Activities and Tasks last. We validate each CSV for row count, required field presence, and date format consistency before transformation begins. Any malformed rows are flagged and returned to your team for correction before we proceed. We run exports in batches if record counts exceed UI export limits.
Salesforce sandbox schema deployment
We deploy the destination schema into a Salesforce Sandbox (Full Copy or Developer Pro depending on data volume) before any production migration. This includes creating all custom fields (__c) on Contact, Account, Opportunity, Task, and Event objects; configuring Record Types and Sales Processes per pipeline; creating picklist values for stage names; and setting up the User role hierarchy. We validate that the schema matches the Onsite CRM export field list and resolve any unmapped fields with your team before proceeding.
Owner and user reconciliation
We extract every distinct user reference from Onsite CRM export files (Deal owner, Task assignee, Activity owner) and match by email against the Salesforce destination org's User table. Any Onsite CRM user without a matching Salesforce User goes to a reconciliation queue. Your Salesforce admin provisions the missing users and confirms their Salesforce profile and role. Migration cannot proceed past the Opportunity and Activity phases because OwnerId references must be valid Salesforce User IDs.
Production migration in dependency order
We run production migration in record-dependency order: Users (manually provisioned and validated), Accounts (from Companies), Contacts (with AccountId resolved), Leads (if split from Contacts), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Activities (Tasks, Events via Bulk API 2.0 with parent-record resolution), and Notes. Each phase emits a row-count reconciliation report showing records attempted, records succeeded, and records rejected. Validation rules and field-level security are temporarily adjusted by your Salesforce admin during the load to prevent record rejection.
Cutover, validation, and automation handoff
We freeze writes in Onsite CRM during cutover, run a final delta migration of any records modified during the migration window, and enable Salesforce as the system of record. We deliver a written inventory of every Onsite CRM workflow, automation, or outbound sequence we observed during scoping, with a recommended Salesforce Flow equivalent or Sales Engagement tool replacement for each. We do not rebuild automations as Salesforce Flow inside the migration scope. We support a one-week hypercare window to resolve any data reconciliation issues your team identifies after cutover.
Platform deep dives
Onsite CRM
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Onsite CRM and Salesforce Sales Cloud.
Object compatibility
4 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
Onsite CRM: Not publicly documented.
Data volume sensitivity
Onsite 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 Onsite CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Onsite 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 Onsite 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.