CRM migration

Migrate from Tubular CRM to Twenty CRM

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

Tubular CRM logo

Tubular CRM

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

73%

8 of 11

objects map 1:1 between Tubular CRM and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Tubular CRM to Twenty CRM is a structural migration for a small team, not a record copy. Tubular uses a flat Contact model that combines person and company attributes; Twenty separates People and Companies as distinct standard objects, which means every Tubular Contact with a linked company must split into two records at migration time. We handle that split by resolving the company association first, creating the Twenty Company record, then linking the Person record to it. Tubular's Pro tier has no REST API, so export relies on CSV downloads from the UI and Zapier integration data, which constrains how many objects we can retrieve and may omit the full activity timeline. We sequence the export in dependency order starting with Companies and People, then Deals and Pipeline Stages, then Tasks and Activity Logs. Tubular's Deal Stage Triggers, Email Templates, and DNA Credit-enriched fields do not migrate as logic or data; we document every active trigger and credit-fed field so the customer's admin can rebuild equivalents in Twenty's Workflow engine post-migration.

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

Tubular CRM logo

Tubular CRM

What's pushing teams away

  • As a relatively new and smaller CRM, teams outgrow Tubular when they need advanced reporting, multi-pipeline support, or native integrations beyond Zapier.
  • The platform lacks public API documentation, making it difficult for technical teams to build custom integrations or export data programmatically for migrations.
  • Some users report that periodic UI updates introduce minor learning curves, and the small user community means few third-party guides or community answers exist.
  • Workflow automation capabilities are limited compared to HubSpot or Pipedrive, pushing sales teams with complex sequences toward more capable platforms.

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

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

Tubular CRM

Contact

maps to

Twenty CRM

Person + Company (split required)

1:many
Fully supported

Tubular's Contact object combines person attributes (name, email, phone, job title) and company association into a single record. Twenty separates these into Person and Company standard objects. We resolve every Tubular Contact by first checking the linked company field, creating a Company record in Twenty if one does not exist, then creating a Person record linked to that Company via the companyLink.definiteV1 field. Person.email, Person.phone, Person.jobTitle, and Person.city map directly from Tubular Contact fields.

Tubular CRM

Company (from Contact linked-company field)

maps to

Twenty CRM

Company

1:1
Fully supported

Tubular does not have a standalone Company object; company information lives as a field on Contact. We extract distinct company names from Tubular Contact.company, deduplicate them, and create Twenty Company records. The Tubular Contact.company domain becomes the Company.website field where available. All unique company values extracted from Contacts are created as Twenty Company records before Person records are linked.

Tubular CRM

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Tubular Deals map directly to Twenty Opportunities. Deal.name becomes Opportunity.name, Deal.value becomes Opportunity.amount, and Deal.stage becomes Opportunity.stageName. Deal.expectedClose and payment terms map to Opportunity.closeDate and a custom Opportunity field. Deal owner maps to Opportunity.accountOwner with owner resolution by email against the Twenty User table.

Tubular CRM

Pipeline Stage

maps to

Twenty CRM

Opportunity Stage

lossy
Fully supported

Tubular allows custom pipeline stages per deal. We map stage names and order to Twenty Opportunity.stageName values, and configure the stage order in Twenty's pipeline settings before migration. Stage probability percentages stored in Tubular migrate as a custom Opportunity.probability field if the customer requires them; Twenty's default probability auto-calculation is used otherwise.

Tubular CRM

Lead

maps to

Twenty CRM

Person (with lead context flag)

1:1
Fully supported

Tubular's Lead object (distinct from Contact) contains source, status, owner, and custom Lead Builder fields. We migrate Lead records to Twenty Person records with a custom Person.isLead__c boolean set to true to preserve lead context post-migration. Lead status and source are stored in custom Person fields leadStatus__c and leadSource__c. Lead conversion in Twenty requires the admin to create a Company record and link the Person, which we document as a post-migration step.

Tubular CRM

Tag

maps to

Twenty CRM

Tag (on Person and Opportunity)

1:1
Fully supported

Tubular supports tagging on Deals and Contacts. Twenty includes a Tag standard object that can be applied to Person, Company, and Opportunity records. We preserve all Tag labels as Twenty Tag records and apply them via Tag.targetObjectId and Tag.name during migration. Tag label deduplication ensures no duplicate tags are created in Twenty.

Tubular CRM

Task

maps to

Twenty CRM

Task

1:1
Fully supported

Tubular Tasks are associated with Leads and Deals. We transfer Task.title, due dates (Task.dueDate), owners (resolved by email to Twenty User), and completion status (Task.status). Recurring task patterns in Tubular are not supported in export and cannot be migrated; we document recurring patterns in the handoff notes so the admin can rebuild them in Twenty's Workflow engine.

Tubular CRM

Activity Log (calls, emails, meetings, notes)

