CRM migration

Migrate from GoldMine to Odoo CRM

Field-level mapping, validation, and rollback between GoldMine and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

GoldMine logo

GoldMine

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

67%

8 of 12

objects map 1:1 between GoldMine and Odoo CRM.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

GoldMine customers face a hard deadline. Ivanti ended new license sales in 2025 and closes support in April 2026, leaving organizations that have run GoldMine for years to find a replacement before their current system goes unpatched. Odoo CRM is a modular, open-source business suite with a REST and XML-RPC API, a modern web interface, and a $24 per user per month price point that undercuts GoldMine's $55 to $125 per user tier. We extract GoldMine data via its XML API or direct database reads (Paradox or SQL Server depending on version), handle the schema discovery required to surface GoldMine's extended custom-field tables, and load the full object inventory into Odoo CRM through its XML-RPC API with rate-limit handling and batch chunking. GoldMine Workflows, automations, and report definitions do not migrate as code; we deliver a written inventory for the customer's admin to rebuild in Odoo Studio.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

GoldMine logo

GoldMine

What's pushing teams away

  • The interface and UX have not kept pace with modern CRM design, driving younger or mobile-first users to work around the system rather than use it directly.
  • Support and feature development from Ivanti has slowed significantly, with formal end-of-life announced for April 2026, forcing organizations to plan a migration now.
  • Limited cloud and mobile capabilities compared to SaaS CRMs make it unsuitable for distributed or remote-first sales teams expecting real-time sync across devices.
  • Integration ecosystem is narrow—no modern REST API, fewer third-party connectors—making automation and modern tool stacks difficult to implement.
  • Reports and dashboards are basic compared to competitors, frustrating sales leaders who need pipeline visibility and analytics.

Choosing

Odoo CRM logo

Odoo CRM

What's pulling them in

  • Teams choose Odoo CRM for its modular architecture — one base install with one-click app additions means they can adopt CRM alone and add accounting, inventory, or sales later as the business grows.
  • Small businesses pick Odoo because the Community edition is free and open-source, with no per-user or contact limits, allowing full evaluation before committing to a paid Enterprise tier.
  • The drag-and-drop Kanban pipeline and AI lead scoring are highlighted across G2 reviews as concrete features that make lead management faster and more visual than spreadsheet-based workflows.
  • Odoo's native integration with email, live chat, SMS, VoIP, and WhatsApp means inbound leads from multiple channels feed into a single pipeline without third-party middleware.
  • Companies in retail, supply chain, and construction value that Odoo's CRM module shares the same PostgreSQL database and UI as its ERP modules, eliminating data silos between sales and operations.

Object mapping

How GoldMine objects map to Odoo CRM

Each row shows how a GoldMine 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.

GoldMine

Contact

maps to

Odoo CRM

res.partner (Contact type)

1:1
Fully supported

GoldMine's primary contact record maps to Odoo res.partner with partner_type = contact. Name fields (FIRSTNAME, LASTNAME, COMPANY) parse into Odoo's name field and individual address subfields. Phone, email, and address blocks transfer as typed fields. GoldMine's AccountNo field becomes Odoo's ref field for cross-reference during reconciliation. The RECID from GoldMine becomes an external identifier (external_id) stored in ir.model.data so that activity history can re-link to the correct res.partner after import.

GoldMine

Company

maps to

Odoo CRM

res.partner (Company type)

1:1
Fully supported

GoldMine Company records map to res.partner with partner_type = company. The Company-Contact linkage in GoldMine becomes the parent_id reference on the contact res.partner record pointing to the company res.partner. Companies are imported before Contacts so that parent_id can be resolved at Contact insert time. Company-level fields such as industry, annual revenue, and number of employees map to Odoo's custom field extensions on res.partner for the company type.

GoldMine

Opportunity

maps to

Odoo CRM

crm.lead (Pipeline stage)

1:1
Fully supported

GoldMine Opportunities map to Odoo crm.lead records with type = opportunity. The GoldMine pipeline stage maps to Odoo's stage_id within the mapped pipeline. Probability percentages transfer as Odoo calculates probability automatically from stage by default but accepts a manual override stored in probability. Closed-Won and Closed-Lost stages from GoldMine become Odoo stage records marked as won or lost. If the customer has multiple GoldMine pipeline categories, each becomes a separate Odoo CRM pipeline in CRM > Configuration > Stages.

GoldMine

History / Activity Log

maps to

Odoo CRM

mail.message (Activity log)

1:1
Mapping required

GoldMine stores communication history in a non-normalized history table with mixed formats (plain text, HTML, MIME-encoded). We extract each history entry, detect encoding format, normalize to plain text or HTML, and write it as a mail.message record linked to the migrated res.partner or crm.lead via model = res.partner or crm.lead and res_id = the migrated record's Odoo ID. Email type entries become mail.message with message_type = email; call and meeting entries become mail.message with subtype comment and a body noting the interaction type and duration.

