CRM migration
Field-level mapping, validation, and rollback between Onpipeline and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Onpipeline
Source
Twenty CRM
Destination
Compatibility
8 of 11
objects map 1:1 between Onpipeline and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Onpipeline to Twenty CRM is a migration from a per-user SaaS platform to an open-source, self-hostable CRM that models itself as a clean-slate alternative to Salesforce. Onpipeline organizes its sales process around Deals linked to Contacts and optionally Companies, with Products, Quotes, and Invoices providing post-sale workflow. Twenty CRM uses a standard Opportunity model attached to Person and Company records, with a flexible custom-object engine that lets teams define their own data model. We preserve Deal stages and probabilities, resolve Onpipeline Users to Twenty workspace members, and migrate Activities as Timeline entries. Quotes and Invoices have no native Twenty equivalent at this time; we document the customer's Quote and Invoice schemas and either configure them as custom objects in Twenty or flag them for manual rebuild post-migration. Onpipeline Workflows, recurring invoice automation, and Web Forms do not migrate as code.
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 Onpipeline 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.
Onpipeline
Contact
Twenty CRM
Person
1:1Onpipeline Contacts map directly to Twenty Person records. Standard fields (name, email, phone, address) migrate 1:1. Tags and Lifecycle Stage migrate as custom fields or labels on the Person record. Phone numbers use Twenty's phone field type with configurable default country code. If the customer's Onpipeline contacts span multiple roles at the same company, each Contact becomes a separate Person; the Company-to-Company linkage is resolved separately.
Onpipeline
Company
Twenty CRM
Company
1:1Onpipeline Company records map to Twenty Company records. Company name, domain, address, and industry fields migrate 1:1. The Person-to-Company linkage migrates as a Twenty workspaceRelation record, preserving the many-to-many relationship where multiple People can be associated with one Company.
Onpipeline
Deal
Twenty CRM
Opportunity
1:1Onpipeline Deals are the central object and map to Twenty Opportunities. Deal name, value, expected close date, and stage assignment migrate. The Deal-to-Contact (and optional Deal-to-Company) association migrates by linking the Opportunity to the corresponding Person and Company records in Twenty. Closed-won and closed-lost reason fields from Onpipeline custom fields become Opportunity custom fields in Twenty.
Onpipeline
Pipeline Stage
Twenty CRM
Opportunity Stage
lossyOnpipeline custom stage names and probabilities per pipeline are captured during scoping. Each stage becomes a Twenty Opportunity stage value with its probability percentage mapped to the stage. We configure the stage order in Twenty's Data Model to match Onpipeline's pipeline flow before Opportunities are imported.
Onpipeline
Product
Twenty CRM
Custom Object (Product)
1:1Onpipeline Products (name, SKU, price, stock quantity) map to a Twenty custom object named Product if the customer uses product catalog features. We pre-create the custom object schema with name, sku, price, and stock fields before import. If Twenty adds a native product catalog in a future release, the custom object can be deprecated and data migrated to the standard object.
Onpipeline
Activity: Event
Twenty CRM
Timeline Entry
1:1Onpipeline Events (calendar appointments with datetime, duration, assigned user, description) migrate as Timeline entries on the related Person or Opportunity record in Twenty. We preserve the event title, start and end datetime, assigned user, and body text. The calendar-to-user assignment is resolved by matching Onpipeline user email to the Twenty workspace member.
Onpipeline
Activity: Task
Twenty CRM
Timeline Entry
1:1Onpipeline Tasks (title, due date, assigned user, status) migrate as Timeline entries in Twenty. Task status (open, completed) maps to a completion flag on the Timeline entry. We preserve the original due date and assignment by resolving the Onpipeline owner to the Twenty workspace member.
Onpipeline
Activity: Note
Twenty CRM
Timeline Entry
1:1Onpipeline Notes attached to Deals or Contacts migrate as Timeline entries in Twenty with the full note body preserved as rich text. Notes attached to files migrate the file reference; the actual file attachments are downloaded and re-uploaded to Twenty's file storage linked to the Timeline entry.
Onpipeline
Quote
Twenty CRM
Custom Object (Quote)
lossyOnpipeline Quotes have no native Twenty equivalent. We document the customer's Quote schema (line items, pricing, e-signature status, linked Contact and Deal) and configure a Quote custom object in Twenty before migration. Quote line items become related QuoteLine custom object records linked to the Quote. E-signature status is stored as a custom field; the signed PDF is attached as a file to the Quote record. If the customer uses a third-party e-signature tool (DocuSign, HelloSign), we note the integration for rebuild post-migration.
Onpipeline
Invoice
Twenty CRM
Custom Object (Invoice)
lossyOnpipeline Invoices have no native Twenty equivalent. We configure an Invoice custom object with header fields (invoice number, date, payment status, total) and an InvoiceLine related object for line items. Payment status migrates as a select field. Recurring invoice configurations from Onpipeline Standard and Advanced plans are documented as InvoiceSchedule records in the custom object for manual rebuild; automated recurring invoice generation is not available in Twenty and requires a third-party tool or custom development.
Onpipeline
User / Owner
Twenty CRM
Workspace Member
1:1Onpipeline Users are resolved by email against Twenty workspace members. We extract every distinct user referenced as a Deal owner or activity assignee and match against the Twenty workspace. Any Onpipeline user without a matching Twenty member goes to a reconciliation queue for the customer's admin to provision. Inactive Onpipeline users are migrated as inactive Twenty members with their historical assignments preserved.
| Onpipeline | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stagelossy | Fully supported | |
| Product | Custom Object (Product)1:1 | Fully supported | |
| Activity: Event | Timeline Entry1:1 | Fully supported | |
| Activity: Task | Timeline Entry1:1 | Fully supported | |
| Activity: Note | Timeline Entry1:1 | Fully supported | |
| Quote | Custom Object (Quote)lossy | Fully supported | |
| Invoice | Custom Object (Invoice)lossy | Fully supported | |
| User / Owner | Workspace Member1: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.
Onpipeline gotchas
Trial account data deleted 7 days after expiry
Calendar is user-scoped, not team-wide by default
Recurring invoice automation gated to Advanced plan
Facebook Lead Ads import requires API or Zapier setup
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 audit the Onpipeline account across plan tier (Pipeline/Standard/Advanced), custom field schemas on all objects, pipeline count and stage definitions, active Workflows, Quote and Invoice configurations, recurring revenue schedules, and user list. We extract a full data export via Onpipeline's API or CSV export and produce a written data map showing every source object, field, and relationship. This audit also captures the trial expiry date to prioritize urgency if the account is in a trial state.
Twenty workspace provisioning and schema design
We provision a Twenty workspace (self-hosted or cloud-hosted per the customer's infrastructure) and design the destination schema. This includes creating the Company and Person objects with standard field mapping, configuring Opportunity stages and probabilities to match Onpipeline pipeline stages, pre-creating custom objects for Product, Quote, and Invoice with the customer's specific field schemas, and setting up workspace member accounts matched to Onpipeline users. The schema design is validated in a staging workspace before production.
Custom object configuration for Quote and Invoice
Because Twenty lacks native Quote and Invoice objects, we configure these as custom objects during the schema design phase. We create the Quote custom object with line items as a related object, add e-signature status and PDF attachment fields, and configure the Invoice custom object with payment status and recurring schedule fields. The customer reviews and approves the custom object schema before data migration begins.
Staging migration and reconciliation
We run a full migration into the staging Twenty workspace using production-like data volume. The customer's operations lead reconciles record counts (Contacts in, Companies in, Deals in, Activities in), spot-checks 25-50 records against the Onpipeline source, and validates the Quote and Invoice custom object configurations. Any field mapping corrections and custom object schema adjustments happen here before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: workspace members (manual provisioning validated), Companies (from Onpipeline Companies), Persons (from Onpipeline Contacts with Person-to-Company relations resolved), Opportunities (with stage, probability, and linked Person/Company resolved), Products (custom object), Quotes and Invoice custom objects (with line items as related records), Activity history (Events, Tasks, Notes as Timeline entries via Twenty REST API with batch chunking and rate-limit handling). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and Workflow handoff
We freeze Onpipeline write access during cutover, run a final delta migration of any records modified during the migration window, then enable Twenty as the system of record. We validate Quote and Invoice record counts and spot-check the custom object data. We deliver the Workflow inventory document to the customer's team for rebuild via Twenty SDK or third-party automation tools. We support a one-week hypercare window where we resolve any reconciliation issues. Post-migration admin support, training, and automation rebuild are outside standard scope and can be scoped as a separate engagement.
Platform deep dives
Onpipeline
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 Onpipeline 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
Onpipeline: Not publicly documented in the available developer docs.
Data volume sensitivity
Onpipeline 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 Onpipeline to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Onpipeline 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 Onpipeline
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.