CRM migration

Migrate from Trade Service Pro to Microsoft Dynamics 365 Sales

Field-level mapping, validation, and rollback between Trade Service Pro and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .

Trade Service Pro logo

Trade Service Pro

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

92%

11 of 12

objects map 1:1 between Trade Service Pro and Microsoft Dynamics 365 Sales .

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Trade Service Pro models field service operations around work orders, service locations, and technician assignments, with estimates and invoices tied directly to jobs. Dynamics 365 Sales uses the standard CRM object graph — Accounts, Contacts, Opportunities, Quotes, Orders, and Invoices — built on Dataverse with a 6,000-request-per-five-minute API rate limit per environment. The migration carries Trade Service Pro customers as Accounts, contacts as Contacts, and work orders as custom WorkOrder entities (or merged into Opportunities where they represent sales cycles). Estimates and invoices map to Dynamics 365 Quotes and Orders respectively, with payment records preserved as custom fields or notes since the Payments table in Dynamics has no direct equivalent. We handle custom fields on every object via the custom field pattern (new_customfield format). Our API-driven export from Trade Service Pro feeds into our Dynamics 365 import pipeline, sequencing Accounts before Contacts before transactional records to satisfy foreign-key requirements. We do not migrate workflows, automations, or payment processing configurations — those must be rebuilt in Dynamics 365 or reconnected to a payment processor. All attachment references are preserved as URLs or re-hosted in SharePoint/OneDrive linked from Dynamics 365 record notes.

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

Trade Service Pro logo

Trade Service Pro

What's pushing teams away

  • No public API means third-party integrations or automated data pipelines are not possible, pushing growing companies toward platforms like ServiceTitan or Jobber that offer developer access.
  • Support is ticket-based with no clear SLA, and several reviews of similar FSM platforms cite slow response times as a reason for switching.
  • Limited scalability beyond 11–50 employees means companies that grow past that range often need a more robust platform with advanced dispatch and reporting.
  • Sync issues and reliability bugs, reported across comparable FSM tools, cause field teams to lose confidence in the system during active jobs.

Choosing

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

What's pulling them in

  • Deep Microsoft 365, Teams, and Outlook integration makes Microsoft Dynamics 365 Sales a natural fit for Microsoft-first organizations already invested in that ecosystem
  • Sales Enterprise and Premium tiers offer unlimited custom tables and advanced AI-driven forecasting and predictive analytics not available in lower tiers
  • Professional tier pricing at $65 per user per month offers a lower entry cost than Salesforce for SMB teams with straightforward CRM needs
  • Flexible customization options allow businesses to build bespoke apps, tailor forms and views, and integrate with other Dynamics 365 modules
  • Microsoft Copilot AI tools are embedded directly into the sales workflow on Enterprise and Premium, automating routine tasks and providing deal intelligence

Object mapping

How Trade Service Pro objects map to Microsoft Dynamics 365 Sales

Each row shows how a Trade Service Pro object lands in Microsoft Dynamics 365 Sales , including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Trade Service Pro

Customer

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

Trade Service Pro Customers map 1:1 to Dynamics 365 Sales Accounts. Address, phone, and website fields carry over directly. Multiple TSP locations under one customer become separate Account records linked via ParentAccountId in Dynamics 365. The original TSP customer ID is stored in a custom Legacy_ID__c field on each Account to preserve referential integrity with historical records and downstream integrations.

Trade Service Pro

Contact

maps to

Microsoft Dynamics 365 Sales

Contact

1:1
Fully supported

TSP Contacts map to Dynamics 365 Contacts. Each Contact requires an AccountId (parent Account must exist first in migration sequence). Primary contact flag on a TSP Customer carries over as a custom Is_Primary_Contact__c boolean field since Dynamics has no native equivalent.

Trade Service Pro

Location

maps to

Microsoft Dynamics 365 Sales

Account (Service Location) or custom ServiceLocation table

1:1
Fully supported

TSP Locations represent service addresses distinct from the customer record. In Dynamics 365, service locations can become child Accounts (using ParentAccountId hierarchy) or a custom ServiceLocation table. We recommend the custom table approach for high-volume field service shops to avoid inflating the Account namespace.

Trade Service Pro

WorkOrder

maps to

Microsoft Dynamics 365 Sales

Custom WorkOrder table or Opportunity

