CRM migration

Migrate from Salesforce Field Service to HubSpot

Field-level mapping, validation, and rollback between Salesforce Field Service and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.

Salesforce Field Service logo

Salesforce Field Service

Source

HubSpot

Destination

HubSpot logo

Compatibility

92%

11 of 12

objects map 1:1 between Salesforce Field Service and HubSpot.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Salesforce Field Service organizes field operations around WorkOrder, ServiceAppointment, Resource, ServiceTerritory, and Asset objects, with scheduling optimization tied to operating hours and skill-based matching. HubSpot's CRM model centers on Contact, Company, Deal, and Ticket — none of which have a native WorkOrder equivalent. FlitStack AI migrates every standard Salesforce object (Account, Contact, Asset, Product) plus FSL-specific records (WorkOrder, ServiceAppointment, Resource) by mapping them into HubSpot custom objects and custom fields. Status, priority, location coordinates, and skill tags become custom properties on Deals. Original create dates and owner assignments are preserved. Scheduling optimization logic, service territory hierarchies, and operating hours do not migrate — those must be rebuilt using HubSpot's calendar and routing tools. FlitStack sequences the export from Salesforce via REST or Bulk API, transforms records into HubSpot's property schema, creates any missing custom objects before import, and runs a field-level diff on a sample set before committing the full migration.

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

HubSpot logo

HubSpot

What's pulling them in

  • Lowest barrier to entry of any major CRM — the free tier with unlimited contacts lets teams validate fit before committing to a paid plan, according to G2 and Capterra reviewers.
  • Native integration between the CRM and sales engagement tools (sequences, email tracking, dialer) means no separate sync configuration, a theme across G2 Sales Hub reviews.
  • Pipeline visualization, deal tracking, and automated workflows are consistently praised as intuitive and easy to set up without developer involvement.
  • Strong onboarding for new team members — reviewers on Capterra and G2 highlight how quickly new reps become productive without formal training.
  • The HubSpot platform ecosystem (Marketing, Sales, Service, CMS hubs) allows growing companies to consolidate tools without building new integrations.

Object mapping

How Salesforce Field Service objects map to HubSpot

Each row shows how a Salesforce Field Service object lands in HubSpot, 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

maps to

HubSpot

Company

1:1
Fully supported

Direct map. Salesforce Account maps to HubSpot Company. Account address, industry, employee count, annual revenue, and parent hierarchy all transfer as standard Company properties. Parent Account relationships map via HubSpot's parent company association feature, with the parent Account requiring migration before the child to ensure proper linkage. This preserves the organizational hierarchy established in your Salesforce instance.

Salesforce Field Service

Contact

maps to

HubSpot

Contact

1:1
Fully supported

Direct map. Salesforce Contact maps to HubSpot Contact with all standard fields transferred including name, email, phone, title, and address. Owner resolution matches Salesforce OwnerId email to a corresponding HubSpot user before record insertion. Any unmatched owners are flagged for admin review and manual assignment in HubSpot after migration completes.

Salesforce Field Service

Asset

maps to

HubSpot

Custom Object (FSL_Asset)

1:1
Fully supported

HubSpot has no native Asset object. FlitStack creates an FSL_Asset custom object in HubSpot with fields mirroring the Salesforce Asset schema including serial number, install date, status, product reference, and linked Account/Contact lookups stored as ID properties. This custom object preserves your complete asset registry and enables linking assets to service records in HubSpot.

Salesforce Field Service

WorkOrder

maps to

HubSpot

Deal + Custom Object (FSL_Work_Order)

many:1
Fully supported

WorkOrder does not map to a single HubSpot object. Core fields (name, amount, close date, owner) land as a HubSpot Deal. FSL-specific fields (status, priority, latitude, longitude, service type) become custom properties on a FSL_Work_Order custom object linked to the Deal.

Salesforce Field Service

ServiceAppointment

maps to

HubSpot

Custom Object (FSL_Service_Appointment)

1:1
Fully supported

ServiceAppointment has no HubSpot equivalent, so FlitStack creates an FSL_Service_Appointment custom object containing subject, description, scheduled start and end times, arrival window, status, and linked WorkOrder ID as properties. Appointment notes transfer as HubSpot engagement notes attached to the parent WorkOrder Deal record.

Salesforce Field Service

ServiceTerritory

maps to

HubSpot

HubSpot Team or custom property set

1:1
Fully supported

ServiceTerritory governs geographic coverage and which technicians serve which areas. HubSpot has no territory object. FlitStack exports the territory name and boundary data as a custom text property on each affected Deal so admins can rebuild territory logic in HubSpot Teams.

Salesforce Field Service

ResourceAbsence

maps to

HubSpot

