CRM migration
Field-level mapping, validation, and rollback between Spiro and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Spiro
Source
Salesforce Sales Cloud
Destination
Compatibility
9 of 12
objects map 1:1 between Spiro and Salesforce Sales Cloud.
Complexity
CModerate
Timeline
4-8 weeks
Overview
Moving from Spiro to Salesforce is a platform upgrade that changes how relationship data, pipeline data, and activity history are structured. Spiro uses a simplified data model built around Companies, Contacts, and Opportunities with a proactive AI that surfaces records without manual entry. Salesforce uses a richer schema with Accounts, Contacts, Leads, Opportunities, Tasks, Events, and EmailMessage objects, plus a full Admin and Developer console for custom field and workflow configuration. We extract Spiro data through a combination of Data Collector file exports (coordinated with Spiro's CSM), custom field schema discovery via Spiro support, and direct data extraction where available. We re-link Spiro attachment URLs as ContentDocument records in Salesforce, resolve Activity records against the correct Contact and Account lookups, and map Spiro Opportunity stages to Salesforce StageName values with corresponding Record Types and Sales Processes. Workflows, automations, and email integration rules do not migrate because Spiro's automation model has no direct Salesforce equivalent; we deliver a written inventory for the customer's admin to rebuild in Salesforce Flow.
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 Spiro object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Spiro
Company
Salesforce Sales Cloud
Account
1:1Spiro Company records map to Salesforce Account. Spiro's company name becomes Account Name; billing address and shipping address map to Account Address fields. The domain name stored in Spiro's company record becomes the Website field on Account for dedupe reference. If multiple Spiro Company records share the same legal entity name, we normalize and merge them at import time using external ID resolution to prevent duplicate Account creation.
Spiro
Contact
Salesforce Sales Cloud
Contact
1:1Spiro Contact records map to Salesforce Contact. Standard fields (FirstName, LastName, Email, Phone, Title) migrate directly. Spiro Contact custom fields are extracted from Spiro's schema (coordinated via CSM) and recreated in Salesforce as custom Contact fields before import. The parent AccountId is resolved at import time by matching Spiro's Company association to the Salesforce Account created in the previous phase.
Spiro
Opportunity
Salesforce Sales Cloud
Opportunity
1:1Spiro Opportunity records map to Salesforce Opportunity with stage, value, and close date preserved. The most critical mapping is Spiro stage name to Salesforce StageName. We extract the complete stage list from Spiro during scoping, map each to a corresponding Salesforce stage (or create new stages to match Spiro's pipeline exactly), and configure Record Types and Sales Processes before Opportunity import begins. Amount maps from Spiro's Opportunity value. CloseDate migrates from Spiro's close date.
Spiro
Pipeline
Salesforce Sales Cloud
Record Type + Sales Process
lossySpiro uses Opportunities to represent pipeline entries without a separate Pipeline configuration object. Each distinct stage set in Spiro becomes a Salesforce Record Type on Opportunity with a corresponding Sales Process. Stage probability percentages are extracted from Spiro and applied to Salesforce StageProbability values. If Spiro uses multiple pipelines with different stage sets, we create a Salesforce Record Type per pipeline and assign page layouts accordingly.
Spiro
Custom Fields (Companies, Contacts, Opportunities)
Salesforce Sales Cloud
Custom Fields (Accounts, Contacts, Opportunities)
lossySpiro custom fields on Companies, Contacts, and Opportunities require explicit schema extraction coordinated through Spiro's Customer Success Manager because no public API exposes the full custom field definition. We request the field inventory from Spiro support before migration design, recreate each custom field in Salesforce as a typed custom field (__c), and then import data with those fields populated. If Spiro's custom field types (picklist, date, number, text) differ from Salesforce field types, we perform type conversion during the transform phase.
Spiro
Activity: Email
Salesforce Sales Cloud
Task + EmailMessage
1:1Spiro email activities linked to Contacts and Companies map to Salesforce Task (activity timeline entry) combined with EmailMessage (email content). The Spiro email timestamp becomes Task ActivityDate; email body becomes EmailMessage TextBody; sender and recipient map to EmailMessage FromName, FromAddress, ToAddress. The WhoId on Task points to the migrated Contact. We flag any emails logged during a Spiro email disconnection window as missing data and document the gap in the migration report.
Spiro
Activity: Call
Salesforce Sales Cloud
Task (TaskSubtype = Call)
1:1Spiro call activities map to Salesforce Task with TaskSubtype = Call. Call duration, disposition, and any recording URL stored in Spiro migrate to custom Task fields. ActivityDate is set to the original Spiro call timestamp. OwnerId is resolved by matching Spiro's owner email to the Salesforce User created in the User provisioning phase.
Spiro
Activity: Meeting
Salesforce Sales Cloud
Event
1:1Spiro meeting activities map to Salesforce Event. StartDateTime, EndDateTime, Subject, and Location migrate directly. Attendees are mapped via EventRelation records pointing to the migrated Contact and User records. The original Spiro meeting timestamp preserves the activity timeline ordering.
Spiro
Activity: Task
Salesforce Sales Cloud
Task
1:1Spiro task activities map to Salesforce Task with Status, Priority, Subject, and ActivityDate preserved. OwnerId resolution follows the same email-based matching used for all other owner-dependent records. Completed tasks in Spiro map to Status = Completed; open tasks map to Status = Not Started or In Progress.
Spiro
User / Owner
Salesforce Sales Cloud
User
1:1Spiro user records map to Salesforce User accounts. We match by email address. Spiro users without a matching Salesforce User go to a reconciliation queue for the customer's admin to provision before record import resumes. Inactive Spiro users (former employees) are created as inactive Salesforce Users so that activity ownership is preserved on the historical timeline.
Spiro
Attachment (URL reference)
Salesforce Sales Cloud
ContentDocumentLink
1:1Spiro stores attachments as linked file URLs rather than embedded file blobs. During migration we verify each Spiro attachment URL is reachable, download the file content, upload it as a Salesforce ContentVersion record, and create a ContentDocumentLink associating it with the parent Account, Contact, or Opportunity. If the source Spiro workspace access is revoked before migration completes, attachment links break permanently. We flag this risk during discovery and recommend downloading critical files before the cutover window.
Spiro
Data Collector Export
Salesforce Sales Cloud
Multiple objects via CSV
lossySpiro's Data Collector is the primary data export mechanism and requires CSM enablement and a Dropbox folder destination. We coordinate with Spiro's team to provision the Dropbox folder and confirm CSM access before beginning any export-phase work. This adds 3-5 business days to the migration timeline. Data Collector produces CSV exports per object type that we then transform and load into Salesforce via Bulk API 2.0.
| Spiro | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Company | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline | Record Type + Sales Processlossy | Fully supported | |
| Custom Fields (Companies, Contacts, Opportunities) | Custom Fields (Accounts, Contacts, Opportunities)lossy | Fully supported | |
| Activity: Email | Task + EmailMessage1:1 | Fully supported | |
| Activity: Call | Task (TaskSubtype = Call)1:1 | Fully supported | |
| Activity: Meeting | Event1:1 | Fully supported | |
| Activity: Task | Task1:1 | Fully supported | |
| User / Owner | User1:1 | Fully supported | |
| Attachment (URL reference) | ContentDocumentLink1:1 | Fully supported | |
| Data Collector Export | Multiple objects via CSVlossy | 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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Discovery and CSM coordination
We audit the source Spiro account, including custom field inventory (coordinated via Spiro CSM), Data Collector access status, pipeline stage list, user roster, activity volume estimate, and attachment count. We pair this with a Salesforce edition review: Essentials ($25/user) covers basic sales CRM; Professional ($80/user) supports custom fields, multiple sales processes, and the Bulk API; Enterprise ($165/user) adds record-triggered Flow, advanced reporting, and more; Unlimited ($330/user) only if 24x7 support and custom apps are required. The discovery output is a written migration scope, a Data Collector provisioning request for the customer, and a Salesforce edition recommendation.
Schema design and stage mapping
We design the destination schema in Salesforce. This includes recreating all Spiro custom fields as typed Salesforce custom fields (__c) on Account, Contact, and Opportunity; configuring Opportunity Record Types and Sales Processes that match Spiro's pipeline stage set; provisioning Salesforce Users for all Spiro users via email-matched provisioning; and mapping Spiro attachment URLs to ContentDocument records with parent ContentDocumentLink associations. Schema is deployed via Salesforce metadata API into a Sandbox org first for validation. The stage mapping matrix is the critical design artifact in this phase.
Data Collector export and transform
We coordinate with Spiro's CSM to enable Data Collector and provision the Dropbox folder. We export Companies, Contacts, Opportunities, Activities, and User records as CSV files. We run a transform pass that applies field type conversion, custom field population, stage name mapping, and owner email-to-UserId resolution. We validate record counts against Spiro's reported counts and flag any discrepancies before loading. This phase runs concurrently with the Data Collector provisioning process.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume. The customer's admin reconciles record counts (Accounts in, Contacts in, Opportunities in, Tasks in, Events in), spot-checks 25-50 random records against the Spiro source, and validates stage distribution in Salesforce pipeline reports. Any mapping corrections, missing custom field additions, or stage name adjustments happen in this sandbox phase. We do not proceed to production until the customer signs off on the sandbox results.
Production migration in dependency order
We run production migration in record-dependency order: Users (provisioned, validated), Accounts (from Spiro Companies), Contacts (with AccountId resolved), Opportunities (with AccountId, OwnerId, RecordTypeId, and StageName resolved), Activity history (Tasks, Events, EmailMessages via Bulk API 2.0), Attachment files (downloaded from Spiro URLs, uploaded as ContentVersion, linked via ContentDocumentLink). Each phase emits a row-count reconciliation report before the next phase begins. We use Bulk API 2.0 with batch chunking, parent-record lookup resolution, and exponential backoff on rate-limit responses.
Cutover, validation, and automation inventory handoff
We freeze Spiro writes during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We validate record counts match the final Spiro snapshot, spot-check activity timelines for completeness, and confirm pipeline reports show the expected stage distribution. We deliver a written inventory of every Spiro automation or workflow requiring rebuild in Salesforce Flow. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's team. We do not rebuild Spiro automations as Salesforce Flow inside the migration scope.
Platform deep dives
Spiro
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Spiro and Salesforce Sales Cloud.
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
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Spiro to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.