CRM migration
Field-level mapping, validation, and rollback between Plezi and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Plezi
Source
Twenty CRM
Destination
Compatibility
6 of 10
objects map 1:1 between Plezi and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Plezi to Twenty CRM is a structural migration from a French marketing automation platform into an open-source CRM that self-hosts for free under the AGPL-3.0 license. Plezi's core record types (Contacts with behavioral scoring, Companies, Campaigns, Landing Pages, Forms) map directly to Twenty's Person, Company, and custom objects. The key migration complexity is twofold: Plezi's Smart Campaign automation logic lives in a proprietary format that cannot export as runnable code, so we reconstruct each campaign's trigger, conditions, and sequence as a written handoff document for the customer's team to rebuild in Twenty's workflow builder. Second, Twenty's standard Person and Company objects ship with fewer built-in fields than mature CRMs, requiring pre-migration custom field configuration before CSV import can succeed. We do not migrate Smart Campaigns, Workflows, Landing Pages, or Forms as functional code; we deliver a complete written inventory of these assets for the customer's admin to recreate.
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 Plezi 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.
Plezi
Contact
Twenty CRM
Person
1:1Plezi Contacts map to Twenty Person records. The Plezi contact's behavioral scoring profile (lead score, lifecycle stage) migrates as custom fields on Person. We create twenty_lead_score__c and twenty_lifecycle_stage__c in the Twenty workspace before import. Standard Plezi fields (name, email, phone, company link) map to Person.name, Person.emails, Person.phoneNumbers, and the Person.company link. Note that Twenty's Person object ships with fewer built-in fields than mature CRMs; we configure industry, job title, department, website, and social profile fields as custom fields during schema preparation.
Plezi
Company
Twenty CRM
Company
1:1Plezi Companies map directly to Twenty Companies. The company name, domain, industry classification, and any custom properties migrate to Company.displayName, Company.domainName, and custom fields. The Company record is created before Contact import so that the Person.company link is satisfied at insert time. If Plezi stores company enrichment data from a third-party provider, we flag each enrichment field and advise whether to recreate the enrichment in Twenty or skip it.
Plezi
Campaign
Twenty CRM
Custom Object (Campaign)
1:1Plezi Campaigns (individual marketing initiatives with associated costs, channels, and dates) map to a Twenty custom object named Campaign. We pre-create the Campaign custom object with fields for campaign type, start date, end date, budget, and channel. Campaign costs and budget fields migrate as currency fields in Twenty's custom object schema.
Plezi
Landing Page
Twenty CRM
Custom Object (Landing Page Reference)
lossyPlezi Landing Pages are standalone assets with their own URLs and form associations. We export the page title, URL slug, and associated form reference. Because Twenty has no native landing page builder, we create a LandingPage custom object with fields for title, url, and form_id, and we document any embedded third-party widgets (webinar iframes, live chat scripts, custom JavaScript) during the audit phase so the customer knows which pages require manual recreation. Pages with non-exportable embedded content are flagged explicitly.
Plezi
Form
Twenty CRM
Custom Object (Form)
1:1Plezi Forms capture leads and feed them into Smart Campaigns. We migrate form field names, required flags, and the target pipeline stage assignment as a custom object with field-level configuration. Custom field types in Plezi are mapped to the closest equivalent Twenty custom field type (text, number, email, phone, select). The form-to-Smart Campaign routing is documented in the Smart Campaign intent handoff rather than reproduced as automation.
Plezi
Smart Campaign
Twenty CRM
Written Inventory Document
lossySmart Campaigns are Plezi's core automation engine combining triggers, conditions, and actions. The logic is stored in a proprietary format that cannot be exported as runnable code. We reconstruct each Smart Campaign's intent by exporting the campaign trigger events, conditional rules, and action sequence separately. The output is a written inventory document with trigger, conditions, action steps, and a recommended Twenty Workflow equivalent for each Smart Campaign. The customer's admin uses this document to rebuild in Twenty's workflow builder. We do not migrate Smart Campaign logic as automation code.
Plezi
Workflow
Twenty CRM
Written Inventory Document
lossyPlezi Workflows manage multi-step nurture sequences and reference Contacts or Companies at each step. We export the step sequence, associated content blocks, and the trigger conditions. Dynamic personalization steps are flagged as requiring manual recreation. The output is a written step-by-step workflow inventory that the customer's admin uses to rebuild sequences in Twenty's workflow builder or via an external sales engagement tool.
Plezi
Marketing Assets (emails, content blocks)
Twenty CRM
Content Documentation
lossyEmails and content blocks used inside Smart Campaigns and Workflows are exportable as HTML and text variants. We carry over the HTML body and subject line for each email asset. Inline images may require re-hosting at a CDN URL and link updating. Because Twenty has no native email marketing module, these assets are delivered as a content library document with HTML files for the customer to use in their chosen email delivery tool or import into a sales engagement platform.
Plezi
User
Twenty CRM
Member
1:1Plezi User accounts (team members with name, email, and role) map to Twenty Members. We export user records and attempt to map Plezi role names to Twenty's workspace permission model. Plezi-specific role names require manual review during the scoping phase because permission structures differ significantly between the two platforms. Active users are invited to the Twenty workspace before migration begins; inactive users are preserved in the export for reconciliation.
Plezi
Tag
Twenty CRM
Tag
1:1Plezi Contact tags migrate to Twenty's Tag model. Each tag name and its associations with Person records are preserved in the import. Tags used for segmentation purposes map directly to Twenty Tags. If the customer used Tags for content classification or campaign targeting, we document the tag taxonomy in the migration inventory for the admin to re-apply in Twenty.
| Plezi | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Campaign | Custom Object (Campaign)1:1 | Fully supported | |
| Landing Page | Custom Object (Landing Page Reference)lossy | Fully supported | |
| Form | Custom Object (Form)1:1 | Fully supported | |
| Smart Campaign | Written Inventory Documentlossy | Fully supported | |
| Workflow | Written Inventory Documentlossy | Fully supported | |
| Marketing Assets (emails, content blocks) | Content Documentationlossy | Fully supported | |
| User | Member1:1 | Fully supported | |
| Tag | Tag1:1 | Fully 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.
Plezi gotchas
Smart Campaign automation logic is not directly portable
Landing pages may contain non-exportable embedded content
Pricing is not publicly documented and varies by negotiation
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 Plezi export assessment
We audit the source Plezi account for contact volume, company records, active campaigns, Smart Campaigns, Workflows, landing pages, forms, user accounts, and tag taxonomy. We request access to Plezi's export tooling to determine whether API access or CSV-only export is available. We also review any behavioral scoring profiles and lifecycle stage configurations so that the scoring field mapping is complete. The discovery output is a written migration scope document that lists every object, the estimated record counts, the export path (API vs CSV), and any Plezi features that require manual recreation.
Twenty schema preparation and custom field configuration
We create the Twenty workspace and configure all custom fields before any record import. This includes creating custom fields on Person for lead_score__c, lifecycle_stage__c, and any Plezi engagement metric fields. We create the Campaign custom object and LandingPage custom object with their respective field schemas. We create any custom picklist options that correspond to Plezi's closed lists (campaign type, channel, tag categories). All custom fields must exist in Twenty before CSV import; the import creates records, not fields. This step runs in parallel with the Plezi data export.
Data export, cleansing, and transformation
We export data from Plezi using the available export path. We cleanse the data by removing duplicate contacts (deduplicated on email address), archiving contacts with no activity in 24 months, and standardizing date formats, phone number formats, and URL fields. We resolve the company-contact relationships so that each Contact's company reference is valid at import time. We transform tag associations into the comma-separated format Twenty expects. We export Smart Campaign and Workflow logic as structured JSON and narrative text for the automation inventory document.
Test migration into Twenty Sandbox
We run a full test migration into a Twenty development or staging instance using production-like data volumes. The customer's team reconciles record counts (Persons in, Companies in, Campaigns in), spot-checks 20-30 random records against the Plezi source, and validates that custom field data is populating correctly. Any mapping corrections happen at this stage. The test migration also validates that the Twenty workflow builder can accept the documented Smart Campaign intent (a manual verification step the customer's admin performs). We do not proceed to production migration without written sign-off on the test results.
User provisioning in Twenty
We extract every distinct Plezi User referenced on records and map them to Twenty Members. The customer's admin provisions any missing users in Twenty before the production migration begins. We invite all active Plezi users to the Twenty workspace and assign them to the appropriate workspace roles. Owner assignments on records (Contact owner, Company owner) are resolved against the Twenty Member list at this stage; records with unresolved owner references are held in a reconciliation queue until the admin provisions the matching user.
Production migration in dependency order
We run the production migration in record-dependency order: Companies first (to establish the link target for Persons), then Persons (with company links resolved and custom scoring fields populated), then Campaigns and custom objects, then Tags. Smart Campaign and Workflow documentation is delivered as a separate written inventory before or on cutover day. Each phase emits a row-count reconciliation report. We freeze Plezi writes during the cutover window and run a final delta migration of any records modified during the window before switching Twenty to system of record.
Cutover, validation, and automation rebuild handoff
We deliver the Smart Campaign and Workflow inventory document to the customer's admin team on cutover day. The document covers every active Smart Campaign with its trigger, conditions, action sequence, and recommended Twenty Workflow equivalent. We support a 72-hour hypercare window where we resolve data reconciliation issues raised by the customer's team. We do not rebuild Smart Campaigns as Twenty Workflows inside the migration scope; that is manual work the customer's admin performs using the delivered inventory. Landing page recreation and form rebuild are also outside scope.
Platform deep dives
Plezi
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 Plezi and Twenty CRM.
Object compatibility
3 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
Plezi: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.
Data volume sensitivity
Plezi 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 Plezi to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Plezi 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 Plezi
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.