CRM migration

Migrate from bxp software to Twenty CRM

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

bxp software logo

bxp software

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

75%

9 of 12

objects map 1:1 between bxp software and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

BXP Software and Twenty CRM represent fundamentally different approaches to CRM architecture. BXP deploys a bespoke, per-client data model where Forms serve as primary data containers with arbitrary custom field configurations built for each customer's workflows. Twenty CRM uses a standard open-source data model centred on People, Companies, Opportunities, Tasks, and Notes, with custom objects and fields configured through the Settings interface. Migrating from BXP to Twenty requires enumerating the specific BXP instance schema before any data moves, mapping each BXP Form and its fields to the appropriate Twenty standard or custom object, and pre-building that destination schema before the CSV import. Activity history and agent metrics stored in BXP's proprietary CDA and CCL archive formats are parsed into structured records. Workflows, QA evaluation logic, and eLearning module configurations do not migrate; we deliver a written inventory for the customer's admin to rebuild in Twenty.

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

bxp software logo

bxp software

What's pushing teams away

  • Pricing opacity is the most cited frustration — no list price is published, forcing prospects into a sales conversation before they can evaluate cost.
  • Highly bespoke deployments create switching lock-in — data models and workflows are unique to each client instance, making migration to a standard CRM complex and expensive.
  • Small market footprint and limited public documentation make it difficult for IT teams to evaluate API capabilities or run independent due diligence.
  • Feature parity gaps versus established CRMs emerge as businesses scale, particularly around reporting, integrations, and mobile access.

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

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

bxp software

Forms

maps to

Twenty CRM

People, Company, or Custom Object

1:many
Fully supported

BXP Forms are the primary data containers and hold arbitrary field configurations per client instance. We enumerate every Form in the BXP instance during scoping, then map each Form to the nearest Twenty standard object (People for contact-facing forms, Company for account-facing forms, or a Custom Object for industry-specific record types). Custom fields from each Form are pre-created in Twenty's Data Model before any import begins. Forms that serve as standalone records without clear CRM equivalents migrate as Custom Objects with the Form name preserved as the object label.

bxp software

Contacts

maps to

Twenty CRM

People

1:1
Fully supported

BXP Contact records map directly to Twenty People. Email, phone, and standard contact fields transfer directly. Any custom fields on the BXP Contact record are created as custom fields on the Twenty People object before import. We use the BXP Contact email address as the dedupe key during Twenty import to prevent duplicate records.

bxp software

Activities (call logs, agent interactions)

maps to

Twenty CRM

Task or Note

1:1
Fully supported

BXP logs call activities and agent interactions with schema varying by client deployment. Standard call fields (duration, disposition, timestamp) map to Twenty Task records with TaskSubtype set to Call. Interaction notes and free-text activity records map to Twenty Note records linked via ContentDocumentLink to the parent People or Company record. Non-standard BXP activity fields are exported as custom task fields or Note body text depending on content type.

bxp software

Custom Fields (per-client BXP fields)

maps to

Twenty CRM

Custom Field

lossy
Fully supported

BXP's value proposition is custom fields built per client. Every custom field in the BXP instance is enumerated during scoping and created as a typed custom field in Twenty's Data Model before import. Field types are mapped: BXP text to Twenty TEXT, BXP date to Twenty DATE, BXP dropdown to Twenty SELECT, BXP number to Twenty NUMBER. Fields must exist in Twenty before the CSV import; we create them first so that the import references valid column headers.

bxp software

Custom Archives (CDA/CCL formats)

maps to

Twenty CRM

Structured CSV or JSON

lossy
Fully supported

BXP can export custom archives in proprietary CDA and CCL formats. These are parsed into standard CSV or JSON before loading into Twenty. The parsing logic is developed during scoping using a test archive sample. Parsed records are then mapped to the appropriate Twenty object (People, Company, Task) based on the archive content type. CDA and CCL parsing adds one to two weeks to the project timeline.

bxp software

Agent Metrics

maps to

Twenty CRM

Custom Object or Task

1:1
Mapping required

Contact-centre metrics like call duration, wrap time, and QA scores stored in BXP do not map directly to Twenty's standard objects. We export them as structured records in a Twenty Custom Object (AgentMetrics) with custom fields for each metric, linked via lookup to the associated People record for agent attribution. QA scores are exported as Note records linked to the associated Task (the evaluated call).

bxp software

eLearning Records

maps to

Twenty CRM

Custom Object or Note

1:1
Mapping required

