CRM migration
Field-level mapping, validation, and rollback between WennSoft and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
WennSoft
Source
Freshsales
Destination
Compatibility
12 of 12
objects map 1:1 between WennSoft and Freshsales.
Complexity
BStandard
Timeline
24–48 hours
Overview
WennSoft is purpose-built field-service and construction management software that runs on Microsoft Dynamics GP — it manages customers, locations, equipment, service calls, work orders, time tracking, and job costing but has no native CRM layer for lead and deal management. Freshsales is a Freshworks CRM with Leads, Contacts, Accounts, Deals, Products, Tasks, Meetings, Calls, and Notes — it has no field-service schema. The migration challenge is translating WennSoft's operational record types (Customer, Location, Equipment, Service Call, Work Order) into Freshsales CRM objects (Account, Contact, Deal, Product, Task) and handling the domain gap where field-service data must be re-framed as sales pipeline data. We map customer records to Accounts and Contacts, equipment to Products or custom Equipment objects, and service-call history to Deals with custom fields capturing original work-order numbers, call status, and technician IDs. Original create dates, owner assignments, and timestamps are preserved in custom datetime fields since Freshsales overwrites CreatedAt at migration time. Automations, billing rate matrices, and pricing rules do not migrate — those must be rebuilt as Freshsales workflows or reconfigured manually.
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 WennSoft object lands in Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
WennSoft
Customer
Freshsales
Account + Contact
1:1WennSoft Customer records map directly to Freshsales Accounts (business entity). Primary contact within the Customer record maps to a Freshsales Contact linked via AccountId lookup. Additional contact roles within WennSoft Customer are surfaced as Freshsales Contact records under the same Account.
WennSoft
Location
Freshsales
Account Address Fields + Contact Address Fields
1:1WennSoft Location records attach to Customers and store site-level addresses, cross-references, and notes. FlitStack migrates the primary location address into Freshsales Account address fields and secondary locations into custom address fields on the Account or linked Contact records for multi-site visibility.
WennSoft
Equipment
Freshsales
Product (or Custom Equipment Object on Enterprise)
1:1WennSoft Equipment records hold serial numbers, model info, install dates, and maintenance history. These map to Freshsales Products (Name, SKU, unit_price) with custom fields capturing original Equipment ID, install_date, and warranty_expiry. On Enterprise, a custom Equipment module stores full maintenance history as related records.
WennSoft
Service Call
Freshsales
Deal + Task (Custom Fields)
1:1WennSoft Service Call records represent individual field visits tied to customers and equipment. FlitStack creates a Freshsales Deal per customer (or per contract) and writes Service Call details — call number, status, call_type, problem_description — into custom fields on the Deal. Each individual visit can surface as a linked Task.
WennSoft
Work Order
Freshsales
Deal (Custom Fields) + Task
1:1WennSoft Work Orders are detailed job documents with line items, labor hours, and materials. FlitStack maps Work Order summary data (work_order_number, scheduled_date, status, total_cost) to custom fields on a Freshsales Deal. Line-item detail can map to Deal Products if the structure parallels Freshsales product-line model, or remain in a custom Work_Order_Detail__c field as JSON for reference.
WennSoft
Employee / Technician
Freshsales
Freshsales User (lookup) + Contact
1:1WennSoft Employee records are internal users who own Service Calls and Work Orders. FlitStack resolves each Employee by email address against Freshsales Users and creates a Contact record for employees who are also customer contacts. Unresolved employees are flagged for admin review before migration.
WennSoft
Time Entry
Freshsales
Task (Custom Fields)
1:1WennSoft Time Entries track labor hours against Work Orders. FlitStack maps each time_entry record to a Freshsales Task with custom fields capturing hours_worked, labor_rate, and billable_amount. Original timestamps and technician ID are preserved in custom datetime fields for reporting continuity in Freshsales. Billable vs. non-billable flags map to Task status or custom pick-list fields to maintain time-tracking categorization across the migration.
WennSoft
Invoice
Freshsales
Deal (Custom Fields)
1:1WennSoft Invoice records close Work Orders and record billing. FlitStack migrates invoice_number, invoice_date, total_amount, and payment_status into custom fields on the parent Freshsales Deal. Financial transaction history is preserved as a reference-only custom field since Freshsales is not a billing system.
WennSoft
Custom Fields (GP-based)
Freshsales
Custom Fields on CRM Objects
1:1WennSoft supports custom fields on most record types via GP's Dexterity-based schema. FlitStack creates equivalent custom fields on Freshsales CRM objects — Account, Contact, Deal, Product — using the Enterprise custom-field allowance or the 2-field limit on lower plans, prioritizing the most business-critical custom properties.
WennSoft
Attachments / Documents
Freshsales
Freshsales Files
1:1WennSoft stores document attachments on Service Calls, Work Orders, and Equipment records. FlitStack re-uploads each file to Freshsales Files linked to the corresponding Account, Contact, Deal, or Product record. File size limits (Freshsales default 25MB per file) are respected; larger files are flagged for manual handling.
WennSoft
Lead (if any in WennSoft)
Freshsales
Freshsales Lead
1:1If WennSoft stores prospect or sales lead records in a custom GP table, FlitStack maps them to Freshsales Leads with standard fields (name, email, phone, status, source) and preserves any custom fields. Leads without an assigned customer become unassigned Freshsales Leads for follow-up.
WennSoft
Product / Parts Inventory
Freshsales
Freshsales Product
1:1WennSoft inventory parts used in Work Orders map to Freshsales Products with Name, SKU, unit_price, and stock_quantity fields. Part descriptions map to Product Description. Freshsales does not have native inventory management — parts usage on Work Orders is tracked via custom fields or Deal Products.
| WennSoft | Freshsales | Compatibility | |
|---|---|---|---|
| Customer | Account + Contact1:1 | Fully supported | |
| Location | Account Address Fields + Contact Address Fields1:1 | Fully supported | |
| Equipment | Product (or Custom Equipment Object on Enterprise)1:1 | Fully supported | |
| Service Call | Deal + Task (Custom Fields)1:1 | Fully supported | |
| Work Order | Deal (Custom Fields) + Task1:1 | Fully supported | |
| Employee / Technician | Freshsales User (lookup) + Contact1:1 | Fully supported | |
| Time Entry | Task (Custom Fields)1:1 | Fully supported | |
| Invoice | Deal (Custom Fields)1:1 | Fully supported | |
| Custom Fields (GP-based) | Custom Fields on CRM Objects1:1 | Fully supported | |
| Attachments / Documents | Freshsales Files1:1 | Fully supported | |
| Lead (if any in WennSoft) | Freshsales Lead1:1 | Fully supported | |
| Product / Parts Inventory | Freshsales Product1: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
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Audit WennSoft data model and map to Freshsales CRM objects
FlitStack extracts the full WennSoft schema from your GP-based database — Customer, Location, Equipment, Service Call, Work Order, Employee, Time Entry, Invoice records and all custom fields. We produce a mapping plan showing which WennSoft record types map to Freshsales Accounts, Contacts, Deals, Products, and Tasks, and which require custom fields or custom modules. Custom-field budget is allocated by priority on Growth and Pro plans.
Resolve WennSoft employees to Freshsales users by email
Technician and employee ownership from WennSoft Service Calls and Work Orders must map to Freshsales User records. FlitStack attempts email-match resolution against your Freshsales user list. Employees without matching Freshsales accounts are flagged before migration begins; your admin must provision Freshsales users for all technicians or assign a fallback owner account to ensure no migrated Service Call or Work Order lands without a Freshsales owner. This prevents orphaned Deal records and maintains service accountability across the migrated dataset.
Build Freshsales custom fields and modules before data migration
Before records move, Freshsales custom fields (Source_System_ID__c, Original_Create_Date__c, Call_Type__c, Work_Order_No__c, etc.) and the optional Equipment custom module are created in Freshsales using the Enterprise custom-field budget. On Growth and Pro plans, only the highest-priority custom fields are created — the migration plan explicitly documents which properties migrated and which are held for manual re-entry after migration. This pre-construction step ensures the Freshsales schema is ready to receive WennSoft data without truncation or data loss on import.
Run sample migration with field-level diff
A representative slice — typically 100–500 records spanning 10 customers, 5 equipment items, 20 service calls, and 10 work orders — migrates first. FlitStack generates a field-level diff comparing source WennSoft values to Freshsales destination fields so you can verify equipment-to-product mapping, work-order field translation, and owner resolution before the full run commits. The sample migration also validates API connection stability, rate-limit handling, and attachment re-upload integrity across the chosen record types.
Execute full migration with delta-pickup and audit log
Full migration runs with Freshsales API respecting per-hour rate limits (1,000–5,000/hour by plan). A delta-pickup window (24–48 hours) captures any WennSoft records created or modified during cutover so Freshsales reflects the final state at go-live. Every operation is logged — source record ID, destination record ID, timestamp, and operator — creating a full audit trail for compliance and reconciliation. One-click rollback is available if post-migration validation uncovers unexpected field mappings or missing records. Attachments and files are re-uploaded to Freshsales Files linked to the corresponding CRM records.
Platform deep dives
WennSoft
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 Freshsales.
Object compatibility
3 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 Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your WennSoft to Freshsales 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 Freshsales
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.