CRM migration
Field-level mapping, validation, and rollback between Bright and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Bright
Source
Twenty CRM
Destination
Compatibility
14 of 14
objects map 1:1 between Bright and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours of clock time
Overview
Bright stores standard CRM objects — people, companies, deals, tasks, and notes — with custom fields and relationship associations. The platform uses a relational model where each record can link to related entities. Twenty CRM ships with standard objects (People, Companies, Opportunities, Tasks, Notes) and supports unlimited custom objects and custom fields on every tier. We map Bright's data model directly to Twenty's objects: people become People records with companyId pointing to their parent Company; deals become Opportunities with a stage pick-list and a linked companyId; tasks and notes migrate as their Twenty equivalents with original timestamps and owners preserved. The migration does not move automations. Bright workflows — whether triggered by field changes, date conditions, or form submissions — have no equivalent in Twenty's workflow engine. We export Bright workflow definitions as a rebuild reference for Twenty's workflow builder. Integrations and third-party connections must be re-established in Twenty separately. We access Bright through API where available, falling back to CSV export for custom-field-heavy records. Twenty's import API handles up to 200 calls per minute on the Organization tier, making bulk record loading viable for mid-size datasets. We sequence the migration so Companies land first (the 'one' side of relationships), then People (with companyId links resolved), then Opportunities (with companyId and personId links), then custom objects. This ordering satisfies Twenty's foreign-key requirements and prevents orphaned records. A scoped read-only connection to Bright keeps your team operational throughout cutover, with a delta-pickup window capturing any records modified during the switchover.
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 Bright 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.
Bright
People
Twenty CRM
People
1:1Bright's person records (contacts, leads, partners) map directly to Twenty CRM's People object. Every field on the Bright record — name, email, phone, job title — transfers to the equivalent Twenty People field. The companyId link to the parent Company resolves after the Companies migration batch completes, so People are imported in step two of the sequence.
Bright
Company
Twenty CRM
Company
1:1Bright companies map to Twenty CRM's Companies object. Company name, domain/website, industry, employee count, and annual revenue transfer as standard fields. Industry pick-list values require value-by-value mapping against Twenty's allowed values. Parent-company hierarchies in Bright map to Twenty's parentId field on the Company record — the parent must land in Twenty first, which our migration sequence ensures.
Bright
Deal
Twenty CRM
Opportunity
1:1Bright deals become Twenty CRM Opportunities. The deal name maps to Opportunity.name, amount maps to amount, close date maps to closedAt, and stage maps to the stage pick-list. The stage pick-list in Twenty must be pre-populated with Bright's stage names before the migration runs — we deliver the required stage values as part of the schema setup plan before data lands.
Bright
Task
Twenty CRM
Task
1:1Bright tasks migrate as Twenty CRM Tasks. Each task links to its parent record (Person, Company, or Opportunity) via the relationId field. The task body, due date, assignee (matched by email to Twenty users), and completion status all transfer. Completed tasks from Bright retain their completedAt timestamp as a custom field since Twenty's built-in status does not preserve the exact completion datetime.
Bright
Note
Twenty CRM
Note
1:1Bright notes migrate to Twenty CRM's Notes object. Note title, body text, and rich-text content transfer directly. Notes in Twenty can be attached to Person, Company, or Opportunity records — we map the Bright note's parent record reference to the correct relationId and objectName in Twenty during the import.
Bright
Activity (Call)
Twenty CRM
Task
1:1Bright call activity logs — recorded calls with subject, duration, outcome, and notes — migrate as Twenty CRM Tasks with type set to 'Call'. The call outcome maps to a custom pick-list field on the Twenty Task since Twenty's standard task model does not include an outcome field. Owner and timestamp are preserved from the Bright activity record.
Bright
Activity (Meeting)
Twenty CRM
Event
1:1Bright meeting records — title, description, start time, end time, and attendees — map to Twenty CRM Events. The Event links to its parent Person or Opportunity via relationId. Meeting notes from Bright transfer as the Event description field. We preserve original start and end timestamps since these drive calendar views in Twenty.
Bright
Activity (Email)
Twenty CRM
Task
1:1Bright email activity logs — subject, body, timestamp, direction (sent/received), and recipient — migrate as Twenty CRM Tasks with type set to 'Email'. The email body and subject transfer to the task body and title fields. We create a custom 'EmailDirection' pick-list on the Twenty Task to preserve whether the email was sent from or received into Bright.
Bright
Custom Object
Twenty CRM
Custom Object
1:1Bright custom objects map 1:1 to Twenty CRM custom objects. If Bright has a custom object named 'Project' or 'Subscription', we create the equivalent custom object in Twenty with matching field types before the migration. Custom object relationships in Bright that use N:N associations require a junction object in Twenty — we identify these during the planning phase and include them in the schema setup plan.
Bright
Custom Field
Twenty CRM
Custom Field
1:1Every Bright custom field — whether on People, Companies, Deals, or custom objects — creates a corresponding custom field in Twenty CRM. Field type mapping is type-aware: Bright text fields become Twenty TEXT fields, pick-lists map to Twenty SELECT fields with the same options, date fields map to Twenty DATE fields, and number fields map to NUMBER. We do not charge extra for custom field creation since Twenty includes unlimited custom fields on all tiers.
Bright
Owner / User
Twenty CRM
Workspace Member
1:1Bright owner assignments on records map to Twenty CRM Workspace Members. We match Bright owner email addresses to Twenty user accounts by email. Any Bright owners who do not have a corresponding Twenty user are flagged before migration — the team either creates the Twenty user first or assigns those records to a fallback owner. No record lands in Twenty without a resolved owner.
Bright
Attachment / File
Twenty CRM
Not migratable via CSV
1:1Bright file attachments on any record type do not transfer via Twenty's CSV import tool. Files must be exported from Bright separately (via API or manual download), then uploaded to Twenty via the API or manually. After upload, each file must be re-linked to its parent record. This step is scoped separately from the core data migration because it involves file handling outside the structured data pipeline.
Bright
Workflow / Automation
Twenty CRM
Workflow
1:1Bright workflows — automations triggered by field changes, date conditions, form submissions, or API events — have no equivalent in Twenty CRM's workflow engine. We export Bright workflow definitions as a structured reference document (JSON or markdown) so your team can rebuild them in Twenty's workflow builder. The reference document maps each Bright trigger to Twenty's trigger types and each Bright action to the corresponding Twenty action.
Bright
Integration / Connection
Twenty CRM
Integration
1:1Bright integrations with third-party tools — email providers, calendar systems, telephony platforms, or data enrichment services — do not transfer. Each connection must be re-established in Twenty CRM using Twenty's API, webhooks, or available integrations. We document every active Bright integration during the audit phase so your team has a complete rebuild checklist before go-live.
| Bright | Twenty CRM | Compatibility | |
|---|---|---|---|
| People | People1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Activity (Call) | Task1:1 | Fully supported | |
| Activity (Meeting) | Event1:1 | Fully supported | |
| Activity (Email) | Task1:1 | Fully supported | |
| Custom Object | Custom Object1:1 | Fully supported | |
| Custom Field | Custom Field1:1 | Fully supported | |
| Owner / User | Workspace Member1:1 | Fully supported | |
| Attachment / File | Not migratable via CSV1:1 | Fully supported | |
| Workflow / Automation | Workflow1:1 | Fully supported | |
| Integration / Connection | Integration1: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.
Bright gotchas
CIS deduction rates are employee-specific and must transfer as discrete fields
No bulk document export API forces manual file downloads
Leave entitlement balances require separate export alongside the request history
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
Audit Bright data and map the schema
FlitStack AI inventories every Bright object, counts records by type, and documents all custom fields with their data types and usage frequency. We identify which Bright objects have relationships to other objects (People linked to Companies, Deals linked to both) and document the relationship cardinality. We also export Bright workflow definitions as a rebuild reference and list every active integration. This audit produces the schema setup plan that tells your team which Twenty custom fields, custom objects, and stage values to create before data arrives. We deliver this plan within the first week of engagement.
Set up Twenty CRM workspace schema
Your team (or our team) creates the Twenty CRM custom fields, custom objects, and opportunity stage values identified in the audit. Because Twenty includes unlimited custom fields on all tiers, there is no tier-gate preventing us from creating every field Bright uses. We provide a field-creation checklist with exact names, types, and pick-list values so the workspace is ready before we begin validation. Owner email matching against Twenty Workspace Members also happens here — we provide the list of required Twenty users so your team can invite them before migration.
Resolve owners and validate record counts
We match Bright owner IDs to Twenty Workspace Members by email. Unmatched owners are flagged and assigned to a fallback owner, or held for your team to create the corresponding Twenty account. We validate total record counts in Bright per object to confirm the migration scope and identify any objects approaching Twenty's 20,000-record CSV export limit, which triggers API-based export routing instead of CSV. This step runs concurrently with schema setup and produces a final migration scope document.
Run a sample migration with field-level diff
A representative slice — typically 100 to 500 records spanning People, Companies, Deals, Tasks, and Notes — migrates first. We generate a field-level diff comparing source Bright values to destination Twenty values so you can verify that pick-list mappings, date formats, owner assignments, and relationship links (companyId on People, personId on Opportunities) resolved correctly. You review the diff and approve before the full migration commits. Any incorrect mappings are corrected in the migration plan before the next step.
Run full migration with delta pickup
The full migration executes using the approved mapping plan, with Companies imported first, then People, then Opportunities, then custom objects. We use Twenty's API for datasets exceeding 20,000 records or for imports requiring precise relationship ordering. A delta-pickup window — typically 24 to 48 hours after the main import completes — captures any records modified in Bright during the cutover. FlitStack AI uses scoped read access on Bright throughout, meaning your team continues working in Bright uninterrupted. One-click rollback is available if post-migration reconciliation reveals data quality issues.
Platform deep dives
Bright
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Bright and Twenty CRM.
Object compatibility
1 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
Bright: Not publicly documented.
Data volume sensitivity
Bright 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 Bright to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Bright 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 Bright
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.