CRM migration
Field-level mapping, validation, and rollback between FieldFX and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
FieldFX
Source
Salesforce Sales Cloud
Destination
Compatibility
12 of 12
objects map 1:1 between FieldFX and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
48–72 hours
Overview
FieldFX is a Salesforce managed package (FieldFX Base Package by ServiceMax) that adds field-service objects — Ticket__c, WorkOrder__c, Job__c, Quote__c, and technician-specific custom fields — on top of standard Salesforce objects. When you migrate to Salesforce Sales Cloud, you are not leaving the platform; you are restructuring your data model to use standard Salesforce objects and custom fields instead of FieldFX managed-package objects. The migration extracts all records from FX__Ticket__c, FX__WorkOrder__c, FX__Job__c, and related line-item objects via the Salesforce REST API (respecting per-org API limits), transforms field names to match Salesforce __c conventions, maps FX status values to Salesforce Case/Opportunity status pick-lists, and loads into your destination Salesforce org using Bulk API. We preserve original create dates as custom datetime fields since Salesforce sets CreatedDate at load time. Activities tied to tickets (service calls, parts used, signature captures) migrate as Tasks and Notes linked to the target records. Status Workflows and scheduling rules — which are automation-layer configurations — do not migrate and must be rebuilt in Salesforce Flow. FX CPQ quotes require manual rebuild in Salesforce CPQ or standard Opportunity Products.
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 FieldFX 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.
FieldFX
FX__Ticket__c
Salesforce Sales Cloud
Case
1:1FieldFX Ticket maps directly to Salesforce Case. The FX__Ticket__c record number becomes the Case CaseNumber. Status values (New, In Progress, Resolved) map to Salesforce Case Status pick-list via value_mapping. Original FX status-entered timestamps are preserved as custom datetime fields on the Case.
FieldFX
FX__WorkOrder__c
Salesforce Sales Cloud
ServiceAppointment
1:1FX WorkOrder maps to Salesforce Field Service Management's ServiceAppointment object if FSM is enabled. Without FSM, WorkOrder data maps to a custom Work_Order__c object. Scheduled start/end times from FX map to ScheduledStart and ScheduledEnd on ServiceAppointment; FX__WorkOrder__c.Status maps to ServiceAppointment Status.
FieldFX
FX__Job__c
Salesforce Sales Cloud
Custom Object (Job__c)
1:1Job__c is a core FieldFX object with no direct Salesforce standard equivalent. Migrates as a custom object Job__c in the destination org. Parent Account lookup maps to the standard AccountId field. Job type and priority fields become custom pick-list fields on Job__c.
FieldFX
FX__Quote__c (FX CPQ)
Salesforce Sales Cloud
Opportunity + OpportunityLineItem
1:1FX CPQ quotes do not map to Salesforce CPQ directly — CPQ has its own product, pricing, and quote-object architecture. FX Quote__c line items map to OpportunityLineItems on the target Opportunity. Quote headers (terms, expiration, discount %) require manual rebuild in Salesforce CPQ or mapping to Opportunity fields.
FieldFX
FX__Timecard__c
Salesforce Sales Cloud
TimeSheet / TimeSheetEntry
1:1FieldFX Timecards map to Salesforce standard TimeSheet and TimeSheetEntry objects. Technician hours, work date, and billable/non-billable flags transfer directly. Timecard entries link to the Job__c or ServiceAppointment via lookup fields. The TimeSheet parent record is created per technician per work week, with individual TimeSheetEntry records for each shift or task logged during that period.
FieldFX
FX__Ticket__c Activities (calls, signature captures, parts used)
Salesforce Sales Cloud
Task / Note / Custom Activity Log
1:1Service activities logged against an FX Ticket (technician call notes, signature captures, parts consumed) migrate as Salesforce Tasks linked to the Case. Signature images stored as FX file attachments re-upload to Salesforce Files and link to the Case record. Each activity type retains its original timestamp and technician attribution for complete service history continuity in Salesforce.
FieldFX
FX__Customer_Self_Service__c portal records
Salesforce Sales Cloud
Case + Account Contact Relationship
1:1Customer Self-Service submissions (approval logs, job status views) have no Salesforce equivalent as a portal object. Submission history migrates as Case comments or a custom portal log object. Customer accounts and contacts use standard Account and Contact objects. The portal login history and approval chain records are preserved as related Case history entries or custom log records for audit trail continuity.
FieldFX
DataGuide Form Responses
Salesforce Sales Cloud
Custom Object (Form_Response__c)
1:1DataGuide form submissions (inspection checklists, safety forms tied to Job or Ticket) have no standard Salesforce equivalent. Form responses migrate as a custom Form_Response__c object with custom fields matching the form schema. Form versions require manual re-creation in Salesforce. The migrated response data includes all field values, completion timestamps, and the technician or customer who submitted each form.
FieldFX
FX__Technician__c (custom user object)
Salesforce Sales Cloud
ServiceResource + User
1:1FieldFX technicians are stored in a custom Technician__c object. Migration resolves each technician by email match to a Salesforce User record and creates a corresponding ServiceResource record for field service capacity planning. Unmatched technicians are flagged before migration. If Salesforce Field Service Management is enabled, ServiceResource records enable skill-based assignment and availability tracking for each technician.
FieldFX
FX__Asset_Link__c (equipment associations)
Salesforce Sales Cloud
Asset + Product2
1:1Equipment linked to Jobs or Tickets via FX__Asset_Link__c maps to Salesforce Asset linked to the Account and/or Product2. Asset serial numbers, install dates, and warranty information transfer directly. The Asset object in Salesforce maintains the full equipment history including maintenance records and customer assignments, providing a complete asset registry post-migration.
FieldFX
FX__Invoice__c and FX__Payment__c
Salesforce Sales Cloud
Order + Opportunity (billing)
1:1FX Invoicing module produces invoices and payment records. Salesforce Sales Cloud has no native invoicing — these become custom Invoice__c and Payment__c objects, or map to Salesforce Orders if Order Management is enabled. The financial data is preserved for reference but billing workflows require rebuild.
FieldFX
FX__Status_Workflow__c configuration
Salesforce Sales Cloud
Salesforce Flow
1:1Status Workflows define the sequence of statuses a Ticket or Work Order can follow. This is an automation configuration, not a data record. Workflow definitions do not migrate — FlitStack exports the workflow schemas as JSON reference documents for your Salesforce admin to rebuild in Flow.
| FieldFX | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| FX__Ticket__c | Case1:1 | Fully supported | |
| FX__WorkOrder__c | ServiceAppointment1:1 | Fully supported | |
| FX__Job__c | Custom Object (Job__c)1:1 | Fully supported | |
| FX__Quote__c (FX CPQ) | Opportunity + OpportunityLineItem1:1 | Fully supported | |
| FX__Timecard__c | TimeSheet / TimeSheetEntry1:1 | Fully supported | |
| FX__Ticket__c Activities (calls, signature captures, parts used) | Task / Note / Custom Activity Log1:1 | Fully supported | |
| FX__Customer_Self_Service__c portal records | Case + Account Contact Relationship1:1 | Fully supported | |
| DataGuide Form Responses | Custom Object (Form_Response__c)1:1 | Fully supported | |
| FX__Technician__c (custom user object) | ServiceResource + User1:1 | Fully supported | |
| FX__Asset_Link__c (equipment associations) | Asset + Product21:1 | Fully supported | |
| FX__Invoice__c and FX__Payment__c | Order + Opportunity (billing)1:1 | Fully supported | |
| FX__Status_Workflow__c configuration | Salesforce Flow1: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.
FieldFX gotchas
API rate limits vary by Salesforce edition and request type
Deprecated Attachments feature requires Files API migration
Workflow Rules retirement leaves automations without a migration path
Travel time calculations require appointment rescheduling post-migration
Custom field API name length causes browser errors on mobile
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 FX object schema and extract API field map
FlitStack connects to the source FieldFX org via the Salesforce REST API using OAuth credentials. We inventory all FX objects in use (FX__Ticket__c, FX__WorkOrder__c, FX__Job__c, FX__Timecard__c, FX__Quote__c, FX__Invoice__c, DataGuide forms) and export the full field list including custom fields with the FX__ prefix. We also capture FX Status Workflow schemas as JSON for the automation-rebuild reference package. The API extraction runs in batches respecting per-user and org-wide rate limits to avoid blocking active FieldFX users.
Build destination Salesforce schema and resolve owner lookups
Before data moves, the destination Salesforce org needs the target objects ready. FlitStack delivers a schema setup plan specifying which FX objects map to standard Salesforce objects (Case, ServiceAppointment, custom Job__c) versus staying as custom objects. Custom fields with __c suffixes are created on the destination objects. We resolve FX__Owner__c and FX__Technician__c lookups by email-matching against destination Salesforce Users and creating ServiceResource records where FSM is enabled. Unresolved owners are flagged with a fallback assignment plan before migration begins.
Migrate accounts and contacts first, then field service objects
Salesforce requires a specific load order due to foreign-key dependencies: Accounts must exist before Cases can reference them, Contacts before Cases can link to ContactId, and ServiceAppointments must link to parent Job or Ticket records that are already loaded. We sequence the migration as: (1) Accounts, (2) Contacts, (3) Job__c custom object records, (4) Cases (mapped from FX__Ticket__c), (5) ServiceAppointments (mapped from FX__WorkOrder__c), (6) TimeSheets, (7) Opportunity Products from FX quotes, (8) Invoice__c and Payment__c custom objects. Activities and file attachments load after their parent records.
Run sample migration with field-level diff and status mapping validation
A representative slice of 100–500 records migrates first — covering Tickets, Work Orders, Jobs, Timecards, and at least one quote. We generate a field-level diff comparing source FX field values against the destination Salesforce field values for each record, plus a status mapping report showing how each FX status value landed in the destination pick-list. You review the sample in the destination org before the full migration commits. Any incorrect mappings or missing pick-list values are corrected before proceeding.
Full migration with delta-pickup and audit log
The full record set migrates using Salesforce Bulk API in batches. A delta-pickup window (24–48 hours) captures any records created or modified in FieldFX during the cutover window — technicians and dispatchers can keep working in FX while the migration finalizes. FlitStack produces an audit log listing every record loaded, the source FX ID, the destination Salesforce ID, and any records that failed to load with error reasons. One-click rollback reverts all loaded records if reconciliation reveals unexpected data issues.
Platform deep dives
FieldFX
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 FieldFX and Salesforce Sales Cloud.
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
FieldFX: Org-wide 24-hour rolling REST API limit varies by Salesforce edition; per-user per-app per-hour Batch API limit; 25 requests per minute for FX Reports API.
Data volume sensitivity
FieldFX 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 FieldFX to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your FieldFX 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 FieldFX
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.