CRM migration
Field-level mapping, validation, and rollback between Paradym and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Paradym
Source
Odoo CRM
Destination
Compatibility
11 of 12
objects map 1:1 between Paradym and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Paradigm operates as a credential and identity management platform with a data model centered on credential holders, credential templates, and presentation records. Its nested-attribute structure lets Paradym group fields under keys like 'person' and 'address', and its API enforces rate limits of 200 requests per 10 seconds per desk. Odoo CRM uses res.partner as the unified contact/company model (with the is_company flag distinguishing organizations from individuals), crm.lead for leads and opportunities with stage-based pipeline tracking, and crm.activity for logged calls, emails, and meetings. We map Paradym credential holders to Odoo res.partner records, credential attributes to custom fields (created via Odoo Studio), and any Paradym submission or verification events to Odoo CRM opportunity activities. Paradym workflows, credential templates, and presentation rules do not have Odoo equivalents — we export those definitions as JSON for manual recreation in Odoo's automation tools. The migration uses Odoo's XML-RPC API for record creation and relationship linking, respecting Paradym's rate limits to avoid API throttling during extraction.
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 Paradym 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.
Paradym
Credential Holder
Odoo CRM
res.partner
1:1Paradigm credential holders map 1:1 to Odoo res.partner records. The is_company flag is set to False for individual credential holders; organizations with nested person attributes are split into separate partner records linked via parent_id. Email, phone, and name fields map directly to Odoo's standard res.partner fields without transformation required.
Paradym
Organization Credential Holder
Odoo CRM
res.partner (company)
1:1Credential holders identified as organizations in Paradym map to Odoo res.partner with is_company=True. Their nested person attributes such as authorized contacts and key holders create child res.partner records linked via parent_id. The organizational hierarchy from Paradym translates directly into Odoo's partner contact tree structure.
Paradym
Credential Attribute (top-level)
Odoo CRM
res.partner custom field (x_* field)
1:1Paradym top-level attributes (name, email, phone, address components) create Odoo Studio custom fields on res.partner. Field type maps: text strings to char, dates to date, booleans to boolean. We create the custom field in Odoo before migration and map values directly.
Paradym
Nested Object Attribute (grouped key)
Odoo CRM
Multiple res.partner custom fields
1:1Paradym nested attributes under keys like 'person.name' or 'address.city' are flattened into separate Odoo custom fields using dot-notation naming: x_person_name, x_address_city, x_person_firstname, x_address_postal_code. Odoo has no native nested object storage, so grouping semantics are preserved as naming conventions to maintain semantic clarity for Odoo administrators reviewing migrated data.
Paradym
Nested Array Attribute
Odoo CRM
One2many res.partner relation
1:manyParadym array attributes such as multiple nationalities or credential type lists cannot map to a single Odoo field without losing item-level granularity. We split each array item into a child res.partner record with a type tag, or store as a comma-separated custom field — your admin chooses the preferred representation during the pre-migration audit.
Paradym
Credential Presentation
Odoo CRM
crm.lead (Opportunity)
1:1Paradym credential presentations — where a holder presents credentials to a verifier — translate to Odoo crm.lead records representing opportunities in the sales pipeline. The presentation date becomes the opportunity create_date, and the presentation outcome (accepted, rejected, pending) maps to crm.lead.stage_id through the pre-configured stage mapping. Each presentation links to the holder's migrated res.partner via partner_id.
Paradym
Credential Template
Odoo CRM
ir.model.data (custom field metadata)
1:1Paradym credential templates define attribute schemas and issuance rules controlling credential lifecycle states. Odoo has no direct equivalent template system — we preserve template definitions as exported JSON stored in Odoo's document storage (ir_attachment) for manual reference when rebuilding credential-related custom fields and automated actions in Odoo Studio.
Paradym
Credential Status/State
Odoo CRM
crm.lead.stage_id
1:1Paradym credential states (Issued, Revoked, Expired, Pending Verification) map to Odoo CRM pipeline stages via value-by-value mapping defined in the pre-migration checklist. We create crm.stage records matching Paradym states before migration begins and route each crm.lead to its corresponding stage based on the source credential status during the migration run.
Paradym
Verification Event
Odoo CRM
crm.activity
1:1Paradym verification events — timestamps when a verifier checks a credential — become Odoo crm.activity records linked to the corresponding crm.lead via res_id and res_model fields. Activity type (call, email, meeting), activity date, and verifying user are preserved from the Paradym event for complete audit trail continuity in the Odoo migration target.
Paradym
Credential Document/Attachment
Odoo CRM
ir.attachment
1:1Paradym credential documents including PDF certificates and verification screenshots are downloaded via the Paradym API and re-uploaded to Odoo as ir.attachment records. Each attachment links to res.partner via res_model='res.partner' and res_id pointing to the holder's migrated partner ID. File size respects Odoo's attachment storage limits with a default maximum of 100MB per file.
Paradym
Paradym User/Desk Owner
Odoo CRM
res.users
1:1Paradym desk owners and API key holders map to Odoo res.users through email address matching as the primary identifier. Unmatched owners are flagged in the pre-migration report — your Odoo admin either creates the missing user account or assigns all orphaned records to a designated fallback owner before the migration batch executes.
Paradym
Credential Issuance Log
Odoo CRM
mail.message / ir.model.data
1:1Paradym issuance logs recording timestamps and actors who issued credentials have no Odoo CRM equivalent tracking mechanism. We preserve the complete issuance history as structured JSON in an ir_attachment record linked to the credential holder's res.partner, enabling future audit queries against the JSON blob without requiring custom database extensions.
| Paradym | Odoo CRM | Compatibility | |
|---|---|---|---|
| Credential Holder | res.partner1:1 | Fully supported | |
| Organization Credential Holder | res.partner (company)1:1 | Fully supported | |
| Credential Attribute (top-level) | res.partner custom field (x_* field)1:1 | Fully supported | |
| Nested Object Attribute (grouped key) | Multiple res.partner custom fields1:1 | Fully supported | |
| Nested Array Attribute | One2many res.partner relation1:many | Fully supported | |
| Credential Presentation | crm.lead (Opportunity)1:1 | Fully supported | |
| Credential Template | ir.model.data (custom field metadata)1:1 | Fully supported | |
| Credential Status/State | crm.lead.stage_id1:1 | Fully supported | |
| Verification Event | crm.activity1:1 | Fully supported | |
| Credential Document/Attachment | ir.attachment1:1 | Fully supported | |
| Paradym User/Desk Owner | res.users1:1 | Fully supported | |
| Credential Issuance Log | mail.message / ir.model.data1: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.
Paradym gotchas
Social integration drops after extended use
Sparse API documentation limits programmatic export
Marketing assets have template dependencies
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
Audit Paradym data model and export credential templates
We connect to Paradym via API using your desk credentials and enumerate all credential holders, nested attribute definitions, credential templates, and presentation records. We document the attribute nesting structure, identify top-level vs grouped fields, and export credential template JSON for manual Odoo reference. This audit generates the field mapping spreadsheet and flags nested attributes requiring custom field creation in Odoo Studio.
Create Odoo custom fields and pipeline stages
Using the audit output, we create Odoo Studio custom fields on res.partner to receive flattened Paradym nested attributes (x_person_firstname, x_address_city, etc.). We also deliver a stage-mapping plan for your Odoo admin to create crm.stage records matching Paradym credential states (Issued, Revoked, Pending, etc.) before migration. This step runs in parallel with the audit and requires Odoo admin credentials with field creation rights.
Resolve credential holder-to-partner relationships and user mapping
Paradym credential holders marked as organizations create parent res.partner records; nested person attributes within those organizations create child res.partner records linked via parent_id. We sequence the migration so parent records land first, then children with their parent_id foreign keys. Paradym desk owners and verifiers are matched to Odoo res.users by email — unmatched users are flagged and assigned to a fallback owner so no record lands without an Odoo owner.
Migrate credential holders to res.partner records
Extraction runs at Paradym's constrained rate of 200 requests per 10 seconds with request-level exponential backoff to avoid 429 throttling responses. Each credential holder creates one res.partner record via Odoo XML-RPC create. Custom field values for flattened nested attributes populate their corresponding x_* fields. Organization-type holders set is_company=True to trigger Odoo's company contact model. We validate record counts and foreign key integrity after this batch completes before proceeding to presentations and verification events.
Migrate credential presentations to crm.lead and verification events to crm.activity
Credential presentations where holders present credentials to verifiers create crm.lead records linked to the migrated res.partner via partner_id foreign key. Credential presentation status maps to the pre-created crm.stage records through value mapping defined in the stage-mapping plan. Verification events logged in Paradym create crm.activity records linked to their corresponding crm.lead using res_model='crm.lead' and res_id pointing to the lead ID. Credential documents download from Paradym and re-upload as ir.attachment records linked to res.partner.
Run delta-pickup and post-migration validation
After bulk migration completes, we open a delta-pickup window (24–48 hours) that captures any Paradym records created or modified during the cutover window — critical for presentations and verification events logged during migration. We run field-level validation comparing source counts to destination record counts, checking foreign key completeness (partner_id, parent_id), and spot-checking custom field values against source records. Audit log captures every operation; rollback is available if reconciliation finds discrepancies above the agreed tolerance threshold.
Platform deep dives
Paradym
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 Paradym 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
Paradym: Not publicly documented for paradym.com CRM; Constellation1 backend may impose undisclosed limits.
Data volume sensitivity
Paradym 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 Paradym to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Paradym 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 Paradym
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.