CRM migration
Field-level mapping, validation, and rollback between WennSoft and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
WennSoft
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
12 of 12
objects map 1:1 between WennSoft and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
WennSoft Signature is purpose-built field-service and job-costing software that runs alongside Microsoft Dynamics GP. Its data model centers on Customers with multiple Locations, Work Orders with line-item Job Cost detail, Equipment records with maintenance history, Service Calls with labor and parts, and Contracts with coverage tiers. Dynamics 365 Sales, built on Dataverse, models Account-Contact relationships, Opportunities with product lines, Cases for service requests, and Activities for task tracking. There is no native work-order or equipment-equipment entity in D365 Sales out of the box — those require custom tables on Dataverse or the addition of Dynamics 365 Field Service. We map WennSoft Customers to Account records, Locations to Address records on the Account, Work Orders to custom WorkOrder tables on Dataverse with Job Cost lines preserved as detail rows, Service Calls to Cases or Activities based on status, Equipment to the native Asset table if Field Service is provisioned, and Contracts to custom Contract entities. Billing rates, pricing matrices, and cost-plus markups from WennSoft's Extended Pricing Matrix become Product records or custom pricing fields in Dynamics. We handle the API export from WennSoft's GP-backed data store, transform each record through our field-level mapping, and load into Dynamics 365 via the Dataverse Web API. Workflows, triggers, and GP-integrated automations do not migrate — those must be rebuilt as Power Automate flows or Dynamics workflows post-migration.
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.
Source platform
WennSoft platform overview
Scorecard, SWOT, gotchas, and pricing for WennSoft.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a WennSoft 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.
WennSoft
Customer
Microsoft Dynamics 365 Sales
Account
1:1WennSoft Customers map 1:1 to Dynamics 365 Sales Accounts. Customer Number from WennSoft becomes an Account Number field for direct record matching. Multiple WennSoft customer sites collapse to Address records on the Account, preserving each site address with its own address type designation. Primary Customer flag determines the primary Address record in Dynamics, ensuring the main billing or headquarters address surfaces first in lookup views.
WennSoft
Location
Microsoft Dynamics 365 Sales
CustomerAddress (on Account)
1:1Each Location on a WennSoft Customer becomes a CustomerAddress record linked to the Account. Address fields (street, city, state, zip) map directly. Location-specific contact persons map to Contacts with the Location as a custom field or the Address link. Site name becomes Address Name in Dynamics.
WennSoft
Work Order
Microsoft Dynamics 365 Sales
Custom WorkOrder Table (Dataverse)
1:1Work Orders have no native equivalent in D365 Sales without Field Service. We create a custom WorkOrder table on Dataverse with fields for WO Number, Status, Priority, Scheduled Date, Assigned Technician, Service Type, and Problem Type. Work Order Status values map to a custom status-option set that mirrors WennSoft's lifecycle.
WennSoft
Job Cost Line
Microsoft Dynamics 365 Sales
Custom WorkOrderProductLine Table (Dataverse)
1:1Job Cost detail lines (labor, materials, subcontractors) from WennSoft Work Orders become custom detail rows on the Dataverse WorkOrder record. Each line carries cost amount, bill amount, cost code, and line type. Cost-plus margin calculates as the difference. Total Work Order revenue maps to a custom Revenue field on the parent WorkOrder.
WennSoft
Service Call
Microsoft Dynamics 365 Sales
Case (Incident)
1:1Closed Service Calls with completed work become Cases in Dynamics. Open Service Calls in progress become Cases with a custom In-Progress status. Technician notes and resolution summaries map to Case Resolution fields. Service Call type (preventive, corrective) becomes a custom Case Type picklist.
WennSoft
Equipment
Microsoft Dynamics 365 Sales
Asset (if Field Service) / Custom Equipment Table
1:1Equipment records contain serial number, model, customer link, location link, and maintenance schedule. Without D365 Field Service, we create a custom Equipment table on Dataverse. With Field Service, Equipment migrates to the native Asset table. Warranty expiration dates become custom fields on either entity.
WennSoft
Contract / Service Agreement
Microsoft Dynamics 365 Sales
Custom Contract Table (Dataverse)
1:1Service contracts with coverage tiers, response-time SLAs, and included labor hours map to a custom Contract table. Contract line items for different coverage levels become detail rows. Bill-to frequency (monthly, quarterly, annually) maps to a custom billing frequency field. Unused hours balance becomes a custom remaining-credits field.
WennSoft
Employee / Technician
Microsoft Dynamics 365 Sales
User (SystemUser) or Contact
1:1WennSoft Employees used as technicians map to SystemUser records in Dynamics if they need CRM login access. Field technicians who only use MobileTech map to Contacts with a custom Technician flag. Employee Number becomes User ID or Contact ID for traceability. Email addresses match for user resolution.
WennSoft
Extended Pricing Matrix
Microsoft Dynamics 365 Sales
Product + PriceListItem
1:1WennSoft pricing by call type, problem type, equipment type, and labor level maps to Dynamics Product records with tiered Price List Items. Billing rates become the List Price on Price List Items. Markup percentages from WennSoft's matrix require calculated fields or manual price-list configuration after migration.
WennSoft
Time and Expense Entry
Microsoft Dynamics 365 Sales
Custom TimeEntry Table (Dataverse)
1:1TimeTrack data (hours by employee, work order, date) migrates to a custom TimeEntry table linked to the WorkOrder. Expense entries (mileage, materials, per-diem) migrate to a custom ExpenseEntry table. GP payroll export configuration does not migrate — teams must rebuild TimeTrack-to-payroll mapping in their new system.
WennSoft
Attachment / Document
Microsoft Dynamics 365 Sales
Note (Annotation) / SharePoint Integration
1:1WennSoft Cloud Document Storage files attach to the relevant Work Order or Equipment record as Notes in Dynamics. WennSoft's document naming conventions map to the Note Title field. Large files exceeding Dynamics attachment limits ( Dynamics default 10MB per file) require SharePoint or Blob Storage integration post-migration.
WennSoft
Invoice (Posted)
Microsoft Dynamics 365 Sales
Invoice (D365 Sales) / Custom Invoice History
1:1Posted invoices in WennSoft represent closed billing records. Dynamics 365 Sales Invoice records exist for open invoices connected to Opportunities. Historical posted invoices have no clean migration target — we preserve them as custom InvoiceHistory records on the Account for audit reference, but they do not become active Dynamics invoices.
| WennSoft | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Customer | Account1:1 | Fully supported | |
| Location | CustomerAddress (on Account)1:1 | Fully supported | |
| Work Order | Custom WorkOrder Table (Dataverse)1:1 | Fully supported | |
| Job Cost Line | Custom WorkOrderProductLine Table (Dataverse)1:1 | Fully supported | |
| Service Call | Case (Incident)1:1 | Fully supported | |
| Equipment | Asset (if Field Service) / Custom Equipment Table1:1 | Fully supported | |
| Contract / Service Agreement | Custom Contract Table (Dataverse)1:1 | Fully supported | |
| Employee / Technician | User (SystemUser) or Contact1:1 | Fully supported | |
| Extended Pricing Matrix | Product + PriceListItem1:1 | Mapping required | |
| Time and Expense Entry | Custom TimeEntry Table (Dataverse)1:1 | Fully supported | |
| Attachment / Document | Note (Annotation) / SharePoint Integration1:1 | Fully supported | |
| Invoice (Posted) | Invoice (D365 Sales) / Custom Invoice History1: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.
WennSoft gotchas
Invoice posting locks billing rates permanently
Unposted Costs and Unbilled Costs require separate extraction
Integration complexity and frequent glitches slow migrations
No public bulk export API documented
Dynamics GP edition gating may block migration paths
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Discover WennSoft data export capabilities and GP integration surface
We assess what WennSoft objects are accessible via export (Customers, Locations, Work Orders, Job Cost Lines, Equipment, Service Calls, Contracts, TimeTrack, Pricing Matrix) and whether the GP integration layer adds any cross-record dependencies. We run a schema read against the WennSoft database or export endpoints to confirm record counts per object and identify any custom fields or extensions your team has added. This stage produces the data inventory that drives the migration plan.
Design custom Dataverse tables for Work Orders, Equipment, and Contracts
Before any data moves, we create the custom WorkOrder, WorkOrderProductLine, Equipment, Contract, TimeEntry, and ExpenseEntry tables on your Dynamics 365 Dataverse environment. We define all fields, option sets, and lookups based on the object mapping plan. We also configure the relationship between the custom WorkOrder table and the native Account table so that parent-child queries work correctly. Your Dynamics admin reviews and publishes the tables before we proceed to sample migration.
Resolve employee and technician identities by email
WennSoft Employee records are matched to Dynamics 365 Sales SystemUser or Contact records by email address. Employees marked as active technicians in WennSoft get a Technicians flag on their Contact or a SystemUser record with the Field Service resource role. Unmatched employees — those without an email in Dynamics — are flagged before migration so your team either invites them to Dynamics or assigns their records to a fallback technician. No Work Order lands without an assigned resource link.
Run sample migration with field-level diff
We migrate a representative slice — typically 200–500 records across Customers, Locations, Work Orders, Service Calls, and Equipment. We generate a field-level diff between the WennSoft source and the Dynamics destination so you can verify that Work Order status values mapped correctly, Job Cost line totals match, Equipment warranty dates transferred accurately, and Contract coverage tiers rendered in the custom pick-list. You sign off on the sample before the full run commits.
Execute full migration with delta-pickup window
The full migration runs against your Dynamics 365 Sales environment via the Dataverse Web API. We use batch operations to load Customers, then Locations (linked to Accounts), then Work Orders with Job Cost lines, then Equipment, Contracts, and Service Calls. A 24–48 hour delta-pickup window captures any records modified in WennSoft during the cutover window. FlitStack AI generates an audit log of every record created, updated, or skipped. One-click rollback is available if reconciliation finds unexpected gaps.
Platform deep dives
WennSoft
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 WennSoft and Microsoft Dynamics 365 Sales .
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
WennSoft: Not publicly documented.
Data volume sensitivity
WennSoft doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 WennSoft to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your WennSoft to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave WennSoft
Other ways to arrive at Microsoft Dynamics 365 Sales
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.