CRM migration

Migrate from Plezi to Twenty CRM

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

Plezi logo

Plezi

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

60%

6 of 10

objects map 1:1 between Plezi and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Plezi logo

Plezi

What's pushing teams away

  • The connector ecosystem is limited — customers report frustration that third-party integrations with CRM systems, analytics platforms, and other tools are slower to deploy than expected.
  • Occasional bugs in the platform are reported, and while the team addresses them quickly, some users cite the instability as a reason to evaluate alternatives.
  • As the product matures, customers with very large contact volumes report that certain automation execution speeds do not meet their real-time marketing needs, prompting evaluation of platforms with higher throughput.

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

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

maps to

Twenty CRM

Person

1:1
Fully supported

Plezi 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

maps to

Twenty CRM

Company

1:1
Fully supported

Plezi 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

maps to

Twenty CRM

Custom Object (Campaign)

1:1
Fully supported

Plezi 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

maps to

Twenty CRM

Custom Object (Landing Page Reference)

lossy
Fully supported

Plezi 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

maps to

Twenty CRM

Custom Object (Form)

1:1
Fully supported

Plezi 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

maps to

Twenty CRM

Written Inventory Document

lossy
Fully supported

Smart 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

maps to

Twenty CRM

Written Inventory Document

lossy
Fully supported

Plezi 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)

maps to

Twenty CRM

Content Documentation

lossy
Fully supported

Emails 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

maps to

Twenty CRM

Member

1:1
Fully supported

Plezi 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

maps to

Twenty CRM

Tag

1:1
Fully supported

Plezi 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.

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.

Plezi logo

Plezi gotchas

High

Smart Campaign automation logic is not directly portable

Medium

Landing pages may contain non-exportable embedded content

Medium

Pricing is not publicly documented and varies by negotiation

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

  • Twenty's minimal standard fields require pre-migration schema configuration

    Twenty's Person and Company objects ship with fewer built-in fields than most commercial CRMs. Users report spending 30-60 minutes creating basic fields like industry, job title, phone type, and website before the CRM is usable. If Plezi's contact schema includes behavioral scoring fields (lead score, lifecycle stage, engagement metrics) or company enrichment data (employee count, revenue range, LinkedIn URL), these must be created as custom fields in Twenty before any CSV import. We add these fields during the schema preparation phase so that the import mapping covers every Plezi property without dropping data. Skipping this step results in import maps that omit Plezi fields, requiring a second-pass migration to recover the missing data.

  • Smart Campaign automation logic cannot be imported into Twenty

    Plezi's Smart Campaign trigger-action logic is stored in a platform-specific format that cannot be exported as a runnable automation package. We reconstruct each Smart Campaign's intent from the Plezi export (triggers, conditions, action sequences) and deliver a written inventory document for the customer's admin to rebuild in Twenty's workflow builder. The rebuild is manual work that sits outside the data migration scope. We flag any dynamic personalization steps that cannot be automatically reproduced from the export data. This gotcha applies to every Plezi migration regardless of destination platform.

  • Plezi's API is not publicly documented for direct migration tooling

    Plezi does not publish public API documentation, which limits the ability to build automated export tooling. Depending on the customer's contract and data volume, Plezi may provide a CSV export of Contacts, Companies, Campaigns, and Forms. If the customer's account supports a data export API endpoint, we use it with rate-limit handling and batch chunking. If only CSV export is available, we process the files through a transformation pipeline that normalizes field formats, resolves company-contact relationships, and maps tag associations before loading into Twenty. We request access to the customer's Plezi account's export tooling during scoping to determine the export path.

  • Engagement history has no direct equivalent in Twenty's object model

    Plezi tracks marketing engagement events (email opens, link clicks, form submissions, page visits) as behavioral data attached to contacts. Twenty CRM's activity model centers on sales activities (calls, meetings, tasks, notes) rather than marketing behavioral events. We migrate Plezi engagement records as custom object entries (e.g., LastEmailOpenDate, LastFormSubmission) stored as custom fields or as a custom EngagementEvent object, rather than as native Timeline entries. The customer should decide during scoping whether full engagement history is required or whether summary metrics (last activity date, total page visits, total emails opened) suffice.

  • Landing pages may contain non-exportable embedded third-party content

    Some Plezi landing pages include embedded third-party widgets such as webinar registration iframes, live chat scripts, custom JavaScript tracking pixels, and video embeds that cannot be extracted during export. We document each landing page's embedded components during the audit phase and flag pages that require manual recreation versus those that can be fully migrated as static HTML exports. Pages with embedded conversion tracking scripts or third-party form embeds (Typeform, Calendly) need to be re-implemented in the customer's new web stack. This work is not part of the data migration scope.

Migration approach

Six steps for a successful Plezi to Twenty CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

Context on both ends of the pair

Plezi logo

Plezi

Source

Strengths

  • Automated lead scoring designed to reduce manual rule configuration compared to enterprise alternatives
  • Built-in landing page and form builder with direct integration to the Smart Campaign engine
  • Reactive customer success and support team with collaborative implementation approach
  • Positioned as a simpler, less resource-intensive alternative to complex marketing automation platforms
  • Strong adoption among French SMBs with local-language support and compliance awareness

Weaknesses

  • Limited third-party connector ecosystem requiring more custom integration work
  • API documentation is not publicly prominent, complicating data export and migration tooling
  • Occasional stability bugs reported in user reviews despite responsive fixes
  • Smaller market footprint outside France may limit reference customers for enterprise validation
  • Marketing automation logic (Smart Campaigns) stored in proprietary format limits portability
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. 3 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 Plezi and Twenty CRM.

  • Object compatibility

    B

    3 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

    Plezi: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.

  • Data volume sensitivity

    A

    Plezi exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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 consultation

Most migrations land between three and five weeks for accounts under 10,000 Contacts and 2,000 Companies with no custom objects. Migrations with behavioral scoring profiles requiring custom field migration, large campaign histories, multiple Smart Campaigns requiring full intent documentation, or destination Twenty instances needing extensive custom field pre-configuration move to six to ten weeks. The primary time variable is the schema preparation phase (custom fields in Twenty must exist before import) and the Smart Campaign documentation scope.

Adjacent paths

Related migrations to explore

Ready when you are

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