CRM migration

Migrate from SmartDesk to Twenty CRM

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

SmartDesk logo

SmartDesk

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

91%

10 of 11

objects map 1:1 between SmartDesk and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from SmartDesk to Twenty CRM is a structural migration driven by two forces: SmartDesk teams outgrow the platform's reporting depth and limited API surface, and Twenty CRM offers self-hosted deployment, full data ownership, and a flexible custom object model under AGPL-3.0 licensing. SmartDesk separates Leads from Contacts and allows fully custom pipeline stages; Twenty uses a Person object for all contacts and expects the workspace admin to define fields before import. We require the customer to provide a SmartDesk admin-panel export or confirm API credentials because SmartDesk does not publish a public REST API reference. We then enumerate the source schema, pre-create every required field in the Twenty workspace via the /metadata API, and import records in dependency order: Accounts first, then Persons, then Deals, then Activity history. Workflows, automations, email templates, and help desk configurations do not migrate as code; we deliver a written inventory for the customer's admin to rebuild in Twenty's settings interface.

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

SmartDesk logo

SmartDesk

What's pushing teams away

  • An aggressive product roadmap means some desired features are still under development, prompting teams with immediate needs to seek alternatives.
  • Advanced reporting and analytics lag behind established CRMs, causing data-driven teams to migrate to platforms with deeper BI tooling.
  • Support response times can be inconsistent during high-volume periods, leading some customers to switch to competitors with dedicated account management.

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

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

SmartDesk

Lead

maps to

Twenty CRM

Person

1:1
Fully supported

SmartDesk Leads map to Twenty Persons flagged with a custom role field (lead_status or person_type) set to 'Lead'. We preserve SmartDesk Lead Source and Lead Status as custom fields on the Twenty Person object. Since Twenty uses a single Person object for all contact types, we do not create a separate record type; instead we add a person_type custom field and set the value to 'Lead' for all migrated Lead records. The customer must pre-create the person_type custom field and its picklist values (Lead, Contact, Customer) in Twenty before migration runs.

SmartDesk

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

SmartDesk Contacts map directly to Twenty Persons. Standard SmartDesk fields (name, email, phone, address) map to Twenty's standard Person fields. Custom contact properties migrate as custom fields on the Person object. We flag the person_type as 'Contact' or 'Customer' based on SmartDesk's lifecycle stage where applicable. Custom fields must be pre-created in Twenty before migration.

SmartDesk

Account

maps to

Twenty CRM

Company

1:1
Fully supported

SmartDesk Accounts (also labeled Companies) map directly to Twenty Company records. The company domain becomes the Website field. Industry classification, employee count, and any custom properties attached to the Account migrate as custom fields on the Company object. We create Company before any Person import so that the Person-to-Company relationship is resolved at insert time.

SmartDesk

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

SmartDesk Deals map to Twenty Opportunities. Deal name, value, expected close date, and owner migrate to Twenty Opportunity fields. Stage values require reconciliation: SmartDesk allows fully custom pipeline stages per account, while Twenty uses a standard stage set defined in workspace settings. We enumerate the SmartDesk pipeline stages during scoping, map each to the nearest Twenty stage equivalent, and flag any stages that require new custom stage values to be created in Twenty before import.

SmartDesk

Pipeline

maps to

Twenty CRM

Pipeline + Stage

lossy
Fully supported

SmartDesk Pipelines contain ordered stages defining the sales process. Twenty uses a standard Opportunities pipeline with configurable stages. We map pipeline names and stage sequences but must reconcile stage counts and naming between source and destination. Any SmartDesk pipeline stages that have no Twenty equivalent are pre-created in Twenty's pipeline settings before Deals import begins. The customer configures pipeline stages in Twenty admin settings; we provide a stage-mapping manifest listing every SmartDesk stage and its proposed Twenty counterpart.

SmartDesk

Task

maps to

Twenty CRM

Task

1:1
Fully supported

SmartDesk Tasks attached to Contacts or Deals map to Twenty Tasks with assignee, due date, status, and description preserved. We map the task owner by email lookup against the User mapping and preserve the linkage to the parent Person or Opportunity. Tasks are imported after Persons and Opportunities so that parent-record resolution succeeds.

SmartDesk

Activities (calls, emails, meetings, notes)

maps to

Twenty CRM

Task or Event

1:1
Fully supported

