CRM migration
Field-level mapping, validation, and rollback between Xtremepush and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Xtremepush
Source
Odoo CRM
Destination
Compatibility
10 of 12
objects map 1:1 between Xtremepush and Odoo CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Xtremepush and Odoo CRM serve different operational roles that make this migration structurally unusual. Xtremepush is a mobile-first customer engagement and CRM platform with push notifications, SMS, email, AI-driven segmentation, and native loyalty mechanics. Odoo CRM is the CRM module inside the Odoo ERP suite, covering lead management, opportunity tracking, and sales automation. The primary migration value is pulling Xtremepush user profiles into Odoo Contacts, carrying attribute and tag data into Odoo custom fields, and preserving consent and preference records so Odoo respects opt-in boundaries. We do not migrate push tokens (they are platform-specific and require fresh registration in the destination app), loyalty program state (stored as attributes rather than a ledger, and the rule engine does not export), gamification mechanics, audience segments (rule syntax is Xtremepush-specific and must be rebuilt), or active campaign schedules. We deliver a written inventory of all Xtremepush campaigns, segments, location data, and gamification triggers for the customer's admin to rebuild in Odoo.
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 Odoo CRM, 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
Odoo CRM
Contact
1:1Xtremepush user profiles map to Odoo CRM Contact records. The profile identifier becomes the external ID field (xxtremepush_id) on Contact for dedupe and reconciliation. Standard Contact fields (name, email, phone, address) map from Xtremepush profile attributes. Custom attributes from Xtremepush become Odoo custom fields (Char, Integer, Selection, or Text depending on data type) created in the destination schema before import. If the Xtremepush account uses company-mode profiles, we map to Contact plus a parent Company record created as an Odoo Contact with company_type=company.
Xtremepush
Attribute
Odoo CRM
Custom Field
1:1Xtremepush predefined and custom attributes export as key-value pairs. We map each attribute to a typed Odoo ir.model.field record: numeric attributes become Float or Integer fields, date attributes become Date fields, boolean attributes become Boolean fields, and text attributes become Char or Text fields. Tags (multi-select attributes) map to Odoo tags on the Contact form if the destination Odoo instance has the contacts_mass_mailing module installed, or to a Char field storing comma-separated values for instances without that module.
Xtremepush
Consent Record
Odoo CRM
Contact.opt_out and custom consent fields
lossyXtremepush consent records carry preference type (Marketing, Legitimate Interest), subscription status, last-updated timestamp, and source (manual, SDK, import). We map the Marketing subscription status to Contact.opt_out in Odoo. For high-compliance industries, we create custom Boolean fields per consent type (consent_marketing__c, consent_legitimate_interest__c) with a Date field storing the last-updated timestamp. Xtremepush consent records with import-source and no historical change trail are flagged in the handoff checklist; we recommend re-collecting consent for financial services, iGaming, or healthcare accounts.
Xtremepush
Device Token (APNS / Firebase GCM)
Odoo CRM
None
1:1Push device tokens are platform-specific to Xtremepush and cannot migrate to Odoo CRM. Odoo has no native push notification infrastructure. We export the device token inventory as a CSV for the customer's mobile development team to use when re-registering tokens against the new push provider (Firebase Cloud Messaging, APNS, or a third-party service like OneSignal). The re-registration workflow requires an updated app build and cannot be completed from the server side alone.
Xtremepush
Location (Geofence / iBeacon)
Odoo CRM
None
1:1Xtremepush location objects (coordinates, radius, beacon UUIDs) have no Odoo CRM equivalent. Odoo does not have a native geofence or beacon data model. We export all location metadata as a structured CSV inventory (venue name, latitude, longitude, radius, UUID, major/minor for beacons) for the customer's admin to evaluate Odoo apps from the Odoo App Store (geolocation add-ons) or a custom development approach. Location permission state cannot migrate; users must re-opt into location tracking after any app reinstall.
Xtremepush
Campaign
Odoo CRM
CRM Opportunity with Campaign Link
1:1Xtremepush campaigns (execution units with name, schedule, trigger conditions, channel, and content) do not have a direct Odoo CRM equivalent. We export campaign metadata as a written inventory document. The campaign name becomes a CRM Campaign record in Odoo. Active campaign schedules and trigger conditions cannot migrate because Xtremepush's trigger syntax is platform-specific. The customer's admin evaluates Odoo's Marketing Automation app or external engagement tools to replicate campaign schedules.
Xtremepush
Audience Segment
Odoo CRM
CRM Team / Tag
1:1Xtremepush audience segments are defined by attribute, event, and tag rules. We export segment membership rules, sizes at migration time, and the segment names. Segment rule syntax is Xtremepush-specific and cannot be translated to Odoo's filter or domain syntax automatically. We create Odoo CRM Tags (using the contacts_mass_mailing module) for each Xtremepush segment and assign segment members by running the segment criteria against migrated profile data. Manual Odoo domain filters replicate the remaining segment logic.
Xtremepush
Event / Behavioral Data
Odoo CRM
CRM Activity (Note or custom model)
1:manyXtremepush behavioral events (event type, timestamp, associated user/device) migrate to Odoo CRM as Note records linked to the Contact for low-volume event histories, or as a custom crm.event model if the event volume exceeds 50,000 records. Event type names map from Xtremepush to the custom event's event_type field. Large-volume event exports require chunking; we process in batches of 5,000 records and use Odoo's XML-RPC at the 1 call/second rate limit with exponential backoff.
Xtremepush
Loyalty Program State (points, tier, badges)
Odoo CRM
None
1:1Loyalty points balances, tier assignments, and gamification achievements are stored as attributes on Xtremepush user profiles rather than as a standalone loyalty ledger. We export the current state snapshot as custom fields on the Contact record (loyalty_points__c, loyalty_tier__c, loyalty_badges__c). The gamification rule engine (triggers, reward thresholds, achievement conditions) is not exposed via export and cannot migrate. We provide a structured inventory of all gamification mechanics observed in the account during discovery. Odoo Loyalty app (separate subscription) is the recommended replacement.
Xtremepush
Automated Export Schedule (SFTP)
Odoo CRM
None
1:1Xtremepush SFTP and email-based automated exports run on hourly, daily, weekly, or monthly schedules. We document the export schedule, credential paths, schema of exported files, and any transformation logic applied by the export. These schedules are Xtremepush-specific and have no Odoo equivalent. We recommend the customer wire a new Odoo scheduled action (ir.cron) or external ETL tool (N8N, Airbyte, custom script) to replicate the export behavior if ongoing data flow from Odoo to a data warehouse is required.
Xtremepush
Owner
Odoo CRM
User
1:1Xtremepush owners (team members with campaign and profile access) map to Odoo CRM User records. We resolve owners by email match against the destination Odoo User table. Any Xtremepush owner without a matching Odoo User is held in a reconciliation queue for the customer's admin to provision before record import resumes. Inactive owners in Xtremepush map to Odoo Users with active=False.
Xtremepush
Enterprise Push Package (encrypted push)
Odoo CRM
None
1:1Encrypted push delivery and delivery receipts are a separately priced Xtremepush Enterprise add-on requiring SDK integration and encryption key management. We do not migrate encryption keys or delivery receipt configurations. This feature requires re-negotiation with the push provider and a fresh SDK integration in the destination application. We document the current encrypted push configuration as observed during discovery for the customer's technical team to evaluate against Odoo's third-party push options.
| Xtremepush | Odoo CRM | Compatibility | |
|---|---|---|---|
| User Profile | Contact1:1 | Fully supported | |
| Attribute | Custom Field1:1 | Fully supported | |
| Consent Record | Contact.opt_out and custom consent fieldslossy | Fully supported | |
| Device Token (APNS / Firebase GCM) | None1:1 | Fully supported | |
| Location (Geofence / iBeacon) | None1:1 | Fully supported | |
| Campaign | CRM Opportunity with Campaign Link1:1 | Fully supported | |
| Audience Segment | CRM Team / Tag1:1 | Fully supported | |
| Event / Behavioral Data | CRM Activity (Note or custom model)1:many | Fully supported | |
| Loyalty Program State (points, tier, badges) | None1:1 | Fully supported | |
| Automated Export Schedule (SFTP) | None1:1 | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Enterprise Push Package (encrypted push) | None1: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.
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
Odoo CRM gotchas
Odoo.sh version gating blocks assisted migrations from trial
Enterprise modules fail to install on Community after database restore
Custom module view inheritance breaks between Odoo major versions
Custom fields risk losing their application context on Community
API access for Community is gated behind the Custom Plan
Pair-specific challenges
Migration approach
Discovery and Odoo edition confirmation
We audit the source Xtremepush account across user profiles, attributes (predefined and custom), tags, consent records, device token count, location objects, campaign count and schedule, audience segments, event volume, loyalty program state, and gamification mechanics. We confirm the destination Odoo instance is on a Custom pricing plan (required for External API access). We assess the Odoo installed apps (contacts, crm, contacts_mass_mailing, loyalty, marketing_automation) to determine which object and mapping types are available. The discovery output is a written migration scope with object mapping table, out-of-scope inventory, and Odoo edition recommendation.
Destination schema provisioning
We design and deploy the Odoo destination schema. This includes creating custom fields on res.partner (Contact) for each Xtremepush attribute that does not map to a standard Odoo field, creating CRM Tags for Xtremepush segments, configuring consent fields (opt_out and any custom consent Booleans), and ensuring the contacts_mass_mailing module is installed if tag-based segmentation is required. Schema changes deploy via Odoo Settings into the destination database. For migrations requiring a custom event model for behavioral data, we create the model and fields before migration begins.
Xtremepush data extraction and transformation
We extract Xtremepush data in dependency order: User Profiles first (as the parent object), then Attributes and Tags (as field values on profiles), Consent Records (as status + type pairs), Campaigns and Segments (for the written inventory), Location Data (for the CSV export), Loyalty State (as attribute values), and Event History (chunked by volume). We apply the consent status transformation (subscribed becomes opt_out=False, unsubscribed becomes opt_out=True), the attribute-to-field mapping, and the segment membership computation. Stale or duplicate profiles are flagged for the customer's review before import.
Sandbox migration and reconciliation
We run a full migration into the Odoo production instance (or a copy if the customer prefers a validation step first). Each phase emits a row-count reconciliation report: profiles extracted, contacts created, attributes populated, consent flags set, tags assigned, and events logged. The customer's admin spot-checks 20-30 random Contacts against the Xtremepush source, validates that attribute values transferred correctly, and confirms that consent status matches. Any mapping corrections are applied in the transformation layer and the import re-runs before final cutover.
Push token and location handoff
We deliver the device token CSV export and location data CSV export as separate artifacts. The device token CSV lists each token, associated user profile, token type (APNS/Firebase), and last-seen timestamp, formatted for the customer's mobile team to use with their new push provider's bulk registration endpoint. The location CSV lists each geofence and beacon with coordinates, radius, UUID, and venue name. We do not import push tokens into Odoo because Odoo has no push infrastructure. We do not import location data into Odoo because there is no destination field.
Cutover, written inventory delivery, and admin handoff
We freeze Xtremepush writes during cutover, run a final delta migration of any profiles modified during the migration window, and confirm all record counts match. We deliver the written inventory documents: campaign inventory (names, schedules, trigger conditions), segment inventory (names, rule definitions, sizes), gamification mechanics inventory (loyalty rules, thresholds, achievement types), and location inventory (geofence and beacon data). We support a five-business-day hypercare window to resolve reconciliation issues. We do not rebuild campaigns as Odoo Marketing Automation actions, segments as Odoo domain filters, or loyalty mechanics as Odoo Loyalty rules; those are separate workstreams for the customer's admin or an Odoo implementation partner.
Platform deep dives
Xtremepush
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Xtremepush and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Xtremepush and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Xtremepush and Odoo CRM.
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 Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Xtremepush to Odoo CRM 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 Odoo CRM
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.