CRM migration
Field-level mapping, validation, and rollback between BSI CRM and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
BSI CRM
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between BSI CRM and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from BSI CRM to Twenty CRM is a structural migration that begins before data extraction starts. BSI CRM does not publish a self-service export mechanism, and API access is gated by plan tier, which means the extraction method must be confirmed during scoping before migration architecture is designed. We request a full data export through BSI's support channel, enumerate all custom object schemas manually, and handle any fields or objects that BSI does not expose as part of the standard export. Twenty CRM receives standard objects (Person, Company, Opportunity) directly and supports custom objects via its metadata API, which we provision before data load. Workflows, AI-generated inferences, and compliance logs in BSI CRM are not exportable artifacts — we document them for manual rebuild in Twenty. The migration sequence runs Users first (foreign key resolution), then Companies, then Persons with AccountId resolved, then Opportunities, then Activity history, then Custom Objects last. File attachments require separate handling because Twenty's CSV import does not include them; we migrate attachments via the Twenty API or flag them for manual re-upload with a record linkage map.
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 BSI 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.
BSI CRM
Contact
Twenty CRM
Person
1:1BSI CRM Contact records map directly to Twenty CRM Person objects. Standard fields (name, email, phone, title) transfer directly. Any custom contact fields defined in BSI's modular configuration migrate as custom fields on Person, which Twenty creates via the /metadata API. BSI contact-industry classification fields map to custom fields on Person or to a link to a Company record depending on the field's intended use. The Person.companyId link is resolved by the Company mapping phase before Person import begins.
BSI CRM
Company (Account)
Twenty CRM
Company
1:1BSI CRM Company records map to Twenty CRM Company objects with hierarchical parent-child relationships preserved. Industry classification, annual revenue, employee count, and address fields transfer directly where field types are compatible. BSI's company domain field maps to the Company domain field in Twenty. Parent-company linkages resolve through the Twenty Company lookup field, which we validate after Company import by comparing record counts against BSI's reported totals.
BSI CRM
Deal (Opportunity)
Twenty CRM
Opportunity
1:1BSI CRM Deal records map to Twenty CRM Opportunity objects. Pipeline stage names from BSI vary by industry configuration, so we define an explicit stage mapping table during scoping before migration. Deal value, owner assignment, expected close date, and currency fields transfer directly. Any BSI-specific deal fields (such as deal source, win/loss reason, or custom deal attributes) become custom Opportunity fields created via Twenty's metadata API before import.
BSI CRM
Pipeline Stage
Twenty CRM
Opportunity Stage
lossyBSI CRM pipeline stages are configurable per industry module and may not align with Twenty's default stage set. We enumerate all active pipeline stages during discovery, then create matching stage options in Twenty's Opportunity workspace before any Deal records are imported. Probability percentages from BSI map to Twenty's stage probability values with rounding to the nearest supported integer.
BSI CRM
Activity (Call, Email, Meeting, Task)
Twenty CRM
Task / Event / Email
1:1BSI CRM Activity records — logged calls, emails, meetings, and tasks — map to Twenty's Task and Event objects with type differentiation by activity.kind. Call disposition and duration transfer to custom Task fields. Meeting records with start and end times map to Twenty Event. Email records map to Twenty's email-capable Task or Activity model depending on how the destination workspace is configured during setup. All activities link to their parent Person and Company via the relationship fields that Twenty provides. We validate the count of migrated activities against BSI's reported totals before closing the phase.
BSI CRM
Custom Object
Twenty CRM
Custom Object
1:1BSI CRM custom objects are defined within its modular configuration and require a pre-migration discovery phase because the platform does not publish a self-service export or schema introspection for custom objects. We enumerate every custom object name, its field definitions (name, type, required/optional), and record counts manually during scoping. Twenty receives these as custom objects created via its /metadata API before any BSI data loads. Custom object relationships to Person, Company, or Opportunity resolve after the parent standard object is already present in Twenty.
BSI CRM
User (Owner)
Twenty CRM
User
1:1BSI CRM User records are migrated first in the load sequence because every other object references owners as foreign keys. We resolve BSI user emails against Twenty's user table by email match. Any BSI Owner without a matching Twenty User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Role and permission sets do not transfer because they are platform-specific configuration; we document the role structure for manual reconstruction.
BSI CRM
Attachment
Twenty CRM
File (linked via API)
1:1BSI CRM file attachments associated with Contacts, Deals, or Activities are exported individually from BSI's file storage and must be linked back to their parent record in Twenty. Twenty's CSV import does not include file attachments, so we migrate attachments via the Twenty REST API or flag them for manual re-upload with a record linkage map documenting which files belong to which Person, Company, or Opportunity. The linkage map is delivered as a CSV with the original filename, parent object, and parent record ID from both systems.
BSI CRM
Tag / Classification
Twenty CRM
Custom Field (multi-select) or Topic
lossyBSI CRM tagging and custom classification fields may not have a direct Twenty equivalent depending on how the tagging system is implemented in BSI's modular configuration. We capture these as custom multi-select or text fields on the relevant Twenty object and flag any tagging logic that represents business rules rather than simple categorization. Business-rule tagging that should trigger workflow actions in BSI is documented separately for workflow rebuild in Twenty.
BSI CRM
Workflow / Automation
Twenty CRM
Workflow (manual rebuild)
lossyBSI CRM workflow automation rules and AI-generated inferences are configuration artifacts that do not export as portable data. We document every active workflow and automation configuration during discovery and deliver a written rebuild checklist with trigger, conditions, actions, and recommended Twenty workflow equivalent. This includes AI enrichment logic, lead scoring rules, automated data triggers, and compliance logging workflows that BSI's built-in AI generates. Rebuild time is scoped at 2-4 weeks for moderate automation complexity and is outside the migration fee.
| BSI CRM | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company (Account) | Company1:1 | Fully supported | |
| Deal (Opportunity) | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stagelossy | Fully supported | |
| Activity (Call, Email, Meeting, Task) | Task / Event / Email1:1 | Fully supported | |
| Custom Object | Custom Object1:1 | Fully supported | |
| User (Owner) | User1:1 | Fully supported | |
| Attachment | File (linked via API)1:1 | Fully supported | |
| Tag / Classification | Custom Field (multi-select) or Topiclossy | Fully supported | |
| Workflow / Automation | Workflow (manual rebuild)lossy | 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.
BSI CRM gotchas
No publicly documented self-service export or data portability tool
API access and custom object export gated by plan tier
Workflows and AI-generated automations are not exportable
Custom object schema discovery required before migration design
Performance variability during data extraction
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 export method confirmation
We audit the BSI CRM instance across all active modules, enumerating Contact, Company, Deal, Activity, Custom Object, and User record counts. We confirm the available export method by querying BSI's API during discovery to identify rate limits, blocked endpoints, and any custom object access restrictions. If the API is insufficient or inaccessible, we engage BSI's support channel for a Professional Services-assisted export. We also enumerate active workflows, AI automation rules, and compliance logging configurations for the rebuild inventory. The discovery output is a written scope document specifying the confirmed export method, any objects or fields not accessible for automated migration, and the BSI plan tier's impact on extraction architecture.
Schema design and Twenty custom object provisioning
We design the destination schema in Twenty CRM. This includes creating custom objects via the /metadata API for every BSI custom object identified during discovery, defining custom fields on Person, Company, and Opportunity that correspond to BSI custom fields, and configuring Opportunity stage options to match BSI's pipeline stages with probability values. We map BSI industry-specific classification fields to appropriate Twenty field types (multi-select, text, or link to a Company). The schema design is validated in Twenty's development workspace before any production data loads begin.
Sandbox migration and reconciliation
We run a full migration into Twenty's development environment using production-like data volume extracted from BSI. The customer's RevOps lead reconciles record counts against BSI's reported totals, spot-checks 25-50 random records for field accuracy and relationship integrity, and signs off the schema and mapping before production migration begins. Any mapping corrections — field type mismatches, missing stage values, or relationship resolution failures — are corrected in the schema design phase. Skipping this step risks silent data loss in production that is difficult to correct after cutover.
User and Company provisioning order
We extract every distinct BSI Owner referenced on Contact, Company, Deal, and Activity records and match by email against Twenty's User table. Any BSI Owner without a matching Twenty User goes to a reconciliation queue for the customer's admin to provision. We then migrate BSI Company records to Twenty Company objects, resolving parent-child hierarchies during this phase. Company import must complete before Person import because every Person record requires a resolved companyId link in Twenty.
Production migration in dependency order
We run production migration in record-dependency order: Users (manually provisioned, validated), Companies (from BSI Accounts), Persons (with companyId resolved from the Company phase), Opportunities (with personId, companyId, and assignedTo resolved), Activity history (Tasks, Events, Emails linked to Person and Company), then Custom Objects last because they often carry lookups to standard objects. Each phase emits a row-count reconciliation report before the next phase begins. File attachments migrate via the Twenty API after the parent record is confirmed present.
Cutover, validation, and workflow rebuild handoff
We freeze BSI CRM writes during cutover, run a final delta migration of any records modified during the migration window, then enable Twenty CRM as the system of record. We deliver a written workflow and automation rebuild inventory to the customer's admin team, documenting every BSI workflow trigger, condition, action, and the recommended Twenty workflow rebuild approach. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's team. Workflow rebuilds, AI automation reconstruction, and compliance logging configuration are outside the data migration scope and are handled as a separate engagement or internal admin task.
Platform deep dives
BSI CRM
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 BSI CRM and Twenty CRM.
Object compatibility
3 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
BSI CRM: Not publicly documented — Enterprise Integration Platform (EIP) is advertised as capable of 10,000 executions per minute at the platform level; per-customer rate limits confirmed during scoping.
Data volume sensitivity
BSI CRM 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 BSI CRM to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your BSI 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 BSI 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.