BXP's eLearning module stores training completion records, scores, and module assignments. These have no direct Twenty CRM equivalent. We export eLearning records as a Custom Object (TrainingRecord) in Twenty with fields for module name, completion date, score, and status, linked to the People record representing the trained agent. If the customer does not require eLearning tracking in Twenty, records are exported as a structured CSV audit file rather than live CRM records.

bxp software

Quality Assurance Records

maps to

Twenty CRM

Custom Object or Note

1:1
Mapping required

QA evaluations tied to agent calls are stored in BXP with bespoke schema per deployment. We export QA records alongside the associated Contact and Activity to preserve evaluation context. In Twenty, QA records are stored in a Custom Object (QAEvaluation) with fields for evaluator, score, evaluation date, and evaluation criteria, linked to the associated Task (the evaluated call). The customer defines the criteria fields during scoping based on their BXP QA template.

bxp software

Accounts (BXP standard module)

maps to

Twenty CRM

Company

1:1
Fully supported

BXP includes an Accounts module for managing company records alongside Contacts. Where present, BXP Accounts map directly to Twenty Companies. The BXP account name becomes the Company name in Twenty, and the account address maps to the Company address fields. BXP account contacts are linked via the People-to-Company relationship in Twenty.

bxp software

Leads (BXP standard module)

maps to

Twenty CRM

People (or Opportunity)

1:1
Fully supported

BXP includes a Leads module for tracking unqualified prospects. BXP Leads map to Twenty People records with a custom field bxp_lead_source__c capturing the original lead source. If the BXP Lead has an associated deal value, it maps to a Twenty Opportunity record linked to the People record.

bxp software

Opportunities (BXP standard module)

maps to

Twenty CRM

Opportunity

1:1
Fully supported

BXP Opportunities map to Twenty Opportunities with deal name, amount, stage, and close date preserved. BXP pipeline stages are mapped to Twenty Opportunity stage values during the pre-build phase. Opportunity amount maps to the Twenty amount field; any custom deal fields from BXP are created as custom fields on the Twenty Opportunity object before import.

bxp software

Owner (BXP agent/user)

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

BXP agents and users referenced on Contact, Activity, and QA records are resolved by email against Twenty workspace Members. We extract every distinct owner email from the BXP export and match against the Twenty Members list. Members must be invited to the Twenty workspace and accept their invitation before the import phase because Owner references on People, Company, and Opportunity records require a valid workspace Member to link against.

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.

bxp software logo

bxp software gotchas

High

BXP has no published public API documentation

High

Every BXP instance has a unique data schema

Medium

No list pricing creates budget uncertainty

Medium

Small review corpus limits due diligence

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

  • BXP has no publicly indexed API documentation

    BXP's API documentation (v6.0-5) exists only as an internal PDF not publicly available online. There is no developer portal, no Swagger spec, and no published rate-limit information. We request the PDF directly from BXP during scoping and test API connectivity in a sandbox environment before committing to an API-based migration path. Where the BXP API is restricted or unavailable, we fall back to Form exports and custom archive exports (CDA/CCL formats), which adds parsing time and requires a representative sample archive for development testing.

  • Every BXP instance has a unique data schema

    BXP's core differentiator is that each client deployment is custom-built. There is no standard object set we can assume across instances. Forms, fields, and relationships vary. We cannot pre-build a migration template. Every engagement requires a full schema enumeration of the source BXP instance before we can design the export and load strategy. This enumeration adds one to two weeks to the discovery phase and must be completed before we can provide a fixed-price scope.

  • Twenty requires fields to exist before CSV import

    Twenty's CSV import creates records but not fields. Custom fields must be created in Settings before the import phase. Fields created in the import step are silently ignored. We create every mapped BXP custom field in Twenty's Data Model during the pre-build phase before any data is loaded. If a field is missing, records import without that data and the omission is discovered only during reconciliation.

  • Twenty does not have built-in QA or eLearning modules

    BXP includes integrated Quality Assurance and eLearning modules as core features. Twenty CRM is a CRM platform without these modules. Agent performance metrics, QA evaluation scores, and training completion records cannot be stored as standard Twenty objects. We export these as Custom Objects or structured audit files, but the customer must accept that Twenty does not replicate BXP's contact-centre-specific feature set natively. Rebuilding QA workflows in Twenty requires the customer's admin to define evaluation criteria and scoring models from scratch.

  • CDA and CCL archive parsing is a one-time development effort

    BXP's proprietary CDA and CCL archive formats require custom parsing logic developed against a sample archive from the customer's instance. There is no public specification for these formats. Parsing is a one-time development effort per customer instance; it is not a reusable template. If the customer's BXP instance has not been configured to export to these formats, or if the export function is restricted, we fall back to the bxp API or Form-level exports. We confirm archive availability and format during scoping.