Custom Object (FSL_Absence)

1:1
Fully supported

Technician time-off records stored in ResourceAbsence have no direct HubSpot equivalent. FlitStack maps absence dates, resource reference, and absence type to a FSL_Absence custom object that can be referenced when rebuilding the scheduling calendar in HubSpot, preserving technician availability data for operations planning.

Salesforce Field Service

Product2

maps to

HubSpot

Product

1:1
Fully supported

Salesforce Product2 maps directly to HubSpot Product. Product name, code, family, description, and standard cost transfer as HubSpot Product properties. Pricing information requires separate mapping to HubSpot line-item pricing models, with pricing rules needing to be re-established in HubSpot's e-commerce or sales tooling.

Salesforce Field Service

WorkOrderLineItem

maps to

HubSpot

Custom Object (FSL_Line_Item)

1:1
Fully supported

WorkOrderLineItem details which product or service was performed on a work order. HubSpot Deals have line items natively, but FSL line items include service-type fields (quantity, work type, duration) that need a FSL_Line_Item custom object linked to the parent WorkOrder Deal.

Salesforce Field Service

ContentDocument / ContentDocumentLink

maps to

HubSpot

HubSpot File

1:1
Fully supported

Files attached to WorkOrder, ServiceAppointment, or Asset via Salesforce ContentDocumentLink are downloaded by FlitStack and re-uploaded to HubSpot Files. Each file is associated to its corresponding migrated record (Deal or custom FSL object) using HubSpot's file association API, with original file names and upload timestamps preserved.

Salesforce Field Service

User (technician / dispatcher)

maps to

HubSpot

Contact + Custom Property

1:1
Fully supported

FSL Resource records represent technicians and dispatchers with skill and geolocation data. FlitStack maps resource name and email to a HubSpot Contact record and stores skill tags, service territory assignments, and resource type as custom contact properties, preserving your technician roster within HubSpot's contact management system.

Salesforce Field Service

WorkOrderComment / FeedItem

maps to

HubSpot

Engagement Note

1:1
Fully supported

WorkOrder comments and Chatter feed items transfer as HubSpot engagement notes on the parent WorkOrder Deal record. Original timestamps, author names, and comment bodies are preserved in the note metadata, maintaining complete service history and communication threads within the migrated deal records.

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

HubSpot logo

HubSpot gotchas

High

Marketing Contacts billing model is migration-critical

High

Feature tier gating is not visible until onboarding

Medium

Mandatory onboarding fees inflate year-one cost

Medium

HubSpot CSV importer cannot migrate engagements or attachments

Medium

Custom objects require Enterprise and a pre-existing schema

Pair-specific challenges

  • WorkOrder and ServiceAppointment have no native HubSpot equivalent — custom objects are mandatory for FSL detail

    Salesforce Field Service builds its entire data model around WorkOrder and ServiceAppointment objects that drive dispatch, scheduling optimization, and technician routing. HubSpot's object model has no equivalent to a work order — there is no native Ticket type that supports FSL's status lifecycle, skill-based scheduling fields, or geolocation coordinates. FlitStack creates FSL_Work_Order and FSL_Service_Appointment custom objects in HubSpot to hold every FSL-specific field, but these are custom schema, not native CRM objects, meaning they do not appear in HubSpot's standard pipeline views or report builders without additional configuration.

  • FSL geolocation fields cannot power HubSpot maps or routing features

    Salesforce WorkOrder stores Latitude and Longitude at the record level for geolocation-based dispatch optimization, and ServiceTerritory defines geographic coverage boundaries. HubSpot has no native geolocation field type and no service-territory model — location data must be stored as custom number fields on the FSL_Work_Order custom object, and territory logic must be rebuilt manually using HubSpot Teams and custom location properties. This is a structural limitation, not a migration gap: FlitStack migrates the coordinate values faithfully, but HubSpot's UI cannot render them on a map or use them for routing.

  • FSL scheduling optimization engine produces no exportable rules

    Salesforce Field Service's scheduling engine — including Gantt-based optimization, skill-matching algorithms, operating-hours constraints, and territory-based routing — operates inside the FSL optimizer at runtime and produces no stored rules or configuration that can be exported. When migration completes, every optimized schedule is gone. Teams must rebuild technician routing logic in HubSpot's calendar tools from scratch, which requires re-entering operating hours, service territories, and skill tags as manual configuration rather than automated optimization.

  • HubSpot marketing contact billing model has no Salesforce equivalent

    Salesforce Field Service charges per user license with no distinction between marketing and sales contacts. HubSpot separates marketing contacts (contacts targeted by marketing emails) into a billing tier that counts toward a separate contact limit above the free-tier threshold. If Salesforce contacts were tagged or segmented for marketing outreach in FSL, those records need to be identified before migration so they can be flagged as marketing contacts in HubSpot. Failing to flag them results in unexpected HubSpot billing overages after the free-tier contact limit is exceeded.

  • Salesforce API rate limits apply during data export

    Extracting data from Salesforce Field Service for migration runs through Salesforce's REST or Bulk API, which enforces daily API request limits per org edition. Large FSL instances with many WorkOrder and ServiceAppointment records may hit rate limits during export, requiring FlitStack to throttle extraction, request additional API capacity from the customer's Salesforce admin, or use Bulk API for high-volume object exports. This adds planning time before migration begins and is not visible until the export phase starts.