1:many
Fully supported

TSP WorkOrders serve two purposes: dispatch-and-service records and quasi-sales records when a work order originates from a quote. We map service-only WorkOrders to a custom WorkOrder table in Dynamics 365. WorkOrders tied to sold estimates map to Opportunities linked to the originating Quote, preserving the sales pipeline view.

Trade Service Pro

WorkOrder

maps to

Microsoft Dynamics 365 Sales

Custom WorkOrder table

1:1
Fully supported

WorkOrder is the most structurally complex mapping. TSP stores technician assignment, labor hours, line items, and status history. Dynamics 365 Sales has no native WorkOrder entity — we create a custom WorkOrder table with a 1:1 field mapping, including WorkOrder_Number__c as the external reference, Status__c as a custom picklist, and Technician__c as a lookup to the User/Contact who performed the service.

Trade Service Pro

Estimate

maps to

Microsoft Dynamics 365 Sales

Quote

1:1
Fully supported

TSP Estimates map to Dynamics 365 Quotes. Line items become Quote Details (quotedetail). Estimate totals, tax, and discount fields map directly. TSP Estimate status (Draft, Sent, Accepted, Declined) becomes a custom Quote_Status__c picklist since Dynamics uses Active, Revised, Dead, and Won statuses natively.

Trade Service Pro

Invoice

maps to

Microsoft Dynamics 365 Sales

Invoice

1:1
Fully supported

TSP Invoices map to Dynamics 365 Invoices. Invoice lines become Invoice Details. Payment status and payment method are not native Dynamics fields — we preserve these as custom text fields (Payment_Status__c, Payment_Method__c) and retain any processor reference (e.g., Stripe charge ID) in a notes attachment URL.

Trade Service Pro

Payment

maps to

Microsoft Dynamics 365 Sales

Invoice (custom payment fields)

1:1
Fully supported

TSP Payments record individual transactions against an Invoice. Dynamics 365 Invoice does not store a sub-payment ledger. We create a custom Payment_Record__c table with a lookup to the related Invoice, capturing amount, date, processor, and transaction ID. This preserves full payment history without distorting the Invoice's closed status.

Trade Service Pro

Technician

maps to

Microsoft Dynamics 365 Sales

SystemUser

1:1
Fully supported

TSP Technicians represent field employees who can also be assigned as WorkOrder technicians. In Dynamics 365, field resources map to Bookable Resources (msdyn_resource) on Field Service plans, or to SystemUsers on Sales-only plans. We match TSP technicians by email to existing Dynamics 365 users and flag unmatched technicians for your admin to create or reassign.

Trade Service Pro

Intake / Lead Source

maps to

Microsoft Dynamics 365 Sales

Lead

1:1
Fully supported

TSP Intake records represent incoming lead information — ad source, referral, call log. These map to Dynamics 365 Leads, with TSP's ad_source field mapping to LeadSource, intake notes mapping to Description, and original creation date preserved as a custom Created_In_Source__c datetime field.

Trade Service Pro

Attachment / Document

maps to

Microsoft Dynamics 365 Sales

SharePoint/OneDrive (linked from Note or Attachment)

1:1
Fully supported

TSP attachments on WorkOrders, Estimates, and Invoices are re-uploaded to a linked SharePoint document library. Dynamics 365 Notes on each record store the SharePoint URL, preserving the original file name and upload timestamp as custom fields on the Note record.

Trade Service Pro

Custom fields (TSP plans supporting custom properties)

maps to

Microsoft Dynamics 365 Sales

Custom fields (new_customfield format on respective Dynamics table)

1:1
Fully supported

Custom properties on TSP Customers, WorkOrders, Estimates, and Invoices require custom fields in Dynamics 365. We prefix each with new_ following Dataverse naming conventions. Field data type mapping: text→String, number→Integer or Decimal, date→DateTime, checkbox→Boolean, dropdown→Picklist. We audit the actual custom field inventory during discovery and create corresponding fields in your Dynamics 365 solution layer during the pre-migration phase.

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.

Trade Service Pro logo

Trade Service Pro gotchas

High

No public API forces reliance on in-app CSV exports

Medium

Active timesheet timers do not export in CSV

Medium

eSign status on Proposals does not carry over

Low

Attachment bulk download requires separate handling

Medium

No schema documentation complicitates field mapping

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales gotchas

