CRM migration

Migrate from Zendesk Sell to Twenty CRM

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

Zendesk Sell logo

Zendesk Sell

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

75%

9 of 12

objects map 1:1 between Zendesk Sell and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Zendesk Sell to Twenty CRM is driven by Zendesk's official sunset of Sell on August 31, 2027, making this a time-bound migration with no extension available. Twenty is an open-source CRM that positions Company, People, Opportunity, and Activity as its core objects. We map Zendesk Sell Contacts to Twenty People (or Company for organization-type contacts), Zendesk Organizations to Twenty Company, and Zendesk Deals to Twenty Opportunity. Pipelines and Stages require manual rebuild in Twenty since there is no multi-pipeline concept; Stages map to Opportunity stage values. Activity history (calls, emails, meetings) cannot be exported via Zendesk's standard CSV export and must be pulled through the Sell Core API with rate-limit-aware polling. We do not migrate Sequences, automations, or Workflows as code; we deliver a written inventory of these for the customer's admin to rebuild in Twenty.

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

Zendesk Sell logo

Zendesk Sell

What's pushing teams away

  • Zendesk officially announced Sell's retirement on August 31, 2027, with data deletion per Zendesk's Service Data Deletion Policy upon subscription end or sunset date, whichever comes first.
  • Pricing tiers gate features aggressively: advanced workflows move from Team to Professional, and reporting depth varies significantly across plans with no transparency in published docs.
  • Customers report the platform does not accommodate SaaS business models well and lacks advanced reporting capabilities that growing companies require.
  • Per-user pricing compounds with seat creep as teams add power users, temp licenses, and partner access, making total cost unpredictable.
  • Support-only billing and multiple login charges frustrate teams that feel they already pay for the service and should receive unlimited user seats on paid tiers.

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

Each row shows how a Zendesk Sell 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.

Zendesk Sell

Contact (is_organization: false)

maps to

Twenty CRM

People

1:1
Fully supported

Zendesk Sell Contacts where is_organization equals false map to Twenty People. Standard fields (first name, last name, email, phone, address) migrate directly. The contact owner maps to a Twenty workspace Member, requiring that the Member record exists before import. We resolve owner by email match and flag any owner without a matching Twenty Member for the admin to provision.

Zendesk Sell

Contact (is_organization: true)

maps to

Twenty CRM

Company

1:1
Fully supported

Zendesk Sell Contacts where is_organization equals true map to Twenty Company. Organization name maps to Company name. We also migrate the organization domain as the Company website for deduplication reference. Company records must be created before any related People records so that the People-to-Company relationship is satisfied at insert time.

Zendesk Sell

Organization

maps to

Twenty CRM

Company

1:1
Fully supported

Zendesk Sell Organizations (a distinct object from Contacts) map to Twenty Company with the same treatment as organization-type Contacts. The Organization name becomes the Company name and the domain becomes the Company website. Any address data on the Organization migrates to the Company address fields.

Zendesk Sell

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Zendesk Sell Deals map to Twenty Opportunity. Deal fields (amount, expected close date, loss reason, deal source) migrate directly. The Deal's associated pipeline and stage assignment become the Opportunity stage value in Twenty. Loss reasons from Sell become a custom field on Opportunity rather than a native loss reason, since Twenty's Opportunity model uses a stage picklist for status.

Zendesk Sell

Pipeline + Stage

maps to

Twenty CRM

Opportunity stage configuration

lossy
Fully supported

Zendesk Sell Pipelines are custom workflow containers with ordered Stages inside them. Twenty does not support multiple independent pipelines. We map each Sell Pipeline to a distinct set of stage values prefixed with the pipeline name (e.g., PipelineA__StageName) and consolidate into a single Opportunity stage picklist. Stage order and win/loss flags are preserved as stage value metadata. Customers with very different pipeline models need to decide during scoping which pipeline becomes the primary and which stage sets get merged.

Zendesk Sell

Lead

maps to

Twenty CRM

People (or Opportunity for qualified leads)

1:many
Fully supported

Zendesk Sell Leads are a first-class object with their own sources and unqualified-reason fields. We assess lead quality at migration time: unqualified or stale Leads map to Twenty People; Sales Qualified Leads with an associated Deal map to both People and a linked Opportunity. We preserve the original lead_source as a custom field on the People record and flag any territory assignments for admin reconfiguration.

Zendesk Sell

Task

maps to

Twenty CRM

Task

1:1
Fully supported

Zendesk Sell Tasks migrate to Twenty Task. Due date, assignee (resolved by email to Twenty Member), completion status, and priority migrate directly. Task notes migrate as a Task body or as a linked Note. Task assignments to Contacts, Deals, or Organizations carry the parent record reference, which we resolve after parent records exist in Twenty.

