CRM migration
Field-level mapping, validation, and rollback between Naviga and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Naviga
Source
Odoo CRM
Destination
Compatibility
8 of 12
objects map 1:1 between Naviga and Odoo CRM.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from Naviga to Odoo CRM is a data-model translation for media and publishing companies that want to consolidate their CRM operations outside of a publishing-specific platform. Naviga's Subscribe module stores Subscribers and Solicitors with a non-standard linkage model where solicitor assignments live inside Offer Groups rather than as direct relationships. Odoo CRM uses a standard Account-Contact-User model where the solicitor role is either a CRM User or a Contact with a custom role field. We extract the full Offer Group hierarchy during scoping, resolve solicitor-to-subscriber assignments, and map them into Odoo's Contact model with a custom field preserving the original solicitor reference. Publication records map to Odoo Account, Advertisements map to Opportunities with custom fields for campaign metadata, and Audience Members map to Leads for the prospect pool. We do not migrate Print Edition artifacts, custom metadata schemas from Naviga Photos that have no Odoo field-type equivalent, or Naviga Workflows and Automations; we deliver a written inventory of automations requiring rebuild in Odoo's Studio or server actions.
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 Naviga 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.
Naviga
Publication
Odoo CRM
Account
1:1Naviga Publications represent news titles or media brands at the top of the organizational hierarchy. We map Publication records to Odoo Account with the publication name stored as Account name, and we preserve edition types (digital, print, broadcast) in custom Account fields. Publication-level custom metadata fields migrate to corresponding Account fields or to custom fields created in Odoo Studio before import.
Naviga
Subscriber
Odoo CRM
Contact
1:1Naviga Subscribers represent paying or free readers with account status, subscription type, and billing history. We map Subscribers to Odoo Contact records with the subscriber's contact details, subscription tier, account status, and billing history preserved in native Contact fields and custom fields. The Contact is linked to the corresponding Publication Account via a many2one relationship on the Contact record.
Naviga
Solicitor
Odoo CRM
User or Contact
lossyNaviga Solicitors are field sales representatives who manage subscriber acquisition. We map Solicitors to Odoo CRM User records for active sales representatives, or to Contact records with a custom role field if the solicitor is an external agent. The mapping choice is confirmed during scoping based on whether the solicitor needs Odoo login access or is referenced as a Contact on acquisition records.
Naviga
Offer Group + Solicitor linkage
Odoo CRM
Contact (custom solicitor field)
1:1Naviga Subscribe maintains solicitor-to-subscriber assignments through Offer Groups rather than a direct relationship. We must export the full Offer Group hierarchy including solicitor IDs and their linked subscriber records, then reconstruct the relationship in Odoo CRM using the solicitor ID as a foreign key mapped to the destination User or Contact record. The reconstructed relationship is stored in a custom field (e.g., acquiring_solicitor_id) on the Contact record. Offer Groups themselves map to Odoo Pricelist records or to custom Quote template records depending on whether the migration scope includes pricing structures.
Naviga
Audience Member
Odoo CRM
Lead
1:1Naviga Audience Members represent the broader reader population including non-subscribers tracked for engagement. We map these records to Odoo CRM Lead, preserving behavioral data, segmentation tags, and engagement scores as custom Lead fields. Active Leads with subscription conversion are flagged for the customer's admin to manually convert to Contact once the subscription is formalized in Odoo.
Naviga
Article
Odoo CRM
Note or Task
lossyNaviga Articles include authored text, metadata, and linked photos. We map Articles to Odoo Note records linked to the relevant Publication Account, or to Task records if the article publish date and author are relevant for sales activity auditing. Article body migrates as Note content, author migrates as a custom Note field, and publish date migrates as the Note create date. The customer chooses the strategy during scoping.
Naviga
Advertisement
Odoo CRM
Opportunity
1:1Naviga Ad manages ad campaigns across print, digital, and broadcast channels. We map Advertisements to Odoo CRM Opportunity with the advertiser name linked to an Account, campaign dates preserved, and campaign type (print/digital/broadcast) stored as Opportunity custom fields. Budget, insertion order details, and creative asset references migrate as Opportunity fields or as Notes attached to the Opportunity.
Naviga
Offer Group
Odoo CRM
Pricelist or Custom Record
1:manyNaviga Offer Groups bundle pricing structures and special offers for subscriber acquisition campaigns. Each group contains multiple Offers with distinct pricing and terms. We map Offer Groups to Odoo Product Pricelist records for recurring pricing structures, and we also export the individual Offers within each group as separate Price List Item records linked to the parent Pricelist. If the Offers represent one-time promotional bundles, they map to custom Opportunity Product records.
Naviga
Photo
Odoo CRM
Attachment (linked to Account or Contact)
1:1Naviga Photos stores media assets with XMP, IPTC, and EXIF metadata. Custom metadata fields from Naviga Photos can be configured per installation with no standard field dictionary. We export photos with their standard metadata, map standard fields to Odoo Attachment records linked to the parent Account or Contact, and flag any custom fields that cannot be represented in Odoo's field types during discovery for customer decision on field creation or exclusion.
Naviga
Custom Field (Photos installation-specific)
Odoo CRM
Custom Field (Studio-created)
lossyNaviga Photos custom metadata schemas vary by installation. We perform schema discovery on the source environment before mapping, detect all custom field names, types, and required flags, and create corresponding Odoo custom fields via Studio or via data migration scripts before import. Fields with types that have no Odoo equivalent (e.g., multi-select with more than 40 options) are flagged for the customer to decide whether to create a Char field, a selection field, or exclude the data.
Naviga
Print Edition
Odoo CRM
None
1:1Print Edition artifacts including InDesign blueprints, page layouts, and Sophi.io-powered automated print templates are tightly coupled to Naviga Publisher's print manufacturing system and are not accessible via the Open Content API. We flag Print Edition records during scoping and exclude them from the CRM migration scope entirely. Customers requiring these assets need a separate print-to-print migration workflow or manual transfer of print production files.
Naviga
User/Owner (Solicitor)
Odoo CRM
User
1:1We extract every distinct Naviga Solicitor referenced on Subscriber, Offer Group, and Advertisement records and match by email against the Odoo destination database's Users. Any Solicitor without a matching Odoo User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Active solicitors get Odoo User accounts with CRM group access; inactive solicitors are mapped to Contact records with a custom role field.
| Naviga | Odoo CRM | Compatibility | |
|---|---|---|---|
| Publication | Account1:1 | Fully supported | |
| Subscriber | Contact1:1 | Fully supported | |
| Solicitor | User or Contactlossy | Fully supported | |
| Offer Group + Solicitor linkage | Contact (custom solicitor field)1:1 | Fully supported | |
| Audience Member | Lead1:1 | Fully supported | |
| Article | Note or Tasklossy | Fully supported | |
| Advertisement | Opportunity1:1 | Fully supported | |
| Offer Group | Pricelist or Custom Record1:many | Fully supported | |
| Photo | Attachment (linked to Account or Contact)1:1 | Fully supported | |
| Custom Field (Photos installation-specific) | Custom Field (Studio-created)lossy | Fully supported | |
| Print Edition | None1:1 | Fully supported | |
| User/Owner (Solicitor) | User1: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.
Naviga gotchas
Open Content API has no publicly documented rate limits
Print edition assets are inaccessible via API
Solicitor-to-subscriber linkages require Offer Group export
Custom metadata schemas vary by installation
No public pricing tiers complicates scope estimation
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 schema audit
We audit the Naviga environment across its modules: Subscribe (Subscribers, Solicitors, Offer Groups), Audience (Audience Members), Content (Articles), Ad (Advertisements), and Photos (metadata schemas). We identify the Offer Group hierarchy depth, the count of unique solicitor IDs, the volume of Audience Members, and any custom metadata field configurations in Photos. We pair this with an Odoo edition assessment: Standard ($31.10/user) covers most migration scopes; Custom ($46.80/user) is required if multi-company setups, advanced automation, or extensive custom field counts are needed. The discovery output is a written migration scope document covering record counts, custom field mapping, and any objects excluded from scope.
Offer Group traversal and solicitor-lookup design
Naviga's indirect solicitor-to-subscriber linkage requires a dedicated extraction and transformation step. We export all Offer Group records, parse the solicitor IDs within each group, and resolve them against the Subscriber records linked to that Offer Group. We build a lookup table mapping each Subscriber to their acquiring solicitor (by solicitor ID or email). This lookup table is used during Odoo Contact import to populate the custom solicitor field on each Contact record. We confirm the mapping direction with the customer: solicitors as Odoo Users or as Contacts with a role field.
Odoo custom field creation and sandbox validation
Before any data moves to production, we create all required Odoo custom fields via Studio or via data migration scripts in a Sandbox environment. This includes custom fields for subscription tier, solicitor assignment, publication edition type, ad campaign metadata, and any Naviga Photos custom fields that have Odoo equivalents. We run a sandbox migration with a representative data sample (at least 10% of total record volume) and validate field mapping, relationship resolution, and Odoo record creation before proceeding to production.
User and solicitor reconciliation
We extract every distinct Naviga Solicitor referenced on Subscriber, Offer Group, and Advertisement records and match by email against the Odoo destination database's User table. Any Solicitor without a matching Odoo User goes to a reconciliation queue. The customer's Odoo admin provisions missing Users (active status for current solicitors, inactive for departed solicitors). This step cannot be bypassed because Contact records with solicitor assignment require a resolved User or Contact reference, and Opportunity owner assignments require a valid OwnerId.
Production migration in dependency order
We run production migration in record-dependency order: Users (manual provisioning confirmed), Accounts (from Naviga Publications), Contacts (with solicitor custom field resolved via the Offer Group lookup table), Leads (from Audience Members with engagement data), Opportunities (Advertisements with Account and Contact lookups resolved), Price Lists and Line Items (from Offer Groups and Offers), Notes (Articles linked to Accounts), Attachments (Photos with metadata). Each phase emits a row-count reconciliation report before the next phase begins. The Offer Group traversal step is embedded in the Contact phase to ensure solicitor linkage is available at insert time.
Cutover, validation, and automation inventory delivery
We freeze Naviga writes during the cutover window, run a final delta migration of any records modified during the migration, then designate Odoo CRM as the system of record. We deliver a written inventory of Naviga Automations and Workflows that require rebuilding in Odoo Studio or server actions, including trigger conditions, actions, and recommended Odoo equivalents. We do not rebuild Naviga automations as Odoo automations inside the migration scope; that is a separate engagement or an internal admin task. We support a one-week hypercare window for reconciliation issues raised by the customer's team.
Platform deep dives
Naviga
Source
Strengths
Weaknesses
Odoo CRM
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 Naviga and Odoo CRM.
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
Naviga: Not publicly documented.
Data volume sensitivity
Naviga 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 Naviga to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Naviga 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 Naviga
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.