CRM migration

Migrate from Plumb5 to Twenty CRM

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

Plumb5 logo

Plumb5

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

70%

7 of 10

objects map 1:1 between Plumb5 and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Plumb5 is a behavioral intelligence and customer engagement platform built around unified customer profiles, real-time scoring, and auto-segmentation. Twenty CRM is an open-source sales CRM built on a Companies, People, and Opportunities data model with unlimited custom objects and REST and GraphQL APIs. The migration from Plumb5 to Twenty CRM is a data model translation problem: Plumb5's behavioral events, session data, channel attribution, and scoring models have no native equivalents in Twenty's schema, so we map them to custom fields, Tasks, and Notes while preserving the information at stake. Plumb5's absence of a publicly documented bulk export API means we inspect the live instance's endpoints during discovery before confirming scope. We migrate customer profiles as People (or Companies for organizational records), campaigns as custom objects or Opportunities, behavioral events as Task timelines, and score values as custom numeric fields. We do not migrate Plumb5 Workflows, Segments, or Scoring Rules as executable logic; these require rebuild in Twenty's Workflow engine and are documented separately for the customer's admin.

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

Plumb5 logo

Plumb5

What's pushing teams away

  • Custom report creation is not intuitive, forcing users to rely on pre-built templates that may not match specific business intelligence needs.
  • Dashboard filters lack full flexibility — users report inability to apply all possible filter combinations on customized views.
  • Email segmentation features need improvement, making it difficult to build granular audience segments for targeted campaigns.
  • The absence of a live chat support option creates friction for users needing real-time assistance during critical campaign windows.

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

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

Plumb5

Customer Profiles

maps to

Twenty CRM

People or Company

1:1
Fully supported

Plumb5 unified customer profiles map to Twenty CRM People records. The Plumb5 profile contains name, email, phone, and behavioral metadata. For profiles that represent organizations (B2B records with company-level data), we map to Twenty CRM Company records and link the People record via the Main Contact relationship. Email serves as the dedupe key. We preserve Plumb5's profile creation timestamp and last-modified timestamp as Twenty's createdAt and updatedAt fields. Custom properties on the Plumb5 profile migrate to Twenty custom fields on the People or Company object, created during the schema audit phase.

Plumb5

Behavioral Events

maps to

Twenty CRM

Task

1:1
Fully supported

Plumb5 behavioral events (web, mobile, email, and offline touchpoints) migrate as Twenty CRM Task records attached to the corresponding People record. Each event type maps to a Task with a descriptive subject line, the original timestamp as ActivityDate, and the event metadata (channel, source, action) stored in custom Task fields. Session referrer, device type, and geography from Plumb5 migrate as additional custom fields. Because Twenty's Task object supports unlimited custom fields, we preserve event-level detail rather than aggregating into summary metrics.

Plumb5

Session Data

maps to

Twenty CRM

Task (custom fields)

1:1
Mapping required

Plumb5 session records (device, geography, referrer, duration) attach to the behavioral event record as custom fields on the Task. If a Plumb5 profile has session-level data without a corresponding behavioral event, we create a Task with a subject like 'Session Record' and populate the session metadata in custom fields. This ensures that channel attribution and session context are not lost even when a session did not produce a named event.

Plumb5

Channel Sources

maps to

Twenty CRM

Custom Picklist Field on People

lossy
Fully supported

Plumb5 tags each interaction with a source channel (organic search, paid search, social, email, referral, direct). We map this to a custom picklist field on the People object named Channel_Source__c. For profiles with multiple channel touchpoints, we store the most recent channel as the primary value and document all attributed channels in a text field for the customer to reference during analysis.

Plumb5

Campaigns

maps to

Twenty CRM

Opportunity or Custom Object

lossy
Fully supported

Plumb5 marketing campaigns with associated audiences and goals map to Twenty CRM Opportunities if the campaign has a revenue or pipeline context, or to a custom Campaign object if the customer's Plumb5 campaigns track audience membership separately from revenue. Campaign membership (which People were in which Campaign) migrates as a custom multi-select picklist or as linked records via a custom Campaign_Membership__c junction object. Goals and performance metrics from Plumb5 migrate as custom fields on the destination object.

Plumb5

Segmentation Rules

maps to

Twenty CRM

Custom Field + Static List

1:1
Mapping required

Plumb5 auto-segmentation models generate dynamic segments based on behavioral criteria. Twenty CRM does not have a dynamic segment engine. We migrate segment membership as a static tag stored in a custom picklist field (Segment_Membership__c) on the People record. We document each Plumb5 segment definition (criteria, conditions, scoring thresholds) in the handoff workbook so the customer's admin can recreate segment logic as Twenty CRM Views with filter conditions or as Workflow triggers.