Zendesk Sell

Note

maps to

Twenty CRM

Note

1:1
Fully supported

Zendesk Sell Notes are free-text records that attach to Contacts, Deals, Organizations, or Companies. We migrate Notes with the parent reference intact so conversation context links to the correct People or Company record in Twenty. Notes are inserted after parent records are created to satisfy the relationship.

Zendesk Sell

Custom Field

maps to

Twenty CRM

Custom Field

1:1
Fully supported

Sell custom fields on Contacts, Deals, Leads, and Organizations map to Twenty custom fields created in Settings before import. We resolve the Sell custom field key (required for API calls) during scoping and create a lookup table. Field types are mapped: Sell text becomes Twenty text, Sell number becomes Twenty number, Sell date becomes Twenty date. Twenty requires all custom fields to exist before CSV import; we create them during the schema setup phase.

Zendesk Sell

Line Item

maps to

Twenty CRM

Opportunity (line item fields as custom fields)

lossy
Fully supported

Zendesk Sell Line Items attach to Deals and represent products or services with quantity and price. Twenty does not have a distinct Line Item object as of the current release. We map Line Item data (product name, quantity, unit price, total) to a custom field set on the Opportunity record, or flag the customer to decide whether to denormalize as a text summary or split into separate Opportunity records per product.

Zendesk Sell

User

maps to

Twenty CRM

Member

1:1
Fully supported

Zendesk Sell Users (sales reps, admins) export with email, role, and territory. We map Users to Twenty Members by email match. Territory assignments are flagged as a configuration step since Twenty's workspace Members do not have a native territory field. The admin re-creates territory-based routing in Twenty's filters or custom fields after migration.

Zendesk Sell

Tag

maps to

Twenty CRM

Tag

1:1
Fully supported

Tags in Zendesk Sell are labels applied to Contacts, Deals, and Leads. We migrate Tags as-is onto the equivalent Twenty record. Note that Twenty handles tag-based filtering through its standard filter and view system, which may differ from Sell's tag segmentation UX.

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.

Zendesk Sell logo

Zendesk Sell gotchas

High

Sell sunset creates a hard deadline for data migration

Medium

Sell API rate limits are low for large-volume exports

Medium

Custom field IDs differ from field keys in API calls

Medium

Sequences and cadence state cannot be migrated

Low

Job queue limit of 30 concurrent background jobs

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

  • Standard export omits activity history entirely

    Zendesk's standard CSV export delivers Contacts, Organizations, Leads, and Deals but does not include emails, call logs, meeting records, or activity timestamps. Organizations that rely on activity history for pipeline context must extract this through the Sell Core API with rate-limit-aware polling (36,000 requests per hour per token). We implement batched export logic with exponential backoff on 429 responses and preserve activity records with original timestamps for the Twenty activity timeline. Without this step, the migrated CRM is operationally empty for reps who depend on call and email history.

  • Twenty requires custom fields created before import

    Twenty's CSV import creates records only, not fields. If a customer has multiple custom fields on Contacts or Deals, those fields must exist in Twenty Settings before the first record is imported. We handle this during the schema setup phase by querying the Sell API for all custom field definitions, creating the equivalent custom fields in Twenty's data model, and then proceeding with data import. A common failure mode in self-service migrations is importing CSV data and losing all custom field values because the fields did not exist yet.

  • Twenty's People and Companies object lacks some standard fields out of the box

    As documented in Twenty's public GitHub issue #13953, the People and Companies objects are missing several standard fields that other CRMs include by default (such as industry on Companies, job title on People, multiple phone types, social profile links). We map Sell fields to whatever Twenty fields exist and create custom fields for the gaps. This means the migrated data may rely on custom fields where a standard field would be cleaner, and integrations that expect standard field names may need reconfiguration.

  • Sequences and cadence state cannot migrate

    Zendesk Sell Sequences store enrollment state, step history, reply tracking, and cadence timing tied to individual Contacts. This automation data has no equivalent object in Twenty, which does not have a native sales engagement cadence module. We export Sequence metadata (name, step count, cadence pattern) as a reference document and flag that reps must rebuild active sequences in the new platform. Paused or in-progress sequences carry incorrect resume points and are not migratable.

  • No multi-pipeline model in Twenty requires pipeline consolidation

    Zendesk Sell supports multiple independent Pipelines, each with custom Stages. Twenty Opportunity uses a single pipeline with a stage picklist. Organizations using Sell's multi-pipeline feature to separate business lines, product types, or team scopes must decide during scoping how to consolidate. Options include merging all stages into one picklist (with pipeline name prefixes for disambiguation), splitting into separate Opportunity records with a custom pipeline label field, or accepting that the new system handles only one primary pipeline view.

