CRM migration
Field-level mapping, validation, and rollback between Salesforce Field Service and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Salesforce Field Service
Source
Salesforce Sales Cloud
Destination
Compatibility
14 of 14
objects map 1:1 between Salesforce Field Service and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
72–96 hours
Overview
Salesforce Field Service stores a specialized data model built around field operations: Work Orders, Service Appointments, Work Order Line Items, Skills, Service Territories, and Scheduling Policies. Salesforce Sales Cloud has no native equivalents for most of these objects. We map the core account-contact-opportunity graph directly, then translate Field Service-specific records into custom Salesforce objects with lookup relationships back to Accounts and Contacts. Historical service appointment data (completed visits with original timestamps and assigned technicians) migrates as Salesforce Tasks or Events linked to the relevant Contact or Account record. Skill certifications and operating hours become custom fields on a Service Profile custom object. Scheduling policies and optimization data have no Sales Cloud equivalent — we export them as structured JSON so your implementation team can rebuild logic in Flow if needed. The migration uses Salesforce REST API for record-by-record writes and Bulk API 2.0 for high-volume Work Order Line Item batches, with field-level validation against your target org's custom object schema before each wave commits.
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 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.
Salesforce Field Service
WorkOrder
Salesforce Sales Cloud
Service_History__c (custom object)
1:1Salesforce Field Service Work Orders carry job status, priority, service territory, work type, and scheduled dates. Sales Cloud has no native Work Order object. We create a custom object with lookup to Account and, optionally, to the related Opportunity. The original Work Order number migrates as Service_History__c.Work_Order_Number__c for traceability. Active Work Orders can optionally link to Salesforce Cases if your team uses Case escalation.
Salesforce Field Service
WorkOrderLineItem
Salesforce Sales Cloud
Service_Line_Item__c (custom object)
1:1Each Work Order Line Item represents a line on a service ticket: labor type, parts used, quantity, and unit price. We map these to a child custom object of Service_History__c. Parent Work Order resolved by WorkOrderNumber__c lookup. Line item sequence preserved in Line_Sequence__c. Parts migrated as text description plus custom price fields — Salesforce native Products and Pricebooks can be linked if your org uses them.
Salesforce Field Service
ServiceAppointment
Salesforce Sales Cloud
Task / Event
1:1Service Appointments capture the scheduled and completed visit: assigned technician, arrival window, actual start/end times, and completion status. Completed appointments migrate as Salesforce Events with the original start/end timestamps preserved in custom datetime fields. Cancelled or no-show appointments migrate as Tasks with Type='Field Visit' and status='Not Started'. Parent ServiceAppointmentId stored for delta-run de-duplication.
Salesforce Field Service
Skill
Salesforce Sales Cloud
Technician_Certification__c (custom object)
1:1Salesforce Field Service Skill records define a technician's ability (e.g., HVAC Level 2, Electrical License). Sales Cloud has no Skill object. We create a custom object linked to the Contact or User record representing the technician. Skill name maps to Certification_Name__c, proficiency level to Proficiency__c, and expiration date to Expiration_Date__c. Active skills on the source are flagged; expired certifications migrate with an Is_Expired__c checkbox set to true.
Salesforce Field Service
SkillRequirement
Salesforce Sales Cloud
Job_Certification__c (custom field on Service_History__c)
1:1SkillRequirements define which skills a Work Order job requires (e.g., must be assigned to a technician with 'High Voltage' skill). We store these as a multi-select pick-list on the Service_History__c custom object or as a junction object between Service_History__c and Technician_Certification__c depending on your preferred lookup approach. Each required skill label maps to a matching Certification_Name__c value in the destination.
Salesforce Field Service
OperatingHours
Salesforce Sales Cloud
Operating_Hours__c (custom object)
1:1Operating Hours define business hours for a service territory or work type. Sales Cloud has no native OperatingHours object outside of Field Service. We map these to a custom object with TimeZone__c, Day_of_Week__c, Start_Time__c, and End_Time__c fields. Link to Service Territory by name lookup. These records are reference data — used to populate custom fields on Work Orders rather than driving a scheduling engine in Sales Cloud.
Salesforce Field Service
ServiceTerritory
Salesforce Sales Cloud
Service_Territory__c (custom object)
1:1ServiceTerritory records define geographic zones for technician assignments and travel-time calculations. Sales Cloud has no equivalent. We create a custom object with Territory_Name__c, City__c, State__c, and Postal_Code__c fields. The parent OperatingHours linked by name. Address stored as a text field for reference. If your org uses Salesforce Maps, the territory boundary polygon is exported as GeoJSON and stored in a Long Text Area field — your admin can rebuild the shape in Maps Territory Management after migration.
Salesforce Field Service
WorkType
Salesforce Sales Cloud
Work_Type__c (custom pick-list on Service_History__c)
1:1WorkType defines the job category (e.g., Repair, Maintenance, Installation) and estimated duration per line item. Sales Cloud has no WorkType object. We create a custom pick-list field on Service_History__c with all WorkType label values migrated as pick-list options. Estimated duration maps to Estimated_Duration_Minutes__c. If your WorkType definitions include技能skill requirements, those route to the Job_Certification__c field per the SkillRequirement mapping.
Salesforce Field Service
Account
Salesforce Sales Cloud
Account
1:1Account records migrate directly 1:1 to Account. All standard fields (Name, AccountNumber, Industry, Type, BillingAddress, Phone) map by name. Multi-address support: Field Service may store multiple service locations per Account; we link secondary addresses as Account Address records or as custom address fields depending on your target org's configuration. Parent Account hierarchy maps via ParentId.
Salesforce Field Service
Contact
Salesforce Sales Cloud
Contact
1:1Contact records migrate directly to Contact. All standard fields map by name: FirstName, LastName, Email, Phone, MobilePhone, Title, Department. Contact ownership resolved by email match against destination Salesforce users. Contacts without a matching user flagged before migration; assigned to a designated fallback owner. Field Service-specific roles (Primary Technician, Customer Contact) preserved as a Contact_Role__c custom pick-list.
Salesforce Field Service
User (Technician / Dispatcher)
Salesforce Sales Cloud
User
1:1Salesforce users are not migrated — the destination org already has its own user base. We resolve the mapping between source FSL User IDs and destination User IDs by email address match. Source User records are stored as reference data in a migration audit table so you can trace which destination user each Work Order is assigned to. Unmatched users flagged with a User_Map_Status__c field in the audit log.
Salesforce Field Service
Asset
Salesforce Sales Cloud
Asset
1:1Assets (installed products tracked for service contracts) migrate 1:1 to Asset. Standard fields: Name, AccountId, ContactId, Product2Id, SerialNumber, Status, InstallDate, PurchaseDate. Asset Relationships for parent-child asset hierarchies map via ParentAssetId. Field Service Work Orders often link to Assets as the service target — the Service_History__c custom object carries an Asset_Lookup__c field linking back to the migrated Asset.
Salesforce Field Service
Entitlement
Salesforce Sales Cloud
Entitlement (standard Salesforce object)
1:1Entitlement records (service contract terms, SLAs, covered assets) migrate to the standard Entitlement object if your Sales Cloud org has Service Cloud licensed. Milestones and entitlement process steps are preserved as-is. If your destination org lacks Service Cloud licensing, entitlements are exported as custom fields on Service_History__c and linked to the covered Asset by name lookup.
Salesforce Field Service
FSL Custom Objects (Gantt Palette, Map Polygon, etc.)
Salesforce Sales Cloud
Not migrated
1:1Field Service managed package objects like Gantt_Palette__c, Map_Polygon__c, Optimization_Request__c, and SLR_Cache__c are internal FSL scheduling engine artifacts with no Sales Cloud equivalent. These records are exported as JSON reference files for documentation purposes only. Scheduling logic and territory geometry must be rebuilt manually in Salesforce Maps or Flow if required in the destination org.
| Salesforce Field Service | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| WorkOrder | Service_History__c (custom object)1:1 | Fully supported | |
| WorkOrderLineItem | Service_Line_Item__c (custom object)1:1 | Fully supported | |
| ServiceAppointment | Task / Event1:1 | Fully supported | |
| Skill | Technician_Certification__c (custom object)1:1 | Fully supported | |
| SkillRequirement | Job_Certification__c (custom field on Service_History__c)1:1 | Fully supported | |
| OperatingHours | Operating_Hours__c (custom object)1:1 | Fully supported | |
| ServiceTerritory | Service_Territory__c (custom object)1:1 | Fully supported | |
| WorkType | Work_Type__c (custom pick-list on Service_History__c)1:1 | Fully supported | |
| Account | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| User (Technician / Dispatcher) | User1:1 | Fully supported | |
| Asset | Asset1:1 | Fully supported | |
| Entitlement | Entitlement (standard Salesforce object)1:1 | Fully supported | |
| FSL Custom Objects (Gantt Palette, Map Polygon, etc.) | Not migrated1: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
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
Audit source Field Service schema and enumerate all FSL-managed package objects in use
We connect to your source Field Service org via OAuth and run a schema discovery scan across all objects in the FSL managed package namespace. The scan identifies every WorkOrder, WorkOrderLineItem, ServiceAppointment, Skill, SkillRequirement, ServiceTerritory, OperatingHours, WorkType, Asset, and Entitlement record — plus any custom FSL objects your team has created. We produce a Data Inventory Report listing record counts per object, field-level null rates, and cross-object relationship cardinalities (e.g., average Line Items per Work Order, average Appointments per Work Order). This report drives the migration plan and identifies objects with no destination equivalent that require custom object creation.
Deploy Service_History__c and Service_Line_Item__c custom object schema to destination org
Based on the Data Inventory Report, we generate the metadata package for all custom objects and fields needed in Sales Cloud: Service_History__c (parent Work Order record), Service_Line_Item__c (child line items), Technician_Certification__c (skill records), Service_Territory__c, Operating_Hours__c, and all custom fields. We deliver this as a deployment package (change set XML or SFDX source format) with field-level documentation. Your Salesforce admin deploys the schema to the target org — we validate that all fields are visible and accessible to the migration user before proceeding. Custom pick-list values are seeded from source pick-list options automatically.
Build user and account resolution tables; validate ownership and parent-account relationships before migration
We export all source User emails and WorkOrder OwnerId values and cross-reference them against the destination Salesforce user list by email. Unmatched users are flagged in a Pre-Migration Resolution Report. Accounts are scanned for parent-child hierarchies; circular references and orphaned contacts are surfaced before any data moves. This step ensures that every Work Order has a resolvable AccountId and OwnerId in the destination before the first record commits — eliminating the most common cause of failed foreign-key loads in Salesforce-to-Salesforce migrations.
Run sample migration wave on 200–500 records spanning Work Orders, Line Items, Service Appointments, and Contacts
A representative slice migrates first: the 200 most recently modified Work Orders with all their Line Items, plus 500 Contacts and 100 Assets. We generate a field-level diff comparing source field values to destination field values across all mapped columns. You review the diff in our migration console — verifying that Work Order status mapping is correct, that Line Item quantities transferred accurately, and that completed Service Appointments appear as Events with the right timestamps. No records commit permanently until you approve the sample. This step is the quality gate before the full migration wave.
Execute full migration with Bulk API 2.0 for high-volume objects and REST API for complex parent-child batches
The full migration runs in sequenced waves ordered by dependency: Accounts and Assets first (no foreign-key dependencies), then Contacts, then Service_History__c (Work Orders), then Service_Line_Item__c (Line Items linked to parent Work Orders), then Events (Service Appointments). Bulk API 2.0 handles WorkOrderLineItem batches above 10,000 records for throughput; REST API handles parent-child batches where relationship integrity requires record-by-record ordering. Each wave is reconciled against source record counts before the next wave starts. The delta-pickup window opens after the final wave commits and captures any records modified in Field Service during the cutover period (typically 24–48 hours).
Deliver reconciliation report, audit log, and JSON reference export of FSL scheduling artifacts
Post-migration, we generate a full reconciliation report: source record count versus destination record count per object, a list of any records that failed to load with error reasons, and a field-coverage summary showing the percentage of non-null values per field in the destination. The audit log captures every insert, update, and skip operation with timestamps and operator ID. We also deliver the JSON export of FSL scheduling artifacts (ServiceTerritory, SchedulingPolicy, OperatingHours, Skill records) as a structured reference file your implementation team can use to rebuild territory geometry and skill-matching logic in Salesforce Maps or Flow.
Platform deep dives
Salesforce Field Service
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Salesforce Sales Cloud.
Object compatibility
1 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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Salesforce Field Service 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 Salesforce Field Service
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.