GoldMine

Calendar / Appointments

maps to

Odoo CRM

calendar.event

1:1
Mapping required

GoldMine appointments synced from Outlook or entered directly map to Odoo calendar.event records. We extract subject, start datetime, end datetime, location, and attendees. Attendees transfer as calendar.attendee records linked to the res.partner for external attendees and res.users for internal attendees. Recurring appointments are noted as exceptions in the event description and flagged for manual rebuild in Odoo Calendar if the customer uses recurring meeting patterns.

GoldMine

Documents and Attachments

maps to

Odoo CRM

ir.attachment

1:1
Mapping required

GoldMine attachments stored as database BLOBs extract as binary files with their original filename and MIME type preserved. We re-upload each file as an Odoo ir.attachment record with res_model = res.partner or crm.lead and res_id = the migrated record's Odoo ID. GoldMine attachments stored as file paths on network shares require the file to be accessible at the path in the GoldMine database; any path returning a file-not-found error is flagged for the customer to restore from backup or skip. Attachments over 25MB are flagged for manual re-upload to avoid XML-RPC payload limits.

GoldMine

Projects (GoldMine Premium)

maps to

Odoo CRM

project.project + project.task

1:many
Fully supported

GoldMine Premium Project records map to Odoo project.project. Project tasks map to project.task with parent_id resolving the Odoo project ID. Milestone dates transfer as stage deadlines on project.task records. If the destination Odoo instance does not have the Project app installed, we map Projects to crm.lead records with custom fields for task names and milestone dates, and the customer installs the Project app during or after migration to promote these to native project records.

GoldMine

Custom Fields

maps to

Odoo CRM

ir.model.fields (Custom)

lossy
Mapping required

GoldMine stores custom fields in separate extended columns linked to CONTACT1, COMPANIES, and other tables by RECID. We run a discovery query against the GoldMine database that enumerates all non-system columns, classifies each as char, float, integer, date, datetime, or selection (picklist), and presents the full inventory for mapping before any data moves. Each mapped custom field is pre-created in Odoo as an ir.model.fields record with the correct ttype, and the customer configures its label and placement in Odoo's form views via Studio after migration.

GoldMine

User

maps to

Odoo CRM

res.users

1:1
Fully supported

GoldMine user accounts do not map automatically to Odoo res.users. We extract the full user roster including email, name, and active/inactive status. Matching is performed by email address. Any GoldMine user without a matching Odoo res.users account goes to a reconciliation queue for the customer's admin to provision before record import resumes. Inactive GoldMine users whose records need reassignment are flagged with the target owner for manual reassignment in Odoo before cutover.

GoldMine

Groups and Tags

maps to

Odoo CRM

crm.tag

lossy
Mapping required

GoldMine groups, marketing lists, and tag-like labels stored on records map to Odoo crm.tag records. We extract all distinct group names, create corresponding crm.tag entries in Odoo, and apply them as tag_ids on the crm.lead records at migration time. If GoldMine groups represent marketing list membership rather than CRM pipeline tagging, we map them to a custom res.partner field (e.g., marketing_list_ids) rather than crm.tag, and the customer configures the segment in Odoo's Email Marketing app post-migration.

GoldMine

Sales Literature

maps to

Odoo CRM

ir.attachment (Document library)

1:1
Mapping required

GoldMine's Sales Literature module files are exported as binary files and re-uploaded to Odoo ir.attachment with res_model = ir.ui.menu as a document library reference. We also attach each literature file to the related res.partner or crm.lead record it was referenced against in GoldMine so that sales reps find relevant materials in the record's attachment list. Literature metadata (document name, category, last modified) becomes the attachment's description field.

GoldMine

Duplicate Records

maps to

Odoo CRM

Mail Thread / Duplicate Detection

lossy
Fully supported

GoldMine's dedupe relies on manual user action and does not store duplicate-group metadata. During migration, we run a pre-import deduplication pass on contact records using email address as the primary key and company name as a secondary key. Odoo's native duplicate detection (Contacts > mass duplicate action) is configured to flag the same keys post-migration. Any duplicates identified in GoldMine before migration are resolved manually in a staging pass before production import.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

GoldMine logo

GoldMine gotchas

High

GoldMine support and updates end April 2026

High

No REST API requires direct database or XML API extraction

High

Communication history is the migration's highest-value and highest-risk object

Medium

Custom fields stored in extended tables require schema discovery

Medium

File attachments depend on server-side file paths that may be orphaned

Odoo CRM logo

Odoo CRM gotchas

High

Odoo.sh version gating blocks assisted migrations from trial

