CRM migration

Migrate from Merlin to Odoo CRM

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

Merlin logo

Merlin

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

42%

5 of 12

objects map 1:1 between Merlin and Odoo CRM.

Complexity

BStandard

Timeline

2-3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Merlin to Odoo CRM is an atypical migration because Merlin is an AI assistant, not a CRM. It does not store contacts, companies, or deals as structured objects. All CRM data must be reconstructed from Merlin's conversation history and uploaded documents through entity extraction and manual record creation. We guide customers through the manual dashboard export process since Merlin has no public API, parse conversation threads to identify person and company names, extract entities from uploaded PDF, Word, and PowerPoint files, and create corresponding Contact, Account, and Opportunity records in Odoo CRM. We preserve file attachments on the correct parent records and flag that Merlin's conversation metadata (model attribution, token counts) does not export, that no tagging system migrates, and that any business context embedded in documents must be manually validated by the customer's team post-migration. We do not migrate automations, workflows, or sequences because Merlin has no equivalent objects.

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

Merlin logo

Merlin

What's pushing teams away

  • Usage caps on the free and Pro tiers create friction—users report hitting daily query limits mid-workday, prompting migration to platforms with higher or unmetered quotas.
  • Some users describe the initial setup and extension configuration as complicated, particularly when integrating with specific browsers or enterprise environments.
  • Privacy concerns arise when uploading sensitive business documents to a third-party AI platform, causing regulated-industry users to seek on-premise or compliance-certified alternatives.
  • The platform's lack of native integrations with enterprise tools like Slack, Notion, or Salesforce means teams relying on those ecosystems must work around gaps, driving some to more connected AI assistants.

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 Merlin objects map to Odoo CRM

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

Merlin

Conversation Thread

maps to

Odoo CRM

Contact or Lead (entity extraction)

lossy
Fully supported

Merlin stores chat threads but has no CRM schema. We parse conversation text to identify person names, email addresses, and company references. Each distinct person identified in conversations becomes either an Odoo Contact (if company affiliation is established) or a Lead (if no company link is found). We preserve the original conversation text as an Odoo Note linked to the created Contact or Lead. Email addresses found in conversations are validated and mapped to the email field on Contact/Lead. Name parsing splits first and last name where possible; ambiguous extractions go to a manual validation queue for the customer's team to confirm before final creation.

Merlin

Uploaded Document (PDF, Word, PowerPoint)

maps to

Odoo CRM

Contact or Account (attachment)

lossy
Fully supported

Merlin's Document Chat uploads are stored as files in user-scoped storage. Free tier limits uploads to 10 pages; Pro allows unlimited length. We preserve the original file binary, filename, and upload date as an Odoo ir.attachment record. The attachment is linked to the most relevant Contact or Account based on entity extraction from the document text. Documents that reference multiple companies are attached to the primary Contact or Account identified in the document and noted in the attachment description for admin review.

Merlin

Document Chat Q&A Pairs

maps to

Odoo CRM

Note

1:many
Fully supported

Each Document Chat session in Merlin includes the uploaded file and the Q&A pairs generated during the session. We preserve these as Odoo Note records with the original question as the Note title and the AI-generated answer as the body. The Note is linked to the Contact or Account associated with the document. This captures the business context that was surfaced during the Merlin session even though the Q&A content does not map to a standard CRM field.

Merlin

User Account Metadata

maps to

Odoo CRM

User

1:1
Fully supported

Merlin account metadata (email address and plan tier) is retrieved from account settings during the manual export. This information is used to map the Merlin user to a corresponding Odoo User record by email match. If the customer plans to continue using Merlin alongside Odoo for document analysis, the Odoo User record enables the admin to assign migrated entity ownership correctly. Note that Merlin does not support team workspaces, so any multi-user migration requires the customer to define role and territory assignments for Odoo User records that did not exist as structured concepts in Merlin.

Merlin

Image Generation Output

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Merlin image generation outputs are stored as image files in user-scoped storage. We preserve the file binary, original generation timestamp, and file type as an Odoo ir.attachment record. These are attached to the relevant Contact, Account, or Opportunity based on the conversation context or document context in which the image was generated. Image metadata (prompts used, model attribution) is not available in Merlin export and is flagged as permanently unavailable.

Merlin

N/A (no contacts in Merlin)

maps to

Odoo CRM

Contact

lossy
Fully supported

Merlin does not maintain a contacts database. Any Contact records created in Odoo are the result of entity extraction from conversation history and uploaded documents, not a direct object migration. We perform document-level entity extraction as a supplementary migration step to identify and structure any person names, email addresses, and phone numbers found in uploaded files. The customer reviews and approves all extracted contacts before creation in Odoo.

Merlin

N/A (no accounts in Merlin)

maps to

Odoo CRM

Account

lossy
Fully supported

Merlin does not store company records. Any Account records created in Odoo are extracted from conversation text and document content where company names, domains, or business context is referenced. We use domain-name parsing from email addresses and document metadata to supplement company name extraction. Accounts are created in Odoo before Contacts so that Contact-Account lookups are satisfied at insert time.

