CRM migration

Migrate from Ascora to Microsoft Dynamics 365 Sales

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

Ascora logo

Ascora

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

90%

9 of 10

objects map 1:1 between Ascora and Microsoft Dynamics 365 Sales .

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Teams move from Ascora to Dynamics 365 Sales when they need native CRM capabilities — contact management, lead scoring, pipeline forecasting — combined with broader ERP integration across the Microsoft ecosystem. Ascora is a field service platform built for trade businesses (electricians, plumbers, HVAC, construction), with a data model centered on Customers, Sites, Jobs, Quotes, Invoices, and Custom Form Responses. Dynamics 365 Sales is a Dataverse-backed CRM with standard Account, Contact, Lead, and Opportunity objects plus unlimited custom tables on Enterprise licensing. The migration carries everything Ascora stores natively into Dataverse-based custom tables, with Jobs mapped as custom Job__c records, Quotes as custom Quote__c records (linked to Opportunities), and Invoices as custom Invoice__c records. Technician assignments resolve by email match against Dynamics users. Custom form answers field-map into custom fields on the parent record. Workflows, automations, and notification rules have no Ascora-native equivalent to migrate — FlitStack can export Ascora configuration for reference. The migration uses scoped read-only API access on Ascora, bulk API writes into Dataverse, and a delta-pickup window during cutover.

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

Ascora logo

Ascora

What's pushing teams away

  • Absence of a fully documented public REST API limits automation and makes migration to other platforms technically complex without Ascora support involvement.
  • Limited reporting depth means some trade businesses feel they lack the analytical visibility needed to make data-driven scheduling and pricing decisions.
  • Smaller ecosystem and fewer third-party integrations compared to platforms like Simpro or Salesforce, restricting extensibility for complex operations.
  • Customer support responsiveness can be inconsistent, with some users noting delays on non-critical issues during business hours.
  • No transparent public pricing page means prospective customers must contact sales, creating friction for small operators comparing options quickly.

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 Ascora objects map to Microsoft Dynamics 365 Sales

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

Ascora

Customer

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

Direct map. Ascora Customer full name becomes Account Name, primary email becomes Email, primary phone becomes Telephone 1. Multi-site customers spawn one Account with multiple Address records keyed by site location name. The site location name is stored in the Address Name field to provide a human-readable label for each site within the Dynamics 365 Sales Account.

Ascora

Site

maps to

Microsoft Dynamics 365 Sales

Account Address / Custom Site__c table

1:1
Fully supported

Site is a sub-record of Customer. Maps to Account Address fields (street, city, state, postal code, country) plus a Site_Location__c custom field for the location name. Latitude/longitude store as custom decimal fields. Multi-site customers produce one Account with N Address records or one Account and N Site__c custom table records.

Ascora

Job

maps to

Microsoft Dynamics 365 Sales

Custom Dataverse table: Job__c

1:1
Fully supported

Ascora Jobs have no direct CRM equivalent. A custom Dataverse table (Job__c) is created with fields for Job_Number__c, Job_Title__c, Job_Status__c (custom picklist with original Ascora values), Job_Description__c, Job_Priority__c, Job_Type__c, Estimated_Duration__c, Actual_Start__c, Actual_End__c, Site__c (lookup to Account or Site__c), Technician__c (lookup to User or custom field).

Ascora

Quote

maps to

Microsoft Dynamics 365 Sales

Opportunity + Custom Quote__c table

many:1
Fully supported

Ascora Quotes merge into two constructs: a custom Quote__c table holding quote number, status, expiry, and total, plus an Opportunity record when the quote represents a billable project. Quote Status (Draft, Sent, Approved, Expired) maps to a custom picklist. Approval timestamps and approver name store as custom datetime and text fields on the Quote__c table.

Ascora

Quote Line Item

maps to

Microsoft Dynamics 365 Sales

Opportunity Product / Custom QuoteLineItem__c

1:1
Fully supported

Quote line items map directly to Opportunity Products (Product Name, Quantity, Unit Price, Manual Discount) when tied to an Opportunity, or to a custom QuoteLineItem__c table when Quote maps to the custom Quote__c table. Each line preserves the original Ascora description and discount amount as custom fields.

Ascora

Invoice

maps to

Microsoft Dynamics 365 Sales

Custom Invoice__c table

1:1
Fully supported

