CRM migration

Migrate from Contlo to Twenty CRM

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

Contlo logo

Contlo

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

82%

9 of 11

objects map 1:1 between Contlo and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Contlo to Twenty CRM is a migration from a marketing-automation-first platform with AI-native capabilities to an open-source CRM with full data ownership. Contlo organizes its data model around Contacts and Segments as the primary targets, with automated journey flows tied to behavioral triggers; Twenty uses a standard CRM schema centered on People, Companies, and Opportunities with an Activity timeline. We map Contlo Contacts 1:1 to Twenty People, Contlo Companies to Twenty Companies, and Contlo Deals to Twenty Opportunities, preserving segment membership as tag strings on each People record. The Contlo Brand AI Model cannot migrate and requires manual reconfiguration in Twenty or an alternative AI integration. Automations, campaign templates, and Voice Agent configurations are extracted as structured data and handed off as a written rebuild guide; they do not migrate as executable logic.

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

Contlo logo

Contlo

What's pushing teams away

  • The Free tier forces a 'Powered by Contlo' link in the footer, which conflicts with brand-consistent customer touchpoints and forces teams toward paid tiers earlier than expected.
  • Feature overload when enabling all capabilities creates interface complexity, making it difficult for small teams to manage automations without feeling overwhelmed.
  • Contlo is a relatively small company (26 employees, $14M funding) which raises concerns about long-term platform stability compared to larger CRM competitors.
  • Customers report inconsistent customer support response times as the product scales, particularly when troubleshooting automation logic or API integrations.

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 Contlo objects map to Twenty CRM

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

Contlo

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

Contlo Contacts map directly to Twenty People. Standard properties (email, firstName, lastName, phone, address) map to Twenty Person fields by field name. Custom properties on Contlo Contacts migrate as key-value pairs stored in Twenty's custom fields or as a JSON blob in a notes field if no direct type match exists. Segment memberships are preserved as tag strings on the Person record.

Contlo

Segment

maps to

Twenty CRM

Tag (on Person)

lossy
Fully supported

Contlo Segments are behavioral groupings used to target automations. We preserve each Contact's segment membership as tag strings on the Twenty Person record. Segment rules (AND/OR filter logic, behavioral conditions) do not migrate as executable logic; we document the rule structure as a written handoff so the customer can rebuild segmentation in Twenty using its filter and tag-based grouping capabilities.

Contlo

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Contlo Company records map 1:1 to Twenty Companies. Domain name from Contlo becomes the Website field on the Twenty Company record and is used as a dedupe key during import. Companies are created before Person import so that the Person-Company link is satisfied at insert time.

Contlo

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Contlo Deals map to Twenty Opportunities. The deal stage name maps to a Twenty pipeline stage. Closed-won and closed-lost reason properties from Contlo custom fields migrate to Twenty Opportunity custom fields. Note that Twenty has no automated incremental numbering system for Opportunities as of current release — we assign sequential IDs from a migration-generated range and document the mapping for the customer's admin to reconcile against any naming conventions.

Contlo

Automation (journey flows)

maps to

Twenty CRM

Workflow documentation (rebuild required)

1:1
Fully supported

Contlo Automations are event-triggered, multi-step journey flows with conditional branching and time-delay actions. Twenty's workflow capabilities are in active development and do not currently replicate Contlo's automation graph structure. We extract the full automation graph as structured JSON data — trigger type, conditions, action steps, delay rules — and deliver it as a written rebuild guide. The customer's admin or a certified Twenty partner rebuilds each automation.

Contlo

Campaign (Email/SMS)

maps to

Twenty CRM

Task or Note documentation

1:1
Fully supported

Contlo Campaign records contain message templates, scheduling metadata, and delivery history. Template content migrates as Note records linked to the associated Person or Opportunity. Delivery logs, open/click counts, and conversion metrics export as a time-series dataset and are delivered as a CSV alongside the Twenty import for the customer to reference in reporting. The campaign scheduling logic is not executable in Twenty and is documented for manual rebuild.

Contlo

Voice Agent

maps to

Twenty CRM

Custom Field documentation (rebuild required)

1:1
Fully supported

