CRM migration
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
Source
HubSpot
Destination
Compatibility
12 of 13
objects map 1:1 between Connect Field Service and HubSpot.
Complexity
BStandard
Timeline
24–72 hours
Overview
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.
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 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)
HubSpot
Company
1:1Dynamics 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
HubSpot
Contact
1:1Contacts 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
HubSpot
Ticket
1:1Work 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
HubSpot
Line Item / Ticket Property
1:manyEach 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
HubSpot
Ticket Property
1:1Work 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
HubSpot
Ticket Comment / Custom Object
1:1Service 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
HubSpot
Contact (Technician)
1:1Field 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
HubSpot
Contact Custom Property
1:1Dynamics 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
HubSpot
Contact Custom Property
1:1Service 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
HubSpot
Ticket / Custom Object
1:1Connected 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
HubSpot
Ticket Custom Property
1:1Incident 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
HubSpot
Ticket Internal Note / Comment
1:1Work 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
HubSpot
HubSpot File Attachments
1:1Work 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.
| Connect Field Service | HubSpot | Compatibility | |
|---|---|---|---|
| Account (Customer) | Company1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Work Order | Ticket1:1 | Fully supported | |
| Work Order Product | Line Item / Ticket Property1:many | Fully supported | |
| Work Order Service Task | Ticket Property1:1 | Fully supported | |
| Service Appointment | Ticket Comment / Custom Object1:1 | Fully supported | |
| Bookable Resource / Resource | Contact (Technician)1:1 | Fully supported | |
| Resource Skill | Contact Custom Property1:1 | Fully supported | |
| Bookable Resource Profile / Territory | Contact Custom Property1:1 | Fully supported | |
| IoT Alert / Customer Asset | Ticket / Custom Object1:1 | Fully supported | |
| Incident Type | Ticket Custom Property1:1 | Fully supported | |
| Work Order Notes / Email | Ticket Internal Note / Comment1:1 | Fully supported | |
| Attachment / File | HubSpot File Attachments1: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.
Connect Field Service gotchas
Per-seat licensing applies to dispatchers, technicians, and often read-only users
Custom fields and non-standard objects require explicit mapping before migration
Offline sync state is not persistently exported via standard API
Scheduling optimization rules and territory logic do not transfer between platforms
HubSpot gotchas
Marketing Contacts billing model is migration-critical
Feature tier gating is not visible until onboarding
Mandatory onboarding fees inflate year-one cost
HubSpot CSV importer cannot migrate engagements or attachments
Custom objects require Enterprise and a pre-existing schema
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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
Connect Field Service
Source
Strengths
Weaknesses
HubSpot
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 Connect Field Service and HubSpot.
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
Connect Field Service: 100 API calls per minute per org for standard REST API; bulk API available for larger data volumes.
Data volume sensitivity
Connect 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 Connect Field Service to HubSpot migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Connect Field Service
Other ways to arrive at HubSpot
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.