Salesforce to Twenty CRM Migration
- Free 30-minute call
- No obligation
- Reply within 48 hours
Why Teams Move from Salesforce to Twenty
Teams choose Twenty to own their CRM and their data: its core is open source, it can be self-hosted, and every custom object gets its own API. Read why companies are leaving Salesforce for open-source CRM, our Twenty CRM review, the Twenty CRM vs Salesforce comparison and whether Twenty is right for your business.
The checklist, field map and timeline below cover the move itself. After the migration, our Twenty CRM implementation team can run and extend it, including self-hosting on AWS.
The reasons teams give most often:
- More platform than the team can run. Flow, Process Builder, Apex and Lightning components need specialists; the complexity grows with every year of customization.
- Per-user cost. Seats and editions priced for features the team does not use, plus admin and consultant fees.
- Simpler workflows. A CRM the team can change itself, without a developer for every new field.
- Integrations built on open APIs. Twenty gives every object REST and GraphQL endpoints.
- Owning the data and the code. Twenty’s core is open source and can run on your own servers.
What Moves, What We Rebuild, What Cannot Move
- 9 move
- 4 we rebuild
- 3 cannot move
| In Salesforce | In Twenty | Status |
|---|---|---|
| AccountsMatched to people by company domain or record ID. | Companies | Moves |
| Contacts and leadsMatched by email address or record ID. | People | Moves |
| Opportunities | Opportunities | Moves |
| Custom objects and custom fieldsCreated through Twenty’s metadata API before the data is loaded. | Custom objects and fields | Moves |
| Lookups between records | Relations | Moves |
| Record ownersYour users are invited to Twenty before the import, as Twenty’s docs advise. | Workspace members | Moves |
| NotesLoaded through the API, because a CSV import cannot link a note to several records. | Notes | Moves |
| Tasks and eventsLoaded through the API for the same reason. | Tasks | Moves |
| Chatter posts and commentsSalesforce exports only the first 1,000 characters of each post and comment. | Notes | Moves |
| Many-to-many relationshipsTwenty’s CSV import does not handle many-to-many relations yet. | A linking custom object | We rebuild |
| Flows, Process Builder, workflow rulesTwenty’s docs say workflows are recreated after migration. | Twenty workflows | We rebuild |
| List views, reports, dashboards | Twenty views | We rebuild |
| Profiles and permission sets | Twenty roles and permissions | We rebuild |
| Formula and roll-up summary fieldsSalesforce always leaves them out of exports. | – | Cannot move |
| Apex code and Visualforce pagesCustom code is redesigned, for example as Twenty workflows or an app built on its API. | – | Cannot move |
| Recycle Bin recordsNot in the weekly or monthly export; Data Loader’s Export All can still read soft-deleted records if you want them. | – | Cannot move |
How the Migration Runs
- 01
Free assessment
Duration: Free
We look at your objects, record counts, flows and hosting needs, and send a fixed quote with the list of what moves, what we rebuild and what cannot move.
- 02
Twenty set-up and data map
Duration: Before any data moves
We set up your Twenty workspace, hosted or self-hosted, invite your users, and create your custom objects and fields from the approved map.
- 03
Test migration
Duration: On a sample first
We load companies, then people, then opportunities, then custom objects, in the order Twenty’s docs set, for a sample of accounts you check.
- 04
Full migration and rebuild
Duration: Dates fixed in your quote
We run the full Salesforce export, load and relate every record, add notes and tasks through the API, and rebuild your flows as workflows.
- 05
Checks and handover
Duration: Before you switch off Salesforce
We compare record counts object by object, train your team, and hand over the export files.
What the Move Costs in Licenses
List prices per user per month from each vendor’s pricing page, in USD, checked October 2026:
| Platform | Plan | Price per user per month (USD) |
|---|---|---|
| Salesforce Sales Cloud | Free Suite | $0 |
| Salesforce Sales Cloud | Starter Suite | $25, billed monthly or annually |
| Salesforce Sales Cloud | Pro Suite | $100, billed annually |
| Salesforce Sales Cloud | Core | $195, billed annually |
| Salesforce Sales Cloud | Advanced | $395, billed annually |
| Salesforce Sales Cloud | Max | $550, billed annually |
| Twenty | Pro | $9, billed yearly |
| Twenty | Organization | $39, billed yearly |
| Twenty | Enterprise | From $50,000 a year |
| Twenty | Self-hosted | Free; you run the servers |
Every Twenty plan has unlimited custom objects and fields. Licenses are only part of the bill: the migration, rebuilt automations and training come on top, and so does running the servers if you self-host. Check both pricing pages in your own currency before you budget.
How Salesforce Fields Map Into Twenty
Field mapping matches each Salesforce field to a Twenty field. Most fields move one to one; the rest change on the way:
| Mapping | What happens | Example |
|---|---|---|
| Direct | Same field, same format | First Name to First Name |
| Transformation | The format or type changes | A free-text Industry field to a select field |
| Split | One field becomes several | Full Name to First Name and Last Name |
| Merge | Several fields become one | Two status fields to one Stage field |
Twenty’s import rules shape the map:
- Fields come first. An import creates records, not fields, and it does not add select options. Every custom field and option is set up in Settings, Data Model, before the data is loaded.
- Picklists become select fields. Values go in by their API name (
HIGH_PRIORITY, not “High Priority”). A multi-select picklist moves to a multi-select field as a list such as["VALUE1","VALUE2"], and an import replaces a record’s selections rather than adding to them. - Currency is two columns, the amount and the currency code, and both must be filled.
- Dates load cleanly as YYYY-MM-DD.
- Records match on a unique field: the record ID, a person’s email or a company’s domain. Keeping each Salesforce ID means a re-run updates records instead of duplicating them, and relations can be linked by ID.
The map also settles what Salesforce allowed and your Twenty set-up does not: a field that was optional but is now required gets a default or is filled before the import, and text that should be a number or a date is converted, or the row is rejected. Picklist values that differ get a written translation, decided once. For example, for a lead status:
| Salesforce value | Twenty option | Why |
|---|---|---|
| New | New | Same meaning |
| Contacted | Attempting Contact | Not yet connected |
| Qualified | Qualified | Same meaning |
| Lost | Disqualified | Renamed in the new process |
Twenty allows unlimited custom fields, so the limit is upkeep, not the platform: recreate the fields your workflows, reports and compliance use, and retire the rest.
Salesforce to Twenty Migration Checklist
Before the move
- Audit the org. Objects, record counts, which fields are filled and used, and every custom object with what depends on it.
- List the automation. Each flow, workflow rule, Process Builder process and Apex trigger, and who relies on it.
- Map the integrations. Every system that reads or writes Salesforce, and how it will reach Twenty: a native connector, a tool such as Zapier or n8n, or the API.
- Agree the scope with the people who use the data. Which objects move, how much history (activities, opportunity stage history, the audit trail), and what is archived instead.
- Set success criteria in numbers. Error rate on migrated records, record counts per object, key reports matching Salesforce, integrations running, and how many users work in Twenty by day 30.
- Clean before you move. Remove duplicates, standardize formats and retire fields nobody uses. A full Salesforce data export first gives you a backup.
Moving the data
- Load in dependency order. Invite users, then load companies, people, opportunities, custom objects with relations, and last the notes, tasks and files that attach to them. A record loaded before its parent becomes an orphan.
- Keep the dates. Created and modified dates come across with each record, so history keeps its timeline.
- Test in rounds. A sample from every object (mapping and formats), then a larger subset (relations, automations, who can see what), then a full dry run (speed, search, reports). Each failure and its fix is written down before the next round.
- Choose the cutover. A hard cutover is one switch with no fallback; parallel running is safer but means entering data twice; a phased move goes team by team and takes longer overall.
- On the day: a final backup, Salesforce set to read-only, the records created since the last load moved, and counts compared before anyone works in Twenty.
- Keep data safe in transit. Encrypted files, access only for the people doing the move, a log of every export and load, and your GDPR or CCPA duties carried over.
After the move
- Validate in layers, against the targets set in step 5:
| Check | How | Example target |
|---|---|---|
| Record counts | Totals by object, Salesforce against Twenty | All records, or listed exceptions |
| Relations | Parent and child links, such as people to companies | 99% or more linked |
| Field accuracy | A field-by-field sample of records | 99% or more match |
| Files | Attachments open from their records | All open |
| Activity history | Notes and tasks on their records | All in scope present |
| Owners | Each record’s owner is the right workspace member | All correct |
- Rebuild and test integrations and automations, then let each team test its own daily work in Twenty.
- Train by role and update your documentation. Keep Salesforce read-only for 30 to 60 days as a fallback, and review the criteria at 30, 60 and 90 days.
How Long a Salesforce to Twenty Migration Takes
Data volume, customization, integrations and the time your team can give to checks set the length, so dates come after the assessment, not from a rule of thumb:
- Small org: standard objects, little customization, clean data and few integrations. The shortest path, but it still needs a map, a test load and checks.
- Mid-sized org: some custom objects, integrations to reconnect, several teams to train. Mapping needs transformations, and Salesforce orgs that have run for years often show customization nobody listed at the start.
- Highly customized org: many custom objects, complex automation, compliance sign-off. Custom objects may need redesign, automations are recreated and tested, and the move is often phased.
Preparation decides the speed more than anything else: a problem found in the audit costs less to fix than one found after cutover.
Migration Mistakes to Avoid
- Moving everything. Unused legacy data adds load time and clutter. Decide the scope in the audit.
- Skipping deduplication. Duplicates in Salesforce become duplicates in Twenty, now with relations attached.
- Underestimating custom objects. One central custom object can need a redesign; find it in the audit, not mid-migration.
- Losing history. Activity that is not mapped, or dates reset to the migration day, strips records of their context.
- Loading out of order. Children loaded before parents end up linked to nothing.
- Skipping test loads, or having no rollback plan. The first full load should never be the production one.
- Forgetting integrations. Email, calendar, billing and support tools stop syncing unless each is rebuilt and tested.
- Expecting Salesforce inside Twenty. Twenty works differently; decide which behaviors matter and which can change. Our Twenty CRM review covers where it is still thin.
- Rushing cutover. Once people create records in Twenty, going back is hard. Set the cutover criteria first.
- Leaving users out. Data can be perfect and the move still fail if people go back to spreadsheets: user adoption needs early news, role-based training and someone to ask.
When Salesforce Is Still the Right Call
Twenty is younger than Salesforce. Stay, or plan carefully, if:
- You depend on AppExchange products such as CPQ, field service or industry clouds.
- Your process lives in Apex, and redesigning it costs more than the licenses you would save.
- Nobody can own the CRM technically. Self-hosting means someone runs updates and backups; Twenty’s hosted service is the alternative.
Not sure which applies to you? Our Twenty CRM consulting team reviews your Salesforce setup before you decide.
Moving to monday.com instead, or from another tool? Our data migration service covers every move we run.
Frequently Asked Questions
Can we host Twenty ourselves?
Yes. Twenty documents self-hosting with Docker Compose, and you keep the data on your own servers. Twenty also offers a hosted service if you prefer not to run it.
Why not just import the Salesforce CSV files into Twenty?
Twenty’s CSV import takes up to 10,000 records per file, does not create fields, and cannot link notes and tasks or many-to-many relations. We use its API for those parts.
What happens to our Salesforce flows?
Flows are Salesforce metadata, so no data export carries them. We list each one in the assessment and rebuild the ones you need as Twenty workflows.
How much does it cost?
It depends on your objects, record counts, flows and hosting. The assessment is free and ends with a fixed quote.
What is the correct sequence for importing Salesforce objects into Twenty CRM to preserve relationship integrity during migration?
Import in this order: users and teams first, then accounts/companies, contacts (linked to accounts), opportunities/deals (referencing accounts, contacts, and owners), activities and notes, custom objects based on their dependencies, and finally attachments/files. This sequencing prevents orphan records, such as contacts without parent accounts or opportunities losing context, which matters in Twenty CRM’s relational structure. Check record counts and relationships after each stage before loading the next.
How do you handle picklist value mismatches and required field conflicts when mapping Salesforce data to Twenty CRM?
Explicitly map differing picklist values, like Salesforce ‘Prospecting’ to Twenty ‘New’, and find fields your Twenty setup depends on that are optional in Salesforce, so you can assign defaults or clean the data beforehand. Validate data type conversions (text-to-number, dates, currencies) too, to avoid import failures. Twenty takes select values by their API names, and the options must exist before the import. A translation table, like the one in the field-mapping section, keeps every decision documented.
Should all custom fields and objects from Salesforce be migrated to Twenty CRM, and how to decide?
Audit custom fields for usage frequency and relevance; migrate only those essential for workflows, reporting, and compliance, and archive or retire the rest to keep Twenty CRM lean. Twenty allows unlimited custom objects and fields on every plan, so the limit is upkeep, not the platform. Document mappings in spreadsheets for reuse, and start with core objects like accounts, contacts, and deals.
How can Salesforce validation rules and triggers be managed during bulk data migration to Twenty CRM without compromising data quality?
Salesforce validation rules and triggers run when records are saved in Salesforce, so they don’t block an export. The checks that matter are on the Twenty side: clean and standardize data before import, load in batches, and review any rejected rows after each batch. Keep Salesforce record IDs as external IDs, so relationships like Accounts to Contacts can be rebuilt reliably in Twenty. Tools like Data Loader or an ETL platform handle high-volume exports.
Will we lose any data during the migration process?
Data loss is preventable with proper methodology. The risks that lead to data loss include incomplete field mapping, failed relationship preservation, and inadequate validation. Structured migration practices, including comprehensive audits, test migrations, and post-migration reconciliation, greatly reduce that risk. The goal is zero data loss for records within scope.
Can we migrate Salesforce data to Twenty without downtime?
Yes, with proper planning. A common approach is to keep using Salesforce for production work while data is extracted, transformed, and loaded into Twenty. The only downtime typically required is a brief cutover window to migrate final delta records created after the initial migration. This window can often be scheduled during off-hours to minimize operational impact.
Should we clean our Salesforce data before or after migration?
Before. Always before. Cleaning data after migration means you have already invested effort in migrating records that should not have been migrated. It means duplicates, incomplete records, and outdated information now exist in both systems. Pre-migration cleaning reduces migration scope, simplifies the process, and ensures the new system starts with a clean foundation.
How do we validate that the migration was successful?
Validation should be multi-layered: record count comparison between systems, field-level sampling to verify data accuracy, relationship verification to confirm parent-child associations survived, and reporting comparison to ensure dashboards produce expected results. Cross-functional stakeholders should participate in validation, as they can identify discrepancies that technical checks might miss.
What is the biggest risk in Salesforce to Twenty migration?
Two risks do the most damage. The first is broken relationships. CRM data is relational, and migrations that fail to preserve the connections between records create fragmented, unusable data. Contacts without account associations. Opportunities without contact linkages. Activities attached to nothing. Relationship preservation requires careful migration sequencing and validation, but when done correctly, it eliminates the most damaging migration failures. The second is users who go back to spreadsheets: a migration with perfect data still fails if the team does not adopt Twenty, so training and communication belong in the plan.
How long does a Salesforce to Twenty CRM migration typically take?
Migration timelines vary with data volume, customization complexity, number of integrations, and team availability, so set the schedule after the audit rather than from a rule of thumb. Organizations that skip the pre-migration phase extend timelines significantly when issues surface during execution. Our free assessment ends with a fixed quote that sets the dates.
Can I migrate all historical data from Salesforce to Twenty CRM?
Yes, historical data including closed opportunities, past activities, and archived records can be migrated. The decision of what to migrate should balance the value of historical context against the cost and complexity of moving older data. Some organizations migrate everything. Others archive historical data separately and start fresh with active records only. A common approach migrates recent history while archiving older data in a separate system accessible for reference.
What happens to my Salesforce integrations during migration?
Integrations must be rebuilt in the new system. Native connectors available for both platforms may offer straightforward replacement. Custom API integrations require development work to redirect connections. Middleware platforms like Zapier may need reconfiguration but preserve some integration logic. Plan integration work as its own workstream, and test thoroughly before cutover.
How do I know if my migration was successful?
Define success criteria before migration and measure against them systematically. Key indicators include data accuracy rates (target less than 1% errors), user adoption levels (target 80%+ daily active users by day 30), reporting accuracy (key reports match expected values), and integration stability (connected systems functioning without intervention). Conduct formal reviews at 30, 60, and 90 days to identify and address issues before they become entrenched.
Sources
- 01Salesforce Help: Export Backup Data from SalesforceWhat the Data Export Service includes, files and attachments, the 1,000-character Chatter limit, formula fields left out, 48-hour download window.https://help.salesforce.com/s/articleView?id=xcloud.admin_exportdata.htm&type=5Open Salesforce Help: Export Backup Data from Salesforce in a new tab
- 02Salesforce Help: Data Export FAQRecycle Bin data is not included in the export.https://help.salesforce.com/s/articleView?id=000383962&type=1Open Salesforce Help: Data Export FAQ in a new tab
- 03Salesforce Developers: Export data with Data LoaderRecord IDs, relationship queries, and archived activities and soft-deleted records with Export All.https://developer.salesforce.com/docs/platform/data-loader-impl/guide/exporting-data.htmlOpen Salesforce Developers: Export data with Data Loader in a new tab
- 04Salesforce Developers: Metadata API introductionCustomizations are metadata, handled apart from business data.https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_intro.htmOpen Salesforce Developers: Metadata API introduction in a new tab
- 05Twenty docs: Data migration overviewCSV import of up to 10,000 records per file, fields created first, matching by id, email or domain, import order.https://docs.twenty.com/user-guide/data-migration/overviewOpen Twenty docs: Data migration overview in a new tab
- 06Twenty docs: Import relationsWhich relations a CSV import can and cannot set.https://docs.twenty.com/user-guide/data-migration/capabilities/import-relationsOpen Twenty docs: Import relations in a new tab
- 07Twenty docs: Migrating from other CRMsInvite users before importing; views, workflows and permissions are recreated after migration.https://docs.twenty.com/user-guide/data-migration/how-tos/migrating-from-other-crmsOpen Twenty docs: Migrating from other CRMs in a new tab
- 08Twenty docs: APIsREST and GraphQL for every object, and the metadata API for objects and fields.https://docs.twenty.com/developers/extend/apiOpen Twenty docs: APIs in a new tab
- 09Twenty docs: WorkflowsThe visual workflow builder and its triggers.https://docs.twenty.com/getting-started/core-concepts/workflowsOpen Twenty docs: Workflows in a new tab
- 10Twenty docs: Self-host with Docker ComposeRunning Twenty on your own server.https://docs.twenty.com/developers/self-host/capabilities/docker-composeOpen Twenty docs: Self-host with Docker Compose in a new tab
- 11Salesforce: Sales Cloud pricingStarter Suite $25, Pro Suite $100, Core $195, Advanced $395, Max $550 per user per month (USD); billing terms per edition.https://www.salesforce.com/sales/pricing/Open Salesforce: Sales Cloud pricing in a new tab
- 12Twenty: PricingPro $9 and Organization $39 per user per month billed yearly, Enterprise from $50k a year, unlimited custom objects and fields, self-hosting the open-source core free.https://twenty.com/pricingOpen Twenty: Pricing in a new tab
- 13Twenty docs: Field mappingSelect and multi-select values by API name, options created first, imports replace selections, currency in two columns, date formats.https://docs.twenty.com/user-guide/data-migration/capabilities/field-mappingOpen Twenty docs: Field mapping in a new tab
- 14Twenty docs: Fix import errorsDuplicates, parent records missing, date format YYYY-MM-DD, select API names, currency amount and code.https://docs.twenty.com/user-guide/data-migration/how-tos/fix-import-errorsOpen Twenty docs: Fix import errors in a new tab
Plan Your Salesforce to Twenty CRM Move
Tell us what you use Salesforce for today. We will send the list of what moves, what we rebuild and what cannot move, with a fixed quote.
What happens after you send this
- We read your requirements and reply within 48 hours.
- We talk it through on a free 30-minute call. No obligation.
- You leave with clear next steps, and a personalized quote if you go ahead.
- All our projects are secured by NDA
- Zero spam.