Contlo Voice Agent configurations, routing logic, and voice settings extract as structured data. The agent logic itself depends on Contlo's proprietary AI infrastructure and cannot be migrated. We deliver a written Voice Agent inventory with configuration details so the customer can evaluate Twenty-compatible voice integration options (e.g., external telephony providers) post-migration.

Contlo

Analytics / Event History

maps to

Twenty CRM

CSV time-series dataset

1:1
Mapping required

Event-level data (opens, clicks, conversions, engagement timestamps) exports from Contlo as CSV. We preserve this as a time-series dataset linked to Person IDs so the destination can display historical engagement context. The dataset does not become native Twenty records but is delivered alongside the migration for import into a reporting or BI tool.

Contlo

Custom Properties

maps to

Twenty CRM

Custom Fields on Person or Company

lossy
Mapping required

Contlo custom fields on Contacts and Companies map to equivalent Twenty custom fields created during schema setup. We pre-create the destination custom fields with type-matched data types before any data import. Any Contlo custom property without a direct Twenty type equivalent is stored in a flexible text field with the original field name preserved as a label.

Contlo

Owner

maps to

Twenty CRM

User

1:1
Fully supported

Contlo Owners map to Twenty User records by email match. Any Contlo Owner without a matching Twenty User goes to a reconciliation queue for the customer's admin to provision before record import resumes.

Contlo

Brand AI Model Configuration

maps to

Twenty CRM

Not migratable

1:1
Not supported

Contlo's brand-owned generative AI Model is a proprietary platform artifact built from brand content and campaign training data. It lives in Contlo's infrastructure and cannot be exported as a portable artifact. We document this as a manual reconfiguration action item in the migration handoff. The customer must re-train or re-create an equivalent model in their chosen AI provider post-migration; Twenty CRM has no native generative AI layer.

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.

Contlo logo

Contlo gotchas

Medium

Free tier enforces 'Powered by Contlo' branding

Medium

Contact volume limits are tier-gated

High

Brand AI Model is non-portable

Low

Automation branching logic may not translate 1:1

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

  • Contlo Brand AI Model is not a portable artifact

    Contlo's core differentiator is the brand-owned generative AI Model trained on the customer's content and campaign data. This model cannot be exported, transferred, or replicated in Twenty CRM. We make this explicit during pre-migration discovery, document it as a mandatory manual reconfiguration step, and flag any AI-dependent automations in Contlo that will lose their intelligent routing or content-generation logic after cutover. The customer must plan for AI reconfiguration as a post-migration activity using an external AI provider or manual content creation.

  • Twenty does not yet have a full automation/workflow engine

    Contlo's no-code automation builder with behavioral segmentation, conditional branching, and time-delay triggers has no direct equivalent in Twenty CRM as of current release. Twenty's workflow capabilities are in active development and do not replicate Contlo's trigger-action model. We extract every Contlo automation as structured data and deliver a written rebuild guide, but the customer should expect to manually rebuild complex journey flows or engage a certified Twenty partner for custom workflow development. This is a significant scope gap for teams heavily invested in Contlo automation.

  • File attachments excluded from CSV exports require manual re-upload

    Twenty's CSV import path explicitly excludes file attachments. Contlo's platform supports file attachment uploads on Contact and Company records. We flag every record with an attachment during discovery and deliver a file inventory list as a separate migration artifact. The customer's admin must manually re-upload attachments post-migration or use Twenty's API to load them in a separate step. Attachments that are critical to deal context (contracts, proposals) should be prioritized during the re-upload phase.

  • No automated incremental numbering for Opportunities

    Reddit reviewers and Twenty's issue tracker document that Twenty currently lacks an automated incremental numbering system for Opportunities or project IDs. Teams migrating from Contlo Deals that rely on sequential numbering will need to either accept manual ID assignment or implement a custom numbering solution. We assign migration-scope sequential IDs during import and document the mapping table so the customer's admin can reconcile against any existing numbering conventions.

  • Self-hosted database migrations can encounter startup failures

    GitHub issue reports for Twenty document database migration failures during self-hosted version updates, particularly when upgrading across multiple minor versions or running on specific PostgreSQL versions. Teams running self-hosted Twenty should validate database integrity post-migration by running Twenty's built-in data consistency checks before declaring the migration complete. We recommend using Twenty Cloud for the initial migration period if the customer's team lacks DevOps capacity to manage self-hosted migration troubleshooting.

