CRM migration

Migrate from Connect Field Service to HubSpot

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

Connect Field Service logo

Connect Field Service

Source

HubSpot

Destination

HubSpot logo

Compatibility

92%

12 of 13

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

Complexity

BStandard

Timeline

24–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Dynamics 365 Connect Field Service models field operations around Work Orders, Service Appointments, Resources, and IoT-driven alerts. HubSpot's CRM model centers on Contacts, Companies, Deals, and Tickets — a fundamentally different structure that requires careful object translation before data can land cleanly. We extract Work Orders as HubSpot Tickets with custom properties carrying operational fields that have no native equivalent. Service Appointments become Ticket Comments with original start/end times and technician assignments preserved. Account records migrate directly as HubSpot Companies. Resource and Skill data maps to a combination of HubSpot Contact properties and custom properties on Tickets. The migration runs against Dynamics 365 Field Service APIs using scoped read-only access, preserving create/modify timestamps so your service SLAs and response-time reporting carry forward. Scheduling, resource-management, and IoT alert logic have no HubSpot equivalent and must be rebuilt using HubSpot workflows and the native scheduling board — we provide a rebuild reference document as part of the delivery. Before migration, we stand up the HubSpot schema (ticket pipelines, custom properties, custom objects) so the destination is ready to receive data without structural surprises mid-run.

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

Connect Field Service logo

Connect Field Service

What's pushing teams away

  • Per-seat pricing model becomes expensive as organizations scale technician headcount, especially when supervisors, dispatchers, and parts staff all require licenses.
  • Complex workflow configuration requires dedicated admin resources; smaller teams find the setup overhead disproportionate to their needs.
  • Mobile app performance degrades in low-connectivity or offline scenarios common in remote industrial sites and rural service territories.
  • Integration with third-party accounting or parts procurement systems requires middleware or custom API work that adds ongoing maintenance burden.
  • Upgrade cycles sometimes introduce breaking changes to custom fields or API behavior without sufficient migration notice.

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 Connect Field Service objects map to HubSpot

Each row shows how a Connect 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.

Connect Field Service

Account (Customer)

maps to

HubSpot

Company

1:1
Fully supported

Dynamics 365 Accounts map directly to HubSpot Companies. Primary address, industry, and account manager fields migrate as Company properties. Parent-account hierarchies in Dynamics translate to HubSpot's parent-company association. Multi-site accounts collapse to one primary company with additional site addresses stored as custom properties.

Connect Field Service

Contact

maps to

HubSpot

Contact

1:1
Fully supported

Contacts migrate 1:1 to HubSpot Contacts. Email, phone, job title, and address fields use direct mapping. The primary contact role on a Work Order (Customer Account Contact) becomes the primary association on the corresponding HubSpot Ticket. Secondary contacts on service appointments are linked as additional ticket associations.

Connect Field Service

Work Order

maps to

HubSpot

Ticket

1:1
Fully supported

Work Orders are the core migration object. Each Work Order becomes a HubSpot Ticket, with operational fields (priority, city, incident type, service account) carried as custom properties. The original Work Order number is preserved in a custom property (Work_Order_Number__c) for traceability. Work Order status maps to HubSpot Ticket status using value mapping: In Progress, On Hold, and Completed map to HubSpot's open, pending, and closed states respectively.

Connect Field Service

Work Order Product

maps to

HubSpot

Line Item / Ticket Property

1:many
Fully supported

Each Work Order Product line splits into two destinations: the product name and quantity migrate as HubSpot Line Items linked to the Ticket; pricing details (unit price, tax, discount) migrate as custom properties on the Line Item. Products not yet in HubSpot's product library are flagged so they can be created before the full migration runs.

Connect Field Service

Work Order Service Task

maps to

HubSpot

Ticket Property

1:1
Fully supported

Work Order Service Tasks capture the line-item labor tasks and durations. These migrate as custom properties on the HubSpot Ticket — task name, estimated duration, and task type are stored as a JSON-encoded custom property list for display in the ticket timeline. No native equivalent exists in HubSpot's data model.

Connect Field Service

Service Appointment

maps to

HubSpot

Ticket Comment / Custom Object

1:1
Fully supported

Service Appointments attached to a Work Order are converted to HubSpot Ticket Comments with original start time, end time, travel duration, and booking status preserved in the comment body. For multi-booking scenarios where multiple technicians are assigned, the primary technician assignment becomes the ticket assignee; secondary bookings are recorded as ticket comments.

Connect Field Service

Bookable Resource / Resource

maps to

HubSpot

Contact (Technician)

1:1
Fully supported

Field technicians in Dynamics 365 Bookable Resources map to HubSpot Contacts in a dedicated Technician contact list. Skill certifications, resource type, and working hours are stored as HubSpot custom properties on the Contact. Email match is used to link technicians to HubSpot users for ticket assignment.

Connect Field Service

Resource Skill

maps to

