CRM migration

Migrate from Merlin to Twenty CRM

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

Merlin logo

Merlin

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

60%

6 of 10

objects map 1:1 between Merlin and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Merlin is an AI assistant extension, not a CRM, which makes this migration structurally different from most CRM-to-CRM moves. Merlin stores conversation threads, uploaded documents (PDF, PPT, Word), and generated outputs in user-scoped storage with no public API. We guide customers through the manual export of their Merlin content, perform document-level entity extraction to surface person and company names, and map the extracted entities into Twenty's People, Companies, and Custom Objects. Conversation history migrates as Note records or file attachments depending on length. User account metadata (email, plan tier) maps to Twenty Members. Because Twenty is a self-hosted open-source CRM with a TypeScript data model and a custom object builder in Settings, the destination schema must be provisioned before import. Workflows, automations, and sequences do not exist in Merlin and therefore do not migrate; any automation logic discovered in document artifacts is inventoried for manual rebuild in Twenty.

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

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Merlin objects map to Twenty CRM

Each row shows how a Merlin object lands in Twenty CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Merlin

Uploaded Documents

maps to

Twenty CRM

Attachments on Companies or People

lossy
Mapping required

PDF, PPT, and Word files uploaded in Merlin Document Chat migrate as file attachments in Twenty. We preserve file binary content, original filename, and upload timestamp. Each attachment is linked to a parent Company or People record that we create during entity extraction. Free-tier Merlin documents (capped at 10 pages) are flagged separately so customers understand if truncation occurred during the original upload. Pro-tier unlimited-length uploads migrate in full.

Merlin

Document Entity: Person

maps to

Twenty CRM

People

1:many
Fully supported

Merlin Document Chat does not store contacts natively. We perform document-level parsing on all uploaded PDFs, presentations, and Word files to extract person names, email addresses, job titles, and phone numbers. Each extracted entity becomes a Twenty People record. Multiple mentions of the same person across documents deduplicate by email or fuzzy name match and consolidate into a single People record with a source_documents field listing each source file.

Merlin

Document Entity: Company

maps to

Twenty CRM

Companies

1:many
Fully supported

Company names and domains extracted from Merlin uploaded documents map to Twenty Companies. We extract company domain from email addresses found in documents, match against known company name patterns, and create a Companies record per unique organization. The Twenty Companies domain field is populated where extractable from document content.

Merlin

Conversation Thread

maps to

Twenty CRM

Note

1:1
Fully supported

Merlin chat sessions migrate as Twenty Note records. Each session becomes a Note with the conversation transcript as body text, the session start timestamp as ActivityDate, and a link to the most relevant Company or People record via ContentDocumentLink. Sessions exceeding Twenty's Note body limit split into sequential Notes with part numbering. Model attribution metadata (which AI model responded per turn) is not exported from Merlin and is flagged as permanently unavailable.

Merlin

Document Chat Q&A Pairs

maps to

Twenty CRM

Note

1:1
Fully supported

Merlin Document Chat Q&A pairs (the question asked against a specific uploaded file and the AI-generated answer) migrate as Twenty Notes with a tag indicating the source file. We preserve the question text, answer text, and source document reference. This allows sales reps to review the document analysis that informed past decisions without re-uploading the file to Twenty.

Merlin

User Account

maps to

Twenty CRM

Members

1:1
Fully supported

Merlin account metadata (email, plan tier, usage quota) from account settings maps to Twenty Members. The Merlin Owner assignment for conversations is not a first-class concept, so owner attribution on Notes relies on session export timestamps matched against the account holder's email. Teams with multiple Merlin users require separate account exports and individual Member provisioning in Twenty before migration.

Merlin

Image Generation Output

maps to

Twenty CRM

Attachments on Companies or People

1:1
Fully supported

Merlin image generation outputs migrate as file attachments in Twenty. We preserve the PNG or image binary, creation timestamp, and prompt text as a description field. Image attachments link to the relevant Company or People record if the prompt context allows association; otherwise they attach to a general Workspace or Opportunity record.

Merlin

Document Entity: Custom

maps to

Twenty CRM

Custom Object

lossy
Fully supported

Merlin has no custom property schema. Any structured data that appears consistently across uploaded documents (e.g., project codes, contract values, product SKUs) is identified during entity extraction and mapped to a Twenty Custom Object created in Settings before migration. We document the field names, data types, and source documents for each custom entity so the customer's admin can configure the schema in Twenty's Data Model section.

Merlin

Pipeline Stage

maps to

Twenty CRM

Not applicable

1:1
Fully supported

Merlin has no pipeline, deal, or opportunity objects. We do not migrate pipeline stages because none exist in the source. If the customer has deal context embedded in Merlin documents, we extract deal-related entities (deal name, value, stage name, expected close date) as Custom Object records in Twenty rather than native Opportunity records.

Merlin

Tags

maps to

Twenty CRM

Not applicable

1:1
Not supported

