CRM migration
Field-level mapping, validation, and rollback between Spiro and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Spiro
Source
Freshsales
Destination
Compatibility
6 of 8
objects map 1:1 between Spiro and Freshsales.
Complexity
CModerate
Timeline
3-4 weeks
Overview
Spiro and Freshsales use different core object models, which is the central challenge of this migration. Spiro organizes around Companies, Contacts, and Opportunities with AI surfacing relationship signals; Freshsales uses Accounts, Contacts, Deals, and a separate Leads module with Freddy AI for scoring and routing. We resolve the Opportunity-to-Deal mapping, configure the Freshsales Leads-to-Contacts-Accounts-Deals conversion field mapping to preserve Spiro custom field data, and re-verify every attachment URL before the migration window closes. Workflows, Data Collector imports, and any Dropbox-sourced file structures do not migrate as automation or configuration; we deliver a written inventory for the customer to rebuild in Freshsales Workflows and Admin Settings. Email activity that was not logged due to Spiro's known email disconnection issues cannot be backfilled.
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 Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Spiro
Contact
Freshsales
Contact (or Lead via pre-migration split)
1:1Spiro Contacts map directly to Freshsales Contacts with standard fields (name, email, phone, title) preserved. Custom Contact fields migrate as Freshsales Contact custom fields, which must be pre-created in Admin Settings before migration. If the customer wants prospect records separated from customer records in Freshsales, we can split Spiro Contacts into Freshsales Leads (pre-conversion) and Contacts (post-conversion) using a custom field value as the segmentation key. Note that Freshsales Lead conversion requires explicit field mapping in Admin Settings; without it, custom field data on Leads is lost at conversion time.
Spiro
Company
Freshsales
Account
1:1Spiro Company records map to Freshsales Account. Address fields (street, city, state, postal code, country) merge into the Freshsales Account address block. If multiple Spiro Companies share the same legal entity name and website, we use the same dedupe logic Spiro applies: name plus website combination is unique. Account is created before Contact import so that the Account Lookup relationship is satisfied at Contact insert time.
Spiro
Opportunity
Freshsales
Deal
1:1Spiro Opportunities map to Freshsales Deals. The Spiro stage property maps to Freshsales Deal stage, and the pipeline assignment maps to a Freshsales pipeline that we configure before migration. Deal amount, close date, probability (if populated in Spiro), and owner migrate directly. Spiro stage names frequently differ from Freshsales default stage labels; we map these explicitly during scoping and flag any Spiro stages with no Freshsales equivalent.
Spiro
Custom Fields
Freshsales
Custom Fields
lossySpiro custom fields on Companies, Contacts, and Opportunities must be extracted from Spiro's UI or confirmed with a CSM since there is no documented public endpoint for schema retrieval. We pre-create the equivalent custom fields in Freshsales Admin Settings before importing data. For Spiro Contacts that will become Freshsales Leads, we configure Lead field mapping to the corresponding Account, Contact, and Deal custom fields so that conversion preserves the data.
Spiro
Activity
Freshsales
Sales Activities
1:1Spiro activity records (calls, emails, meetings, tasks) linked to Contacts and Companies migrate to Freshsales Sales Activities attached to the corresponding Contact and Account. Activity timestamps are preserved to maintain the chronological timeline. Note that Spiro email activity logged during periods of known email disconnection will not exist to migrate; we verify email sync status during scoping and advise customers to export any activity logs they want to preserve before cutover.
Spiro
Attachment
Freshsales
Attachment (re-linked)
1:1Spiro stores attachments as linked URLs rather than embedded blobs. We resolve each attachment URL during migration to confirm it is reachable. If the source Spiro workspace access is revoked post-migration, attachment links break. We recommend customers download critical files before the migration window closes and re-upload to Freshsales Document Storage or a linked cloud storage integration.
Spiro
User / Owner
Freshsales
User
1:1Spiro user records map to Freshsales User accounts. We resolve owners by email match. Any Spiro Owner without a matching Freshsales User is held in a reconciliation queue for the customer's admin to provision before record import resumes. Active versus inactive status is preserved from Spiro where available.
Spiro
Pipeline
Freshsales
Pipeline
lossySpiro pipeline structure is reconstructed in Freshsales by mapping Spiro stage values to Freshsales pipeline stage definitions. Freshsales supports multiple pipelines from the Growth plan onward. We configure the pipeline stages and any custom stage probabilities before Deal migration begins.
| Spiro | Freshsales | Compatibility | |
|---|---|---|---|
| Contact | Contact (or Lead via pre-migration split)1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Activity | Sales Activities1:1 | Fully supported | |
| Attachment | Attachment (re-linked)1:1 | Fully supported | |
| User / Owner | User1:1 | Fully supported | |
| Pipeline | Pipelinelossy | 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
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Discovery and source audit
We audit the source Spiro workspace for record counts across Companies, Contacts, and Opportunities, identify custom field definitions on all three objects, verify Data Collector status and Dropbox folder access, check email sync status for activity gap assessment, and inventory all Spiro Users referenced as owners. We pair this with a Freshsales plan review to confirm the target plan includes the required features (multiple pipelines, territory management, custom fields). The discovery output is a written migration scope document with custom field mapping tables.
Custom field creation and Lead conversion mapping
We create all custom fields in Freshsales Admin Settings to match the Spiro field definitions, matching field types (text, number, date, picklist, checkbox) as closely as possible. We then configure the Lead conversion field mapping in Freshsales Admin Settings > Leads Module so that custom field values on Spiro prospect records are preserved when Leads are converted to Contacts, Accounts, and Deals in Freshsales. This step must complete before any record data is imported.
Pipeline and stage configuration in Freshsales
We configure Freshsales pipeline stages to match the Spiro pipeline structure, mapping Spiro stage names to Freshsales stage labels and probabilities. If the customer uses multiple Spiro pipelines, we configure multiple Freshsales pipelines from the Growth plan onward. Stage configuration is validated in a Freshsales sandbox or trial account before production migration begins.
Owner reconciliation and User provisioning
We extract every distinct Spiro User referenced on Contact, Company, Opportunity, and Activity records and match by email against the Freshsales destination account's User table. Users without a matching Freshsales account go to a reconciliation queue for the customer's admin to provision. Active versus inactive status is preserved. Migration cannot proceed past this step because Owner lookups must be resolved before record import.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Spiro Companies), Contacts (with Account Lookup resolved), Deals (with Contact and Account lookups resolved), Sales Activities (calls, emails, meetings, tasks via Freshsales REST API with rate-limit handling), and attachments (URL re-verification and re-linking). Custom fields are mapped per the configuration defined in step two. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and handoff
We freeze Spiro writes during cutover, run a final delta migration of any records modified during the migration window, then enable Freshsales as the system of record. We validate 25-50 spot-check records against the Spiro source, verify Lead conversion field mapping with sample records, and confirm attachment URL accessibility. We deliver a written inventory of Spiro Workflows, Data Collector configurations, and Dropbox file structures for the customer to rebuild in Freshsales Workflows and Admin Settings. We support a one-week hypercare window for reconciliation issues.
Platform deep dives
Spiro
Source
Strengths
Weaknesses
Freshsales
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 Freshsales.
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 Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Spiro to Freshsales 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 Freshsales
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.