Migration approach

Six steps for a successful Salesforce Field Service to HubSpot data migration

  1. Audit FSL schema and design HubSpot custom object structure

    FlitStack reviews the Salesforce Field Service org to catalog all WorkOrder, ServiceAppointment, Asset, Resource, and custom FSL fields in use. We then design the HubSpot custom object schema — FSL_Work_Order, FSL_Service_Appointment, FSL_Asset, FSL_Line_Item, and FSL_Absence — including all custom properties, pick-list values, and relationship links back to Deals and Companies. This schema plan is delivered for HubSpot admin review before any records are created.

  2. Export Salesforce data via REST or Bulk API

    FlitStack extracts all FSL records from Salesforce using the platform API, respecting org-level rate limits and using Bulk API for high-volume objects such as WorkOrder and ServiceAppointment. Each object is exported with its Salesforce ID preserved for traceability throughout the migration. Files attached via ContentDocumentLink are downloaded separately for re-upload to HubSpot Files, ensuring attachments are migrated alongside their parent records.

  3. Map and transform records into HubSpot property schema

    Each exported record is mapped to its HubSpot destination: Account to Company, Contact to Contact, Asset to FSL_Asset custom object, WorkOrder to a Deal plus FSL_Work_Order custom object. FSL pick-list values are translated to HubSpot custom pick-list options. Owner IDs are resolved by email match to HubSpot users before insertion. Latitude and longitude are written as custom number fields to preserve geolocation data within HubSpot's custom property model.

  4. Run sample migration with field-level diff

    A representative sample of 100–300 records spanning Accounts, Contacts, WorkOrders, ServiceAppointments, and Assets is migrated first. We generate a field-level diff report showing every source field, its migrated value, and any fields that did not transfer or required transformation. You review the diff report and approve before the full migration run commits to ensure data integrity and alignment with your expectations.

  5. Execute full migration with delta-pickup window

    The full migration runs against your live Salesforce org. A delta-pickup window (typically 24–48 hours after the main run) captures any WorkOrders, ServiceAppointments, or contacts modified or created during the cutover period. FlitStack maintains a full audit log of every record written to HubSpot, with one-click rollback available if reconciliation reveals any missing or misaligned data requiring correction.

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.
HubSpot logo

HubSpot

Destination

Strengths

  • Genuinely useful free CRM tier with no seat limit on contact records.
  • All-in-one sales engagement layer (sequences, email tracking, calling, dialer) embedded natively in the CRM, eliminating a separate integration.
  • Intuitive interface and fast onboarding for individual reps, per G2 and Capterra reviews.
  • Workflow automation triggers across contacts, deals, and tickets with a visual builder.
  • API coverage for all standard objects including custom objects at Enterprise tier.

Weaknesses

  • Pricing model is contact-based at the marketing layer — importing all records as marketing contacts can multiply the monthly bill by 4×.
  • Feature tier cliffs are frequent surprises: sequences, calling, advanced reporting, and quoting are all gated, often requiring plan upgrades mid-implementation.
  • Mandatory onboarding fees at Professional ($1,500) and Enterprise ($3,500) are not prominently disclosed on the pricing page.
  • API rate limits are restrictive for bulk migration — burst limits of 100-200 req/10sec and search endpoint limits of 4 req/sec require careful job queuing.
  • Custom objects, additional pipelines, and advanced forecasting are Enterprise-only, making cost projections difficult for growing teams.

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

  • 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 HubSpot 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 HubSpot data migrations

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

Can't find your answer?

Walk through your Salesforce Field Service to HubSpot migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Salesforce Field Service to HubSpot migrations complete in 48–72 hours of clock time for under 50,000 records, assuming the FSL custom object schema is pre-approved by your HubSpot admin. Larger instances with 500,000+ records or multiple service territories to map extend to 5–7 days. The custom object design step — creating FSL_Work_Order and FSL_Service_Appointment schemas in HubSpot — is the longest planning phase before migration begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Salesforce Field Service.
Land in HubSpot, 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