Plumb5

Scoring Models

maps to

Twenty CRM

Custom Numeric Field on People

1:1
Mapping required

Plumb5's behavioral scoring models produce numeric score values stored per profile. We migrate the last-known score as a custom numeric field named Behavioral_Score__c on the People object. The Plumb5 score definitions (which behaviors contribute which weight) are documented in the migration workbook for the customer to re-implement using Twenty CRM Workflows and custom formula fields. Score history over time does not migrate as a time-series; only the most recent snapshot value transfers.

Plumb5

Engagement Metrics

maps to

Twenty CRM

Custom Numeric Fields on People

1:1
Mapping required

Plumb5 aggregates engagement KPIs per customer (recency, frequency, monetary value, sentiment scores). These derived values migrate as read-only custom numeric fields on the People record (e.g., Recency_Score__c, Frequency_Score__c, Monetary_Value__c, Sentiment_Score__c). We flag these as derived values so the customer knows they represent a snapshot at migration time and may need refresh through a Twenty-native calculation if the customer implements a parallel metrics engine.

Plumb5

Lifecycle Stages

maps to

Twenty CRM

Custom Picklist Field on People

1:1
Mapping required

Plumb5 defines a proprietary lifecycle progression from anonymous visitor through brand advocate. Twenty CRM has no native lifecycle stage model. We map each Plumb5 lifecycle value to a custom picklist field named Lifecycle_Stage__c on the People record, using the closest semantic equivalent. Stages that have no direct Twenty analog are preserved verbatim and documented in the handoff workbook so the customer can rename or consolidate them post-migration.

Plumb5

Custom Properties

maps to

Twenty CRM

Custom Fields on Relevant Objects

lossy
Mapping required

Plumb5 user-defined fields extending the standard profile schema migrate to Twenty CRM custom fields on the corresponding standard or custom object. We discover all Plumb5 custom properties during the schema audit phase, map them to the equivalent Twenty field type (text, number, date, picklist, multi-select, checkbox), and pre-create them in the Twenty workspace before any data import. Fields that cannot map directly (e.g., Plumb5-specific data types without a Twenty equivalent) are documented for the customer to resolve during workspace configuration.

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.

Plumb5 logo

Plumb5 gotchas

High

No publicly documented bulk export API

Medium

Data-consumption billing model affects migration sizing

Medium

Behavioral scoring models do not transfer as executable rules

Low

Lifecycle stage definitions may not map 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

  • Plumb5 has no publicly documented bulk export API

    Plumb5's knowledge base and public documentation do not describe a bulk data export endpoint. We cannot initiate an automated pull of profiles, events, or campaigns without first inspecting the live instance's API during the discovery phase. We request API credentials and test read endpoints before confirming migration scope. If the API is restricted by plan tier or requires the vendor's direct assistance, we surface this during scoping so the customer can plan accordingly. This constraint can add one to two weeks to the discovery phase compared to migrations from platforms with documented export APIs.

  • Behavioral scoring models do not transfer as executable logic

    Plumb5's auto-segmentation and scoring models are rules engine artifacts specific to the platform. We migrate the last-known score value as a static custom numeric field on each People record, but the scoring logic itself (weights, conditions, recalculation triggers) cannot be transferred. We document every score definition during discovery so the customer's new platform team has a reference for rebuilding them using Twenty CRM Workflows and custom formula fields. Teams that rely heavily on Plumb5's real-time scoring should plan for a rebuild sprint in Twenty post-migration.

  • Lifecycle stage definitions do not map 1:1 to Twenty CRM

    Plumb5 defines a proprietary lifecycle progression (anonymous visitor through brand advocate) that has no direct equivalent in Twenty CRM's schema. We map each Plumb5 lifecycle value to a custom picklist field named Lifecycle_Stage__c on the People object, preserving the original value verbatim. Stages that have no semantic equivalent in Twenty are flagged in the handoff workbook so the customer can decide on a post-migration naming convention. Any downstream automation that depends on lifecycle stage triggers must be rebuilt in Twenty Workflows.

  • Twenty CRM CSV import requires fields to exist before data lands

    Twenty CRM's CSV import creates records but does not create fields. All custom fields must be defined in Settings before import begins, and all users referenced as assignees must be provisioned before OwnerId fields can map. We coordinate the sequencing of custom field creation, user provisioning, and record import to avoid import failures. If the Plumb5 instance has a large number of custom properties, the pre-import schema setup phase adds scope to the migration timeline.

