CRM migration
Field-level mapping, validation, and rollback between Spiro and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Spiro
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
5 of 8
objects map 1:1 between Spiro and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Spiro to Microsoft Microsoft Dynamics 365 Sales is a structural migration that resolves three fundamental differences: Spiro uses a flat Company object that maps to Dynamics 365 Accounts with address handling that requires disambiguation when multiple Spiro Companies share a legal entity; Spiro's AI-generated Opportunity stages map to Dynamics 365 pipeline stages that must be pre-configured as Sales Processes before data import; and Spiro's attachment references are URLs that must be verified reachable before re-linking in SharePoint-backed Dynamics 365. We use Dynamics 365's Data Management Framework and Dataverse API with batch chunking for Opportunity and Activity records. Spiro's email-triggered activity logs can be silently lost if the email integration disconnected before scoping—we verify sync status and export available activity logs during discovery. Spiro Workflows, Data Collector automations, and AI-proactive-task configurations do not migrate; we deliver a written inventory for the customer's admin to rebuild in Microsoft Dynamics 365 Sales or Power Automate.
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
Spiro platform overview
Scorecard, SWOT, gotchas, and pricing for Spiro.
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 Spiro 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.
Spiro
Company
Microsoft Dynamics 365 Sales
Account
1:1Spiro Company records map to Dynamics 365 Account. Address fields require disambiguation when multiple Spiro Company records represent the same legal entity (e.g., a parent holding company and subsidiary operating divisions imported as separate Spiro Companies). We merge address data, preserve all Spiro Company custom fields as custom Account attributes, and use the Company name as the Account name with a dedupe check against existing Account records. Company phone and website map to Account.Telephone and Account.WebsiteURL respectively.
Spiro
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Spiro Contacts map directly to Dynamics 365 Contact. Standard fields (full name, email, phone, title, mailing address) migrate cleanly. Spiro Contact custom fields are recreated in Dataverse as Contact custom attributes before import. The parent Account lookup resolves at migration time using the Account created from the corresponding Spiro Company record.
Spiro
Opportunity
Microsoft Dynamics 365 Sales
Opportunity
1:1Spiro Opportunities map to Dynamics 365 Opportunity with stage, estimated value, and close date preserved. Spiro stage names require explicit mapping to Dynamics 365 StageName values that are pre-configured as a Sales Process before migration. If Spiro uses non-standard stage labels (e.g., AI-generated stages from Spiro's proactive CRM), we map them to the closest Dynamics 365 pipeline stage or create custom stage values if the customer's Sales Process definition allows.
Spiro
Pipeline
Microsoft Dynamics 365 Sales
Sales Process + Record Type
lossySpiro's single Opportunity pipeline maps to a Microsoft Dynamics 365 Sales Process linked to a Record Type. Stage probability percentages from Spiro migrate to StageProbability on each Dynamics 365 stage. If the customer uses multiple Spiro pipelines (rare at SMB tier), we create additional Record Types with corresponding Sales Processes to isolate stage values per business line.
Spiro
Custom Fields (Companies, Contacts, Opportunities)
Microsoft Dynamics 365 Sales
Custom Attributes
lossySpiro custom field definitions must be extracted from the Spiro UI or confirmed with a CSM because there is no documented public endpoint for schema discovery. We recreate each custom field in Dataverse with the appropriate attribute type (text, number, picklist, date, currency) before importing data. Custom field ordering and grouping are documented for recreation in the Dynamics 365 form designer post-migration.
Spiro
User / Owner
Microsoft Dynamics 365 Sales
User
1:1Spiro User records map to Dynamics 365 User by email match. We extract every distinct Owner referenced on Contact, Company, and Opportunity records and resolve against the destination User table. Orphaned records (Owner without a matching User) go to a reconciliation queue for the customer's admin to provision the User in Dynamics 365 before the Opportunity and Activity phases begin.
Spiro
Activity (calls, emails, meetings, tasks)
Microsoft Dynamics 365 Sales
ActivityPointer, PhoneCall, Email, Appointment, Task
1:1Spiro Activity records linked to Contacts and Companies migrate to Dynamics 365 ActivityPointer and subtype entities. Call activities map to PhoneCall; email activities to Email; meetings to Appointment; standalone tasks to Task. Owner assignment resolves via the User mapping. Activity timestamps are preserved to maintain the chronological timeline. Spiro's AI-generated activities (tasks auto-created by the AI engine) migrate as Task records with a custom field spiro_ai_generated__c set to true for audit.
Spiro
Attachment
Microsoft Dynamics 365 Sales
SharePoint Document Location + Note
lossySpiro stores attachments as linked URLs rather than embedded files. We verify each URL is reachable before migration, then re-link them in Dynamics 365 as SharePoint Document Locations pointing to the customer's SharePoint library (connected via the native SharePoint integration). If any URL is unreachable or the source Spiro workspace access is revoked post-migration, the attachment becomes orphaned and we flag it in the reconciliation report with the original URL for manual recovery.
| Spiro | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Company | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline | Sales Process + Record Typelossy | Fully supported | |
| Custom Fields (Companies, Contacts, Opportunities) | Custom Attributeslossy | Fully supported | |
| User / Owner | User1:1 | Fully supported | |
| Activity (calls, emails, meetings, tasks) | ActivityPointer, PhoneCall, Email, Appointment, Task1:1 | Fully supported | |
| Attachment | SharePoint Document Location + Notelossy | 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.
Spiro gotchas
Email disconnection silently breaks activity logging
Data Collector requires CSM enablement and Dropbox access
Attachment URLs are references, not embedded files
Custom field definitions not exposed via self-service API
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 email sync status verification
We audit the Spiro workspace for record counts (Companies, Contacts, Opportunities, Activities), custom field inventory (extracted from UI or confirmed via CSM), Data Collector configuration and Dropbox folder status, email integration health at the time of scoping, and active user count for Dynamics 365 license planning. We also verify which Spiro Workflows or AI-task automations are active so we can document them for rebuild handoff. The discovery output is a written migration scope with record counts, a preliminary object mapping, and a Microsoft Dynamics 365 Sales edition recommendation based on user count and custom field complexity.
Destination schema design in Dataverse
We create the destination schema in the customer's Dynamics 365 environment. This includes provisioning custom attributes on Account, Contact, and Opportunity (with type-mapped Dataverse attribute types matching the extracted Spiro field definitions), configuring a Sales Process with stage values mapped from Spiro Opportunity stages, setting up the SharePoint document management connection for attachment re-linking, and assigning form and view customizations for the migrated custom fields. Schema work happens in the production Dynamics 365 org or a designated Sandbox depending on the customer's change-control requirements.
Attachment URL verification and remediation
We run a pre-migration verification pass against all Spiro attachment URLs to confirm reachability. URLs that return 200 are queued for re-linking in SharePoint during migration. URLs that return 404, 403, or timeout are flagged in a separate inventory with the original Spiro URL, file name, and parent record reference. The customer decides whether to download flagged files manually before the migration window closes or accept them as unrecoverable orphaned attachments in the post-migration report.
Sandbox migration and reconciliation
We run a full migration into a Dynamics 365 Sandbox using production-equivalent record volumes. The customer's admin reconciles record counts across all objects, spot-checks 20-40 random records against the Spiro source for field-level accuracy, and validates that Account-Contact lookup resolution is correct. Any mapping corrections (particularly around stage names, address handling, or custom field type mismatches) are applied before the production migration begins. This step typically takes three to five business days for the customer review cycle.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Spiro Companies, with address disambiguation), Contacts (with AccountId resolved), Opportunities (with AccountId, OwnerId, and the StageName mapping applied), Activity history (PhoneCall, Email, Appointment, Task via Dataverse API with batch chunking and exponential backoff), and Attachment re-links (with SharePoint Document Location records created per verified URL). Each phase emits a row-count reconciliation report before the next phase begins. Owner orphaned records are held in a queue until the admin provisions the corresponding Dynamics 365 User.
Cutover, validation, and automation handoff
We freeze Spiro writes during the cutover window, run a final delta migration of any records modified during the window, then enable Dynamics 365 as the system of record. We deliver the Spiro Workflow and AI-task automation inventory document to the customer's admin for rebuild in Microsoft Dynamics 365 Sales or Power Automate. We support a three-day hypercare window for reconciliation issues. We do not rebuild Spiro automations as Power Automate flows inside the migration scope; that is a separate engagement.
Platform deep dives
Spiro
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 Spiro and Microsoft Dynamics 365 Sales .
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
Spiro: Not publicly documented.
Data volume sensitivity
Spiro doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Spiro to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Spiro 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 Spiro
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.