Migration approach

Six steps for a successful Contlo to Twenty CRM data migration

  1. Discovery and Contlo portal audit

    We audit the source Contlo portal across tier (Free/Starter/Growth/Enterprise), total contact count, segment definitions, active automations, campaign history volume, custom properties on Contacts and Companies, Voice Agent configurations, and any API export capabilities available on the current plan. We cross-check contact count against the current plan limit to flag any overage before import begins. The discovery output is a written migration scope document listing every object, the estimated record count, and any known migration blockers.

  2. Schema design and custom field setup in Twenty

    We design the destination schema in Twenty. This includes creating any custom fields on People and Companies to receive Contlo custom properties, setting up Company records to receive Contlo Company data, configuring pipeline stages to map from Contlo deal stages, and defining tag conventions for segment membership preservation. Schema setup happens in Twenty's UI before any data import begins.

  3. Contlo data export and transformation

    We export Contact, Company, and Deal records from Contlo via the platform's available export mechanisms. We transform the export into Twenty-compatible CSV format, apply the segment membership as tag strings on Person records, resolve Owner references by email, and map custom properties to their destination custom fields. Any Contlo custom property without a direct field equivalent is flagged and stored in a catch-all text field. The transformation output is a reconciliation report showing record counts before and after transform.

  4. Twenty import and parent-record resolution

    We run the import into Twenty in dependency order: Companies first (to establish the link), then People (with Company link resolved), then Opportunities (with Person and Company links resolved). Each phase emits a row-count reconciliation report. We validate that Person-Company associations are intact, that segment tags appear on the correct People records, and that custom property values populated correctly. Any record with a missing required field is held in a skip report for the customer's admin to resolve before retry.

  5. Automation and campaign handoff documentation

    We extract every Contlo Automation as structured JSON data including trigger type, conditional branches, action steps, and delay rules. We extract campaign template content and delivery metadata as a separate export. We deliver both as written documents: an Automation Rebuild Guide listing each Contlo automation with a recommended Twenty workflow equivalent, and a Campaign Template inventory with content ready to paste into Twenty Notes or an external email tool. Voice Agent configurations are delivered as a separate Voice Agent Inventory document for AI reconfiguration planning.

  6. Cutover, validation, and file attachment re-upload

    We freeze new Contlo writes during cutover, run a final delta migration of any records modified during the migration window, then mark Twenty as the system of record. We deliver the file attachment inventory and re-upload instructions to the customer's admin team. We deliver the Automation Rebuild Guide and Campaign Template inventory as the handoff package. We support a one-week hypercare window for reconciliation issues. We do not rebuild Contlo automations as executable Twenty workflows; that work is documented for the customer's admin or a certified Twenty partner.

Platform deep dives

Context on both ends of the pair

Contlo logo

Contlo

Source

Strengths

  • AI-native campaign optimization with brand-owned model rather than third-party AI
  • Multi-channel delivery: email, SMS, and voice agents unified in one platform
  • No-code automation builder with behavioral segmentation and trigger-based flows
  • Free tier available for up to 1,000 contacts with full automation access
  • Active onboarding support that helps configure AI Agents quickly

Weaknesses

  • Small company size and limited public funding raise long-term viability concerns
  • Feature-heavy interface can overwhelm small marketing teams without dedicated admins
  • Brand AI Model is not a portable asset and cannot be migrated between platforms
  • Limited public documentation on API schema and technical object structure
  • Voice Agent and AI model features are proprietary and may not map cleanly to competing platforms
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 mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Contlo and Twenty 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

    Contlo: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Contlo 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 Contlo to Twenty CRM data migrations

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

Can't find your answer?

Walk through your Contlo 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 three and five weeks for accounts under 10,000 Contacts and 2,000 Deals with straightforward custom property mapping and no complex automation rebuilds. Migrations with large engagement histories (over 200,000 event records), many-to-many segment memberships per contact, or a complex Contlo automation graph move to eight to twelve weeks because of the extraction, transformation, and reconciliation work involved before the Twenty import begins.

Adjacent paths

Related migrations to explore

Ready when you are

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