High

Professional tier 15-table custom table limit blocks migrations

High

October 2024 pricing increase applies at renewal for all customers

Medium

Custom fields must be created in the UI before API writes

Medium

Power Platform request limits apply to bulk migrations

Medium

Activity records orphaned to inactive owners fail silently

Pair-specific challenges

  • WorkOrder has no native Dynamics 365 Sales equivalent — custom table required

    Trade Service Pro WorkOrders are the operational backbone of the source system, storing technician assignments, labor hours, line items, and status transitions. Dynamics 365 Sales has no standard WorkOrder entity — it belongs to the Field Service module. For sales-only Dynamics 365 deployments, we create a custom WorkOrder__c table with a corresponding solution in your Dynamics environment. This requires a solution layer, custom field creation, and form customization before data loads. The custom table must be created in a managed solution so it survives updates. Plan for 3–5 business days of Dynamics admin work to receive the solution and assign security roles before migration data lands.

  • Dataverse API rate limits constrain migration throughput for large datasets

    Microsoft Dataverse enforces a service protection limit of 6,000 Web API requests per five-minute window per environment, plus a 52-concurrent-request limit per user. Trade Service Pro exports with thousands of WorkOrders and line items can overwhelm this threshold if loaded in bulk. FlitStack AI paces inserts using batch operations of 1,000 records or fewer, with backoff logic that respects the request quota. For environments with more than 50,000 records, we recommend requesting a temporary Dataverse capacity increase through your Microsoft partner or CSP before migration day to avoid throttling delays.

  • TSP payment records split across Invoice and separate Payment object — Dynamics Invoice is a closed record

    Trade Service Pro records individual payments as separate objects linked to an Invoice, supporting partial payments, refunds, and multiple payment methods per invoice. Dynamics 365 Sales Invoice is a closed transactional record — it records the sale amount but does not maintain a sub-payment ledger. When invoices have been partially paid, we create a custom Payment_Record__c table with a lookup to the Invoice, preserving full payment history. Your finance team will need to decide whether to use this custom table for reporting or connect Dynamics 365 to a dedicated payment reconciliation tool.

  • TSP location hierarchy maps to Account hierarchy — circular references must be resolved

    Trade Service Pro allows multiple Locations under a single Customer, with some setups using parent-child location chains (e.g., facility → building → floor). Dynamics 365 Account supports a ParentAccountId for one level of hierarchy. If your TSP setup has multi-level location chains, we collapse deeper chains into a flat parent-child structure, keeping the deepest level as the primary service location Account. Circular references — where Location A is nested under Location B which is nested under A — are flagged during the migration audit and resolved by your team before the full run.

  • Custom fields on TSP lower-tier plans are limited — migration scope depends on plan level

    Trade Service Pro's lower subscription tiers impose caps on the number of custom fields per object. If your TSP plan limits custom properties, the destination Dynamics 365 migration will have fewer custom fields to create, which reduces migration complexity and cost. We audit the actual custom field inventory during discovery by querying the TSP API. If you plan to upgrade your Dynamics 365 license tier after migration to add more custom fields, budget for a second mapping pass.

Migration approach

