CRM migration
Field-level mapping, validation, and rollback between Ascora and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Ascora
Source
Freshsales
Destination
Compatibility
12 of 12
objects map 1:1 between Ascora and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
Ascora is a field service management platform built for trade businesses (plumbers, electricians, HVAC, roofing) that organizes customers, job sites, work orders, quotes, invoices, and equipment in one connected system. Freshsales is a CRM that structures data around Leads, Contacts, Accounts, Deals, and Products with built-in AI scoring and sales sequences. These platforms share a customer-centric record model but diverge sharply on operational depth: Ascora tracks multi-site assets, custom job forms, and supplier invoicing that has no native equivalent in Freshsales. FlitStack AI maps Ascora customers to Freshsales Accounts and Contacts, job records to Deals or Tasks based on status, quote line items to Deal Products, and site/equipment data to custom fields on the Account or a custom Equipment object. Custom job-form fields migrate as Freshsales custom fields (subject to plan limits: Sprout has none, Blossom has 10, Garden/Estate/Forest have 300). Workflows, automations, and Xero integrations built in Ascora do not migrate — those must be rebuilt in Freshsales or reconnected via Freshworks Marketplace. We run migrations over Freshsales REST API with per-hour rate limits that vary by plan (Growth: 1,000/hour, Pro: 2,000/hour, Enterprise: 5,000/hour) and a delta-pickup window to capture any records modified during cutover.
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 Ascora 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.
Ascora
Customer
Freshsales
Account
1:1Ascora customer records map directly to Freshsales Accounts. Business name, address, phone, and website transfer as standard Account fields. Multi-site customers in Ascora generate one primary Account in Freshsales with site details stored in custom fields or related Contact records.
Ascora
Customer Contact
Freshsales
Contact
1:1Each contact person associated with an Ascora customer maps to a Freshsales Contact linked by AccountId. Primary contact role (site manager, accounts payable, decision maker) migrates as a custom field on Contact since Freshsales does not have a native role-label system beyond Contact titles.
Ascora
Site
Freshsales
Account Custom Fields + Contact
1:1Ascora sites (physical locations with addresses, site-specific notes, and equipment lists) translate to a combination of Account-level custom fields (site address, site type, site status) and a related Contact record for the site manager. Sites with heavy equipment lists become a custom Equipment object in Freshsales linked to the Account.
Ascora
Job
Freshsales
Deal / Task
1:1Active and quoted jobs in Ascora map to Freshsales Deals — deal name uses the job reference number and description, deal amount maps from job value, deal stage maps from job status (Quoted, In Progress, Completed, Invoiced). Historical jobs closed more than 90 days ago may map to Tasks on the related Account for activity audit rather than as open Deals.
Ascora
Quote
Freshsales
Deal + Product
1:1Ascora quotes with line items become Freshsales Deals with associated Deal Products. Each quote line item (item description, quantity, unit price, tax) creates a Product record in Freshsales (if not already present) and links to the Deal. Quote status (Draft, Sent, Accepted, Declined) maps to a custom Deal field since Freshsales Deal stages are pipeline-specific.
Ascora
Invoice
Freshsales
Task / Note on Account
1:1Ascora invoices carry financial records that Freshsales does not natively track. Invoices migrate as Notes on the related Account with invoice number, date, amount, and status preserved. For full financial history, teams typically maintain the Xero or QuickBooks integration and use Freshsales for sales pipeline only.
Ascora
Equipment
Freshsales
Custom Object (Equipment) + Product
1:1Ascora equipment records (brand, model, serial number, install date, maintenance schedule) become a Freshsales custom object (Equipment) with a lookup relationship to Account. Equipment type and status become custom pick-list fields. For equipment sold as products, a corresponding Product record is also created in Freshsales.
Ascora
Custom Form Field (Job)
Freshsales
Custom Field on Deal / Account
1:1Ascora custom form fields on jobs (safety checklist responses, specific trade data, compliance fields) require Freshsales custom fields created before migration. Blossom plan limits to 10 custom fields — Garden and above support up to 300. We create custom fields during the schema setup phase and map each Ascora field to its Freshsales counterpart by type (text to text, number to number, date to date).
Ascora
Operator / Technician
Freshsales
User / Custom Field on Deal
1:1Ascora operator and technician assignments on jobs map to Freshsales User records by email matching. Unmatched operators are flagged and assigned to a fallback user or preserved as a custom Deal field (Assigned_Technician__c). Freddy AI-powered assignments in Freshsales can then be applied post-migration.
Ascora
Supplier Bill / Inventory
Freshsales
Note / Custom Field
1:1Ascora supplier bills and inventory tracking do not have a Freshsales equivalent. These records migrate as Notes on the related Account for audit reference. Material cost tracking on jobs preserves as a custom field on the Deal if needed for margin reporting.
Ascora
Lead (inbound enquiry via Ascora)
Freshsales
Lead
1:1Inbound enquiries captured in Ascora's lead tracking map to Freshsales Leads directly. Lead source, name, contact details, and enquiry description transfer as standard Lead fields. If the enquiry converted to a job in Ascora, the resulting Deal links back to the original Lead via the Deal's Contact or Account.
Ascora
Attachment / Photo (Job)
Freshsales
File on Account / Deal
1:1Job photos and attachments from Ascora re-upload to Freshsales Files attached to the corresponding Account or Deal record. File size limits (Freshsales caps at 25MB per file) are enforced during migration. Inline images in notes are extracted and re-hosted as Freshsales Files.
| Ascora | Freshsales | Compatibility | |
|---|---|---|---|
| Customer | Account1:1 | Fully supported | |
| Customer Contact | Contact1:1 | Fully supported | |
| Site | Account Custom Fields + Contact1:1 | Fully supported | |
| Job | Deal / Task1:1 | Fully supported | |
| Quote | Deal + Product1:1 | Fully supported | |
| Invoice | Task / Note on Account1:1 | Fully supported | |
| Equipment | Custom Object (Equipment) + Product1:1 | Mapping required | |
| Custom Form Field (Job) | Custom Field on Deal / Account1:1 | Fully supported | |
| Operator / Technician | User / Custom Field on Deal1:1 | Fully supported | |
| Supplier Bill / Inventory | Note / Custom Field1:1 | Fully supported | |
| Lead (inbound enquiry via Ascora) | Lead1:1 | Fully supported | |
| Attachment / Photo (Job) | File on Account / Deal1: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.
Ascora gotchas
No documented public REST API with published rate limits
Custom Forms use Word template field codes with no structured schema export
Xero two-way sync creates reconciliation risk during migration
Excel export is the primary bulk data extraction mechanism
No pricing transparency — plan tiers are not publicly documented
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 Ascora data model and Freshsales plan limits
We connect to Ascora via API token and export a full inventory of all object types, record counts, custom form field definitions, and relationship structures. Simultaneously, we read the destination Freshsales account to confirm the plan tier and custom field availability. This audit produces a migration scope document that identifies every Ascora object, counts custom fields against the Freshsales plan cap, and lists any objects that require custom object creation (Equipment) or note-based migration (Invoice, Supplier Bill). No data moves until this scope is signed off.
Build Freshsales schema: custom objects, custom fields, and pipeline setup
Before any data lands in Freshsales, we create the target schema. This means creating the Equipment custom object with all required fields and an AccountId lookup, creating custom fields on Deal and Account for Ascora fields with no direct Freshsales equivalent (Trade_Type__c, Customer_Type__c, Quote_Status__c, Original_Create_Date__c, Source_Job_ID__c), and configuring Freshsales Deal pipelines and stages that map from Ascora job statuses. We also configure the lead-to-contact-account field mapping for any Ascora leads that will convert in Freshsales.
Resolve operators and users by email match
Ascora operator and technician assignments on jobs are resolved against Freshsales user accounts by email address. Any operator in Ascora who does not have a corresponding Freshsales user is flagged before migration. Your team either creates Freshsales user accounts for those operators or we assign their records to a fallback Freshsales user. No Deal or Task lands in Freshsales without a resolved owner — this prevents orphaned records and ensures the Freshsales assignment reporting works from day one.
Run sample migration with field-level diff
We run a test migration on a representative slice — typically 100-500 records spanning customers with multiple sites, jobs in various statuses, quotes with line items, and a sample of equipment records. The field-level diff compares every mapped Ascora field against its Freshsales destination value, highlighting missing custom fields, value-mapping mismatches in pick-lists, and any records that failed to resolve an owner or AccountId. You review the diff and approve the mapping before the full run commits.
Execute full migration with delta-pickup and rollback plan
The full migration runs against Freshsales REST API, respecting per-hour rate limits for the destination plan tier. We sequence writes to maintain foreign-key integrity: Accounts first, then Contacts, then Deals with their Products, then Equipment custom object records. A delta-pickup window of 24-48 hours captures any records created or modified in Ascora during the cutover period. Every operation is logged in an audit trail, and one-click rollback reverts the Freshsales account to its pre-migration state if reconciliation identifies critical data discrepancies.
Platform deep dives
Ascora
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Ascora and Freshsales.
Object compatibility
2 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
Ascora: Not publicly documented.
Data volume sensitivity
Ascora 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 Ascora to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Ascora 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 Ascora
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.