Merlin does not expose a tagging or labeling system accessible via export. We cannot migrate structured tag metadata. Any labels visible in Merlin's UI are documented as a manual reference for the customer to recreate in Twenty's tagging or topic features post-migration.

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

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

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. Migration requires manual export from the Merlin dashboard UI or, for power users, parsing browser local storage. We guide customers through the manual export process step by step, capturing conversation JSON, file binaries, and account metadata before account closure. Any export that relies on browser local storage is fragile and must be validated before the source session expires.

  • Entity extraction quality depends on document formatting

    Merlin Document Chat stores the uploaded files and Q&A pairs but not the extracted entities. We perform document parsing on exported files to surface person names, companies, and email addresses. Extraction accuracy varies with document formatting: scanned PDFs, tables, and non-standard layouts reduce entity recall. We run a confidence score per extracted record and flag low-confidence entities (below 80% match) for manual review before the final import into Twenty.

  • Document upload limits on Free tier may have truncated content

    Merlin Free tier limits uploads to 10 pages. Documents uploaded under a Free account may have been silently truncated during the original upload, meaning the exported file itself is incomplete. We flag any exported document over 10 pages as potentially truncated if the account tier at upload time is unknown. Pro accounts have unlimited document length and migrate in full.

  • Conversation metadata is not exported from Merlin

    Merlin export covers conversation text and timestamps but excludes per-turn model attribution, token usage, and latency metadata. For customers who need to audit AI decision trails or track per-model usage costs, this metadata is permanently unavailable. We flag this gap during scoping and recommend capturing model-attribution screenshots before account closure if auditability is a compliance requirement.

  • Twenty workspace must be provisioned before import

    Twenty requires all custom objects and custom fields to exist before CSV import because the CSV importer creates records, not fields. We create the destination schema (People fields, Companies fields, any Custom Objects) in Twenty Settings before any import begins. If the customer uses a self-hosted Twenty instance, we coordinate with their infrastructure team to ensure database access for the migration user.

Migration approach

Six steps for a successful Merlin to Twenty CRM data migration

  1. Manual export scoping and session capture

    We guide the customer through a structured Merlin export process: dashboard conversation export (JSON), document folder download (PDF, PPT, Word files), and account settings capture (email, plan tier, usage). We provide a pre-export checklist that includes confirming account tier (Free or Pro), identifying all session threads, and ensuring all files to be migrated are still accessible in the Merlin UI. This step cannot be automated and must be completed before account closure.

  2. Document parsing and entity extraction

    We run all exported documents through a parsing pipeline to extract person names, company names, email addresses, phone numbers, job titles, and any recurring custom entities (project codes, contract values, SKUs). Entities are deduplicated across documents using email as the primary key for people and domain for companies. We produce a confidence score per entity and flag low-confidence extractions for customer review.

  3. Twenty workspace provisioning

    We configure the destination Twenty workspace before any data import. This includes creating any Custom Objects in Settings, adding custom fields to the standard People and Companies objects, configuring field types and required constraints, and inviting all team Members. If the customer self-hosts Twenty, we coordinate schema deployment on their infrastructure. This step mirrors Twenty's documented requirement that fields must exist before import.

  4. Entity import and deduplication

    We import the extracted People and Companies entities into Twenty via CSV. Person records map to Twenty People with email, name, job title, phone, and address fields. Company records map to Twenty Companies with name, domain, industry, and address fields. We run a pre-import duplicate check against any existing Twenty records using email and domain as dedupe keys. Document attachments upload separately and link to the parent Company or People record via ContentDocumentLink.

  5. Conversation history migration as Notes

    Merlin conversation threads migrate as Twenty Note records, one Note per session. Thread text exceeding Twenty's Note body limit splits into sequential Notes with a part indicator. Each Note receives a ContentDocumentLink to the most relevant Company or People record based on session context. Document Chat Q&A pairs migrate as Notes with a tag referencing the source file. Image generation outputs attach as file blobs with prompt text as description.

  6. Cutover, validation, and inventory handoff

    We freeze writes on the Merlin source, run a final delta capture of any new conversations or documents since the initial export, and apply the delta to Twenty. We deliver a row-count reconciliation report (People imported, Companies imported, Notes created, attachments uploaded) and a written inventory of any extracted custom entities that require schema configuration in Twenty's Data Model. The customer's admin rebuilds any workflow or sequence logic documented from conversation context.

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.
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

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 Twenty 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 Twenty 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 Twenty CRM data migrations

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

Can't find your answer?

Walk through your Merlin to Twenty 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 four weeks for customers with fewer than 500 documents and a straightforward entity corpus. Migrations with large document volumes (over 2,000 files), complex multi-format document sets (scanned PDFs, password-protected files), or an entity taxonomy requiring multiple Custom Objects move to five to eight weeks. The manual export step on the Merlin side typically takes one to three days of the customer's time and is the critical path item.

Adjacent paths

Related migrations to explore

Ready when you are

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