Six steps for a successful Trade Service Pro to Microsoft Dynamics 365 Sales data migration

  1. Audit TSP data model and prepare Dynamics 365 environment

    We query the Trade Service Pro API to inventory all active objects — Customers, Contacts, Locations, WorkOrders, Estimates, Invoices, Payments, Technicians, Intakes, and any custom fields present on each entity. Simultaneously, your Dynamics 365 admin creates the required solution layer: the custom WorkOrder__c table, custom fields on Account/Contact/Quote/Invoice, and the Payment_Record__c table. We deliver a field-mapping spreadsheet and a Dynamics 365 schema checklist so your team knows exactly which custom fields and tables to create before data arrives.

  2. Resolve technician and user records by email match

    TSP Technicians are matched against Dynamics 365 SystemUsers by email address. Unmatched technicians are flagged with their TSP email and employee ID so your admin can either invite them to Dynamics 365 as users or assign a fallback user. No WorkOrder or service record lands in Dynamics without a resolved technician reference. This step also surfaces any TSP technician records with duplicate email addresses that need manual disambiguation.

  3. Migrate Accounts and Contacts before transactional records

    Dynamics 365 requires AccountId on Contact records and CustomerId on Quotes and Invoices — parent records must exist before children. We sequence the migration: Accounts first, then Contacts (with AccountId lookups resolved), then the custom WorkOrder__c table, then Quotes, then Invoices, then Payment_Record__c entries. Location-to-Account hierarchy is resolved in the same pass. This ensures referential integrity and prevents import failures from missing foreign keys.

  4. Run sample migration with field-level diff

    A representative slice — typically 200–500 records covering a mix of Customers, Contacts, WorkOrders, Estimates, and Invoices — migrates first. We generate a field-level diff showing the source value, mapped destination value, and any transformation notes for every field. You verify that WorkOrder status values map correctly, that technician assignments resolve, and that payment records link to the right Invoice. The diff is your sign-off checkpoint before the full run commits.

  5. Execute full migration with delta-pickup window

    The full dataset loads into Dynamics 365 using batched API calls that respect Dataverse service protection limits. A delta-pickup window of 24–48 hours after the bulk load captures any new or modified records created in TSP during cutover — particularly relevant for active service schedules. Our audit log records every record created, updated, or skipped. If reconciliation reveals discrepancies, one-click rollback reverts the Dynamics 365 environment to its pre-migration state while your team continues working in TSP.

Platform deep dives

Context on both ends of the pair

Trade Service Pro logo

Trade Service Pro

Source

Strengths

  • All-in-one FSM bundle covering CRM, proposals, invoicing, and scheduling for trade contractors.
  • Month-to-month subscription with no annual contract commitment.
  • 30-day free trial with no credit card required for sign-up.
  • Integrated payment processing marketed as accelerating collections for field service businesses.
  • User permission controls differentiate back-office and field technician access levels.

Weaknesses

  • No public API documented, preventing automated integrations or programmatic data exports.
  • No published pricing tiers on the website; cost transparency requires a sales conversation.
  • Small company footprint (11–50 employees, <$5M revenue) suggests limited enterprise-scale features.
  • Support is ticket-based with no documented SLA, leading to unpredictable response times.
  • Schema is undocumented; custom fields and object relationships are not publicly described.
Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

Destination

Strengths

  • Native integration with Microsoft 365, Teams, Outlook, and SharePoint for unified productivity workflow
  • Unlimited custom tables and complex workflows on Enterprise tier enable deep customization for complex sales processes
  • AI-driven predictive analytics and deal intelligence on Enterprise and Premium tiers help sales teams prioritize pipeline
  • Dataverse unified data layer provides a consistent API and data model across all Dynamics 365 and Power Platform apps
  • Strong security model with Field-Level Security and Record Ownership rules for governance-conscious enterprises

Weaknesses

  • Sales Professional tier caps custom tables at 15, creating a migration ceiling for highly customized SMB environments
  • October 2024 pricing increases of $15 per user across all tiers apply to existing customers upon renewal
  • Implementation typically requires costly certified partners, adding 30–50% to total project cost
  • Updates and platform releases can disrupt customizations and plugins, requiring regression testing after each wave
  • Non-Microsoft integrations require additional configuration or middleware, limiting flexibility for heterogeneous tech stacks

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Trade Service Pro and Microsoft Dynamics 365 Sales .

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Trade Service Pro and Microsoft Dynamics 365 Sales .

  • Object compatibility

    A

    All 8 core objects map 1:1 between Trade Service Pro and Microsoft Dynamics 365 Sales .

  • 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

    Trade Service Pro: Not publicly documented.

  • Data volume sensitivity

    B

    Trade Service Pro doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Trade Service Pro to Microsoft Dynamics 365 Sales 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 Trade Service Pro to Microsoft Dynamics 365 Sales data migrations

Answers to the questions buyers ask most during Trade Service Pro to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Trade Service Pro to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Trade Service Pro to Dynamics 365 Sales migrations complete in 48–72 hours of clock time for under 25,000 total records. The longest planning step is creating the custom WorkOrder__c table and its associated fields in your Dynamics 365 solution layer before data arrives. Migrations with over 100,000 records, multi-level location hierarchies, or extensive custom properties extend to 5–10 business days. We recommend requesting a Dataverse capacity review from your Microsoft partner before migration day if your record count exceeds 50,000.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Trade Service Pro.
Land in Microsoft Dynamics 365 Sales , 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