CRM migration
Field-level mapping, validation, and rollback between SmartDesk and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
SmartDesk
Source
Twenty CRM
Destination
Compatibility
10 of 11
objects map 1:1 between SmartDesk and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
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.
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 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
Twenty CRM
Person
1:1SmartDesk 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
Twenty CRM
Person
1:1SmartDesk 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
Twenty CRM
Company
1:1SmartDesk 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
Twenty CRM
Opportunity
1:1SmartDesk 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
Twenty CRM
Pipeline + Stage
lossySmartDesk 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
Twenty CRM
Task
1:1SmartDesk 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)
Twenty CRM
Task or Event
1:1SmartDesk 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
Twenty CRM
WorkspaceMember
1:1SmartDesk 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
Twenty CRM
Custom Object or Note
1:1SmartDesk 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
Twenty CRM
Custom Object (Ticket)
1:1SmartDesk 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
Twenty CRM
Attachment
1:1File 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.
| SmartDesk | Twenty CRM | Compatibility | |
|---|---|---|---|
| Lead | Person1:1 | Fully supported | |
| Contact | Person1:1 | Fully supported | |
| Account | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline | Pipeline + Stagelossy | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Activities (calls, emails, meetings, notes) | Task or Event1:1 | Fully supported | |
| Users and Owners | WorkspaceMember1:1 | Mapping required | |
| Campaign | Custom Object or Note1:1 | Fully supported | |
| Help Desk Tickets | Custom Object (Ticket)1:1 | Mapping required | |
| Attachments | Attachment1:1 | Mapping required |
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.
SmartDesk gotchas
No publicly documented public API endpoint reference
Pipeline stage count and naming differ between accounts
Custom Fields must be pre-created in the destination
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
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.
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.
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.
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.
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.
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
SmartDesk
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across SmartDesk and Twenty CRM.
Object compatibility
4 of 8 objects need a mapping; the rest are 1:1.
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
SmartDesk: Not publicly documented.
Data volume sensitivity
SmartDesk exposes a bulk API — large-volume migrations stream efficiently.
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 SmartDesk to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave SmartDesk
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.