SmartDesk Activities (calls, emails, meetings, notes logged against Contacts or Deals) map to Twenty Task records for calls and tasks, and Event records for meetings. Email content migrates to the Task body or a linked Note. Activity timestamps are preserved to maintain the timeline ordering. We link each activity to its parent Person or Opportunity via the activity's relationship field. Custom activity metadata migrates to custom fields on the Task or Event object after pre-creation.

SmartDesk

Users and Owners

maps to

Twenty CRM

WorkspaceMember

1:1
Mapping required

SmartDesk Users and Owners map to Twenty WorkspaceMembers. We match by email address. Any SmartDesk Owner without a matching Twenty WorkspaceMember is held in a reconciliation queue for the customer to provision before record import resumes. Active status and role information migrate as WorkspaceMember properties.

SmartDesk

Campaign

maps to

Twenty CRM

Custom Object or Note

1:1
Fully supported

SmartDesk Campaigns (name, type, status, start and end dates) migrate to a Twenty custom object named Campaign if the customer requires campaign tracking in the new system. We create the Campaign custom object via the /metadata API before data import. Email send and open tracking data is not migrated as it lives in the email delivery system rather than in SmartDesk's CRM data layer. We document the campaign metadata and recommend post-migration campaign tracking configuration in Twenty's settings or via a third-party integration.

SmartDesk

Help Desk Tickets

maps to

Twenty CRM

Custom Object (Ticket)

1:1
Mapping required

SmartDesk Tickets migrate to a Twenty custom object named Ticket if the customer continues to use help desk functionality. We create the Ticket custom object via the /metadata API, including custom fields for priority, status, assignee, and linked contact. Conversation threads migrate as Note records linked to the Ticket. If the customer does not require ticket tracking in Twenty, we export the ticket data as a CSV deliverable for archival purposes.

SmartDesk

Attachments

maps to

Twenty CRM

Attachment

1:1
Mapping required

File attachments associated with Contacts, Deals, or Tickets are downloaded from SmartDesk and re-uploaded to Twenty. We handle file type validation and preserve original filenames. Attachments are linked to the parent record (Person, Opportunity, or custom Ticket object) via Twenty's attachment relationship.

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.

SmartDesk logo

SmartDesk gotchas

High

No publicly documented public API endpoint reference

Medium

Pipeline stage count and naming differ between accounts

Medium

