CRM migration

Migrate from Salesforce Field Service to Salesforce Sales Cloud

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 logo

Salesforce Field Service

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

100%

14 of 14

objects map 1:1 between Salesforce Field Service and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

72–96 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Salesforce Field Service logo

Salesforce Field Service

What's pushing teams away

  • Pricing model accumulates hidden costs—storage overages at $125/GB, API throttling during high-volume periods, and $2 per Agentforce conversation add up beyond the base seat license.
  • Complexity of inherited implementations makes configuration tangles difficult to unwind, and lack of clear documentation makes it hard for new teams to understand what the system is actually doing.
  • Scheduling limits create friction at scale—250 records per Enhanced Scheduling optimization batch is insufficient for large service operations without additional tooling.
  • Integration depth becomes a dependency trap—organizations deeply embedded in Salesforce Field Service find switching costs prohibitively high even when frustrated with cost or complexity.

Choosing

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Salesforce Field Service objects map to Salesforce Sales Cloud

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

maps to

Salesforce Sales Cloud

Service_History__c (custom object)

1:1
Fully supported

Salesforce 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

maps to

Salesforce Sales Cloud

Service_Line_Item__c (custom object)

1:1
Fully supported

Each 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

maps to

Salesforce Sales Cloud

Task / Event

1:1
Fully supported

Service 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

maps to

Salesforce Sales Cloud

Technician_Certification__c (custom object)

1:1
Fully supported

Salesforce 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

maps to

Salesforce Sales Cloud

Job_Certification__c (custom field on Service_History__c)

1:1
Fully supported

SkillRequirements 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

maps to

Salesforce Sales Cloud

Operating_Hours__c (custom object)

1:1
Fully supported

Operating 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

maps to

Salesforce Sales Cloud

Service_Territory__c (custom object)

1:1
Fully supported

ServiceTerritory 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

maps to

Salesforce Sales Cloud

Work_Type__c (custom pick-list on Service_History__c)

1:1
Fully supported

WorkType 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

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

Account 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

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

Contact 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)

maps to

Salesforce Sales Cloud

User

1:1
Fully supported

Salesforce 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

maps to

Salesforce Sales Cloud

Asset

1:1
Fully supported

Assets (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

maps to

Salesforce Sales Cloud

Entitlement (standard Salesforce object)

1:1
Fully supported

Entitlement 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.)

maps to

Salesforce Sales Cloud

Not migrated

1:1
Fully supported

Field 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.

Gotchas + challenges

What specifically takes care here

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 logo

Salesforce Field Service gotchas

High

250-record batch limit for Enhanced Scheduling optimization

High

Process Builder workflows do not migrate—must be rebuilt in Flow Builder

High

API rate limits vary by edition and are easy to exhaust during bulk migration

Medium

Storage overages at $125/GB inflate migration data costs

Medium

Custom fields and lookups require explicit field-level mapping

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • Work Order objects have no native Sales Cloud equivalent and require custom object architecture before data lands

    Salesforce Field Service Work Orders and Work Order Line Items are stored in FSL-managed package objects that do not exist in a standard Sales Cloud org. Migrating without pre-created custom objects causes foreign-key failures at load time. We deliver a custom object schema (Service_History__c and Service_Line_Item__c) with all required custom fields before the first data wave runs. Your Salesforce admin must deploy this schema to the target org first — we provide the field-level specification as part of the pre-migration package so deployment is a single change set or deployment tool run.

  • Service Territory and Scheduling Policy objects are FSL-specific with no Salesforce standard equivalent

    ServiceTerritory and SchedulingPolicy records drive the FSL optimization engine but have no counterpart in Sales Cloud. Sales Cloud has no scheduling policy, no travel-time calculation, and no technician-to-job matching logic. We export these records as structured reference data (JSON export of ServiceTerritory and SchedulingPolicy objects) so your implementation team can rebuild territory boundaries in Salesforce Maps or re-implement skill-matching rules in Flow. The migration does not auto-recreate scheduling logic — that step requires manual configuration in the destination org after data lands.

  • FSL mobile app configuration, Gantt settings, and optimization data do not transfer across clouds

    The Salesforce Field Service Mobile app configuration (branding, form layouts, mobile Flows) lives in the FSL managed package and cannot be extracted via API in a format compatible with the standard Salesforce mobile app. Gantt palette settings, Map Polygon records, optimization request history, and SLR cache are FSL internal objects — we export them as JSON reference files for audit purposes but they cannot be loaded into Sales Cloud. Your admin will need to rebuild any Gantt customization and map overlays manually in the destination org.

  • Technician and dispatcher user records are not migrated — owner resolution requires email-match planning

    Salesforce user records cannot be migrated between orgs. In Field Service, Work Orders and Service Appointments have OwnerId fields pointing to the technician or dispatcher who owns the record. In the destination org, these OwnerId values must resolve to existing User IDs. We match by email address — if a technician email in Field Service has no corresponding user in the Sales Cloud org, their records are assigned to a designated fallback user and flagged in the migration audit log. Your team must ensure all active technicians have Salesforce user accounts in the destination org before the migration runs.

  • Delta-pickup window scope is limited by the read-access model of Field Service objects via API

    FlitStack AI uses scoped read access on the source Field Service org during the delta-pickup window. If your Field Service org uses OAuth token scopes that limit read access to specific objects (e.g., ServiceAppointment not included in the token scope), records created or modified during cutover on those objects will not be captured in the delta run. We request full read access scope on all FSL-managed package objects during the OAuth connection setup. If your org's security policy restricts API access to specific objects, flag those objects before migration kickoff so we can scope the delta window accordingly.

Migration approach

Six steps for a successful Salesforce Field Service to Salesforce Sales Cloud data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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).

  6. 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

Context on both ends of the pair

Salesforce Field Service logo

Salesforce Field Service

Source

Strengths

  • Real-time technician location tracking and dispatch console with Gantt visualization for multi-technician schedule management.
  • Skill-based routing matches technician certifications to Work Order requirements automatically during scheduling optimization.
  • Deep integration with standard Salesforce CRM objects preserves context across field service, sales, and customer service teams.
  • Mobile app with offline capability lets field technicians update status, log parts, and capture signatures in low-connectivity environments.

Weaknesses

  • Per-seat licensing plus storage overages, API throttling charges, and Agentforce conversation fees create a total cost that significantly exceeds the base license price.
  • Inherited implementations with years of customizations, Process Builder flows, and AppExchange add-ons create tangled configurations that are difficult to migrate or audit.
  • API rate limits vary by edition and require careful monitoring—large data migrations can exhaust daily limits or concurrent call budgets mid-transfer.
  • Limited native export tooling means migrations typically require third-party tools, Data Loader configuration, or managed services partners to extract complete data.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Salesforce Field Service and Salesforce Sales Cloud.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    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

    A

    Salesforce Field Service exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Salesforce Field Service to Salesforce Sales Cloud migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Salesforce Field Service to Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during Salesforce Field Service to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most Field Service to Sales Cloud migrations complete in 72–96 hours of clock time for under 100,000 total records. The pre-migration schema deployment and user-resolution step adds 1–3 days of planning time before data moves. Organizations with over 500,000 Work Order Line Item records or complex multi-level asset hierarchies extend to 7–14 days. The delta-pickup window (24–48 hours) adds minimal elapsed time but must be coordinated with your cutover schedule to capture final in-flight service appointments.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Salesforce Field Service.
Land in Salesforce Sales Cloud, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day