CRM migration
Field-level mapping, validation, and rollback between Salesforce Field Service and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Salesforce Field Service
Source
Freshsales
Destination
Compatibility
15 of 15
objects map 1:1 between Salesforce Field Service and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
Salesforce Field Service organizes field operations around Work Order, Service Appointment, Work Order Line Item, Skill, Service Territory, and Asset objects with Salesforce's standard CRM objects (Account, Contact, Opportunity) providing the customer and account context. The platform uses Flow Builder for scheduling optimization and assignment rules for technician dispatch. Freshsales models field service data using its core Lead, Contact, Account, and Opportunity objects plus a custom Work_Order__c module that supports custom fields, lookups, and filterable views. No native scheduling optimization, skill-based routing, or Gantt dispatch console exists in Freshsales — those workflows must be rebuilt manually post-migration. FlitStack AI maps Salesforce Work Orders to Freshsales custom Work_Order__c records with custom fields for priority, billing type, and service category. Service Appointments map to Freshsales Tasks with original start and end timestamps. Assets and Entitlements migrate as custom objects. Owner resolution matches Salesforce users to Freshsales users by email. A delta-pickup window (24–48 hours) captures any records modified during the cutover. Sample migration with field-level diff runs before the full commit so you can verify custom field mapping and lookup resolution before data lands in Freshsales.
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 Salesforce Field Service 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.
Salesforce Field Service
Account
Freshsales
Account
1:1Direct 1:1 map. Salesforce Accounts migrate to Freshsales Accounts with name, industry, website, and billing address preserved. Parent-child account hierarchies transfer via Freshsales parent_account_id lookup. Multi-address accounts use the primary billing address as the default. During migration, we preserve any custom account types and territory associations as custom fields to maintain reporting continuity after go‑live.
Salesforce Field Service
Contact
Freshsales
Contact
1:1Direct map. Salesforce Contacts move to Freshsales Contacts with all standard fields. Owner resolution matches Contact owner email against Freshsales user email — unmatched owners flagged for fallback assignment before migration commits. Custom contact roles, such as primary technician or site manager, are stored in a custom picklist field to replicate Salesforce contact‑type behavior.
Salesforce Field Service
Lead
Freshsales
Lead
1:1Direct map. Salesforce Leads (for prospects not yet assigned to field technicians) migrate to Freshsales Leads. Lead status pick-list values are mapped value-by-value to Freshsales lead_status field options. Any custom lead sources or industry‑specific classifications are transferred as custom picklist fields to preserve segmentation logic after migration.
Salesforce Field Service
Opportunity
Freshsales
Deal
1:1Salesforce Opportunities map to Freshsales Deals. Pipeline stage names are mapped value-by-value to Freshsales deal stage options. Close date, amount, probability, and owner transfer directly. Record type context from Salesforce requires pre-mapping if multiple sales processes exist. Opportunity products and line items are represented as custom deal fields or related custom objects, ensuring that complex pricing structures are not lost during the transition.
Salesforce Field Service
Work Order
Freshsales
Work_Order__c (custom object)
1:1Salesforce Work Order has no native Freshsales equivalent. We create a custom Work_Order__c object in Freshsales with custom fields for Subject, Description, Status, Priority, Service Type, Billing Type, Scheduled Start, Scheduled End, and Work Order Number. The Salesforce Work Order ID is preserved as Source_System_ID__c for delta-run de-duplication.
Salesforce Field Service
Work Order Line Item
Freshsales
Work_Order_Line_Item__c (custom object)
1:1Work Order Line Items map to a custom Work_Order_Line_Item__c object with a lookup relationship to Work_Order__c. Each line item carries its own description, quantity, unit price, and line item type from the source. Line item sequence and sort order are preserved as custom number fields.
Salesforce Field Service
Service Appointment
Freshsales
Task
1:1Service Appointments carry scheduling data (earliest start, due date, travel time, actual duration) that does not fit cleanly into Freshsales Tasks. We map Subject, Status, Scheduled Start/End, and actual start/end timestamps to Freshsales Tasks. Scheduling optimization data (Gantt position, travel estimates) is written to custom fields since no native equivalent exists.
Salesforce Field Service
Skill
Freshsales
Skill__c (custom object)
1:1Salesforce Skill objects define technician certifications and competency levels. We create a custom Skill__c object in Freshsales and link it to Contact records via a many-to-many junction object (Contact_Skill__c) to preserve the proficiency rating and certification expiry date from the source.
Salesforce Field Service
Skill Requirement
Freshsales
Skill_Requirement__c (custom object)
1:1Skill Requirements on Work Orders specify required skills for a job. These map to a custom Skill_Requirement__c object with a lookup to both Work_Order__c and Skill__c. Skill level required and whether it is mandatory or preferred transfers as custom pick-list and checkbox fields.
Salesforce Field Service
Service Territory
Freshsales
Service_Territory__c (custom object)
1:1Salesforce Service Territory defines geographic dispatch zones with operating hours. We create a custom Service_Territory__c object and store the operating hours as a custom JSON or multi-line text field since Freshsales does not have a native scheduling calendar object. Territory members (technicians assigned to the territory) link via a junction object.
Salesforce Field Service
Asset
Freshsales
Asset__c (custom object)
1:1Salesforce Assets track customer equipment under service contracts. We map them to a custom Asset__c object with fields for Name, Product, Serial Number, Status, Install Date, and Account lookup. Asset Relationships (replacements and upgrades) migrate as separate custom records with a parent-child lookup.
Salesforce Field Service
Entitlement
Freshsales
Entitlement__c (custom object)
1:1Entitlements define service contract terms and SLA levels. We create a custom Entitlement__c object linked to both Account and Asset, storing Service Contract name, start/end dates, and SLA terms as custom fields. Contract Line Items from Salesforce map to a related custom object for line-level billing terms.
Salesforce Field Service
Task / Event (standard CRM)
Freshsales
Task / Event
1:1Standard Salesforce Tasks and Events (not Service Appointments) map directly to Freshsales Tasks and Events with subject, status, due date, and owner preserved. Recurring task patterns are not carried — those must be rebuilt in Freshsales. If your organization uses custom task types or priority flags, we store these as custom fields on the Freshsales Task object to retain classification after migration.
Salesforce Field Service
Attachment / Salesforce Files
Freshsales
Freshsales File Attachments
1:1Salesforce Files and Attachments on Work Orders, Accounts, and Contacts are downloaded and re-uploaded to Freshsales as file attachments linked to the corresponding migrated records. File size limits of Freshsales per plan apply. During the upload process, we preserve original file metadata such as created date and author, and we flag any files that exceed the target plan's size cap for manual handling.
Salesforce Field Service
Flow Builder / Assignment Rules
Freshsales
No equivalent
1:1Salesforce Flow Builder automations and Assignment Rules govern technician dispatch and routing logic. These have no Freshsales equivalent and must be rebuilt manually using Freshsales workflow rules or an external scheduling tool. We export Flow definitions as JSON for the rebuild reference.
| Salesforce Field Service | Freshsales | Compatibility | |
|---|---|---|---|
| Account | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Work Order | Work_Order__c (custom object)1:1 | Fully supported | |
| Work Order Line Item | Work_Order_Line_Item__c (custom object)1:1 | Fully supported | |
| Service Appointment | Task1:1 | Fully supported | |
| Skill | Skill__c (custom object)1:1 | Fully supported | |
| Skill Requirement | Skill_Requirement__c (custom object)1:1 | Fully supported | |
| Service Territory | Service_Territory__c (custom object)1:1 | Fully supported | |
| Asset | Asset__c (custom object)1:1 | Fully supported | |
| Entitlement | Entitlement__c (custom object)1:1 | Fully supported | |
| Task / Event (standard CRM) | Task / Event1:1 | Fully supported | |
| Attachment / Salesforce Files | Freshsales File Attachments1:1 | Fully supported | |
| Flow Builder / Assignment Rules | 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.
Salesforce Field Service gotchas
250-record batch limit for Enhanced Scheduling optimization
Process Builder workflows do not migrate—must be rebuilt in Flow Builder
API rate limits vary by edition and are easy to exhaust during bulk migration
Storage overages at $125/GB inflate migration data costs
Custom fields and lookups require explicit field-level mapping
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 source FSL schema and plan Freshsales custom object structure
FlitStack exports a full schema manifest from Salesforce Field Service covering Work Order, Work Order Line Item, Service Appointment, Skill, Skill Requirement, Service Territory, Asset, and Entitlement objects — including all custom fields, pick-list values, and lookup relationships. We cross-reference this against Freshsales plan-tier custom field limits and generate a schema setup plan specifying which custom objects to create, their fields, and which pick-lists need value-mapping tables. Your Freshsales admin creates the schema before data migration begins.
Resolve owners and user mappings by email
Salesforce Field Service technicians, dispatchers, and account owners are matched against Freshsales users by email address. Unresolved owners (email addresses not present in Freshsales) are flagged before migration — your team either creates the Freshsales user accounts first or assigns records to a fallback owner. No Work Order or Service Appointment lands in Freshsales without a valid owner assignment. This owner resolution step ensures that audit trails and reporting remain consistent after migration.
Migrate core CRM objects before field service objects
Salesforce requires Accounts before Contacts (via account_id lookups) and Contacts before Work Orders (via asset and service territory lookups). We sequence the migration: Accounts and Contacts first, then Leads and Deals, then Work Orders and Service Appointments, then Assets and Entitlements. This ensures foreign key resolution across the data model and prevents orphaned Work Order records in Freshsales. The sequence also accounts for dependency chains such as Work Order Line Items needing their parent Work Orders present, and Service Appointments requiring both the linked Work Order and assigned technician to be loaded first.
Run a sample migration with field-level diff on Work Orders and Service Appointments
A representative slice of 100–300 records — covering at least one Work Order with line items, a Service Appointment, a Skill Requirement, and an Asset — migrates to Freshsales first. FlitStack generates a field-level diff showing the source Salesforce value, the mapped Freshsales value, and any fields dropped due to plan-tier limits or value-mapping gaps. You review the diff, approve the mapping, and request adjustments before the full migration run commits.
Execute full migration with delta-pickup window and audit log
Full data migration runs against Freshsales API with batch throttling to respect rate limits. During the cutover window (typically 24–48 hours), your team continues creating and modifying Work Orders in Salesforce Field Service. FlitStack runs a delta pickup at the end of the window to capture in-flight records and changes. Every operation is logged in an audit trail, and one-click rollback to the pre-migration snapshot is available if reconciliation identifies data integrity issues.
Platform deep dives
Salesforce Field Service
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 Salesforce Field Service 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
Salesforce Field Service: Per-org daily API limit starts at 100,000 requests / 24 hours for Enterprise Edition and scales with licenses purchased. Additional API calls can be purchased in 200-10,000 increments. Bulk API and Bulk API 2.0 share an allocation of 15,000 batch submissions per 24 hours. HTTP 429 returned when rate-limited..
Data volume sensitivity
Salesforce Field Service exposes a bulk API — large-volume migrations stream efficiently.
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 Salesforce Field Service to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Salesforce Field Service 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 Salesforce Field Service
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.