Migration approach

Six steps for a successful bxp software to Twenty CRM data migration

  1. Discovery and schema enumeration

    We audit the BXP instance by requesting the internal API documentation PDF, testing API connectivity in a sandbox environment, and enumerating every Form, custom field, and relationship in the live instance. We identify which BXP Forms correspond to CRM records (Contacts, Accounts, Opportunities) versus operational records (QA evaluations, eLearning completions, agent metrics). We also identify any CDA or CCL archive exports and request a sample for parsing development. The discovery output is a written schema map and a fixed-price migration scope.

  2. Twenty workspace pre-build

    We create the destination schema in Twenty before any data export. This includes creating Custom Objects for any BXP data that has no standard Twenty equivalent (QAEvaluation, TrainingRecord, AgentMetrics), adding all mapped custom fields to the People, Company, and Opportunity standard objects, and inviting all workspace Members whose email addresses appear as BXP Owner references. The workspace is built in Twenty's Settings interface using the Data Model and Members sections. We do not run any imports until all fields and Members exist in Twenty.

  3. BXP export and data transformation

    We export data from BXP using the bxp API where accessible or Form-level exports for schema objects. CDA and CCL archive files are parsed using the developed custom parser and converted to structured CSV or JSON. All exports are validated against the schema enumeration for completeness and record counts. The transformation layer maps BXP field values to their Twenty equivalents, applies any format conversions (date formats, phone number normalisation), and applies the dedupe key (email for People, Company name for Company).

  4. Sandbox import and reconciliation

    We run the first full import into a Twenty sandbox workspace to validate the mapping. The customer reconciles record counts (People in, Companies in, Opportunities in, Tasks in), spot-checks twenty to thirty random records against the BXP source, and reviews the Custom Object records. Any missing fields, incorrect mappings, or duplicate records are corrected in the transformation layer before the production import begins. Sandbox reconciliation typically takes three to five business days.

  5. Production migration in dependency order

    We run production migration in dependency order: workspace Members (already provisioned, validated), Companies (from BXP Accounts), People (with CompanyId resolved from the Company import), Opportunities (with PeopleId and CompanyId resolved), Tasks and Notes (with PeopleId resolved), Custom Objects (with their respective lookups resolved). Each phase emits a row-count reconciliation report. During cutover, we freeze writes in BXP, run a final delta export of any records modified during the migration window, load the delta, and then mark Twenty as the system of record.

  6. QA, eLearning, and agent metrics handoff

    QA evaluation records, eLearning completion records, and agent metrics are delivered as Custom Object records in Twenty linked to the relevant People and Task records. We provide a written inventory of all migrated Custom Object records with their field definitions and recommended uses. We do not configure QA evaluation workflows or training tracking automations in Twenty as that is a separate admin configuration task. We support a five-business-day hypercare window for reconciliation issues raised by the customer's team after go-live.

Platform deep dives

Context on both ends of the pair

bxp software logo

bxp software

Source

Strengths

  • Bespoke UK and Ireland deployments with local support from a Dublin and London team.
  • Integrated contact-centre CRM, QA, and elearning in a single platform.
  • Strong customer support reputation across verified review sites.
  • Industry-specific builds for financial services, telecoms, and healthcare sectors.
  • Custom data model means every instance can accommodate complex client workflows.

Weaknesses

  • No public pricing — forces prospects into a sales conversation to get a quote.
  • Limited public API documentation and developer community.
  • Small company footprint (11-50 employees) raises long-term viability questions.
  • Highly bespoke deployments make switching to another platform expensive and complex.
  • Geographic concentration in UK and Ireland limits appeal for global organisations.
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. 3 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 bxp software and Twenty CRM.

  • Object compatibility

    B

    3 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

    bxp software: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your bxp software 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 a single BXP Form structure, fewer than 10,000 Contacts, and no CDA/CCL archive exports. Migrations with multiple BXP Forms, extensive custom fields, proprietary archive format parsing, and 50,000+ records move to seven to twelve weeks because of schema enumeration, custom parsing development, and the Twenty Data Model pre-build requirement before any import can begin.

Adjacent paths

Related migrations to explore

Ready when you are

Move from bxp software.
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