maps to

Twenty CRM

Task, Event, Note

1:1
Fully supported

Tubular activity logs attached to Deals and Contacts export as activity records via CSV or API depending on tier. Call logs map to Twenty Task with a custom taskType__c field set to Call. Email logs map to Twenty Note or Task with body content preserved. Meeting records map to Twenty Event with date, duration, and location. Where the Pro-tier export lacks API access, we coordinate manual CSV downloads of activities in dependency order after Deals are exported so that activity-to-deal links can be resolved.

Tubular CRM

User / Owner

maps to

Twenty CRM

User

1:1
Fully supported

Tubular User accounts and deal owners map directly to Twenty User by email match. We resolve every distinct owner referenced on Deal, Contact, Lead, and Task records before migration begins. Any Tubular owner without a matching Twenty User is placed in a reconciliation queue for the customer's admin to provision. Inactive Tubular users are migrated as inactive Twenty Users with records reassigned per the customer's preference.

Tubular CRM

Documents / Attachments (within deal flows)

maps to

Twenty CRM

Attachment (via URL reference)

1:1
Fully supported

Tubular PDFs and documents attached within deal flows can be extracted via UI scraping on Pro or API on Enterprise. We preserve file names, original upload timestamps, and the linked Deal name. Files are hosted as URL references in a custom Opportunity attachmentUrl__c field or as Note records with file links. We do not host or re-upload files; the original document URLs or the customer's exported file package are linked at the record level.

Tubular CRM

Custom fields on Contact and Deal

maps to

Twenty CRM

Custom fields on Person and Opportunity

lossy
Fully supported

Tubular custom fields on Contacts and Deals migrate as custom fields on Twenty Person and Opportunity objects. We create all custom fields in Twenty's Settings → Data Model before migration, using field type mapping (text to text, number to number, date to date, checkbox to boolean, select to select). A pre-migration field creation checklist is delivered to the admin during the scoping phase so that the schema is ready before any CSV import begins.

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.

Tubular CRM logo

Tubular CRM gotchas

High

Enterprise REST API is undocumented and gated

Medium

Reports cannot be programmatically exported

Low

DNA Credits limit AI-enriched enrichment features

Medium

Deal Stage Triggers are platform-specific automation

Medium

UI-based extraction required for Pro-tier exports

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

  • Tubular Pro has no API — export is CSV-only and manual

    Tubular CRM's Pro tier ($15/user/month) exposes no REST API access. Exports are limited to manual CSV downloads from the UI and Zapier integration data, which has no bulk export endpoint for historical records. We coordinate with the customer to schedule exports in dependency order (Companies first, then People, then Deals, then Activities) to preserve relational integrity. Manual UI exports are time-consuming for large datasets, and we advise allocating a dedicated export window before migration day. Enterprise-tier customers should confirm API credentials are provisioned before scoping, since the API is not publicly documented and we must test connectivity directly.

  • Twenty requires separate Person and Company records — no flat Contact equivalent

    Tubular combines person and company attributes into a single Contact object. Twenty has separate Person and Company standard objects with a one-to-many relationship. There is no flat Contact equivalent in Twenty's data model. We split every Tubular Contact into a Person record and a linked Company record, but this requires company information to exist in Tubular's Contact.company field. Contacts without a company association create standalone Person records with no Company link. The admin should review the split output in Twenty's Sandbox before production migration and decide whether to backfill Company records for unlinked Persons.

  • Tubular Deal Stage Triggers do not migrate as logic

    Enterprise-tier Tubular customers may have active Deal Stage Triggers that fire Email Templates or update fields when a deal enters a specific stage. Twenty's Workflow engine handles stage-based automation differently, with a different trigger model and action library. We document every active Tubular trigger and email template during discovery, including the stage condition and the action fired, and deliver the inventory as a written rebuild guide for the customer's admin. Triggers and templates are not migrated as code and will not fire in Twenty without manual reconstruction.

  • Twenty's minimal standard fields require pre-import schema work

    GitHub issue #13953 filed against Twenty notes that the Person and Company objects include a minimal set of standard fields out of the box, and teams migrating from Tubular or other CRMs often cannot map their data directly because Twenty does not include fields like multiple phone types, department, social profiles, or industry as defaults. We create all required custom fields in Twenty's Settings → Data Model before migration, but the customer must review and approve the field list during scoping. Fields must exist in Twenty before CSV import because the import tool creates records, not fields.

  • DNA Credit-enriched data and Tubular reports cannot be migrated

    Tubular's DNA Credits (100 on Pro, 250 on Enterprise) power AI-enriched features such as lead scoring and company profile enrichment. These credit-driven values have no monetary equivalent in Twenty's data model and cannot be transferred as live data. We advise customers to export any enriched lead scores or AI-suggested fields before migration cutoff so that the data is preserved in a reference document. Tubular's view-only reports (MoM/QoQ, Lead Source, Task Reports) similarly cannot be programmatically extracted. We recommend screenshotting or manually exporting any report the team relies on for historical context before migration day.