High

Enterprise modules fail to install on Community after database restore

Medium

Custom module view inheritance breaks between Odoo major versions

Medium

Custom fields risk losing their application context on Community

Low

API access for Community is gated behind the Custom Plan

Pair-specific challenges

  • GoldMine communication history requires format normalization before Odoo import

    GoldMine's History table stores email and call records in mixed formats: some as plain text, some as HTML fragments, some as MIME-encoded blobs with base64 boundaries and charset declarations. Odoo's mail.message model expects UTF-8 encoded text. We detect the encoding of each history entry during extraction, strip MIME headers and artifact characters, normalize to UTF-8, and verify character integrity before writing to Odoo. Silent history loss is the most common post-migration complaint in GoldMine migrations; we validate history completeness against GoldMine record counts before sign-off and report any entries that fail format normalization so the customer can decide whether to skip or manually restore.

  • GoldMine's April 2026 EOL compresses migration timelines

    Ivanti's end-of-life for GoldMine in April 2026 means that discovery, scoping, test migration, and production cutover must complete before Q1 2026 to avoid unsupported production running during the transition. We flag any scoping that extends past Q1 2026 as requiring expedited scheduling. GoldMine support and patches may become increasingly unavailable in the months leading up to the cutoff date, which can affect the stability of the GoldMine database during extraction if the system has not been proactively maintained.

  • Odoo lead-to-opportunity conversion changes GoldMine's contact-centric model

    GoldMine is contact-centric: every record is a Contact with Companies linked as related records, and Opportunities attach to Contacts. Odoo CRM separates Leads (unqualified prospects) from Opportunities (qualified pipeline entries) using a Lead-to-Opportunity conversion action in the CRM app. During scoping, we review the customer's GoldMine opportunity assignment model and decide whether GoldMine Opportunities map directly to Odoo crm.lead type=opportunity records (preserving the pipeline view) or to a Lead-converted-to-Opportunity workflow. We design the Odoo pipeline stage structure before any records import so that stage values are whitelisted per pipeline from day one.

  • Odoo XML-RPC API rate limits require batch chunking for large datasets

    Odoo's XML-RPC API has a default timeout and enforces batch size limits per request. GoldMine customers with large histories (100,000+ activity records) or large contact databases (50,000+ records) require chunked writes with retry logic and exponential backoff. We chunk activity records in batches of 500-1,000 per XML-RPC call, track the external_id mapping (GoldMine RECID to Odoo ir.model.data external ID) for parent-record resolution, and resume from the last successful batch if a write fails. The customer's Odoo instance must be reachable via HTTP/HTTPS during migration; self-hosted Odoo instances behind VPN require credentials and network access coordination before migration begins.

Migration approach

Six steps for a successful GoldMine to Odoo CRM data migration

  1. Discovery and GoldMine database audit

    We audit the source GoldMine database to determine version (2018 through 2024.x), backend type (Paradox or SQL Server), and schema structure. We enumerate primary tables (CONTACT1, COMPANIES, PROJECTS, HISTORY), run the extended-table discovery query to surface all custom fields across non-system columns, count record volumes per object, sample the history table to classify encoding mix (plain text, HTML, MIME), and identify attachment storage type (BLOB or file path). This discovery output is a written scope document with record counts, custom field inventory, and a GoldMine EOL timeline risk assessment. We do not begin extraction until the customer signs off on the scope.

  2. Odoo environment setup and schema design

    We work with the customer to configure the destination Odoo CRM environment: install the CRM app (and Project app if GoldMine Premium Projects are in scope), create the pipeline and stage structure matching the GoldMine opportunity stage names, and pre-create all custom fields enumerated during discovery as ir.model.fields with correct ttype (char, integer, float, date, selection). Custom field labels and form-view placements are noted for Odoo Studio configuration post-migration. We access the destination Odoo instance via XML-RPC with an admin account and validate API connectivity and write permissions before test migration begins.

  3. Test migration in Odoo staging

    We run a full migration into the customer's Odoo staging environment (a separate Odoo database or a sandbox clone) with production-like data volume. The customer's administrator reviews 25-50 randomly sampled records against the GoldMine source, verifies that GoldMine RECID-to-Odoo external ID linkage is intact for activity history reattachment, spot-checks custom field values, and validates pipeline stage naming. Any field mapping corrections, stage value adjustments, or custom field type changes happen in staging before production migration begins. We do not proceed to production until the customer signs off on the staging migration report.

  4. Attachment extraction and file re-upload preparation

    We extract GoldMine attachments in parallel with record data. Database BLOBs are decoded and written to local storage with their original filenames and MIME types preserved. Network-share path attachments are fetched at the path referenced in the GoldMine record; any path returning a file-not-found error is flagged with the customer for resolution before cutover. Large attachments over 25MB are noted separately; the customer re-uploads these manually post-migration or transfers them via Odoo's document management app after cutover. We pre-stage all extracted files and validate counts against the GoldMine attachment reference table before production import.

  5. Production migration in dependency order

    We run production migration in dependency order: Odoo custom fields and pipelines first (schema deployment), then res.partner company records, then res.partner contact records with parent_id resolved to company partners, then crm.lead opportunities with stage_id and partner_id resolved, then mail.message activity history via chunked XML-RPC calls with parent-record lookup via the GoldMine RECID-to-external-ID map, then calendar.event appointments, then ir.attachment records, then crm.tag group membership, then project.project and project.task records. Each phase emits a row-count reconciliation report against the GoldMine source count before the next phase begins. Any records rejected during XML-RPC writes are logged with error reasons for a correction pass.

  6. Cutover, final delta, and Workflow rebuild handoff

    We freeze GoldMine writes during the cutover window (typically a 48-72 hour period), run a final delta migration of any records modified during the migration window, then set Odoo as the system of record. We deliver the Workflow and automation inventory document listing every GoldMine workflow rule and its Odoo Studio or server action equivalent for the customer's admin to rebuild post-migration. We support a one-week hypercare window where we resolve record reconciliation issues raised by the customer's team. We do not rebuild GoldMine automations as Odoo server actions inside the migration scope; that work is a separate engagement or an internal admin task using the delivered inventory.

