CRM migration
Field-level mapping, validation, and rollback between ServiceMax and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
ServiceMax
Source
Freshsales
Destination
Compatibility
12 of 12
objects map 1:1 between ServiceMax and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
ServiceMax runs on the Salesforce Force.com platform and models field-service operations through work orders, assets, service contracts, and preventive maintenance schedules. Freshsales is a Freshworks sales CRM that tracks leads, contacts, accounts, and opportunities. The two platforms share no native object equivalents for SFM Transactions, Dispatch Console configurations, or preventive maintenance processes — those configuration items must be rebuilt in Freshsales workflows rather than migrated. The migration carries ServiceMax data (work orders, assets, contacts, accounts, technician assignments, activity history) into Freshsales standard objects plus custom objects where no native equivalent exists. FlitStack sequences the export from ServiceMax via Salesforce API, transforms field names and pick-list values to Freshsales conventions, and delivers a sample migration with field-level diff before the full run. A 24–48 hour delta-pickup window captures in-flight work order updates during cutover. API rate limits differ: Freshsales caps at 1,000–5,000 calls per hour depending on plan, while ServiceMax inherits Salesforce's API pool — FlitStack throttles export runs accordingly.
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 ServiceMax 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.
ServiceMax
ServiceMax Account (Customer Account)
Freshsales
Freshsales Account
1:1ServiceMax stores customer organizations as Salesforce Accounts. FlitStack maps these directly to Freshsales Accounts, preserving Account Name, Industry, Website, and Address fields. Parent Account hierarchies in ServiceMax map to Freshsales Account hierarchy where supported — parent must migrate before child to resolve the reference correctly.
ServiceMax
ServiceMax Contact (on Account)
Freshsales
Freshsales Contact
1:1ServiceMax stores technician and customer contact records as Salesforce Contacts. These map directly to Freshsales Contacts with first name, last name, email, phone, title, and address fields preserved. ServiceMax contact roles (technician, dispatcher, customer) are flagged in a custom Contact field since Freshsales has no native role-per-contact model.
ServiceMax
ServiceMax Work Order
Freshsales
Freshsales Task + Custom Object (Service_History__c)
1:1Work orders map to Freshsales Tasks for individual activity records (what was done, when, by whom). The full work order header (WO number, priority, status, scheduled date, actual duration, skill required, service type) migrates to a custom object called Service_History__c linked to the Contact. This preserves the FSM context that a standard Task cannot hold.
ServiceMax
ServiceMax Installed Base (IB)
Freshsales
Custom Object (Asset__c)
1:1ServiceMax IB tracks serialized equipment, location, warranty status, and technical attributes per installed unit. Freshsales has no native asset object. FlitStack creates an Asset__c custom object and maps IB fields including Serial Number, Product Name, Location, Installation Date, and Warranty End Date. Technical attributes stored as IB custom fields map to custom fields on Asset__c.
ServiceMax
ServiceMax Service Contract / Entitlement
Freshsales
Custom Object (Service_Contract__c)
1:1ServiceMax stores entitlement rules and service contract terms on the IB or Account object. Freshsales has no native contract object. FlitStack maps contract start/end dates, contract type, and coverage level to a custom object linked to the Account and Asset. SLA terms are preserved as text fields for reference.
ServiceMax
ServiceMax Work Order Status History
Freshsales
Custom Field on Service_History__c (Status_History__c)
1:1ServiceMax tracks work order stage transitions (Dispatched, In Progress, On Hold, Completed) with timestamps and assigned technician. Freshsales Tasks have a single status field. FlitStack preserves the full status transition log as a custom multi-line text field (JSON-formatted) on the Service_History__c custom object so nothing is lost.
ServiceMax
ServiceMax Technician / Field Resource
Freshsales
Freshsales User + Custom Field (Technician_Role__c)
1:1ServiceMax technicians are Salesforce users with ServiceMax permission sets. FlitStack resolves ServiceMax user emails against Freshsales users by email match. Skills, certifications, and service territories stored on the ServiceMax user record map to custom fields on the Freshsales User object (or contact) — your admin configures which technician attributes to surface in Freshsales.
ServiceMax
ServiceMax Preventive Maintenance Process
Freshsales
No equivalent
1:1ServiceMax PM processes define frequency-based or meter-triggered maintenance schedules on IB records. Freshsales has no scheduling or preventive maintenance module. FlitStack exports PM process definitions (frequency, trigger type, IB targets) as a JSON reference file your Freshsales admin uses to rebuild maintenance reminders as Freshsales workflows or tasks.
ServiceMax
ServiceMax SFM Transactions, Wizards, Searches
Freshsales
No equivalent
1:1ServiceMax SFM (Service Flow Management) Transactions and Wizards define the mobile UI screens technicians see in the field. These are Salesforce Visualforce/LWC configurations with no Freshsales equivalent. FlitStack exports SFM Transaction definitions as a rebuild reference — Freshsales mobile workflows or custom app development would replace this layer.
ServiceMax
ServiceMax Product / Stock Item
Freshsales
Freshsales Product
1:1ServiceMax inventory products and parts tracked in stock locations map to Freshsales Products. Product Name, SKU, Unit Price, and Product Description transfer directly. ServiceMax stock quantity fields are not native Freshsales fields — these are flagged as custom fields on the Product object or noted for a separate inventory management tool.
ServiceMax
ServiceMax Attachment / File (on Work Order, IB)
Freshsales
Freshsales Attachments on Custom Objects
1:1ServiceMax files attached to work orders, assets, or IB records (photos, PDFs, signatures) are downloaded and re-uploaded to Freshsales Attachments on the corresponding Service_History__c or Asset__c record. File size limits apply (Freshsales caps at 25MB per file for most plans). Inline images in work order notes are extracted and rehosted as standalone attachments.
ServiceMax
ServiceMax Counter Rules and SPM Calculation Methods
Freshsales
No equivalent
1:1ServiceMax counters track usage meters on assets (page counts, cycle counts) that drive PM triggers and service alerts. Freshsales has no counter or usage-metering concept. FlitStack exports the counter rule definitions as a structured reference document. If meter-based PM logic is critical, it needs a custom application or third-party scheduling tool post-migration.
| ServiceMax | Freshsales | Compatibility | |
|---|---|---|---|
| ServiceMax Account (Customer Account) | Freshsales Account1:1 | Fully supported | |
| ServiceMax Contact (on Account) | Freshsales Contact1:1 | Fully supported | |
| ServiceMax Work Order | Freshsales Task + Custom Object (Service_History__c)1:1 | Fully supported | |
| ServiceMax Installed Base (IB) | Custom Object (Asset__c)1:1 | Fully supported | |
| ServiceMax Service Contract / Entitlement | Custom Object (Service_Contract__c)1:1 | Fully supported | |
| ServiceMax Work Order Status History | Custom Field on Service_History__c (Status_History__c)1:1 | Fully supported | |
| ServiceMax Technician / Field Resource | Freshsales User + Custom Field (Technician_Role__c)1:1 | Fully supported | |
| ServiceMax Preventive Maintenance Process | No equivalent1:1 | Fully supported | |
| ServiceMax SFM Transactions, Wizards, Searches | No equivalent1:1 | Fully supported | |
| ServiceMax Product / Stock Item | Freshsales Product1:1 | Fully supported | |
| ServiceMax Attachment / File (on Work Order, IB) | Freshsales Attachments on Custom Objects1:1 | Fully supported | |
| ServiceMax Counter Rules and SPM Calculation Methods | No equivalent1: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.
ServiceMax gotchas
API call limits reset on a 24-hour rolling window
SFM Transaction and Wizard dependencies create migration loops
Configuration Profile migration excludes Default profiles
Large Technical Attributes configurations slow the Migration Tool UI
Pricing and Billing UI missing from browser mode
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
Audit ServiceMax schema and Freshsales custom object setup
FlitStack pulls the ServiceMax object schema via the Salesforce API — Account, Contact, Work Order, Installed Base, Service Contract, and any custom objects. We inventory all fields (standard and custom), pick-list values, and relationships. In parallel, your Freshsales admin creates the Asset__c and Service_History__c custom objects with the fields needed to receive ServiceMax IB and work order data. We deliver a custom-field setup checklist so the Freshsales side is ready before the first data validation run.
Map technicians to Freshsales users by email match
ServiceMax technicians are Salesforce users with ServiceMax permission sets. FlitStack resolves each ServiceMax user email against Freshsales user records; matched users are linked directly while unmatched entries are flagged in a pre‑migration report for the admin to create or invite them before the run. If duplicate emails exist, FlitStack uses the ServiceMax user ID to disambiguate. Skills, certifications, and service territories are mapped to custom fields on the Freshsales user or contact, preserving expiration dates where needed. No work order lands without a resolved technician owner.
Sequence migration: Accounts → Contacts → Assets → Service Contracts → Work Orders
Freshsales requires Account to exist before Contact (via account_id), and IB (Asset__c) to exist before Work Orders can reference it. FlitStack sequences the migration in dependency order: Accounts first, then Contacts, then Asset__c records from IB, then Service_History__c records from work orders, with Tasks as the activity layer. Counter Rules, SPM Methods, and PM Process definitions are exported as JSON reference files at this stage.
Run sample migration with field-level diff
A representative slice migrates first — typically 200–500 records across Accounts, Contacts, Assets, and Work Orders. FlitStack generates a field‑level diff that compares source values to destination fields, flagging truncated text, pick‑list mismatches, date‑format issues, and missing required values. The diff report is exported as a CSV so you can inspect each discrepancy and decide whether to adjust the mapping, update Freshsales pick‑list values, or correct source data before the full run. You review the diff, request any mapping tweaks, and approve the configuration before the production migration begins.
Full migration with 24–48 hour delta pickup window
The full record set migrates to Freshsales using API or CSV batch inserts depending on volume. A delta-pickup window opens at cutover and runs for 24–48 hours to capture any work orders modified in ServiceMax during the migration window. FlitStack captures every operation in an audit log. If reconciliation fails or field-level validation uncovers issues, one-click rollback reverts the Freshsales state to pre-migration. After rollback, your team can remediate and re-run.
Platform deep dives
ServiceMax
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 ServiceMax 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
ServiceMax: Salesforce API limits apply—reported ~5,000 API calls per org per 24-hour rolling window, with per-application limits within that.
Data volume sensitivity
ServiceMax 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 ServiceMax to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your ServiceMax 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 ServiceMax
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.