CRM migration

Migrate from eSalesTrack to Twenty CRM

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

eSalesTrack logo

eSalesTrack

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

75%

9 of 12

objects map 1:1 between eSalesTrack and Twenty CRM.

Complexity

CModerate

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

eSalesTrack logo

eSalesTrack

What's pushing teams away

  • Dated and unintuitive UI — Software Advice, Research.com, and G2 reviewers consistently call out the interface as 'complex and unintuitive' with a 'steep' learning curve, slowing rep adoption.
  • Performance complaints — G2 reviewers flag slow loading, occasional mobile performance problems, and filtering issues that disrupt daily pipeline work.
  • Limited reporting customisation — multiple reviews note there are 'limited options for customizing reports beyond default templates', pushing analytics-heavy teams toward Salesforce, HubSpot, or Zoho.
  • Thin third-party integration ecosystem — independent reviews specifically call out 'insufficient integration with third-party business tools', so teams replacing email, marketing, or accounting connectors need workarounds.
  • Advanced customisations require vendor technical support — Software Advice reviewers note that while basic config is self-service, anything substantive needs paid help, inflating TCO.

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

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

maps to

Twenty CRM

Person

1:1
Fully supported

eSalesTrack 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

maps to

Twenty CRM

Person

1:1
Fully supported

eSalesTrack 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

maps to

Twenty CRM

Company

1:1
Fully supported

eSalesTrack 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

maps to

Twenty CRM

Opportunity

1:1
Fully supported

eSalesTrack 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

maps to

Twenty CRM

Opportunity Stage

lossy
Fully supported

eSalesTrack 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

maps to

Twenty CRM

Product

1:1
Fully supported

If 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

maps to

Twenty CRM

Task

1:1
Fully supported

eSalesTrack 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

maps to

Twenty CRM

Comment

1:1
Fully supported

eSalesTrack 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

maps to

Twenty CRM

User

1:1
Fully supported

eSalesTrack 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

maps to

Twenty CRM

Custom Field

lossy
Fully supported

eSalesTrack 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

maps to

Twenty CRM

Workflow

lossy
Fully supported

eSalesTrack 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

maps to

Twenty CRM

Activity

1:1
Fully supported

eSalesTrack 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.

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.

eSalesTrack logo

eSalesTrack gotchas

High

Implementation, training, customisation, and migration are billed separately

Medium

Custom object support is not publicly documented

Medium

Reporting templates are fixed — advanced analytics require external BI

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

  • eSalesTrack has no API; CSV is the only export path

    eSalesTrack does not expose a public REST or GraphQL API, which means automated data extraction requires CSV exports initiated manually from the eSalesTrack account. CSV exports may be limited to certain record types or require per-account extraction rather than a bulk export. We coordinate with the customer's eSalesTrack admin to ensure all necessary record types are exported in a consistent format before mapping begins. This manual step adds preparation time compared to API-based migrations.

  • CSV field type inference requires validation before import

    CSV exports from eSalesTrack do not preserve field type metadata; dates, numbers, and currency values arrive as text strings. We validate and normalize these values before ingestion into Twenty CRM's typed API. Date formats are standardized to ISO 8601, currency values are stripped of non-numeric characters, and boolean fields are converted to true/false. If eSalesTrack stores phone numbers with formatting characters or country codes, we normalize these to a consistent format before import.

  • Workflow automation does not migrate between platforms

    eSalesTrack workflow automation rules (property-triggered actions, assignment rules, notification triggers) do not transfer to Twenty CRM. Twenty CRM uses a different configuration model for automation, and rebuilding eSalesTrack workflows requires manual setup by the customer's admin. We deliver a written automation inventory that documents every active eSalesTrack Workflow with its trigger conditions, conditions, and actions so that the admin can evaluate and rebuild in Twenty.

  • Parent-record dependency order requires sequencing

    Twenty CRM enforces foreign key relationships between records; Person must link to Company, and Opportunity must link to both Person and Company. CSV imports must follow dependency order: Companies first, then Persons, then Opportunities, then Activities. If eSalesTrack exports data in a flat format without respecting this dependency order, we reorder the import sequence. Missing parent records result in orphaned child records that require reconciliation.

  • Social selling pipeline data may require manual relocation

    eSalesTrack includes social selling pipeline features for tracking leads from social media sources. Twenty CRM does not have a dedicated social selling object, so social-sourced leads migrate as standard Person records. The original social source attribution (LinkedIn, Twitter/X, etc.) is preserved in a custom field so that the customer can segment social-sourced leads in Twenty CRM if needed. No automatic social media integration transfers.

Migration approach

Six steps for a successful eSalesTrack to Twenty CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

eSalesTrack logo

eSalesTrack

Source

Strengths

  • Sales pipeline, forecasting, and quota management built directly into the CRM at SMB pricing.
  • Bundled marketing automation with campaign management and bulk personalized email.
  • Dedicated mobile edition for tablets and smartphones with account, lead, and communication management.
  • Multi-channel support (email, phone, live online, webinars, in-person training) for a small vendor.
  • Per-user pricing scales linearly so cost growth is predictable as the team adds reps.

Weaknesses

  • Dated and unintuitive UI with a steep learning curve cited across G2, Research.com, and Software Advice reviews.
  • Slow loading, mobile performance problems, and filtering issues called out in G2 reviewer feedback.
  • Reporting customisation is limited to default templates — power users need to export to BI tools.
  • Insufficient native integration with third-party business tools versus mainstream CRM ecosystems.
  • Advanced configuration and customisation require vendor technical support, inflating real cost of ownership.
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?

Moderate CRM migration. 1 of 8 objects need a manual workaround.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across eSalesTrack and Twenty CRM.

  • Object compatibility

    C

    1 of 8 objects need a manual workaround.

  • 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

    eSalesTrack: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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 consultation

Most migrations land between two and four weeks for accounts under 10,000 records with clean CSV exports and no complex custom field structures. Migrations with large record volumes (over 25,000 records), multiple custom field types, engagement history requiring parsing from multiple CSVs, or data quality issues requiring pre-migration cleaning move to six to ten weeks. The primary variable is how quickly the eSalesTrack admin can provide complete CSV exports for all record types.

Adjacent paths

Related migrations to explore

Ready when you are

Move from eSalesTrack.
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