Platform deep dives

Context on both ends of the pair

GoldMine logo

GoldMine

Source

Strengths

  • Decades of accumulated contact and communication history in a single system.
  • Offline desktop operation with local database for intermittent connectivity environments.
  • Highly customizable database fields and tabs without requiring developer resources.
  • Strong Outlook email and calendar synchronization via COM-based integration.
  • Perpetual license ownership model gives organizations control over upgrade cycles.

Weaknesses

  • No modern REST API—all integrations rely on COM, DLL, or XML API methods that require Windows infrastructure.
  • End-of-life and end-of-support scheduled for April 2026, making new deployments inadvisable.
  • Outdated desktop-first UX that does not match modern SaaS CRM expectations for mobile, UI, or speed of use.
  • Limited native marketing automation compared to HubSpot, Salesforce, or Zoho.
  • Attachment and document management is file-system-dependent, not cloud-native.
Odoo CRM logo

Odoo CRM

Destination

Strengths

  • Modular open-source architecture lets teams start with CRM and add ERP apps as needs grow, all sharing one PostgreSQL database.
  • Free Community edition with no contact limits and full source code access means zero licensing cost for evaluation and small deployments.
  • Drag-and-drop Kanban pipeline with AI lead scoring gives a visual, prioritized view of the sales funnel without requiring custom configuration.
  • Native integrations with email, live chat, SMS, VoIP, WhatsApp, and social media feed all inbound leads into a single unified inbox.
  • Active Odoo Community Association (OCA) maintains dozens of community-maintained modules on GitHub for extended functionality.

Weaknesses

  • Gmail and email integration reliability is a recurring complaint — threads drop and conversations scatter across inboxes, disrupting sales team workflows.
  • Enterprise edition pricing stacks quickly: multiple apps at per-user rates ($25–$50/user/month) plus Odoo.sh hosting costs more than many SMBs anticipate.
  • Setup and configuration complexity increases significantly once custom fields, automation rules, and multiple installed modules are in play.
  • Odoo.sh trial databases run on a version (e.g., 18.3) that is not directly migratable to Odoo.sh, blocking the assisted migration path Odoo advertises.
  • Version upgrades between major Odoo releases (e.g., 17→18) frequently break custom module view definitions and XPath expressions, requiring manual remediation.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across GoldMine and Odoo CRM.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    GoldMine: Not publicly documented—rate limiting is not formally specified for GoldMine's XML API or COM-based integrations.

  • Data volume sensitivity

    B

    GoldMine doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your GoldMine to Odoo CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about GoldMine to Odoo CRM data migrations

Answers to the questions buyers ask most during GoldMine to Odoo CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your GoldMine to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Straightforward migrations under 10,000 contacts with no GoldMine Premium Projects module and moderate activity history complete in four to six weeks. Migrations with GoldMine's Project module, large communication histories (100,000+ activity records), extensive custom fields across extended tables, or a SQL Server backend requiring direct database reads move to ten to sixteen weeks because of schema discovery, MIME-encoded history normalization, and batch chunking through Odoo's XML-RPC. The GoldMine EOL deadline in April 2026 adds urgency; scoping should begin no later than Q3 2025 to allow production cutover before Q1 2026.

Adjacent paths

Related migrations to explore

Ready when you are

Move from GoldMine.
Land in Odoo CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day