Invoices have no native Dynamics 365 Sales equivalent. A custom Invoice__c table is created with Invoice_Number__c, Account__c (lookup), Invoice_Status__c, Amount__c, Due_Date__c, Customer_PO__c, Payment_Terms__c, and Original_Invoice_Number__c. Invoice status values (Paid, Overdue, Void) map to a custom picklist. These fields enable full invoice lifecycle tracking within Dynamics 365 Sales.

Ascora

Job Activity (call, note, task log)

maps to

Microsoft Dynamics 365 Sales

Task

1:1
Fully supported

Job-related activities — technician notes, site visit logs, status-change events — migrate as Dynamics 365 Sales Tasks with Subject, Description, Actual_Duration__c (custom), Technician__c (User lookup or custom field), and Scheduled_Date__c. Original Ascora activity timestamps and owners are preserved. Each task retains its original creation date for audit compliance.

Ascora

Custom Form Response

maps to

Microsoft Dynamics 365 Sales

Custom fields on Job__c / Custom FormResponse__c table

1:1
Fully supported

Ascora Custom Form questions map field-by-field to custom fields on Job__c or a dedicated FormResponse__c custom table linked to Job__c. Form name and question label are preserved as metadata. Multi-question forms generate multiple custom fields with type-aware mapping (text, number, date, picklist).

Ascora

User / Technician

maps to

Microsoft Dynamics 365 Sales

User

1:1
Fully supported

Ascora user and technician records are resolved by email address match against Dynamics 365 Sales Users. Unmatched technicians are flagged before migration; your team either invites them to Dynamics first or assigns their records to a fallback owner. Job__c records land with the resolved User as Owner.

Ascora

Attachment / File

maps to

Microsoft Dynamics 365 Sales

SharePoint / Annotation

1:1
Fully supported

Ascora file attachments are downloaded and re-uploaded to SharePoint (the native Dynamics 365 Sales document store) or stored as Dataverse Annotations with the ParentObjectId pointing to the parent Job__c or Account record. Original filename preserved as name and the Ascora file URL stored as Ascora_File_URL__c custom field for traceability.

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.

Ascora logo

Ascora gotchas

High

No documented public REST API with published rate limits

Medium

Custom Forms use Word template field codes with no structured schema export

Medium

Xero two-way sync creates reconciliation risk during migration

Medium

Excel export is the primary bulk data extraction mechanism

Low

No pricing transparency — plan tiers are not publicly documented

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

  • Ascora API rate limits may extend export windows

    Dynamics 365 Sales enforces 60,000 Web API requests per user per five-minute window through Dataverse. Ascora's REST API also has per-token rate limits that vary by plan. Large exports — especially jobs with custom form attachments — can hit Ascora's outbound limits, causing export stalls. FlitStack AI throttles reads to stay within Ascora's token budget and splits large date-range exports into chunks, preserving a bookmark offset so stalled exports resume cleanly rather than restart from zero.

  • Custom form responses require pre-creation of custom Dataverse fields

    Ascora's custom form engine lets trade businesses add arbitrary questions to job cards (site photos, compliance sign-offs, equipment serial numbers). Dynamics 365 Sales has no native equivalent — each custom form question must be created as a custom column in Dataverse before migration. If Ascora uses multi-select picklists or numeric ranges, those types must be explicitly chosen in Dataverse. FlitStack AI delivers a custom-field manifest listing every Ascora custom form question, its target Dataverse data type, and which Job__c record it belongs to, so your Dynamics admin can pre-create the schema before the migration run.

  • Quotes have no native Dynamics 365 Sales conversion path

    In a CRM context, a quote is expected to convert to an Opportunity with a linked Quote entity. Dynamics 365 Sales lacks a native Quote object in the same sense — the Quote entity exists but requires significant configuration. Ascora quotes map as custom Quote__c Dataverse records; their status (Draft, Sent, Approved, Expired) becomes a custom picklist. When a quote represents a billable job, FlitStack AI also creates an Opportunity and links line items to Opportunity Products, but the approval workflow and quote-expiry logic must be rebuilt in Dynamics using Power Automate or Business Process Flows.

  • File attachments may use base64 blobs requiring re-upload handling

    Ascora stores file attachments against job cards — site photos, signed forms, compliance certificates. Depending on how the export is retrieved (REST API response body vs. signed URL), binary files may arrive as base64-encoded strings that cannot be streamed directly into SharePoint. FlitStack AI decodes base64 blobs, re-uploads files to the appropriate SharePoint document library linked to the Job__c record, and writes the original Ascora filename and file URL into a custom Ascora_File_URL__c field on the annotation for traceability.

  • Multi-site customers inflate Account-address complexity

    A single Ascora customer can have multiple site addresses — a head office, a warehouse, and multiple job sites. Dynamics 365 Sales Account supports multiple Address records, but the Address Number field must be explicitly populated to distinguish them. FlitStack AI surfaces all sites per customer during the planning phase, assigns each a sequential Address Number, and maps the Ascora site name to Address Name so the address label is human-readable in Dynamics without requiring a separate site lookup.

