CRM migration
Field-level mapping, validation, and rollback between Plumb5 and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Plumb5
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between Plumb5 and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
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.
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 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
Twenty CRM
People or Company
1:1Plumb5 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
Twenty CRM
Task
1:1Plumb5 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
Twenty CRM
Task (custom fields)
1:1Plumb5 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
Twenty CRM
Custom Picklist Field on People
lossyPlumb5 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
Twenty CRM
Opportunity or Custom Object
lossyPlumb5 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
Twenty CRM
Custom Field + Static List
1:1Plumb5 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
Twenty CRM
Custom Numeric Field on People
1:1Plumb5'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
Twenty CRM
Custom Numeric Fields on People
1:1Plumb5 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
Twenty CRM
Custom Picklist Field on People
1:1Plumb5 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
Twenty CRM
Custom Fields on Relevant Objects
lossyPlumb5 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.
| Plumb5 | Twenty CRM | Compatibility | |
|---|---|---|---|
| Customer Profiles | People or Company1:1 | Fully supported | |
| Behavioral Events | Task1:1 | Fully supported | |
| Session Data | Task (custom fields)1:1 | Mapping required | |
| Channel Sources | Custom Picklist Field on Peoplelossy | Fully supported | |
| Campaigns | Opportunity or Custom Objectlossy | Fully supported | |
| Segmentation Rules | Custom Field + Static List1:1 | Mapping required | |
| Scoring Models | Custom Numeric Field on People1:1 | Mapping required | |
| Engagement Metrics | Custom Numeric Fields on People1:1 | Mapping required | |
| Lifecycle Stages | Custom Picklist Field on People1:1 | Mapping required | |
| Custom Properties | Custom Fields on Relevant Objectslossy | Mapping required |
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.
Plumb5 gotchas
No publicly documented bulk export API
Data-consumption billing model affects migration sizing
Behavioral scoring models do not transfer as executable rules
Lifecycle stage definitions may not map 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 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.
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.
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.
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.
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.
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.
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
Plumb5
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 Plumb5 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
Plumb5: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.
Data volume sensitivity
Plumb5 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 Plumb5 to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Plumb5
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.