Merlin

N/A (no pipeline in Merlin)

maps to

Odoo CRM

Opportunity

lossy
Fully supported

Merlin has no deal or opportunity objects. Any Opportunity records in Odoo CRM must be manually defined by the customer based on business context recovered from conversation history and documents. We provide a structured template for the customer to document which conversations or documents reference deal values, pipeline stages, or sales milestones, and we create the corresponding Odoo Opportunity records from that documentation. This step requires significant customer involvement because deal data is not structurally stored in Merlin.

Merlin

N/A (no workflow in Merlin)

maps to

Odoo CRM

Automated Actions (Odoo Studio)

1:1
Fully supported

Merlin has no workflow, automation, or sequence objects. Odoo CRM's Automated Actions cannot be populated from source data because there is no source equivalent. We deliver a written inventory of Odoo CRM's available automation capabilities and map each to the customer's documented business process requirements, but the customer rebuilds automations in Odoo Studio as a post-migration configuration step.

Merlin

N/A (no tags in Merlin)

maps to

Odoo CRM

Tags

1:1
Fully supported

Merlin does not expose a tagging or labeling system that is accessible via export. We cannot migrate tags as structured metadata because no tags exist in the source platform. If the customer used informal tagging conventions within conversation titles or document filenames, we document those patterns and propose a Tags strategy in Odoo CRM during scoping.

Merlin

N/A (no custom properties in Merlin)

maps to

Odoo CRM

Custom Fields

1:1
Fully supported

Merlin does not support user-defined properties or custom fields. Any structured data beyond conversation text and file blobs is not accessible for export. We cannot migrate custom properties because none exist. If the customer needs custom fields in Odoo for data that was conceptually tracked in Merlin conversations, we define those fields in Odoo Studio during the migration scope and document the mapping for the customer's admin to populate.

Merlin

N/A (no engagements in Merlin)

maps to

Odoo CRM

Task and Event

lossy
Fully supported

Merlin stores no call, email, meeting, or task records as structured objects. Any business activities must be documented by the customer and manually created in Odoo CRM. We provide a CSV template that maps date, type, subject, and related Contact or Account for the customer to populate from their documented activity history. Odoo Tasks and Events are created from this template as a post-migration data entry step.

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.

Merlin logo

Merlin gotchas

High

No public API for automated export

Medium

Document upload limit differences by tier are migration-critical

Medium

Conversation metadata is not exported

Low

No contacts or CRM objects means context must be rebuilt

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

  • Merlin has no public API for automated export

    Merlin does not publish a REST or GraphQL API for accessing conversation history, uploaded documents, or user settings programmatically. Migration requires manual export from the dashboard UI or direct parsing of browser local storage, which is not officially supported. We guide customers through the manual export process, capturing conversation text, timestamps, and file binaries. The customer must perform the dashboard export while the account is active; account closure eliminates access to the export interface. We cannot guarantee a complete export if the customer has not used the dashboard export feature before scoping begins.

  • All CRM records must be reconstructed from unstructured content

    Merlin does not store contacts, companies, or deals. Every Contact, Account, and Opportunity in Odoo CRM after migration is the result of entity extraction from conversation text and uploaded documents, not a direct record migration. Entity extraction accuracy depends on name clarity, email address presence, and company name explicit mention in source content. Names embedded in documents without email addresses require manual disambiguation. We cannot guarantee complete entity coverage; any person or company referenced implicitly but not named explicitly in Merlin conversations or documents will not appear in Odoo CRM without manual customer input.

  • Conversation metadata and model attribution are not exported

    Merlin's export covers conversation text and timestamps but does not include per-turn model attribution (which AI model answered which turn), token usage, or latency metadata. For customers who need to audit AI decision trails or track usage costs, this metadata is permanently lost in export. We flag this gap during scoping and advise customers to capture model-attribution screenshots if auditability or cost attribution is a compliance or billing requirement. The conversation text itself migrates as Odoo Note content without any AI model attribution.

  • Document upload limits differ by tier and may affect export completeness

    Free Merlin users are limited to document uploads of 10 pages. Pro users get unlimited document length but are subject to daily query caps. When exporting from Merlin, we capture the file content that exists in user storage. Documents that exceeded the free-tier page limit and were not re-uploaded under a Pro subscription will not be fully present in the export. We alert on any documents that may have been truncated during original upload and advise the customer to re-upload complete versions before export if those documents contain critical business context.

  • No tagging system migrates; informal naming conventions require manual translation

    Merlin does not expose a tagging or labeling system accessible via export. We cannot migrate tags as structured metadata because none exist as structured objects. If the customer used informal naming conventions in conversation titles or document filenames to simulate tagging (for example, prepending 'Legal-' or 'Sales-Q4' to conversation names), we document those patterns during export and propose a corresponding Tags strategy in Odoo CRM. The customer defines the final tag taxonomy as a post-migration configuration step.

Migration approach

