CRM migration
Field-level mapping, validation, and rollback between Levitate and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Levitate
Source
Freshsales
Destination
Compatibility
6 of 9
objects map 1:1 between Levitate and Freshsales.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from Levitate to Freshsales is a structural migration from a contact-centric keep-in-touch platform to a full sales CRM with Leads, Accounts, Contacts, and Opportunities. Levitate organizes its data around Contacts enriched with Tags and Key Dates; Freshsales uses the standard CRM object hierarchy with custom fields available at every paid tier. We extract contacts through Levitate's UI-based CSV export (the platform has no public bulk API), recreate Key Dates as date custom fields, translate tag assignments into Freshsales multi-select picklists or custom contact properties, and map the engagement activity history into Freshsales Activity entries. Levitate automations cannot be exported as portable logic; we deliver a written inventory of every automation with its trigger, conditions, and recommended Freshsales workflow equivalent for the customer's admin to rebuild 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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Levitate 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.
Levitate
Contact
Freshsales
Contact + Account (split required)
1:manyLevitate Contacts map directly to Freshsales Contact records. Where Levitate contacts carry a Company Name property, we create a corresponding Freshsales Account and link the Contact via the Account Lookup. Email serves as the dedupe key during import. Levitate contact properties (phone, address, custom fields) map to Freshsales standard and custom contact fields. Any contact without an email address is flagged for manual review since Freshsales requires email for contact creation at the standard tier.
Levitate
Tag
Freshsales
Multi-Select Picklist or Custom Field
lossyLevitate Tags are the primary segmentation mechanism and drive automation triggers. We map tags to Freshsales multi-select picklist fields on the Contact object. If the customer has more than 150 unique tags, we recommend creating a separate tag taxonomy custom field to avoid picklist value limits, or using Freshsales Topics with TopicAssignment records for content-classification tags. The tag taxonomy is preserved in full during migration so downstream Freshsales workflows can reference the same tag values as conditions.
Levitate
Key Date
Freshsales
Custom Date Field
lossyLevitate Key Dates (birthday, renewal date, policy expiration, custom milestone dates) are a Levitate-specific field type that drives date-triggered automations. These do not have a direct Freshsales equivalent — we create custom date fields on the Contact object with API names matching the Levitate field labels (e.g., birthday__c, renewal_date__c). We flag that Freshsales workflows must be manually configured with date-triggered conditions using these fields after migration, since date-triggered automation is a Freshsales Workflow feature available from Growth tier, not an automatic carryover.
Levitate
Automation (Enrollment State)
Freshsales
Workflow Inventory Document
1:1Levitate automations are server-side workflow sequences and cannot be exported as portable JSON. We extract automation enrollment state (which contacts were enrolled in which automations and at what date) and preserve it as a custom field or note on the contact record. We deliver a written inventory of every active Levitate automation with its trigger type, conditions, delay steps, tag actions, and email sequence, plus a recommended Freshsales Workflow equivalent for the customer's admin to rebuild. Automations themselves are not migrated as code.
Levitate
Campaign
Freshsales
Campaign + Activity Timeline
1:1Levitate Campaigns track email sends to a contact segment with engagement metrics (opens, clicks, replies). We migrate campaign metadata (name, start date, status) as Freshsales Campaign records. Individual email performance (opens, clicks) is aggregated as contact-level custom fields rather than individual EmailMessage records, since Levitate does not export raw engagement event logs. Campaign member status maps to Freshsales Campaign Member Status values.
Levitate
Text Message
Freshsales
Activity Entry (Custom)
1:1Levitate SMS logs are available per contact through the UI thread view but not as bulk export. We migrate available SMS history as custom activity entries on the Contact timeline, with message content, timestamp, and direction preserved. Long message threads may be truncated based on Levitate's UI display limits; we flag this constraint during discovery and note that SMS consent records must be manually verified at the destination.
Levitate
User (Owner)
Freshsales
User
1:1Levitate user accounts (owner, admin, member roles) map to Freshsales User records by email match. We extract the active user list and map role assignments where possible, though Levitate role definitions are not fully exportable. Users without a matching Freshsales User go to a reconciliation queue for the customer's admin to provision. Owner assignment on contacts migrates by resolving the Levitate owner email to the Freshsales User ID.
Levitate
Note
Freshsales
Note
1:1Levitate contact profile notes migrate to Freshsales Note records linked to the Contact via ContentDocumentLink. We extract note body content, creation date, and last modified date. Notes attached to contacts without email are linked to the nearest related Contact record by name matching.
Levitate
Document Attachment (Reference)
Freshsales
Attachment Reference Flag
1:1Attachments referenced in Levitate automations or campaigns are stored as URLs or references to Levitate's content library. We export the attachment reference URLs and flag which documents must be re-uploaded to Freshsales File Storage or a connected document management system. Actual binary file migration is not available through Levitate's export capability.
| Levitate | Freshsales | Compatibility | |
|---|---|---|---|
| Contact | Contact + Account (split required)1:many | Fully supported | |
| Tag | Multi-Select Picklist or Custom Fieldlossy | Fully supported | |
| Key Date | Custom Date Fieldlossy | Fully supported | |
| Automation (Enrollment State) | Workflow Inventory Document1:1 | Fully supported | |
| Campaign | Campaign + Activity Timeline1:1 | Fully supported | |
| Text Message | Activity Entry (Custom)1:1 | Fully supported | |
| User (Owner) | User1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Document Attachment (Reference) | Attachment Reference Flag1:1 | 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.
Levitate gotchas
No public API — automation logic is not exportable
Key Dates are Levitate-specific custom fields
Split billing requires manual credit card management
Flat-rate billing continues until cancelled
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 export extraction
We audit the Levitate account through the UI to capture the contact CSV export, Key Date field list (requested separately from Levitate Support), active tag taxonomy, user roster, and campaign metadata. We identify any custom fields, note volumes, and SMS log availability per contact. We also request contact profile notes from Levitate Support directly since those are not included in the self-serve CSV export. The discovery output is a written migration scope with record counts per object, custom field inventory, and any known data gaps flagged.
Freshsales schema design and custom field creation
We design the destination schema in Freshsales. This includes creating custom date fields on the Contact object for every Levitate Key Date field (birthday, renewal date, policy expiration, and any custom date fields), creating multi-select picklist or custom fields for the tag taxonomy, configuring the Account-Contact relationship model based on Levitate Company Name field presence, and setting up any Freshsales Workflows that will handle date-triggered automation equivalents. Custom fields are deployed via Freshsales API before any contact import begins.
Test migration and reconciliation
We run a test migration into a Freshsales trial or sandbox environment using a sample of 100-200 contact records. We validate that custom date fields accept the Levitate Key Date values without type errors, that tag values map correctly to Freshsales picklists, that Account-Contact linking works where Company Name is present, and that note content renders properly. The customer reviews the test data and signs off on the mapping before production migration begins. Any field type mismatches or data truncation issues are resolved at this stage.
Owner and user reconciliation
We extract every distinct Levitate user referenced on contact records as the owner and match by email against the Freshsales destination account's User table. Any Levitate owner without a matching Freshsales User goes to a reconciliation queue. The customer's Freshsales admin provisions missing users (active or inactive) before record import resumes. OwnerId references on contact records require resolved User IDs before import can succeed.
Production migration in dependency order
We run production migration in record order: Freshsales Users validated, Accounts created from Levitate Company Names (with duplicates deduped by domain or name), Contacts imported with AccountId Lookup resolved, Key Date custom fields populated from the Levitate export, Tag assignments mapped to Freshsales multi-select picklists, Notes migrated as Freshsales Note records linked via ContentDocumentLink, Campaign metadata migrated as Freshsales Campaign records, SMS logs migrated as custom activity entries, and engagement summary data (last touch, aggregate open/click counts) mapped to contact custom fields. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation rebuild handoff
We coordinate the cutover window to align with the end of a Levitate billing cycle (quarterly or annual) so the customer pays for one final clean period before cancellation. We freeze writes in Levitate during cutover, run a final delta migration of any records modified during the migration window, then confirm Freshsales is the system of record. We deliver the automation inventory document to the customer's admin team with recommended Freshsales Workflow equivalents for each Levitate automation. We support a one-week post-migration hypercare window for reconciliation issues. We do not rebuild Levitate automations as Freshsales Workflows inside the migration scope; that is a separate engagement.
Platform deep dives
Levitate
Source
Strengths
Weaknesses
Freshsales
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 Levitate and Freshsales.
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
Levitate: Not publicly documented.
Data volume sensitivity
Levitate 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 Levitate to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Levitate 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 Levitate
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.