CRM migration
Field-level mapping, validation, and rollback between Sellsy and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Sellsy
Source
Twenty CRM
Destination
Compatibility
8 of 11
objects map 1:1 between Sellsy and Twenty CRM.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from Sellsy to Twenty CRM is a structural migration that resolves three platform-model mismatches before data moves. First, Sellsy conflates Individuals and Companies into a single Contact model with a type discriminator; we split that at export time so that every company record lands as a standalone Company in Twenty and every individual lands as a Person. Second, Sellsy's financial layer (Invoices, Orders, Credit Notes) has no direct equivalent in Twenty's opportunity-focused model, so we map invoices to a custom Invoice object and flag that the customer should configure that object before migration. Third, Sellsy's Staff records must resolve to Twenty's Owner system, requiring an email-based lookup at migration time. We preserve SmartTags as tags, handle custom fields on every object, and flag that Twenty does not currently support native sequencing or automated incremental numbering for Deal IDs — those gaps require process workarounds post-migration. Workflows, sequences, and automations do not migrate; we deliver a written inventory for the customer's admin to rebuild.
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 Sellsy 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.
Sellsy
Contact (Individual)
Twenty CRM
Person
1:1Sellsy's Contact export bundles Individuals and Companies under a single model with a type discriminator. We split by the type attribute during pre-flight extraction: type=individual records become Twenty Person objects. Mobile, email, job title, and address fields map directly. The original Sellsy contact ID is preserved in a custom field sellsy_id__c for cross-reference and delta reconciliation.
Sellsy
Contact (Corporation)
Twenty CRM
Company
1:1Sellsy Corporation records (company-type contacts) map to Twenty Company. The corporation's SIRENE-derived data (legal name, registration number, address) migrates to the corresponding Company fields. We preserve the sellsy_corporation_id__c for lookup resolution if the customer later needs to cross-reference historical records.
Sellsy
Opportunity
Twenty CRM
Opportunity
1:1Sellsy Opportunities map to Twenty Opportunities with stage, amount, expected close date, and owner preserved. Note that Twenty does not currently provide an automated incremental numbering system for Opportunity IDs (raised in r/selfhosted as a v2.0 concern). We flag this during scoping and recommend the customer configures a naming convention before migration. Pipeline mapping requires stage translation from Sellsy pipeline stages to Twenty pipeline stages.
Sellsy
Invoice
Twenty CRM
Custom Invoice Object (configuration required)
1:1Sellsy Invoices have no direct equivalent in Twenty CRM's standard schema. We create a custom Invoice object in Twenty (or use custom fields on Opportunity) during pre-migration configuration, mapping invoice number, issue date, due date, line items, tax amounts, and SmartTags. The customer must confirm their preferred destination schema for financial records before migration begins.
Sellsy
Order
Twenty CRM
Custom Order Object or Opportunity Line Items
lossySellsy Orders track commercial transactions distinct from invoices. Depending on the customer's process, we map Orders to either a custom Order object in Twenty or to Opportunity Line Items on the linked Opportunity. Order status (draft, confirmed, shipped, cancelled) requires a picklist configuration in Twenty.
Sellsy
Credit Note
Twenty CRM
Custom Credit Note Object
lossySellsy Credit Notes (API v2.86.0+) link to original invoices and carry credit amounts. Twenty has no native credit note equivalent. We create a custom Credit Note object or custom fields on the linked Invoice record, preserving the linked invoice reference and credit note amount.
Sellsy
Product
Twenty CRM
Product
1:1Sellsy product catalog entries map to Twenty Products with name, description, unit price, and SKU preserved. Pricing rules and matrix configurations are simplified to a single unit price unless the customer specifies a pricing complexity requirement.
Sellsy
Staff
Twenty CRM
User / Owner
1:1Sellsy Staff records map to Twenty Users. We resolve by email match. Sellsy's privilege and role model differs from Twenty's workspace permissions; we map the active/inactive status and preserve the original Sellsy role label in a custom field for the customer's admin to translate into Twenty's permission set during workspace configuration.
Sellsy
Task
Twenty CRM
Task
1:1Sellsy Tasks map to Twenty Tasks with due date, status, assignee (via Staff-to-User lookup), and description preserved. Task priority maps to Twenty's priority field. Recurring task configurations are flagged as not migratable and noted for manual rebuild if applicable.
Sellsy
Activity (calls, emails, meetings)
Twenty CRM
Task and Event
1:1Sellsy Activity records (calls, emails, appointments) map to Twenty Task records for calls and logged communications, and Event records for calendar-based meetings. We preserve the linked Contact and Opportunity references via the sellsy_id__c cross-reference and set the original timestamp to maintain the activity timeline ordering.
Sellsy
SmartTag
Twenty CRM
Tag
lossySellsy SmartTags are tagging labels applied to Invoices, Orders, and Credit Notes. Twenty supports tags on most objects. We map SmartTags to Twenty Tags on the respective object records. If the destination uses a custom Invoice or Order object, tags migrate to that object's tag field. SmartTags without a matching taggable field are held for customer decision on custom field creation.
| Sellsy | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact (Individual) | Person1:1 | Fully supported | |
| Contact (Corporation) | Company1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Invoice | Custom Invoice Object (configuration required)1:1 | Fully supported | |
| Order | Custom Order Object or Opportunity Line Itemslossy | Fully supported | |
| Credit Note | Custom Credit Note Objectlossy | Fully supported | |
| Product | Product1:1 | Fully supported | |
| Staff | User / Owner1:1 | Mapping required | |
| Task | Task1:1 | Fully supported | |
| Activity (calls, emails, meetings) | Task and Event1:1 | Fully supported | |
| SmartTag | Taglossy | 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.
Sellsy gotchas
Owner name uniqueness required in CSV exports
Pricing numbers scattered across modular and bundled models
SmartTags are a tagging layer, not a structured object
Public API rate limits not documented
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 Sellsy data audit
We audit the source Sellsy account across all modules: Contact count (with type split analysis), Corporation count, Opportunity volume and pipeline stages, financial document volume (Invoices, Orders, Credit Notes), product catalog size, Staff roster with name uniqueness check, and SmartTag usage per object. We also inventory active sequences, workflows, and automations for the written handoff document. This phase produces a Sellsy Export Preparation checklist including the Contact type-split requirement and owner deduplication action items.
Twenty schema configuration and custom object setup
We configure the Twenty CRM destination workspace before any data import. This includes creating the Person and Company relationship if not already configured, setting up pipeline stages mapped from Sellsy pipeline stages, creating a custom Invoice object (or custom fields on Opportunity) to receive Sellsy financial documents, configuring Owner/User accounts mapped from the Sellsy Staff roster, and setting up any custom fields required to receive Sellsy custom field values. Schema configuration is validated in a staging environment before production migration begins.
Contact split and Staff-Owner reconciliation
We run the Sellsy Contact export through our pre-flight split: Individual-type contacts route to the Person import pipeline; Corporation-type contacts route to the Company import pipeline. Simultaneously, we reconcile Sellsy Staff records to Twenty Users by email match, flagging any duplicate owner names or Staff records without a matching User for the customer's admin to resolve before record import. This step gates all subsequent record imports because OwnerId references are required on Opportunities and Tasks.
Core record migration in dependency order
We run production migration in record-dependency order: Companies (from Sellsy Corporations), People (from Sellsy Individual contacts), Opportunities (with OwnerId and CompanyId resolved via the cross-reference mapping), Products, Tasks and Activities (via API with timestamps preserved), then financial documents (Invoices, Orders, Credit Notes if the custom Invoice object is configured). Each phase emits a row-count reconciliation report before the next phase begins. We use Twenty's REST API with rate-limit handling and exponential backoff.
SmartTag and custom field migration
We map Sellsy SmartTags to Twenty Tags on the respective object records (Invoice, Order, Opportunity, Company). Custom field values from Sellsy migrate to Twenty's corresponding custom fields by field label match. Any SmartTags that cannot map to a taggable field are logged and presented to the customer for a custom field decision. Custom field schema is inspected via Sellsy's GET /custom-fields endpoints before migration to ensure no values are dropped silently.
Cutover, validation, and automation handoff
We freeze Sellsy writes during cutover, run a delta migration of any records modified during the migration window, then mark Twenty as the system of record. We deliver the Sellsy Sequence and Automation Inventory document to the customer's admin team, documenting every active sequence, its trigger, steps, delays, and a recommendation for how to reproduce the outcome in Twenty or via a third-party sequencing tool. We support a one-week hypercare window for reconciliation issues. Workflow and automation rebuilds are outside standard scope and require a separate engagement or admin-level rebuild.
Platform deep dives
Sellsy
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 Sellsy and Twenty CRM.
Object compatibility
3 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
Sellsy: Not publicly documented.
Data volume sensitivity
Sellsy 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 Sellsy to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Sellsy 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 Sellsy
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.