Migration approach

Six steps for a successful Ascora to Microsoft Dynamics 365 Sales data migration

  1. Schema discovery and export planning

    We connect to Ascora using read-only API credentials and enumerate all active custom forms, custom fields, and object relationships. We document every Job, Quote, and Invoice status value, the technician/user list, and the file attachment inventory. This produces an Ascora Data Dictionary used to design the Dataverse schema (Job__c, Quote__c, Invoice__c custom tables, address handling, and custom fields) and the field-mapping specification delivered before any data moves.

  2. Data quality assessment and cleansing

    We profile Ascora records for duplicates (same customer name with variant spellings), incomplete addresses, jobs without an assigned technician, and orphaned attachments. We deliver a data-quality report to your team with exclusion and merge rules. Customers without email are flagged for technician fallback assignment. Records failing validation are quarantined and reported separately — we do not silently drop data. The report also highlights records with missing status values that may require manual review before migration.

  3. Build Dataverse custom tables and resolve users

    We create the Job__c, Quote__c, Invoice__c, Site__c (if needed), and FormResponse__c custom tables in your Dynamics 365 Sales Dataverse environment with all custom columns, picklists, and lookups. Technicians are matched by email against Dynamics 365 Sales Users; unmatched technicians are flagged in the owner-resolution report for your team to invite or reassign. No Job__c record lands without a valid Owner or a documented fallback.

  4. Run sample migration with field-level diff

    A representative slice — typically 100–300 records spanning customers, sites, jobs, quotes, and a few file attachments — migrates first. We generate a field-level diff report comparing the exported Ascora JSON against the written Dataverse records so you can verify job status mapping, quote-to-opportunity linking, site-address handling, and technician resolution before the full run commits. The diff also highlights any data truncation or formatting changes introduced by the field mapping logic.

  5. Execute full migration and cutover delta-pickup

    Full migration runs: Customers → Accounts with address records; Jobs → Job__c; Quotes → Quote__c + Opportunity where applicable; Invoices → Invoice__c; Activities → Tasks; Files → SharePoint with annotation records. During the cutover window (typically 48 hours), your team continues working in Ascora. A delta-pickup captures records modified or created in that window and applies them to Dynamics 365 Sales before go-live. Audit log records every operation; one-click rollback is available if reconciliation uncovers unexpected divergence.

Platform deep dives

Context on both ends of the pair

Ascora logo

Ascora

Source

Strengths

  • Integrated quoting, scheduling, job tracking, inventory, and invoicing in one platform for trade businesses
  • Native two-way sync with Xero, MYOB, and QuickBooks accounting software
  • Built-in mobile app for field technicians with real-time schedule updates
  • Custom Forms via Word templates allow flexible field data capture without code changes
  • Active development with regular updates and bug fixes reported by long-term users

Weaknesses

  • No publicly documented REST API with published rate limits, constraining automation and migration tooling
  • Limited third-party ecosystem and integrations compared to Simpro or Salesforce FSM
  • No transparent public pricing — requires sales contact to get a quote
  • Smaller company size (revenue under $5M) may raise long-term viability concerns for some buyers
  • Reporting and analytics depth lags behind enterprise-grade FSM platforms
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 Ascora and Microsoft Dynamics 365 Sales .

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 8 core objects map 1:1 between Ascora 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

    Ascora: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Ascora 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 Ascora-to-Dynamics 365 Sales migrations complete in 48–72 hours of time for under 50,000 records. The longest phase is schema design for custom Dataverse tables (Job__c, Quote__c, Invoice__c) — this typically runs 3–5 business days of planning before data movement begins. Larger setups with 500k+ records, multiple custom forms, or heavy file attachment volumes extend to 5–7 days. During the planning phase, FlitStack AI generates a data dictionary from Ascora's API, listing every custom field and status value. This document guides the creation of Dataverse custom tables and ensures that mapping rules cover edge cases like multi-site customers and custom form responses, reducing risk of data loss during the migration run.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Ascora.
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