CRM migration
Field-level mapping, validation, and rollback between User.com and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
User.com
Source
Freshsales
Destination
Compatibility
7 of 11
objects map 1:1 between User.com and Freshsales.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from User.com to Freshsales is a schema reconciliation, not a simple record copy. User.com uses a unified Contact object that bundles any record with an email, phone, user_id, or chat interaction; Freshsales splits unqualified prospects into Leads and qualified contacts into Contacts attached to Accounts. We resolve that split during scoping by evaluating engagement depth, export the full company-contact relationship graph to preserve the association in Freshsales Accounts, and map deal stages to Freshsales pipeline stages. Custom properties migrate as Freshsales custom fields, with choice fields requiring pre-creation before value import. User.com automation workflows, email templates, and campaign records do not migrate through documented endpoints; we deliver a written inventory of all active automations for the customer to rebuild in Freshsales Workflows 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 User.com object lands in Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
User.com
Contact
Freshsales
Lead or Contact (split required)
1:manyUser.com Contacts map to Freshsales Lead or Contact based on engagement profile. Records with an email and no deal association and no recorded engagement events map to Freshsales Lead. Records with a deal association, recorded calls, emails, or meetings map to Contact attached to an Account. We evaluate the contact's deal_count, last_event_type, and tags during migration to assign the correct destination model. The original User.com contact_id is preserved in a custom field usercom_original_id__c for audit and cross-reference.
User.com
Company
Freshsales
Account
1:1User.com Company records map to Freshsales Account. The company name maps to Account Name; the domain maps to Website. Freshsales performs duplicate detection on Account Name and Website during import. We resolve the company-contact association at migration time so that each Contact imported after its parent Account has the AccountId lookup satisfied. All standard company fields (address, city, country, industry, phone) map to Freshsales Account standard fields; custom company properties map to Freshsales custom Account fields.
User.com
Deal
Freshsales
Opportunity
1:1User.com Deals map to Freshsales Opportunity. The deal title becomes Opportunity Name, deal_value maps to Amount, deal_stage maps to Pipeline Stage, and owner maps to Owner (resolved by email match against Freshsales User). We create Freshsales Pipeline and Stage entries that correspond to the User.com pipeline configuration before import. Custom deal fields map to Freshsales custom Opportunity fields. The closed_lost_reason and closed_won_reason from User.com custom properties migrate to Freshsales custom fields on Opportunity.
User.com
Deal Stage
Freshsales
Opportunity Stage
lossyEach User.com pipeline's stage values migrate to Freshsales Pipeline and StageName entries. We create the Freshsales Pipeline first, then add Stage entries with matching names and probabilities. Probability percentages from User.com round to the nearest integer. Stage display order is preserved from User.com. If User.com has multiple pipelines, we create a corresponding Freshsales Sales Process per pipeline.
User.com
Events
Freshsales
Task
1:1User.com Events (calendar events with start time, end time, title, description, location, and attendees) map to Freshsales Task records. Start time and end time from User.com become Task Due Date and Activity Date; the title becomes Subject. Event attendees resolve to Freshsales User lookups where email matches exist; unresolved attendees are noted in the migration report. We import events before contacts so that the WhoId (Contact or Lead reference) is available at import time.
User.com
Activities
Freshsales
Task or EmailMessage
1:1User.com Activities include email opens, email clicks, call logs, and push notification records. Each activity type maps to a typed Freshsales Task or EmailMessage. Call activities become Task with TaskSubtype = Call and duration preserved. Email engagement activities (opens, clicks) become Task with a custom type field. All activities link to the parent Contact or Lead via WhoId. The original User.com activity timestamp becomes Activity Date to preserve timeline ordering.
User.com
Tags
Freshsales
Contact Type
lossyUser.com tags (stored as string arrays on contact and deal records) migrate to Freshsales Contact Type field. For single-tag use cases we use Freshsales' built-in Contact Type field. For multi-tag scenarios we create a Freshsales multi-select custom field. Tag values transfer verbatim; we flag any tag value longer than 40 characters for truncation review before import.
User.com
Segments
Freshsales
Static List or Contact Filter
1:1User.com dynamic segments (auto-populated based on contact attribute filters) do not reproduce as dynamic in Freshsales because Freshsales filters are evaluated at query time, not stored as segment definitions. We export segment membership as a static list of contact identifiers at migration time and create Freshsales contact lists with the same names. The customer rebuilds the dynamic filter logic in Freshsales using Freshsales Filters. Segment definitions are documented in the handoff inventory.
User.com
Custom Properties
Freshsales
Custom Fields
lossyUser.com custom properties on Contact, Company, and Deal migrate to Freshsales custom fields. Choice fields require pre-creation in Freshsales before value import; we create the custom field definition first, then import values. Bool properties migrate to Freshsales Checkbox fields with f/t normalization applied. Date properties use ISO 8601 format compatible with Freshsales date field import. JSON-encoded properties in User.com export require parsing and field extraction before mapping to Freshsales field types.
User.com
Owner
Freshsales
User
1:1User.com Owners map to Freshsales User records by email match. We extract all owner_email values referenced on Contact, Company, Deal, and Activity records and match against the Freshsales User table. Owners without a matching Freshsales User enter a reconciliation queue for the customer's admin to provision before the migration resumes. Assigned records from unresolved owners default to the migration admin user during the import phase and are reassigned post-provisioning.
User.com
Live Chat / Conversations
Freshsales
Note
1:1User.com chat transcripts and conversation history export as bundled data with contact records. We extract conversation threads, flatten them to a readable text format, and import as Freshsales Note records linked to the parent Contact or Lead via ContentDocumentLink. Chat message timestamps map to Note Created Date for chronological ordering. The chat_session_id is preserved in a custom field on the Note for audit. Native Freshsales chat functionality (Freshchat integration) is not migrated as part of the conversation history import.
| User.com | Freshsales | Compatibility | |
|---|---|---|---|
| Contact | Lead or Contact (split required)1:many | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Deal Stage | Opportunity Stagelossy | Fully supported | |
| Events | Task1:1 | Fully supported | |
| Activities | Task or EmailMessage1:1 | Mapping required | |
| Tags | Contact Typelossy | Mapping required | |
| Segments | Static List or Contact Filter1:1 | Mapping required | |
| Custom Properties | Custom Fieldslossy | Mapping required | |
| Owner | User1:1 | Fully supported | |
| Live Chat / Conversations | Note1:1 | 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.
User.com gotchas
Contact-based billing catches more records than expected
Automation workflows are not exportable
Bool and DateTime export format changes break naive imports
Email templates and campaign history are inaccessible
Database size shown in-app updates only every 24 hours
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Discovery and scoping
We audit the User.com portal across record counts (contacts, companies, deals, activities), custom property schemas on each object, pipeline and stage configuration, active automation count, and engagement history volume. We evaluate which User.com contacts carry billable attributes (email, phone, user_id, last_heard, push_subscription, FCM key) versus chat-only visitors to determine the migration tier. We pair this with a Freshsales edition check: the Growth plan ($9 per user monthly) covers most migrations; Estate ($29 per user) or Forest ($49 per user) are recommended if the customer needs multiple sales processes or advanced workflow automation at scale.
Freshsales workspace configuration
We provision the Freshsales workspace with the required modules: Leads, Contacts, Accounts, and Deals. We create all custom fields to match the User.com custom property schema, including choice field option sets, checkbox fields, and date fields. The Contact Type field is configured to receive User.com tags. Deal stages and pipelines are created in Freshsales to mirror the User.com pipeline configuration before any data import begins.
Test migration and reconciliation
We run a full migration into a Freshsales test environment using production data volume. The customer's admin reviews record counts across all modules, spot-checks 20-40 records for field accuracy, and verifies that account-contact relationships are correctly established. Any field mapping corrections, custom field type adjustments, or duplicate detection rule changes happen in this phase. We do not proceed to production migration without signed-off reconciliation from the customer's RevOps lead.
Source data export and normalization
We export all User.com data via the API: Contacts with full attribute profiles, Companies with address and custom fields, Deals with stage and product associations, Activities with timestamps and metadata, and Tags. Bool fields are normalized from f/t to Freshsales-compatible values. Date fields are confirmed in ISO 8601 format. Choice fields are re-bracketed from {} format to standard CSV values. Chat-only contact records are flagged for exclusion from the primary contact migration batch.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from User.com Companies) first, then Contacts and Leads with the split rule applied and AccountId lookups resolved, then Deals with OwnerId and Pipeline stage resolved, then Activity history using Freshsales API with rate-limit handling and chunking, then Tags and Segments as static lists. Each phase emits a row-count reconciliation report before the next phase begins. The migration admin user is the initial Owner for all records during import and is reassigned post-migration.
Cutover and handoff
We freeze User.com writes during the cutover window, run a final delta migration of any records added during migration, and switch the team to Freshsales as the system of record. We deliver the automation inventory document listing every User.com workflow with its trigger, conditions, and actions, plus a recommended Freshsales Workflow rebuild guide. We offer a five-business-day hypercare window to resolve post-migration reconciliation issues raised by the customer's sales team. We do not rebuild automations as Freshsales Workflows inside the migration scope; that is a separate rebuild engagement.
Platform deep dives
User.com
Source
Strengths
Weaknesses
Freshsales
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 User.com and Freshsales.
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
User.com: Not publicly documented.
Data volume sensitivity
User.com exposes a bulk API — large-volume migrations stream efficiently.
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 User.com to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your User.com to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave User.com
Other ways to arrive at Freshsales
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.