CRM migration
Field-level mapping, validation, and rollback between Pipeline CRM and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Pipeline CRM
Source
Twenty CRM
Destination
Compatibility
8 of 11
objects map 1:1 between Pipeline CRM and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Pipeline CRM to Twenty CRM is a transition from a per-user SaaS model to a self-hosted open-source CRM that ships with a GraphQL API, a Notion-inspired interface, and a per-workspace custom data model. Pipeline CRM exports Companies, Deals, People, Activities, and Agenda as CSV, but its drip campaigns, task templates, and automation rules are not included in that export. We extract the full CSV, pre-create custom fields and custom objects in Twenty via Settings, invite all destination users before importing any records, then load in dependency order: Companies first, then People, then Deals with resolved Company references, then Activities. Twenty does not have a built-in import UI, so we write a batch import script that calls the Twenty GraphQL API with chunking and retry logic. Workflows and permissions must be rebuilt manually in Twenty; we deliver a written inventory of every active Pipeline automation requiring rebuild. AGPL-3.0 licensing applies to self-hosted deployments, which matters for teams considering commercial use.
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 Pipeline CRM 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.
Pipeline CRM
People
Twenty CRM
People
1:1Pipeline People records map directly to Twenty People. We export all standard fields (name, email, phone, address) plus any custom Person fields, then import via the Twenty GraphQL API. The twenty_person_emails primary email address maps from Pipeline's email field. We normalize phone numbers to E.164 format during the transform step. Custom Person fields in Pipeline must be pre-created in Twenty Settings before the import script runs.
Pipeline CRM
Companies
Twenty CRM
Company
1:1Pipeline Companies map to Twenty Company records. Company name is the primary dedupe key. We import Companies first because Deals and People both reference Company as a foreign key. Industry, size, revenue, and any custom Company fields transfer directly. Pipeline's company domain (if present) maps to the Twenty Company domainName field.
Pipeline CRM
Deals
Twenty CRM
Opportunity
1:1Pipeline Deals map to Twenty Opportunity. The deal value (amount) and stage map from Pipeline's dealstage field to Twenty Opportunity stageName. Pipeline's pipeline assignment maps to a Twenty Opportunity record type or stage group that we configure before migration. Closed dates and probability percentages transfer as Opportunity closeDate and probability. We resolve the Company reference on each Deal by matching on Pipeline Company name.
Pipeline CRM
Pipeline (Deal Stage Group)
Twenty CRM
Opportunity Stage
lossyEach Pipeline CRM pipeline maps to a Twenty Opportunity stage group. Pipeline stages are created as stageName values in Twenty with corresponding probability percentages. If Pipeline uses multiple pipelines (up to 20 on Develop, unlimited on Grow), we create multiple stage groups in Twenty and assign each Deal to the appropriate group via the record's stageGroup field.
Pipeline CRM
Activities
Twenty CRM
Task or Note
1:1Pipeline Activities (email, call, meeting history linked to People or Companies) map to Twenty Task records. Activity type (email, call, meeting) maps to Task category or type fields in Twenty. We preserve the activity timestamp as Task dueDate for ordering in the timeline. The linked Person or Company reference is resolved using the Pipeline relationship keys present in the export CSV.
Pipeline CRM
Agenda: Tasks
Twenty CRM
Task
1:1Pipeline Agenda Tasks migrate to Twenty Task records with Status, Priority, and dueDate preserved. Task assignee resolves by matching Pipeline owner email to a Twenty user that has been provisioned before this import phase begins. Completed status migrates as Task completedAt.
Pipeline CRM
Agenda: Events
Twenty CRM
Task or Event
1:1Pipeline Agenda Events (calendar items) migrate to Twenty records. If Twenty has a native Event object, Events map directly with StartDateTime, EndDateTime, and Location preserved. If the deployed Twenty version does not include Events, Events migrate as Task records with type=Meeting and the meeting window stored in the description or a custom field.
Pipeline CRM
Tags
Twenty CRM
Label arrays or custom field
lossyPipeline tags applied to People, Companies, and Deals migrate as label arrays or comma-separated strings in Twenty custom fields. We ask the customer during scoping whether they want tags as a native Twenty label field or as a multi-select custom field on each object. Multi-select fields must be pre-created in Twenty Settings before import.
Pipeline CRM
Owner (User)
Twenty CRM
User (Member)
1:1Pipeline Owners assigned to Deals and People export by name and email. We match each Pipeline Owner email to a Twenty user that the customer's admin has provisioned in Settings before migration begins. Any Pipeline Owner without a matching Twenty user is held in a reconciliation queue. We do not create Twenty users automatically; that requires an explicit admin invitation in Twenty Settings.
Pipeline CRM
Custom Fields (Company, Deal, Person)
Twenty CRM
Custom Fields
lossyPipeline custom fields defined per object (Company, Deal, Person) export alongside the standard fields in CSV. Twenty custom fields must be pre-created in Settings before the import script runs because the Twenty CSV import creates records, not fields. We export the full Pipeline field schema during discovery, map field types to their closest Twenty equivalents (text, number, date, checkbox, select), and document any fields that cannot map directly and require transformation.
Pipeline CRM
Attachments
Twenty CRM
Attachment URL preserved
1:1Pipeline file attachments linked to People, Companies, or Deals export with a URL reference. We preserve the attachment URL in a custom field on the target Twenty record and flag that file hosting must be managed separately in Twenty's storage (which varies by self-hosted vs cloud deployment). Native attachment upload into Twenty requires separate handling beyond the CSV import path.
| Pipeline CRM | Twenty CRM | Compatibility | |
|---|---|---|---|
| People | People1:1 | Fully supported | |
| Companies | Company1:1 | Fully supported | |
| Deals | Opportunity1:1 | Fully supported | |
| Pipeline (Deal Stage Group) | Opportunity Stagelossy | Fully supported | |
| Activities | Task or Note1:1 | Fully supported | |
| Agenda: Tasks | Task1:1 | Fully supported | |
| Agenda: Events | Task or Event1:1 | Fully supported | |
| Tags | Label arrays or custom fieldlossy | Mapping required | |
| Owner (User) | User (Member)1:1 | Fully supported | |
| Custom Fields (Company, Deal, Person) | Custom Fieldslossy | Fully supported | |
| Attachments | Attachment URL preserved1:1 | 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.
Pipeline CRM gotchas
Email Validation and Data Enrichment are paid add-ons
CSV export does not include automation rules or workflows
Locked and required fields constrain import order
Limited API coverage for advanced object types
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 data audit
We extract a full CSV export from Pipeline CRM covering Companies, Deals, People, Activities, and Agenda. We document the field schema per object, identify any locked or required fields in Pipeline, and inventory all active drip campaigns and automation sequences. We also extract the Owner list (name and email) and confirm the total record counts per object. This audit output becomes the migration scope document and informs the custom field pre-creation list for Twenty.
Twenty workspace preparation
Before any import, we create all custom fields in Twenty Settings for each object (People, Company, Opportunity) using the Pipeline field schema as a reference. We also create any custom objects if Pipeline uses them. We then confirm that the customer's admin has invited all destination users and that every invited user has accepted the invitation. Owner reconciliation happens here: any Pipeline Owner without a matching Twenty user is flagged for admin provisioning.
Transform and relationship resolution
We transform the Pipeline CSV exports into Twenty-compatible format. This includes normalizing phone numbers, formatting dates to ISO 8601, splitting Pipeline's Company name into a Company lookup on Deal records, and mapping Pipeline stage names to Twenty Opportunity stage groups. We also apply any field type conversions identified during discovery. The transform script outputs one CSV or JSON file per object, in dependency order.
Staging import and reconciliation
We run a full import into a staging or shadow Twenty instance with production-scale data volume. The customer's team spot-checks 25-50 records per object against the Pipeline source, verifies that relationship links (Opportunity to Company, Person to Company) are intact, and confirms that custom field values populated correctly. Any mapping corrections happen here before production import begins. This step is critical because the import script runs against the production Twenty workspace once the staging sign-off is received.
Production migration in dependency order
We run the production migration in record-dependency order: Companies first (establishing the dedupe key for People and Deals), then People, then Opportunities with resolved Company references, then Tasks and Notes. Each phase emits a row-count reconciliation report. We use the Twenty GraphQL API with batch chunking and retry logic. Owner assignments are resolved by email match against the pre-provisioned Twenty user list. Any records that fail to insert are written to an exception log for manual review.
Cutover, validation, and automation handoff
We freeze Pipeline CRM writes during cutover, run a final delta import of any records modified during the migration window, then enable Twenty as the system of record. We deliver the written automation inventory document listing every Pipeline drip campaign and task trigger with its trigger conditions, actions, and a recommended Twenty workflow equivalent. Post-migration, the customer's admin rebuilds the critical sequences in Twenty's workflow engine. We do not rebuild automations as part of the standard migration scope.
Platform deep dives
Pipeline CRM
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Pipeline CRM and Twenty CRM.
Object compatibility
2 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
Pipeline CRM: Not publicly documented.
Data volume sensitivity
Pipeline CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Pipeline CRM to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Pipeline CRM 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 Pipeline CRM
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.