HubSpot

Contact Custom Property

1:1
Fully supported

Dynamics 365 Skills attached to Bookable Resources have no native HubSpot equivalent. We create a multi-select custom property (Technician_Skills__c) on the HubSpot Contact record and populate it with skill values from the source. Skill level and certification expiry dates are stored as additional custom properties on the same Contact.

Connect Field Service

Bookable Resource Profile / Territory

maps to

HubSpot

Contact Custom Property

1:1
Fully supported

Service territories in Dynamics 365 Field Service define which geographic regions a technician covers. These migrate as a custom pick-list property (Service_Territory__c) on the HubSpot Contact record. Multi-territory assignments use a semicolon-delimited custom property since HubSpot has no native many-to-many territory-to-contact model.

Connect Field Service

IoT Alert / Customer Asset

maps to

HubSpot

Ticket / Custom Object

1:1
Fully supported

Connected Field Service IoT alerts and Customer Assets have no direct HubSpot equivalent. Alerts migrate as HubSpot Tickets with the originating device ID and alert type stored as custom properties. Customer Assets migrate as a HubSpot custom object (Asset__c) with a many-to-one relationship to the Company. IoT alert history is preserved as ticket comments on the Asset record.

Connect Field Service

Incident Type

maps to

HubSpot

Ticket Custom Property

1:1
Fully supported

Incident types in Dynamics 365 classify the type of service being performed. These map to a custom pick-list property (Incident_Type__c) on HubSpot Tickets. Each Dynamics 365 incident type value is mapped individually to ensure correct categorization in HubSpot's ticket reporting and pipeline filtering.

Connect Field Service

Work Order Notes / Email

maps to

HubSpot

Ticket Internal Note / Comment

1:1
Fully supported

Work Order Notes and internal email communications migrate as HubSpot Ticket internal notes. Public-facing email threads on a Work Order become Ticket conversation comments. Original timestamps and author names are preserved on each comment. Rich-text formatting in Dynamics notes is converted to plain text for HubSpot compatibility.

Connect Field Service

Attachment / File

maps to

HubSpot

HubSpot File Attachments

1:1
Fully supported

Work Order and Service Appointment attachments (photos, signed forms, inspection reports) are downloaded and re-uploaded to HubSpot Files, then associated with the corresponding Ticket record. Inline images in notes are downloaded separately and re-hosted in HubSpot's file manager. File size limits per HubSpot's storage tier apply — large files are flagged before migration.

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.

Connect Field Service logo

Connect Field Service gotchas

High

Per-seat licensing applies to dispatchers, technicians, and often read-only users

High

Custom fields and non-standard objects require explicit mapping before migration

Medium

Offline sync state is not persistently exported via standard API

Medium

Scheduling optimization rules and territory logic do not transfer between platforms

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

  • Multi-booking assignments collapse to primary technician in HubSpot

    Dynamics 365 Connect Field Service allows one Service Appointment to be booked to multiple Bookable Resources simultaneously — a common pattern when a senior technician oversees a junior. HubSpot's ticket assignee field holds exactly one user. When a Service Appointment has multiple resource bookings, we migrate the primary (first) technician as the HubSpot ticket assignee and record the full booking roster in a custom property (Secondary_Technicians__c). Multi-booking patterns that drive billing accuracy must be reviewed before migration so the loss of the many-to-one booking model is documented.

  • Work Order status to HubSpot ticket state mapping creates a one-way bridge

    Dynamics 365 Work Order statuses (In Progress, On Hold, Scheduled, Posted) carry operational meaning specific to field-service dispatch. HubSpot ticket states (open, pending, closed) are simpler. The mapping from Dynamics statuses to HubSpot states is deterministic, but once a HubSpot ticket is closed, reopening it requires manual intervention. We set up HubSpot ticket status categories (new, open, pending, solved, closed) to match your Dynamics state transitions as closely as possible, but stage-history timestamps in HubSpot will not reflect Dynamics' state-enter timestamps — those are preserved as custom datetime fields.

  • Connected Field Service IoT alert and device data has no native HubSpot destination

    Microsoft Connected Field Service ties IoT alerts from Azure IoT Hub directly to Customer Assets and Work Orders — alert type, device ID, threshold values, and triggered time stamps are stored as linked entities in Dynamics 365. HubSpot has no native IoT or device-asset model. We migrate IoT alerts as HubSpot Tickets with device_id__c, alert_type__c, and triggered_time__c custom properties. Customer Assets migrate as a HubSpot custom object (Asset__c) with a relationship to the Company. Alert history and device health data that powers proactive maintenance workflows must be rebuilt in HubSpot using workflows triggered by custom property conditions.

  • Territory and skill-based routing cannot be replicated in HubSpot natively

    Dynamics 365 Field Service's scheduling optimizer uses Bookable Resource territory assignments and skill certifications to auto-match technicians to work orders. HubSpot has no native scheduling engine and no native skill-matching model. After migration, dispatchers use the HubSpot operations board manually or a third-party scheduling integration. We store technician skills as a multi-select custom property (Technician_Skills__c) and territories as Service_Territory__c on Contact, but automated skill-to-work-order matching requires rebuilding logic in HubSpot workflows or a third-party scheduling add-on.

  • Work Order product pricing with tax and discount lines requires custom field setup

    Dynamics 365 Work Order Products carry per-line pricing including tax, discount amount, and discount percentage fields. HubSpot Line Items store unit price and quantity but have no native tax or line-level discount fields. We map Dynamics pricing to a combination of HubSpot Line Items (for unit price and quantity) plus custom number properties (Line_Tax_Amount__c, Line_Discount_Amount__c) on each Line Item. Total work order amount is carried to the HubSpot ticket value. Tax and discount totals for invoicing must be reviewed in HubSpot reporting setup.