Migration approach

Six steps for a successful Tubular CRM to Twenty CRM data migration

  1. Discovery and export readiness assessment

    We audit the Tubular CRM account across tier (Pro or Enterprise), active users, record counts per object, custom field inventory, active Deal Stage Triggers, Email Templates, and DNA Credit usage. We assess whether API credentials are available on Enterprise or whether the customer must perform manual CSV exports on Pro. The discovery output is a written migration scope that lists every object to migrate, the export method per object, any pre-migration data cleanup required, and a custom field mapping matrix for the customer's review.

  2. Twenty workspace preparation and field creation

    We create the target schema in the customer's Twenty workspace before any data is exported from Tubular. This includes creating all custom fields on Person and Opportunity (matching Tubular's custom Contact and Deal fields), configuring Opportunity stage names and order to match Tubular pipeline stages, inviting all active users to Twenty so that owner resolution can proceed, and setting up the Tag object structure. The admin reviews and approves the schema setup in Twenty before we request export files from Tubular.

  3. Export coordination and data extraction

    For Enterprise customers with API access, we test the API endpoint connectivity directly using provided credentials, extract records in dependency order, and validate record counts against what Tubular's UI reports. For Pro customers, we coordinate with the customer to download CSV exports from Tubular's UI in the correct sequence: Company names from Contacts first, then Contacts, then Deals, then Tasks, then Activity Logs. We provide a step-by-step export guide with screenshots so that non-technical team members can complete the export without guidance from us.

  4. Data transformation and Contact-to-Person split

    We transform the exported Tubular data before importing into Twenty. The primary transformation is the Contact split: we extract distinct company names from Tubular Contact records, deduplicate them, and generate a Company CSV for Twenty import. We then generate a Person CSV where each row corresponds to a Tubular Contact, with the companyLink.definiteV1 field resolved to the Twenty Company ID generated in the prior step. We flag any Tubular Contact without a company association for admin review and decide whether to create placeholder Company records or import as unlinked Persons.

  5. Staging migration and reconciliation

    We run the full migration into a Twenty staging environment using production data volume so that the customer can validate record counts, spot-check field mapping, and confirm that the Person-Company relationship resolves correctly. The customer's lead reviews 25-50 randomly sampled records against the Tubular source, verifies that deal values and stage assignments are accurate, and confirms that Tags appear on the correct Person and Opportunity records. We correct any mapping errors identified in staging before proceeding to production migration.

  6. Production migration, delta sync, and handoff

    We run the production migration in dependency order: Company records first, then Person records with company links, then Opportunities with stage and owner resolved, then Tasks and Activity Logs, then Tags. We freeze writes to Tubular during the production migration window and run a final delta sync of any records created or modified during the cutover period. We deliver the Deal Stage Trigger inventory and Workflow rebuild guide to the customer's admin. We do not rebuild Tubular automations or DNA Credit features in Twenty; that is a separate rebuild engagement.

Platform deep dives

Context on both ends of the pair

Tubular CRM logo

Tubular CRM

Source

Strengths

  • Clean, minimalist interface ranked in Capterra's top 10 most user-friendly CRMs.
  • Unlimited Deals and Contacts on all pricing tiers.
  • Forecast-weighted pipeline views with deal-stage triggers available on Enterprise.
  • Native Zapier integration for connecting to 1,000+ third-party apps.
  • Competitive per-user pricing ($15-$20/month) for small sales teams.

Weaknesses

  • REST API is Enterprise-only and not publicly documented, limiting programmatic data access.
  • No native bulk import/export UI beyond CSV, making large dataset migrations manually intensive.
  • Workflow automation and sequence capabilities lag behind HubSpot and Pipedrive.
  • Small market share and limited third-party community result in sparse documentation and few migration guides.
  • Reports and analytics are view-only and cannot be exported for reconstruction in another CRM.
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. 2 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 Tubular CRM and Twenty CRM.

  • Object compatibility

    B

    2 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

    Tubular CRM: Not publicly documented.

  • Data volume sensitivity

    B

    Tubular CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

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

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

Can't find your answer?

Walk through your Tubular CRM 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 with under 10,000 Contacts and 3,000 Deals on the Pro tier requiring manual CSV export. Enterprise-tier migrations with API access and clean data move faster, typically three to four weeks. Migrations with large activity histories, multiple pipelines, extensive custom field inventories, or Tubular Pro datasets requiring coordinated multi-session CSV exports extend to six to ten weeks. The export preparation phase on Pro is the most variable component because it depends on how quickly the customer's team can generate and validate CSV downloads.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Tubular CRM.
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