CRM migration
Field-level mapping, validation, and rollback between Contlo and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Contlo
Source
Twenty CRM
Destination
Compatibility
9 of 11
objects map 1:1 between Contlo and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
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.
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 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
Twenty CRM
Person
1:1Contlo 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
Twenty CRM
Tag (on Person)
lossyContlo 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
Twenty CRM
Company
1:1Contlo 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
Twenty CRM
Opportunity
1:1Contlo 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)
Twenty CRM
Workflow documentation (rebuild required)
1:1Contlo 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)
Twenty CRM
Task or Note documentation
1:1Contlo 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
Twenty CRM
Custom Field documentation (rebuild required)
1:1Contlo 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
Twenty CRM
CSV time-series dataset
1:1Event-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
Twenty CRM
Custom Fields on Person or Company
lossyContlo 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
Twenty CRM
User
1:1Contlo 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
Twenty CRM
Not migratable
1:1Contlo'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.
| Contlo | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Segment | Tag (on Person)lossy | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Automation (journey flows) | Workflow documentation (rebuild required)1:1 | Fully supported | |
| Campaign (Email/SMS) | Task or Note documentation1:1 | Fully supported | |
| Voice Agent | Custom Field documentation (rebuild required)1:1 | Fully supported | |
| Analytics / Event History | CSV time-series dataset1:1 | Mapping required | |
| Custom Properties | Custom Fields on Person or Companylossy | Mapping required | |
| Owner | User1:1 | Fully supported | |
| Brand AI Model Configuration | Not migratable1:1 | Not 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.
Contlo gotchas
Free tier enforces 'Powered by Contlo' branding
Contact volume limits are tier-gated
Brand AI Model is non-portable
Automation branching logic may not translate 1:1
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
Contlo
Source
Strengths
Weaknesses
Twenty 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 Contlo and Twenty 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
Contlo: Not publicly documented.
Data volume sensitivity
Contlo 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 Contlo to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Contlo
Other ways to arrive at Twenty 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.