Migration approach

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

  1. Stand up HubSpot schema before data extraction

    Before extracting anything from Dynamics 365 Connect Field Service, we create the destination-side structure in HubSpot: ticket pipelines and status categories matching your work-order statuses, custom properties for incident type, work order number, and IoT alert fields, plus the Asset__c custom object for Connected Field Service device data. We deliver a HubSpot schema setup checklist based on your Dynamics work-order product lines, skill list, and territory configuration so your HubSpot admin can pre-create everything before migration validation begins.

  2. Extract Work Orders and resolve foreign-key dependencies

    Dynamics 365 stores Work Orders with foreign-key references to Accounts, Contacts, Bookable Resources, and Incident Types. We extract in dependency order: Accounts (as HubSpot Companies) first, then Contacts linked to those Companies, then Bookable Resources as HubSpot Contacts in a dedicated technician list, then Work Orders mapped to Tickets with their service account resolved to the correct HubSpot Company. Products, service tasks, and IoT alerts are extracted as children of Work Orders and queued for the field-mapping pass.

  3. Run a sample migration with field-level diff

    A representative slice migrates first — typically 50–200 Work Orders spanning multiple statuses, incident types, and product-line combinations. We generate a field-level diff between the source Dynamics record and the destination HubSpot Ticket so you can verify: status-to-ticket-state mapping, product-line splitting into line items, technician email resolution to HubSpot users, and custom property population for IoT alerts and incident types. The diff report is reviewed with you before the full run commits.

  4. Execute full migration with delta-pickup window

    The full migration runs against Dynamics 365 Field Service APIs using scoped read-only access. A delta-pickup window (typically 24–48 hours) captures any Work Orders, Service Appointments, or technician updates made during the cutover window. After the delta window closes, we run a reconciliation pass comparing source record counts against destination record counts per object. An audit log is generated for every record operation, and one-click rollback is available if the reconciliation fails.

  5. Deliver rebuild reference and post-migration sign-off package

    We deliver a rebuild reference document covering: scheduling board setup for dispatchers using the HubSpot operations board, workflow logic for auto-assigning tickets by incident type and territory, skill-matching workflow rebuild guidance, and IoT alert routing to HubSpot tickets using a third-party integration if applicable. The sign-off package includes the full audit log, record counts by object, and a sample of migrated tickets reviewed against source Dynamics records.

Platform deep dives

Context on both ends of the pair

Connect Field Service logo

Connect Field Service

Source

Strengths

  • Tightly coupled with major CRM backends like Salesforce and Dynamics 365 for unified customer records.
  • Mobile-first design with offline sync capability for technicians working in low-connectivity environments.
  • IoT and remote monitoring integration for predictive maintenance alerting.
  • Dynamic scheduling with territory-based routing and real-time dispatcher reassignment.
  • Multi-currency and multi-region support for organizations operating across geographic business units.

Weaknesses

  • Per-user license costs scale linearly with technician and dispatcher count, creating budget pressure during seasonal peaks.
  • Workflow and business rule configuration requires specialized admin expertise, increasing total cost of ownership.
  • Custom field and object development requires Salesforce DX or equivalent developer tooling, limiting declarative extensibility.
  • API rate limits and bulk API availability vary by edition, constraining automated migration throughput.
  • Offline data synchronization can produce conflicts that require manual resolution when technicians work in intermittent connectivity.
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 Connect 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

    Connect Field Service: 100 API calls per minute per org for standard REST API; bulk API available for larger data volumes.

  • Data volume sensitivity

    A

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

Estimator

Estimate your Connect 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 Connect Field Service to HubSpot data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Dynamics 365 Connect Field Service to HubSpot migrations complete in 48–72 hours for under 25,000 work orders and service appointments. Larger setups with 25,000+ records, complex IoT alert histories, or multi-booking patterns extend to 5–10 days. The pre-migration HubSpot schema setup — creating ticket pipelines, custom properties, and the Asset__c custom object — typically takes 2–3 business days and runs in parallel with scoping.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Connect 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