Migration approach

Six steps for a successful Plumb5 to Twenty CRM data migration

  1. Discovery and API audit

    We audit the Plumb5 instance for API access, record counts (profiles, events, sessions, campaigns), custom property definitions, scoring model configurations, segment definitions, and lifecycle stage values. Since Plumb5 has no documented bulk export API, we test read endpoints against the live instance during this phase to confirm which objects and fields are accessible programmatically. We deliver a written discovery report with confirmed migration scope, any API access constraints by plan tier, and a list of objects that will require manual export assistance from the Plumb5 team.

  2. Schema design and workspace preparation

    We design the Twenty CRM destination schema before any data export begins. This includes creating all custom fields (Channel_Source__c, Behavioral_Score__c, Lifecycle_Stage__c, segment membership fields, engagement metric fields, and event metadata fields), configuring picklist values to match Plumb5's enumerated sets, and setting up the People and Company objects to receive Plumb5 profile data. We create a custom Campaign object if the customer has campaign audience membership that does not fit the Opportunity model. Custom fields are created in Twenty Settings before import begins.

  3. User and owner reconciliation

    We extract every distinct owner and user referenced on Plumb5 profile records and map them to Twenty CRM users. If the Plumb5 instance references users that do not yet exist in Twenty, we create a reconciliation queue for the customer's admin to provision those users before record import begins. This step is blocking because OwnerId references on People and Company records must resolve at import time.

  4. Profile and company migration

    We run the primary migration of Plumb5 Customer Profiles into Twenty CRM People records. B2B profiles (records with organization-level data or a company association) map to Twenty CRM Company records with the associated People record linked via Main Contact. Email serves as the dedupe key. We preserve the Plumb5 profile creation date, last activity date, channel attribution, lifecycle stage, and behavioral score as custom fields. Custom properties discovered during schema audit migrate to their corresponding Twenty custom fields.

  5. Behavioral event and session migration

    We migrate Plumb5 behavioral events as Twenty CRM Task records linked to the corresponding People record, with the original timestamp preserved as ActivityDate. Session metadata (device, geography, referrer, duration) attaches as custom fields on each event Task. We process events in date order to maintain the activity timeline sequence. Events without a matching People record (orphaned sessions from deleted profiles) are held in a quarantine table for the customer to review.

  6. Campaign and segment migration

    We migrate Plumb5 campaigns as Opportunities or as records in a custom Campaign object, depending on the customer's campaign data model. Campaign audience membership migrates as Segment_Membership__c tags on People records or as linked Campaign_Membership__c junction records. Scoring model snapshots and engagement metric values migrate as custom numeric fields on People. We document all segment definitions and scoring model logic in the handoff workbook for rebuild in Twenty Workflows.

  7. Cutover, validation, and rebuild handoff

    We run a final delta migration of any records modified during the migration window, then hand the workspace to the customer as the system of record. We deliver the migration workbook containing all field mapping decisions, unmapped Plumb5 objects and fields, segment and scoring model definitions for rebuild in Twenty Workflows, and the list of lifecycle stage values requiring post-migration naming convention review. We do not rebuild Plumb5 Workflows or Scoring Rules as Twenty Workflows; these are documented separately for the customer's admin team to rebuild.

Platform deep dives

Context on both ends of the pair

Plumb5 logo

Plumb5

Source

Strengths

  • Unified customer profile across all touchpoints and channels
  • Real-time behavioral scoring and auto-segmentation
  • Data-consumption pricing model that scales with volume, not users
  • Interactive dashboards with KPI and profitability visibility
  • Pre-built automation models for pattern extraction and conversion optimization

Weaknesses

  • No publicly documented bulk export or migration API
  • Custom report building requires technical comfort and is not self-service
  • Dashboard segmentation filters lack full combinatorial flexibility
  • Email audience segmentation is a known pain point per user reviews
  • Pricing is opaque with no published tiers on G2 or TrustRadius
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 Plumb5 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

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

  • Data volume sensitivity

    A

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

Estimator

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

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

Can't find your answer?

Walk through your Plumb5 to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Migrations under 10,000 customer profiles with behavioral event logs and no complex custom objects land in three to five weeks. Migrations with large historical event volumes (hundreds of thousands of session records), multiple custom properties, or campaign audience data that requires a custom Campaign object move to eight to twelve weeks. The Plumb5 API discovery phase, which is required because Plumb5 has no documented bulk export API, can add one to two weeks to the timeline compared to migrations from platforms with public export endpoints.

Adjacent paths

Related migrations to explore

Ready when you are

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