CRM migration
Field-level mapping, validation, and rollback between Splio and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Splio
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
4 of 9
objects map 1:1 between Splio and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Splio to Microsoft Dynamics 365 Sales is a migration from an omnichannel retail marketing platform to a B2B sales CRM. Splio's contact-centric model with loyalty, orders, and store scopes does not map to a single Dynamics entity — it requires distributing Splio's data across Accounts, Contacts, Opportunities, and custom fields in Dynamics 365 Sales. The highest-risk step is Splio's export behavior: any Contact not assigned to at least one list is silently excluded from standard exports, which can silently drop a significant portion of the database if not caught during scoping. Loyalty memberships and rewards have no native Dynamics equivalent and must be represented as custom fields on Contact and a separate custom entity for reward attribution. We do not migrate Splio campaign filters, automation rules, or loyalty program tiers as logic — we deliver a written inventory of these for the customer's admin to rebuild in Dynamics or Power Automate 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
Splio platform overview
Scorecard, SWOT, gotchas, and pricing for Splio.
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 Splio 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.
Splio
Contact
Microsoft Dynamics 365 Sales
Contact (linked to Account)
1:1Splio Contacts map to Dynamics 365 Contact records, each linked to an Account. We perform a list-membership audit before export: any Splio Contact without at least one list assignment is flagged as an orphan, assigned to a catch-all segment, and verified against the total contact count to prevent silent data loss. The Splio contact ID is preserved in a custom field splio_contact_id__c for audit traceability. Email, phone, address, and custom fields migrate to typed Dynamics fields.
Splio
Company/Store
Microsoft Dynamics 365 Sales
Account
1:1Splio Store records (physical retail locations and e-commerce sites) map to Dynamics 365 Account records. The store name becomes Account Name, store address maps to Address composite fields, and store-level custom fields migrate to Account custom fields. Store scope from Splio is distinct from the Contact scope, so Accounts are created first to satisfy Contact lookups.
Splio
Order
Microsoft Dynamics 365 Sales
Opportunity or custom Order entity
lossySplio Orders link to a Contact and carry order_items referencing Products. Dynamics 365 Sales does not have a native Order object at the CRM layer; orders are typically represented as Opportunities with custom order fields (order number, order date, fulfillment status) or handled via Dynamics 365 Business Central if the customer licenses the ERP. We determine the order representation strategy during scoping based on whether Business Central is in the destination stack.
Splio
Order Item
Microsoft Dynamics 365 Sales
OpportunityLineItem (or custom)
1:1Splio order_items (line items referencing a product) require the parent Order to exist before the item can be linked. We sequence order_item migration after the parent Order-Opportunity record is created in Dynamics. Product2 reference resolution and Pricebook2 assignment happen at this stage. If the order is represented as a custom entity rather than Opportunity, line items migrate to a custom Order Line Item entity with a lookup to the parent Order.
Splio
Product
Microsoft Dynamics 365 Sales
Product2
1:1Splio Products (standalone catalog items referenced by order_items) map to Dynamics 365 Product2 records. ProductCode from Splio maps to Product2 Product Code; product name maps to Name. Product-level custom fields (from the products scope) become Product2 custom fields. Standard Pricebook entries are created during import.
Splio
Loyalty Membership
Microsoft Dynamics 365 Sales
Contact (custom fields)
lossySplio Loyalty Membership records carry card_code, q_points (quantized), nq_points (non-quantized), and tier. Dynamics 365 Sales has no native loyalty entity, so we create Contact-level custom fields: splio_loyalty_card_code__c (text), splio_loyalty_q_points__c (number), splio_loyalty_nq_points__c (number), splio_loyalty_tier__c (picklist). Point balance values migrate as-is; fractional values are preserved in decimal fields. Tier values are mapped to a picklist.
Splio
Rewards and Reward Attribution
Microsoft Dynamics 365 Sales
Custom Reward Attribution entity
lossySplio Rewards (defined at the program level) and Reward Attributions (which contacts received which rewards) require a custom entity in Dynamics. We design a splio_reward_attribution__c custom entity with lookups to Contact (the recipient), a splio_reward_name__c text field, splio_reward_type__c, splio_reward_date__c, and splio_reward_status__c. The custom entity is created in the destination Dynamics org before migration begins.
Splio
Interaction (custom events)
Microsoft Dynamics 365 Sales
Dynamics custom Interaction entity or Activity
lossySplio Interactions are custom events sent via API (e.g., loyalty point credits, purchase triggers). These map to a custom splio_interaction__c entity with fields for interaction type, timestamp, source contact reference, and payload data. We export interaction event logs and create records in the custom entity with a Contact lookup resolved at migration time.
Splio
List Membership
Microsoft Dynamics 365 Sales
Contact Topic or Tag (custom field)
lossySplio Lists drive segmentation and export eligibility. We preserve list memberships as tags or as a multi-select picklist field splio_lists__c on Contact. Blocklists map to a splio_blocklist__c flag and a suppression exclusion set in Dynamics. The customer chooses the target representation during scoping.
| Splio | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Contact (linked to Account)1:1 | Fully supported | |
| Company/Store | Account1:1 | Fully supported | |
| Order | Opportunity or custom Order entitylossy | Fully supported | |
| Order Item | OpportunityLineItem (or custom)1:1 | Fully supported | |
| Product | Product21:1 | Fully supported | |
| Loyalty Membership | Contact (custom fields)lossy | Fully supported | |
| Rewards and Reward Attribution | Custom Reward Attribution entitylossy | Fully supported | |
| Interaction (custom events) | Dynamics custom Interaction entity or Activitylossy | Fully supported | |
| List Membership | Contact Topic or Tag (custom field)lossy | 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.
Splio gotchas
Contacts without list membership are silently excluded from exports
Filter preview counts differ from actual export counts
Campaign migration requires sequential data-then-filters ordering
API rate limits are not publicly 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 Splio list-membership audit
We audit the Splio tenant across all scopes (contacts, stores, products, orders, loyalty, rewards, interactions, lists). The list-membership audit is the first technical step: we identify every Contact without a list assignment, quantify the orphan count as a percentage of total contacts, and recommend a catch-all list assignment before export. We also extract all custom fields per scope, all loyalty program rules, and all active campaign definitions for the inventory deliverable.
Dynamics schema design and custom entity provisioning
We design the destination Dynamics 365 Sales schema based on the Splio audit. This includes creating the splio_reward_attribution__c custom entity, the splio_interaction__c custom entity, and all Contact-level custom fields for loyalty data (splio_loyalty_card_code__c, splio_loyalty_q_points__c, splio_loyalty_nq_points__c, splio_loyalty_tier__c, splio_lists__c). We also configure the order representation strategy (Opportunity-plus-custom-fields or Business Central Sales Order) and create any required Account custom fields from the Splio stores scope. Schema is deployed to a Dynamics Sandbox for validation before production migration.
Sandbox migration and reconciliation
We run a full migration into a Dynamics Sandbox using representative data volume. The customer's RevOps lead reconciles record counts across all Splio scopes against the imported Dynamics records, spot-checks 25-50 records per object against the Splio source, and validates the loyalty field values and order linkage. Any mapping corrections, custom field type adjustments, or validation rule conflicts are resolved here. No production migration begins without signed-off Sandbox reconciliation.
Loyalty and reward sequencing before contact import
Loyalty and reward data must be available in Dynamics before contacts are imported if the loyalty fields are required or validated. We migrate reward attribution records (to the custom entity) and loyalty membership custom fields (per-contact) before the main contact import. This sequencing ensures that contacts land in Dynamics with their loyalty data intact and avoids a post-contact update pass for loyalty attributes.
Production migration in dependency order
We run production migration in record-dependency order: Account records (from Splio Stores/Companies), Product2 records (from Splio Products), Contact records (with Account lookups resolved and loyalty custom fields populated), Opportunities or custom Order entities (with AccountId, ContactId, and OwnerId resolved), order_items or OpportunityLineItems (after parent order exists), Interaction event logs (to the custom entity), and List/Blocklist metadata (as tags or custom fields on Contact). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and campaign inventory handoff
We freeze Splio writes during cutover, run a final delta migration of any records modified during the migration window, and enable Dynamics 365 Sales as the system of record. We deliver the campaign filter inventory document to the customer's admin team (listing every Splio campaign, its filter criteria, targeting scope, and recommended Dynamics or Power Automate rebuild). We support a one-week hypercare window for reconciliation issues. We do not rebuild Splio campaigns, loyalty program rules, or automation logic as Dynamics Power Automate flows inside the migration scope; that is a separate engagement.
Platform deep dives
Splio
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Splio and Microsoft Dynamics 365 Sales .
Object compatibility
1 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
Splio: Not publicly documented in the developer hub — confirmed per integration during scoping.
Data volume sensitivity
Splio 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 Splio to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Splio 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 Splio
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.