CRM migration
Field-level mapping, validation, and rollback between Optimove and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Optimove
Source
Twenty CRM
Destination
Compatibility
9 of 12
objects map 1:1 between Optimove and Twenty CRM.
Complexity
BStandard
Timeline
3-6 weeks
Overview
Moving from Optimove to Twenty CRM is a shift from a customer data platform built for multichannel marketing orchestration toward an open-source CRM with a relational data model. Optimove structures data around Customers, Lifecycle Stages, and predictive scores; Twenty CRM uses People, Companies, Opportunities, and Custom Objects with filtered Views for segmentation. We map Customer records to People with their original lifecycle stage preserved as a custom field, map Lifecycle Stages to a custom field on People rather than a native equivalent, and resolve Target Group membership into Twenty filtered Views. Optimove's proprietary predictive model scores transfer as read-only numeric fields with a flag noting they are historical values requiring recalibration in Twenty. Campaign journey logic and automation rules do not migrate; we deliver a written campaign inventory listing every journey name, trigger type, and audience size for manual recreation. We do not migrate Workflows, Sequences, automations, or reporting definitions.
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 Optimove 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.
Optimove
Customer
Twenty CRM
People
1:1Optimove Customer records map directly to Twenty People. We extract CustomerID as an external ID reference, map standard attributes (name, email, phone, address) to their Twenty equivalents, and preserve all custom attributes as Twenty custom fields created under Settings -> Data Model before import. Lifecycle Stage assignment is preserved as a custom select field on People rather than as a native equivalent, since Twenty does not have a native lifecycle stage concept.
Optimove
Customer Attributes
Twenty CRM
Custom Fields on People
lossyOptimove's 50-attribute limit means we audit current attribute usage during discovery. Any attributes approaching or exceeding the limit are flagged, and the customer decides which attributes to prioritize for migration. Each Optimove custom attribute maps to a corresponding Twenty custom field created before import. Attributes not migrated due to overflow are inventoried and delivered as a field creation checklist for post-migration setup.
Optimove
Lifecycle Stages
Twenty CRM
Custom Field on People + Historical Transition Log
1:1Optimove Lifecycle Stage assignments transfer as a custom select field on Twenty People. Historical stage transitions (migration patterns from Migration Explorer) export as a separate custom object or linked table in Twenty, preserving the historical stage history that informs retention analysis. This avoids losing the behavioral pattern data while acknowledging Twenty's different modeling approach.
Optimove
Target Groups
Twenty CRM
Filtered Views on People
1:manyOptimove Target Groups are dynamic customer segments built from attribute rules. We export the customer membership list (customer IDs in each Target Group) and create Twenty filtered Views that reproduce the segment logic using the migrated custom field values. Complex nested rules with multiple levels of AND/OR conditions may not translate directly into Twenty's View filter builder and are flagged for manual recreation or simplified equivalents.
Optimove
Predictive Values
Twenty CRM
Custom Number Fields on People
1:1Optimove's OptiGenie AI predictive scores transfer as read-only custom number fields on Twenty People. These are historical values from Optimove's modeling engine and cannot be recalculated in Twenty without a replacement data science pipeline. We flag these fields as deprecated in the field inventory and recommend rebuilding predictive scoring using Twenty's API in combination with an external analytics or BI tool. The raw scores themselves are preserved for comparison purposes during the transition period.
Optimove
Campaign Metadata
Twenty CRM
Opportunity
1:1Optimove Campaign records (name, type, channels, schedule, audience size) map to Twenty Opportunity records, with campaign type and channel mapped to custom Opportunity fields. This is a pragmatic substitution because Twenty has no native Campaign object equivalent to HubSpot or Salesforce. Campaign performance metrics (sends, opens, clicks, conversions) migrate as a linked custom object or as Note attachments on the related Opportunity record.
Optimove
Campaign Results / Engagement Metrics
Twenty CRM
Notes and Custom Object
1:1Historical campaign performance data including sends, opens, clicks, conversions, and control group metrics link to the People records via CustomerID resolution. We create a Campaign Results custom object in Twenty that stores aggregated engagement metrics keyed to the campaign name, with raw engagement events stored as Notes linked to the People record for individual attribution.
Optimove
Control Groups
Twenty CRM
Custom Object or Tag
1:1Optimove Control Group membership assignments migrate as a custom select field on People or as tags, preserving the ability to calculate campaign ROI post-migration. Control group percentage and assignment date migrate as additional fields on the custom object so that campaign analysts can recompute lift metrics in Twenty.
Optimove
Multi-Brand / Multi-Network Databases
Twenty CRM
Separate Twenty Workspaces or Company Hierarchy
1:manyOptimove's multi-brand architecture with separate customer databases per network requires separate mapping workstreams for each network. If Twenty is self-hosted with a single instance, we map each Optimove network to a distinct top-level Company record hierarchy or to separate workspace roles and company ownership scopes. If the customer deploys multiple Twenty instances, each network maps to its own deployment. Network identification happens during discovery before any data moves.
Optimove
Custom Objects
Twenty CRM
Custom Objects
1:1Optimove does not expose a documented Custom Objects API, but customer-defined data structures stored as Customer-level attributes migrate to Twenty Custom Objects with equivalent field schemas. We pre-create the Custom Object and all its custom fields in Twenty's Settings -> Data Model before importing any data, following Twenty's requirement that fields exist before import.
Optimove
User / Team Members
Twenty CRM
Workspace Members
1:1Optimove user accounts and roles listed via the admin interface map to Twenty Workspace Members. Role and permission sets require manual recreation in Twenty because Optimove's permission model is proprietary. We export the user list including email addresses, names, and role assignments as a written handoff document for the Twenty admin.
Optimove
Attachments / Media Assets
Twenty CRM
None
1:1Optimove is a data and orchestration platform, not a content management system. Media assets used in campaigns reside in connected ESPs or content tools, not in Optimove itself. We do not migrate media assets and flag the connected systems (email platform, SMS provider, content library) for the customer to update post-migration with any new integration endpoints.
| Optimove | Twenty CRM | Compatibility | |
|---|---|---|---|
| Customer | People1:1 | Fully supported | |
| Customer Attributes | Custom Fields on Peoplelossy | Mapping required | |
| Lifecycle Stages | Custom Field on People + Historical Transition Log1:1 | Fully supported | |
| Target Groups | Filtered Views on People1:many | Mapping required | |
| Predictive Values | Custom Number Fields on People1:1 | Mapping required | |
| Campaign Metadata | Opportunity1:1 | Fully supported | |
| Campaign Results / Engagement Metrics | Notes and Custom Object1:1 | Fully supported | |
| Control Groups | Custom Object or Tag1:1 | Fully supported | |
| Multi-Brand / Multi-Network Databases | Separate Twenty Workspaces or Company Hierarchy1:many | Mapping required | |
| Custom Objects | Custom Objects1:1 | Not supported | |
| User / Team Members | Workspace Members1:1 | Fully supported | |
| Attachments / Media Assets | None1: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.
Optimove gotchas
Custom Attributes 50-attribute limit affects migration scoping
Predictive model scores are Optimove-specific and not portable
Multi-brand architecture requires schema mapping per network
Campaign journey logic has no export format
Longer onboarding timeline affects migration project planning
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 Optimove network audit
We audit every Optimove customer database across all networks in the tenant, capturing Customer record counts, custom attribute usage against the 50-attribute ceiling, Lifecycle Stage definitions, Target Group rules, campaign metadata, engagement history volume, and user account list. We identify all separate customer databases and map each to the appropriate Twenty destination (separate workspace, company hierarchy node, or shared workspace with role-based filtering). The discovery output is a written migration scope with object-level counts and any attribute overflow recommendations.
Twenty workspace preparation and schema design
We create all required custom fields in Twenty's Settings -> Data Model before any data import, including custom fields for Lifecycle Stages, Predictive Values, campaign metadata, control group membership, and any Custom Object schemas identified during discovery. We invite all team members to Twenty during this phase so that Owner and assignee lookups resolve correctly during import. Workspace preparation is validated in Twenty's sandbox or test environment before production deployment.
Data export and transformation
We export Customer records, Lifecycle Stage assignments, Target Group membership lists, campaign metadata, engagement history, and user accounts from Optimove via Data Share SQL views and the Customers API. Each data type is exported into a separate staging file. We apply transformation rules during export: attribute overflow triage (removing lowest-priority attributes if the 50-attribute ceiling is exceeded), date format standardization, lifecycle stage mapping to the custom Twenty field, and Target Group membership stored as a lookup table rather than a live segment.
Sandbox migration and reconciliation
We run a full migration into a Twenty sandbox environment using production data volumes to validate the mapping, check for import errors, and confirm that all parent-child relationships (People to Companies, Activities to People) resolve correctly. The customer's team spot-checks 25-50 records against the Optimove source and validates lifecycle stage preservation, engagement history completeness, and custom field population. Any mapping corrections and field creation gaps are resolved in sandbox before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: workspace Members first (manual provisioning validated), then Companies (from Optimove brand or network identifiers), then People (with Lifecycle Stage and predictive values as custom fields), then Target Group membership (as View filters or tag assignments), then Opportunities (campaign metadata substitution), then Activity history (emails, calls, meetings, tasks as Notes and Tasks), then Custom Objects last after their parent relationships are confirmed. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover and handoff documentation
We freeze writes in Optimove during the final cutover window, run a delta migration of any records modified during the migration window, then designate Twenty as the system of record. We deliver the campaign inventory (every journey name, trigger type, audience size, and recommended Twenty Workflow equivalent), the Target Group rebuild checklist, the Predictive Value rebuild recommendation, and the attribute overflow resolution report. We support a one-week hypercare window to resolve any data quality issues reported by the team. We do not rebuild Optimove workflows or sequences as Twenty Workflow Automation within the migration scope; those are separate engagements or internal admin tasks.
Platform deep dives
Optimove
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Optimove and Twenty CRM.
Object compatibility
1 of 8 objects need a manual workaround.
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
Optimove: Not publicly documented in developer documentation.
Data volume sensitivity
Optimove exposes a bulk API — large-volume migrations stream efficiently.
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 Optimove to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Optimove 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 Optimove
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.