CRM migration
Field-level mapping, validation, and rollback between eSalesTrack and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
eSalesTrack
Source
Twenty CRM
Destination
Compatibility
9 of 12
objects map 1:1 between eSalesTrack and Twenty CRM.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Moving from eSalesTrack to Twenty CRM is a CSV-first migration because eSalesTrack does not expose a public REST or GraphQL API. We extract data via CSV export at the account level, normalize field types and pipeline stage names, then ingest into Twenty CRM through its REST API. The primary schema decisions involve mapping eSalesTrack Leads and Contacts to Twenty's Person/Company model, reconciling eSalesTrack Accounts to Twenty Companies, and preserving pipeline stage order as Opportunity status values. Workflow automation and social selling tracking features in eSalesTrack do not migrate; we deliver a written inventory of these for your admin to configure in Twenty's settings. The migration completes in dependency order with a validation pass before cutover.
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 eSalesTrack 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.
eSalesTrack
Lead
Twenty CRM
Person
1:1eSalesTrack Lead records map to Twenty CRM Person records. The Lead's first name, last name, email, phone, and company association transfer directly. We create a Person record first, then link it to the corresponding Company record that was created from the eSalesTrack Account. Lead status values from eSalesTrack are preserved in a custom field esalestrack_lead_status__c for reporting continuity.
eSalesTrack
Contact
Twenty CRM
Person
1:1eSalesTrack Contact records map to Twenty CRM Person records. If the customer uses both Lead and Contact objects in eSalesTrack, we migrate both to Person and rely on the esalestrack_lead_status__c field to distinguish converted versus unconverted records. Contact title, department, phone, email, and address fields map directly to the corresponding Twenty Person fields.
eSalesTrack
Account
Twenty CRM
Company
1:1eSalesTrack Account records map to Twenty CRM Company records. The Account name, domain, industry, phone, website, billing address, and annual revenue transfer directly. Account is created before any Person import so that the Person-to-Company link is satisfied at the moment of Person insert. We use Account domain as a deduplication key during import.
eSalesTrack
Opportunity
Twenty CRM
Opportunity
1:1eSalesTrack Opportunity records map to Twenty CRM Opportunity. The opportunity name, amount, close date, probability, and stage transfer directly. Stage values from eSalesTrack are mapped to Twenty Opportunity status values, with the stage probability preserved as a custom field opportunity_probability__c. Owner assignment resolves by matching eSalesTrack owner email to Twenty User email.
eSalesTrack
Pipeline Stage
Twenty CRM
Opportunity Stage
lossyeSalesTrack pipeline stages map to Twenty CRM Opportunity status values. We configure the status sequence in Twenty's Settings before migration, including stage names, order, and probability percentages where applicable. If eSalesTrack uses a custom stage name not available in Twenty's default set, we create a custom status value.
eSalesTrack
Product
Twenty CRM
Product
1:1If eSalesTrack includes product catalog data, we map Product records to Twenty CRM Product records. Product name, SKU, description, and unit price transfer directly. Products are imported before any OpportunityLineItem records to satisfy the foreign key reference.
eSalesTrack
Task
Twenty CRM
Task
1:1eSalesTrack task records map to Twenty CRM Task records. Subject, due date, status, priority, and assigned owner transfer directly. Task status values are mapped to Twenty Task status options. Owner resolution uses email matching to the Twenty User table. Tasks are imported after Person and Opportunity records so that the activity links are satisfied.
eSalesTrack
Note
Twenty CRM
Comment
1:1eSalesTrack note records map to Twenty CRM Comment records. The note body, associated record type (Lead, Contact, Account, Opportunity), and associated record ID transfer directly. We create Comment records linked to the corresponding migrated Person, Company, or Opportunity using the post-migration record IDs. Note timestamps are preserved as the Comment creation date.
eSalesTrack
Owner
Twenty CRM
User
1:1eSalesTrack owner records map to Twenty CRM User accounts. We resolve owners by email match. Any eSalesTrack Owner without a matching Twenty User is held in a reconciliation queue for the customer's admin to provision before record import resumes. Owner assignment on Leads, Contacts, Accounts, and Opportunities is resolved after User provisioning completes.
eSalesTrack
Custom Field
Twenty CRM
Custom Field
lossyeSalesTrack custom fields on Lead, Contact, Account, and Opportunity map to Twenty CRM custom fields. We pre-create the destination schema in Twenty's Settings → Data Model before any data import, including all field types, labels, and API names. Text, number, date, picklist, and boolean field types migrate directly. Multi-select picklists from eSalesTrack map to Twenty multi-select fields.
eSalesTrack
Workflow
Twenty CRM
Workflow
lossyeSalesTrack workflow automation rules do not migrate to Twenty CRM. We deliver a written inventory of every active eSalesTrack Workflow with its trigger conditions, actions, and field updates. The customer's admin reviews this inventory and configures equivalent automation in Twenty's workflow settings. This ensures transparency about what automation requires manual rebuild.
eSalesTrack
Engagement
Twenty CRM
Activity
1:1eSalesTrack engagement records for calls, emails, and meetings map to Twenty CRM Activity records. The activity type, subject, date, duration (for calls), and associated record link transfer directly. Activity associations are resolved using the post-migration record IDs for the linked Person, Company, or Opportunity. If eSalesTrack exports engagement history as a separate CSV, we parse and ingest it after the primary record migration.
| eSalesTrack | Twenty CRM | Compatibility | |
|---|---|---|---|
| Lead | Person1:1 | Fully supported | |
| Contact | Person1:1 | Fully supported | |
| Account | Company1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stagelossy | Fully supported | |
| Product | Product1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Note | Comment1:1 | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Workflow | Workflowlossy | Fully supported | |
| Engagement | Activity1: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.
eSalesTrack gotchas
Implementation, training, customisation, and migration are billed separately
Custom object support is not publicly documented
Reporting templates are fixed — advanced analytics require external BI
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 CSV export coordination
We audit eSalesTrack for record counts across Lead, Contact, Account, Opportunity, Task, Note, and engagement objects. We identify all custom fields and their data types by reviewing sample CSV exports. We coordinate with the eSalesTrack admin to extract CSV files for each record type, verify completeness, and flag any records that appear truncated or missing columns. The discovery output is a written migration scope with record counts, a preliminary field mapping, and a list of any custom fields requiring pre-creation in Twenty CRM.
Twenty CRM workspace setup and schema pre-creation
Before any data import, we configure the Twenty CRM workspace to receive the migrated data. This includes creating custom fields for eSalesTrack fields that do not have direct Twenty equivalents, configuring Opportunity stage values to match eSalesTrack pipeline stages, and setting up any required picklist values. We deploy these configurations via the Twenty REST API into the customer's self-hosted or cloud instance.
CSV normalization and transformation
We parse each eSalesTrack CSV export and normalize the data for Twenty CRM ingestion. This includes standardizing date formats to ISO 8601, converting currency strings to numeric values with currency code preserved, resolving owner email references to Twenty User IDs via lookup, and generating the correct foreign key references for Company (from Account) and Person (from Lead/Contact). We produce a transformed CSV for each object type ready for API import.
Test migration in staging environment
We run a test migration using a subset of the production data into a staging or sandbox Twenty CRM instance. The customer reviews 25-50 randomly sampled records for accuracy, verifies that Person-to-Company links are correct, confirms that Opportunity stages display as expected, and validates that custom field data landed correctly. We correct any mapping errors before proceeding to production migration. Owner provisioning is verified at this stage.
Production migration in dependency order
We run production migration following the validated dependency order: Companies first (from eSalesTrack Accounts), then Persons (from eSalesTrack Leads and Contacts), then Opportunities (with resolved Company and Person lookups), then Tasks, then Comments, then Activities. Each phase emits a row-count reconciliation report before the next phase begins. We resolve Owner references by matching email to Twenty User records throughout.
Cutover, validation, and automation handoff
We freeze eSalesTrack write access during cutover and perform a final delta migration of any records modified during the migration window. We deliver a post-migration validation report showing record counts, error rates, and sampling results. We provide the automation inventory document listing all eSalesTrack Workflows requiring rebuild in Twenty CRM. We support a five-business-day hypercare window where we resolve data quality issues discovered during user adoption.
Platform deep dives
eSalesTrack
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across eSalesTrack and Twenty CRM.
Object compatibility
1 of 8 objects need a manual workaround.
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
eSalesTrack: Not publicly documented.
Data volume sensitivity
eSalesTrack 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 eSalesTrack to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your eSalesTrack 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 eSalesTrack
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.