CRM migration
Field-level mapping, validation, and rollback between Xtremepush and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Xtremepush
Source
Freshsales
Destination
Compatibility
6 of 9
objects map 1:1 between Xtremepush and Freshsales.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Xtremepush and Freshsales serve fundamentally different roles. Xtremepush is a mobile-first customer engagement platform built around push, SMS, and email campaigns against user profiles; Freshsales is a sales CRM built around Leads, Contacts, Accounts, Deals, and Activities. Migrating between them is a schema redesign, not a record copy. We map Xtremepush user profiles to Freshsales Contacts with their attribute and tag sets as custom fields, map the lifecycle stage to Freshsales lifecycle status, and derive Deals from engagement intensity metrics (open rate, session frequency, loyalty tier) rather than a native deal object, since Xtremepush has no pipeline concept. Activity history (event timestamps, campaign interactions) migrates as Freshsales Tasks. Push tokens, geofence metadata, and gamification rule engines do not migrate; we deliver a written inventory of these as post-migration rebuild tasks. Freshsales Workflows and automations do not carry over from Xtremepush campaigns because the trigger models are incompatible.
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 Xtremepush 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.
Xtremepush
User Profile
Freshsales
Contact
1:1Xtremepush user profiles are the primary migration unit and map directly to Freshsales Contact records. The Xtremepush user identifier becomes an external ID field (xtremepush_id__c) on Contact for deduplication. Profile attributes (custom key-value pairs) migrate as Freshsales custom fields created during schema design. Tags migrate as a Freshsales multi-select picklist or as Contact tags if the account is on Freshsales Suite. The email address, phone number, and name fields map to their Freshsales equivalents.
Xtremepush
Attribute and Tag Set
Freshsales
Custom Field
lossyAll Xtremepush attributes and tag keys are inventoried during discovery and mapped to Freshsales custom fields of the appropriate type (text, number, date, picklist). Tag values with fewer than 200 distinct values map to picklist fields; high-cardinality attributes map to text. We create the fields in Freshsales during schema design before any data loads. Attribute values that reference other Xtremepush records (e.g., a linked location object) are resolved to human-readable strings or IDs at migration time.
Xtremepush
Lifecycle Stage
Freshsales
Lifecycle Status
1:1Xtremepush user lifecycle stage (subscriber, lead, engaged, loyal, churned) maps to Freshsales Contact Lifecycle Status using a value mapping defined during scoping. We preserve the original Xtremepush lifecycle value in a custom field xtremepush_lifecycle__c on Contact so the customer's admin can reference the source data post-migration.
Xtremepush
Audience Segment
Freshsales
Contact Filter or Tag
1:1Xtremepush audience segments are defined by attribute and event rules. Since Freshsales does not have a native segment object, we export segment membership (the list of user IDs in each segment at migration time) and map those contacts to Freshsales Tags using the segment name. The rule-building logic is documented for the customer admin to recreate as Freshsales Contact Filters post-migration if dynamic segment membership is required.
Xtremepush
Loyalty Program State
Freshsales
Custom Field
lossyPoints balances, tier assignments, and gamification achievements are stored as attributes on Xtremepush user profiles. We export them as custom number and picklist fields on the Freshsales Contact: points_balance__c, loyalty_tier__c, and achievement_count__c. The gamification rule engine (thresholds, triggers, reward logic) is not exposed via export and does not migrate; we deliver a structured inventory of all gamification mechanics observed during discovery for the customer admin to rebuild in Freshsales Workflows if needed.
Xtremepush
Preference and Consent Record
Freshsales
Contact Field (opt-out flags)
1:1Xtremepush consent records carry the preference type (Marketing, Legitimate Interest), status (subscribed/unsubscribed), and last-updated timestamp. We map the email opt-out status to Freshsales Contact HasOptedOutOfEmail and SMS opt-out to HasOptedOutOfSMS. The consent type and source (manual, SDK, import) are preserved in custom fields consent_type__c and consent_source__c for compliance audit purposes. The Xtremepush export does not include the full consent change history, which we flag as a limitation for high-compliance industries.
Xtremepush
Campaign (execution metadata)
Freshsales
Activity Record (documentation)
1:1Xtremepush campaign metadata (name, channel, schedule, trigger conditions) does not have a direct Freshsales equivalent because Freshsales is not a campaign execution platform. We export campaign names and assign each campaign an internal ID. For each contact, we create a Freshsales Task with a custom field campaign_name__c and the interaction timestamp (delivered, opened, clicked) recorded as task properties. This preserves a campaign attribution record in Freshsales without requiring the customer to run campaigns from Freshsales. The campaign builder and scheduling logic is documented separately for rebuild in Freshsales Suite or a dedicated marketing platform.
Xtremepush
Behavioral Event
Freshsales
Task
1:1Xtremepush event records (event type, timestamp, associated user and device) map to Freshsales Task records with a custom event_type__c field and the original timestamp preserved as ActivityDate. High-volume event exports (thousands per user) are chunked by user and loaded in batches to stay within Freshsales API rate limits per plan tier. We map the device identifier to a custom field device_id__c on the Task for reference.
Xtremepush
Engagement-derived Deal
Freshsales
Deal
1:manyXtremepush has no native deal object, but engagement metrics can be used to construct Freshsales Deals during migration. We identify contacts with high engagement scores (session frequency, campaign open rate, loyalty tier) and create Freshsales Deals for accounts where commercial intent can be inferred. Deal value is derived from a proxy metric (loyalty tier mapped to deal size bracket) agreed upon during scoping. Stage is set to a default value (e.g., 'New') for migration, with the customer's sales admin assigning the correct stage post-import. This step is optional and requires explicit scope inclusion during discovery.
| Xtremepush | Freshsales | Compatibility | |
|---|---|---|---|
| User Profile | Contact1:1 | Fully supported | |
| Attribute and Tag Set | Custom Fieldlossy | Fully supported | |
| Lifecycle Stage | Lifecycle Status1:1 | Fully supported | |
| Audience Segment | Contact Filter or Tag1:1 | Fully supported | |
| Loyalty Program State | Custom Fieldlossy | Mapping required | |
| Preference and Consent Record | Contact Field (opt-out flags)1:1 | Fully supported | |
| Campaign (execution metadata) | Activity Record (documentation)1:1 | Fully supported | |
| Behavioral Event | Task1:1 | Fully supported | |
| Engagement-derived Deal | Deal1:many | 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.
Xtremepush gotchas
Push token migration requires coordinated SDK update and dev team handoff
Consent preference export does not include full audit trail
Location services require separate paid activation and SDK changes
Loyalty and gamification state is profile-relative, not independently exportable
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 engagement model audit
We inventory all Xtremepush objects in the account: user profiles, attributes, tags, consent records, segments, loyalty state (points, tiers, achievements), campaign metadata, and event volume. We assess whether the customer has commercial relationships (deals, subscriptions, contracts) tracked in Xtremepush or a separate system, because Xtremepush has no native deal object. We also identify the push token inventory, geofence metadata, and gamification rule patterns. The discovery output is a written scope document specifying what migrates, what derives (e.g., Deals from engagement metrics), and what is documented for post-migration rebuild.
Freshsales schema design
We create the destination Freshsales schema before any data loads. This includes provisioning custom fields on Contact for every Xtremepush attribute (typed to match the attribute value), multi-select picklists for tags, custom fields for consent type and source, and custom fields for loyalty state. If Deals are in scope, we configure the Deal object (pipeline, stages, custom fields). We also configure Freshsales lifecycle status values to match the Xtremepush lifecycle stages. Schema is deployed into a Freshsales sandbox org for validation before production migration begins.
Data quality assessment and cleansing
We audit Xtremepush profile data for completeness (missing email addresses, duplicate records, malformed phone numbers) and flag records that will fail Freshsales required-field validation. Per Freshsales best practices, we recommend a data cleansing phase before migration to remove duplicates, populate missing required fields with defaults, and normalize attribute formats. We provide a data quality report with row-level flags so the customer can decide which records to clean, delete, or accept as-is before migration runs.
Sandbox migration and mapping validation
We run a full migration into a Freshsales sandbox using production-like data volume. The customer reconciles record counts (Contacts in, Accounts in, Deals in if applicable, Tasks in), spot-checks 25-50 records against the Xtremepush source, and validates that custom field values populated correctly. The segment-to-tag mapping, consent-to-opt-out mapping, and lifecycle-stage-to-lifecycle-status mapping are all verified here. Any mapping corrections happen in sandbox, not production. The sandbox sign-off is required before production cutover.
Production migration in dependency order
We run production migration in record order: Contacts first (with all custom fields resolved), then Accounts (if linked to company data in Xtremepush), then Deals (derived from engagement metrics per the agreed scoping rules), then Tasks (campaign attribution and event history). Each phase emits a row-count reconciliation report. Push token export runs as a parallel stream and is delivered as a CSV for the customer's engineering team. We handle API rate limiting with exponential backoff per Freshsales API limits for the account's plan tier.
Cutover, validation, and rebuild handoff
We freeze Xtremepush writes during cutover, run a final delta migration of records modified during the migration window, then enable Freshsales as the system of record. We deliver the campaign inventory document (for rebuild in Freshsales Suite or a marketing platform), the loyalty gamification inventory (for rebuild in Freshsales Workflows or a loyalty platform), and the push token CSV (for engineering re-registration). We support a one-week hypercare window for reconciliation issues. We do not rebuild Xtremepush campaigns as Freshsales Workflows inside the migration scope.
Platform deep dives
Xtremepush
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Xtremepush and Freshsales.
Object compatibility
2 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
Xtremepush: Not publicly documented.
Data volume sensitivity
Xtremepush 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 Xtremepush to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Xtremepush 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 Xtremepush
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.