Custom Fields must be pre-created in the destination

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

  • SmartDesk has no public API reference for schema discovery

    SmartDesk does not publish a public REST API reference or developer documentation. We cannot programmatically enumerate available objects, fields, or export endpoints without first authenticating against a live account. Before migration scoping, we require the customer to provide a SmartDesk admin-panel export (CSV or platform-native) or confirm API access credentials so we can enumerate the schema via live API discovery. If no export or API access is available, migration scope is limited to manual data dumps and may require a custom extraction script, which extends the timeline and cost.

  • Twenty requires fields to be pre-created before data import

    Twenty CRM has minimal standard fields on Person and Company objects out of the box. Users report spending 30-60 minutes creating basic fields before they can even start using the CRM for standard business data. We cannot dynamically create custom fields during the import run; the customer must define each required field in Twenty's settings interface before we begin writing records. We provide a custom field manifest listing every SmartDesk custom field that needs a destination counterpart so the customer's Twenty admin can configure them in advance. This is a coordination dependency that adds a step before each migration phase.

  • Twenty's GitHub-reported migration failure during version upgrades

    An issue reported on the Twenty GitHub repository (issue #19863) describes a migration failure when upgrading the Twenty Docker image across multiple versions at once, causing the server to enter an infinite restart loop. While this is an infrastructure issue with the Twenty platform itself rather than a migration-specific problem, it highlights the importance of running Twenty on a stable, tested version during migration. We pin the Twenty Docker image to a known-stable version tag and avoid latest during the migration window. The customer should also have a rollback plan for their Twenty instance.

  • Standard field coverage gap requires manual field creation before import

    A GitHub feature request (issue #13953) on the Twenty repository documents that importing from other CRMs (including HubSpot, GoHighLevel, and Salesforce) is difficult because standard fields expected in business CRM use cases do not exist by default. Fields like industry, employee count range, annual revenue, contact source, and job title must be manually created. We document every standard business field that SmartDesk populates but Twenty lacks, and the customer pre-creates these fields in Twenty before migration. We provide a field creation guide with the exact field names, types, and picklist values needed.

Migration approach

Six steps for a successful SmartDesk to Twenty CRM data migration

  1. Export access and schema discovery

    We require the customer to provide a SmartDesk admin-panel export (CSV format or platform-native dump) or confirm API access credentials. Because SmartDesk has no public API documentation, we use the provided credentials to enumerate the source schema via live API discovery. We produce a SmartDesk schema manifest listing every object, field, field type, and custom field definition in the source account. This manifest is the basis for the field-mapping phase and the custom field pre-creation list for Twenty.

  2. Twenty workspace setup and custom field pre-creation

    We provide the customer with a custom field manifest listing every SmartDesk custom field that needs a destination counterpart in Twenty. The customer's Twenty admin creates each field in Twenty's settings interface before the migration run begins. This includes person_type fields for Lead/Contact/Customer segmentation, custom fields on Company (industry, employee count), custom fields on Opportunity (deal-specific properties), and any custom Ticket object fields. We provide a step-by-step field creation guide with exact field names, types, and picklist options. Migration cannot proceed past this step without pre-creation complete.

  3. Sandbox migration and reconciliation

    We run a full migration into a Twenty sandbox or staging environment using a representative data sample. The customer's RevOps lead reconciles record counts (Persons in, Companies in, Opportunities in, Tasks in), spot-checks 25-50 random records against the SmartDesk source, and validates that custom field values transferred correctly. Any mapping corrections happen here before production migration begins. Pipeline stage mapping is validated in this step, with the customer approving the stage-mapping manifest.

  4. Owner and User reconciliation

    We extract every distinct SmartDesk Owner and User referenced on Contact, Account, Deal, and Activity records and match by email against the Twenty workspace's WorkspaceMember list. Any SmartDesk Owner without a matching Twenty WorkspaceMember is held in a reconciliation queue. The customer's Twenty admin provisions missing WorkspaceMembers before record import resumes. Migration cannot proceed past this step because owner references are required on most standard objects.

  5. Production migration in dependency order

    We run production migration in record-dependency order: WorkspaceMembers first (validated), then Companies (from SmartDesk Accounts), then Persons (with Company relationship resolved), then Opportunities (with Person and Company lookups resolved and pipeline stage mapping applied), then Tasks and Activities, then Attachments, and finally custom objects (Campaign, Ticket) if included. Each phase emits a row-count reconciliation report before the next phase begins. We use Twenty's GraphQL API for all inserts with batch chunking and error retry logic.

  6. Cutover, validation, and workflow inventory handoff

    We freeze SmartDesk writes during cutover, run a final delta migration of any records modified during the migration window, then enable Twenty as the system of record. We deliver a written inventory of every SmartDesk workflow, automation, email template, and help desk configuration requiring rebuild in Twenty, with recommended Twenty equivalents for each. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's team. We do not rebuild SmartDesk automations as Twenty workflows inside the migration scope; that is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

SmartDesk logo

SmartDesk

Source

Strengths

  • Integrated help desk, CRM, email marketing, and AI assistant in one platform without per-feature add-ons.
  • Unlimited Custom Fields on all plans allows flexible data capture without uptiering.
  • Pay-as-you-go pricing model suited for small teams that fluctuate in size or usage.
  • Drag-and-drop workflow builder with triggered automations for sales and support processes.
  • Website management and lead capture forms are included, reducing the number of tools required for small teams.

Weaknesses

  • API documentation and public-facing developer resources are limited, making custom integrations more challenging to build.
  • Reporting and analytics depth is behind established CRMs like HubSpot, Salesforce, and Pipedrive.
  • Feature gaps on the roadmap mean some teams outgrow the platform as their needs mature.
  • Limited public pricing clarity — the site emphasizes 'scale with usage' but does not publish per-seat or tier breakdowns.
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. 4 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 SmartDesk and Twenty CRM.

  • Object compatibility

    C

    4 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

    SmartDesk: Not publicly documented.

  • Data volume sensitivity

    A

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

Estimator

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

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

Can't find your answer?

Walk through your SmartDesk 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 three and five weeks for accounts under 10,000 Contacts and 2,000 Deals with no custom objects and a clean export from SmartDesk. Migrations with large custom field sets, complex pipeline stage reconciliation, or historical activity backfills (over 200,000 activity records) move to six to ten weeks because of the field pre-creation coordination, schema-discovery work, and Twenty's GraphQL API iteration time.

Adjacent paths

Related migrations to explore

Ready when you are

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