Six steps for a successful Merlin to Odoo CRM data migration

  1. Customer-guided manual export from Merlin dashboard

    We schedule a guided export session with the customer to capture all available data from the Merlin dashboard. This includes exporting conversation history (one ZIP file per conversation thread), downloading all uploaded documents from Document Chat (PDF, Word, PowerPoint files), and capturing account metadata (email, plan tier, usage quota) from account settings. Because Merlin has no public API, the customer performs the dashboard export while we provide step-by-step guidance and validate that all expected conversations and files are included in the export package. We verify file counts and conversation counts against the customer's documented estimate before proceeding.

  2. Entity extraction and document parsing

    We run entity extraction against all conversation text and uploaded documents to identify person names, email addresses, phone numbers, company names, and domain references. Extraction uses pattern matching for email addresses and phone numbers (high-confidence), named-entity recognition for person and company names (medium-confidence), and domain parsing from email addresses to suggest company associations. The extraction output is a draft Contact and Account candidate list with source provenance (which conversation or document each entity was found in). The customer reviews and approves the candidate list; we do not create any CRM records without customer sign-off on entity extraction results.

  3. Schema design and Odoo environment preparation

    We review the customer's Odoo CRM environment and design the destination schema. This includes activating the CRM app in Odoo, configuring the pipeline stages (default Odoo stages or custom stages defined by the customer), defining any required custom fields on Contact and Account (for data that the customer tracked in Merlin conversations but that has no standard Odoo field), and setting up Odoo Users to correspond with the Merlin account holders being migrated. If the customer uses Odoo Community Edition, we ensure the CRM module is installed and configured. If using Odoo Online or Odoo.sh, we verify access permissions and API credentials for the attachment migration step.

  4. Sandbox validation and entity reconciliation

    We run a full migration into an Odoo staging or sandbox environment (a second Odoo database or a pre-production snapshot) using the extracted conversation content and document corpus. The customer's team reviews the resulting Contact list, Account list, and any Opportunity records created from manual deal documentation. We reconcile the entity counts against the extraction candidate list, flag any duplicates (same person or company found in multiple conversations), and identify any entities that were implied but not explicitly named in Merlin content requiring customer clarification. Sign-off on the sandbox validation is required before production migration begins.

  5. Production migration in dependency order

    We run production migration in the following order: Accounts first (from extracted company names), then Contacts (with partner_id linking to Account), then Opportunities (from documented deal context), then Attachments (uploaded documents linked to the relevant Contact or Account via ir.attachment records), then Notes (conversation text and Document Chat Q&A pairs linked to parent records). Each phase emits a row-count reconciliation report. Attachments use Odoo's ir.attachment model with the res_model set to the target object (res.partner, res.partner, or crm.lead) and res_id set to the target record ID. Notes are created as Odoo Note records with the note message subtype.

  6. Cutover, validation, and automation rebuild handoff

    We freeze the Merlin account from active document uploads during the cutover window, run a final delta migration of any conversations or documents added since the initial export, and mark Odoo CRM as the system of record for migrated business data. We deliver a written document that inventories Odoo CRM's automation capabilities (Automated Actions, Studio workflows, server actions) mapped to the customer's documented business process requirements, along with a recommended rebuild approach for any automations the customer wishes to implement. We do not rebuild automations inside the migration scope. We support a five-business-day post-migration window for reconciliation issues raised by the customer's team.

Platform deep dives

Context on both ends of the pair

Merlin logo

Merlin

Source

Strengths

  • Single extension surfaces 70+ AI models without requiring multiple subscriptions or browser tabs.
  • Document Chat supports PDF, PowerPoint, and Word with Q&A capabilities across all three formats.
  • Google Search integration delivers AI summaries inline with web results, supporting continuous research workflows.
  • Image generation is built in, reducing the need for a separate AI image tool for basic use cases.
  • Free tier provides functional access to core features without requiring credit card information upfront.

Weaknesses

  • No public API documented for programmatic access, automation, or third-party integration, limiting enterprise and developer adoption.
  • Usage-based pricing at $100/month equivalent on Pro tier does not align with flat-seat pricing expectations of SaaS buyers.
  • No native CRM, helpdesk, or project management data model—Merlin does not store contacts, deals, tickets, or tasks as structured objects.
  • Document upload limits and daily query caps are not clearly communicated in the interface, leading to mid-session interruptions.
  • No support for team collaboration features such as shared workspaces, team-wide usage dashboards, or role-based access controls.
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 manual workaround.

B

Overall complexity

Standard migration

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

  • Object compatibility

    B

    1 of 8 objects need a manual workaround.

  • 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

    Merlin: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Merlin 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 Merlin to Odoo CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between two and three weeks for accounts with fewer than 200 conversations, fewer than 100 uploaded documents, and straightforward entity extraction (clear email addresses and company names in conversation text). Projects with large document archives (hundreds of PDFs and presentations) requiring entity parsing, duplicate resolution across multiple documents, and manual Contact validation extend to four to eight weeks. The primary timeline driver is customer review and approval of the entity extraction candidate list; we cannot create Contact or Account records without sign-off because entity extraction accuracy requires human judgment on ambiguous names.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Merlin.
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