CRM migration
Field-level mapping, validation, and rollback between Sellsy and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Sellsy
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
6 of 10
objects map 1:1 between Sellsy and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Sellsy to Microsoft Microsoft Dynamics 365 Sales is a cross-model migration, not a field-by-field copy. Sellsy conflates Individuals and Companies into a single Contact model with a type discriminator, while Microsoft Dynamics 365 Sales uses separate Lead and Contact objects attached to Account hierarchies. We split Sellsy Contacts into Leads and Accounts using the type attribute during pre-flight, and resolve the Account lookup on Contact before insert. Sellsy's financial documents (Invoices, Orders, Credit Notes) have no direct equivalent in standard Microsoft Dynamics 365 Sales ; we map them to custom Dataverse tables or flag the gap with a written recommendation before migration begins. Owner name deduplication in Sellsy's CSV export is the highest-severity pair gotcha: duplicate owner names silently collapse to one person in downstream imports. We detect and resolve this in pre-flight. Sellsy Workflows and Sequences do not migrate; we deliver a written inventory for rebuild in Power Automate and Dynamics Sales Cadence post-migration.
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.
Source platform
Sellsy platform overview
Scorecard, SWOT, gotchas, and pricing for Sellsy.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales , 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)
Microsoft Dynamics 365 Sales
Lead
1:1Sellsy Contacts with type discriminator set to 'individual' map to Microsoft Microsoft Dynamics 365 Sales Lead. The Sellsy contact firstname, lastname, email, phone, and address fields map to the corresponding Lead fields. Any lead score or custom scoring property from Sellsy maps to a custom Lead field for audit. We use the type discriminator in the Sellsy export to separate Individuals from Corporations before creating any destination records.
Sellsy
Contact (Individual)
Microsoft Dynamics 365 Sales
Contact
1:1Sellsy Contacts marked as 'individual' who have an associated Corporation in Sellsy map to Microsoft Dynamics 365 Sales Contact tied to the target Account. The Corporation reference in Sellsy resolves to the AccountId on the Contact record at insert time. Contacts without a Corporation reference in Sellsy create standalone Contacts in Dynamics 365, though we flag this for the customer's admin to attach to an Account post-migration if hierarchical account structure is desired.
Sellsy
Corporation / Company
Microsoft Dynamics 365 Sales
Account
1:1Sellsy Corporation records map directly to Microsoft Microsoft Dynamics 365 Sales Account. The corporation name, SIRENE/SIRET number (if populated), address, website, and industry fields map to Account fields. Account is created before any Contact import so that the AccountId lookup is satisfied at Contact insert. We preserve any Sellsy custom fields on Corporation as custom fields on Account.
Sellsy
Opportunity
Microsoft Dynamics 365 Sales
Opportunity
1:1Sellsy Opportunities map directly to Microsoft Dynamics 365 Sales Opportunity. The opportunity amount, probability, expected close date, and pipeline stage map to estimatedvalue, closeprobability, estimatedclosedate, and stagecode respectively. Sellsy's pipeline and stage names map to a Microsoft Dynamics 365 Sales Process and stage category. OwnerId is resolved via email match against the User table after owner deduplication. The parent AccountId is resolved via the linked Corporation reference in Sellsy.
Sellsy
Invoice
Microsoft Dynamics 365 Sales
Custom Dataverse Table: SellsyInvoice
1:manySellsy Invoices have no native equivalent in standard Microsoft Dynamics 365 Sales Professional or Enterprise. We create a custom SellsyInvoice table in Dataverse with fields matching the Sellsy invoice schema (invoice number, issue date, due date, line items, taxes, total, status, SmartTags). Each line item becomes a related SellsyInvoiceLine record. The linked Sellsy Contact (as ContactId) and Corporation (as AccountId) are preserved. The customer decides whether to keep this as a read-only archive or extend it with Microsoft Dynamics 365 Sales views and Power BI reporting.
Sellsy
Order
Microsoft Dynamics 365 Sales
Sales Order (Custom Dataverse Table)
1:manySellsy Orders map to a custom SellsyOrder table in Dataverse, mirroring the structure of the SellsyInvoice custom table. Order status (draft, confirmed, shipped, cancelled) is preserved as a status field. SmartTags on Sellsy Orders map to the custom SmartTags field on the SellsyOrder record. Microsoft Dynamics 365 Sales does not have a native Sales Order object in the standard Sales module without the Order Management addon, so the custom table approach provides the cleanest data preservation without requiring additional licensing.
Sellsy
Credit Note
Microsoft Dynamics 365 Sales
Custom Dataverse Table: SellsyCreditNote
1:manySellsy Credit Notes are the least portable object in this migration because they are accounting documents with a specific credit-to-invoice relationship. We create a custom SellsyCreditNote table in Dataverse with fields for credit note number, issue date, linked invoice reference, credit amount, and status. The SmartTags field carries the original Sellsy SmartTags. Microsoft Dynamics 365 Sales does not have a native credit note object; the custom table approach is the standard recommendation for companies that need to retain full accounting history from Sellsy.
Sellsy
SmartTags
Microsoft Dynamics 365 Sales
Custom field: SellsyTags
lossySellsy SmartTags applied to Invoices, Orders, and Credit Notes have no native equivalent in Microsoft Dynamics 365 Sales . We create a single custom string field SellsyTags__c on each of the three custom Dataverse tables to carry the comma-separated SmartTag values from Sellsy. Tags are not parsed into a multi-select picklist because the set of possible tags is unbounded and may vary by document type. The customer can request Power Automate to parse and re-apply tags to native Dynamics fields post-migration if needed.
Sellsy
Product
Microsoft Dynamics 365 Sales
Product
1:1Sellsy Products and Services map directly to Microsoft Microsoft Dynamics 365 Sales Product2 records. The product name, SKU (sellsy_sku field), description, unit, and pricing information map to the corresponding Product2 fields. Standard Price Book entries are created during import. Any pricing rules from Sellsy's product catalog are noted in the field map for the customer to reconfigure in Microsoft Dynamics 365 Sales Price Lists.
Sellsy
Staff
Microsoft Dynamics 365 Sales
User
1:1Sellsy Staff records map to Microsoft Microsoft Dynamics 365 Sales User records, resolved by email match. Owner deduplication is the critical pre-flight step: Sellsy's CSV export does not deduplicate owner names, so multiple staff members sharing a first-last name combination collapse to one user in the destination. We detect duplicates during pre-flight, ask the customer to either disambiguate in Sellsy or provide a unique identifier field, and proceed only when every Staff record has a unique email address for User lookup. Inactive or archived Sellsy staff map to inactive Users in Dynamics with the original role preserved in a custom field.
| Sellsy | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact (Individual) | Lead1:1 | Fully supported | |
| Contact (Individual) | Contact1:1 | Fully supported | |
| Corporation / Company | Account1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Invoice | Custom Dataverse Table: SellsyInvoice1:many | Fully supported | |
| Order | Sales Order (Custom Dataverse Table)1:many | Fully supported | |
| Credit Note | Custom Dataverse Table: SellsyCreditNote1:many | Fully supported | |
| SmartTags | Custom field: SellsyTagslossy | Mapping required | |
| Product | Product1:1 | Fully supported | |
| Staff | User1: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.
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
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Discovery and scoping
We audit the source Sellsy account across tier (Standard/Professional/Scale), data volumes for Contacts, Corporations, Opportunities, Invoices, Orders, Credit Notes, Products, and Staff. We run the owner name deduplication check against the Staff and Contact export, flagging any duplicate owner names for customer resolution before export. We confirm the customer's Microsoft Dynamics 365 Sales environment, target edition (Professional or Enterprise), and whether custom Dataverse tables for financial documents are in scope. The discovery output is a written migration scope, a field-level map for each object, and a confirmed cutover date.
Schema design and custom Dataverse table creation
We design the destination schema in the customer's Microsoft Dynamics 365 Sales environment. This includes provisioning the SellsyInvoice, SellsyOrder, and SellsyCreditNote custom Dataverse tables (if financial document migration is in scope) with all relevant fields and relationships. We configure Account hierarchy structures, Opportunity Record Types and Sales Processes mapped from Sellsy pipeline stages, and any custom fields on Contact and Account for remapped Sellsy custom fields. Schema is deployed to a Sandbox environment first for validation with the customer's admin before production migration begins.
Sandbox migration and customer reconciliation
We run a full migration into the Dynamics 365 Sandbox using a representative data sample. The customer's RevOps or admin lead spot-checks 25-50 records across each object type against the Sellsy source, verifies the Account-Contact relationship integrity, confirms that Opportunity stage mapping reflects the intended pipeline, and reviews the custom Dataverse tables for financial documents. We correct any mapping errors in this phase before touching production data. The customer signs off the sandbox results in writing before we proceed to production.
Owner reconciliation and User provisioning
We extract every distinct Sellsy Staff member referenced on Contact, Corporation, Opportunity, Invoice, Order, and Credit Note records and match by email against the Microsoft Dynamics 365 Sales User table. Duplicate owner names identified in discovery are resolved with the customer's input. Any Sellsy Staff without a matching Dynamics 365 User goes to a reconciliation queue for the customer's admin to provision before record migration resumes. Migration cannot proceed past this step because Opportunity and other records require an OwnerId reference.
Production migration in dependency order
We run the production migration in strict record-dependency order: Accounts (from Sellsy Corporations), Opportunities (with AccountId resolved), Contacts (with type split applied and AccountId resolved), Invoices and Orders (to custom Dataverse tables with SmartTags preserved), Credit Notes (to custom Dataverse table), Products (with Price Book entries), then Staff (User lookup). Each phase emits a row-count reconciliation report and we pause for a 24-hour customer validation window between the Accounts/Opportunities phase and the remaining phases. Financial documents are sequenced last because they carry the highest risk of lookup mismatches if parent records are not yet established.
Cutover, delta migration, and automation handoff
We freeze Sellsy writes during the cutover window, run a final delta migration for any records created or modified during the migration period, then enable Microsoft Dynamics 365 Sales as the system of record. We deliver the Workflow and automation inventory document to the customer's admin team, noting that Sellsy Workflows and Sequences do not migrate to Power Automate or Dynamics Sales Cadence as code and require manual rebuild. We support a one-week hypercare window for critical reconciliation issues raised by the sales team. Power Automate flows and automation rebuilds are outside standard migration scope and are quoted as a separate engagement if needed.
Platform deep dives
Sellsy
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Microsoft Dynamics 365 Sales .
Object compatibility
2 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 Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Sellsy to Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales
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.