Migration approach

Six steps for a successful Zendesk Sell to Twenty CRM data migration

  1. Discovery and sunset-deadline scoping

    We audit the Zendesk Sell account across objects in scope: Contacts (split by is_organization), Organizations, Leads, Deals, Pipelines, Stages, Tasks, Notes, custom fields, and engagement volume. We identify activity history that requires API extraction versus what is available in CSV. We set a migration-start target at least 9 months before the August 31, 2027 sunset date to allow time for data cleanup, test migrations, and admin rebuild work. The discovery output is a written scope document with record counts, a field mapping draft, and a pipeline consolidation recommendation for customers using multi-pipeline Sell setups.

  2. Twenty workspace schema setup

    We configure the Twenty workspace before any data import. This includes creating all custom fields required by the mapping (identified in discovery), creating any custom objects that map from Sell, and inviting all team Members so that owner assignments can resolve by email during import. We create Company records before People records to satisfy the relationship, and we set up Opportunity stage values that reflect the consolidated pipeline model. Fields are created in Settings before any CSV import is attempted.

  3. Activity history extraction via Sell API

    We extract call logs, email records, meeting records, and task history through the Zendesk Sell Core API with rate-limit-aware polling (10 requests per token per second, up to 36,000 per hour). We batch records into chunks, pause on 429 responses using exponential backoff, and store activity data with original timestamps. Activity records are held in a staging table until their parent record (People, Company, or Opportunity) exists in Twenty, then inserted in dependency order to preserve the timeline.

  4. Test migration and reconciliation

    We run a full test migration into a staging Twenty workspace using production-like data volume. The customer's admin spot-checks 25-50 records per object type against the Sell source, verifies custom field values, confirms activity timeline completeness, and reviews the Opportunity stage values. Any mapping corrections are documented and applied before the production migration begins. This step also validates the owner resolution: all Sell Users must have matching Twenty Members invited and active.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Members (validated by admin), Companies (from Sell Organizations and organization-type Contacts), People (with Company relationship resolved), Opportunities (with stage value resolved from the pipeline consolidation map), custom fields on each object, then Tasks and Notes (with parent references resolved), and finally activity history (calls, emails, meetings) via staged insert. Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, delta sync, and automation rebuild handoff

    We freeze writes in Zendesk Sell during the cutover window, run a final delta migration of any records modified during the migration, then hand off to the customer as system of record. We deliver the Sequence metadata inventory, the Workflow and automation list (for the admin to rebuild in Twenty or a third-party tool), and a custom field map documenting every non-standard field created. We support a one-week hypercare window for reconciliation issues. We do not rebuild automations in Twenty as part of the migration scope.

Platform deep dives

Context on both ends of the pair

Zendesk Sell logo

Zendesk Sell

Source

Strengths

  • Native click-to-dial and call recording built into every tier without add-on cost.
  • Multichannel unified inbox consolidating email, chat, voice, and social tickets in one place.
  • Conversational UI reduces training friction for sales reps new to CRM tools.
  • Deep Zendesk Support integration for companies running both Sell and Support.
  • Mobile-first design with geolocation and full CRM functionality on iOS and Android.

Weaknesses

  • Sell is being retired August 31, 2027, with no new development expected and data deletion on sunset.
  • Feature gating across tiers forces upgrades for basic workflow automation and reporting depth.
  • Per-user pricing with no unlimited seat option on paid plans inflates cost as teams grow.
  • Advanced SaaS metrics, custom reporting, and product-led growth features are limited compared to purpose-built sales platforms.
  • Export and migration tooling is CSV-heavy with limited bulk API automation outside the developer API.
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?

Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

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

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • 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

    Zendesk Sell: Sell Core API: 36,000 requests/hour (10 req/token/sec); Zendesk Support varies by plan tier from 20 req/min (Team) to 700 req/min (Enterprise).

  • Data volume sensitivity

    A

    Zendesk Sell exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

Walk through your Zendesk Sell to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Straightforward migrations under 15,000 Contacts and 3,000 Deals with no custom objects and no multi-pipeline complexity land in three to five weeks. Migrations with large engagement histories (over 200,000 activity records), multiple Sell Pipelines requiring consolidation, or custom objects move to eight to twelve weeks because of API extraction time, field-by-field mapping, and the parent-record dependency chain in Twenty's import order.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Zendesk Sell.
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