CRM migration
Field-level mapping, validation, and rollback between EXACT and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
EXACT
Source
Freshsales
Destination
Compatibility
9 of 10
objects map 1:1 between EXACT and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
Exact is an ERP and accounting platform whose CRM capabilities are secondary to its financial-document and operations model. Freshsales is purpose-built for sales teams, with native leads, contacts, accounts, opportunities, and activity tracking. The migration challenge is structural: Exact stores contacts and companies within a financial-document context, while Freshsales models them as first-class CRM objects with lifecycle stages, contact scoring, and pipeline stages. FlitStack AI extracts CRM-relevant records from Exact — contacts, companies, deal records, and activities — translates the field names and data types into Freshsales' schema, creates any custom fields needed for Exact's custom properties, and loads everything via Freshsales' REST API with batch-size management to respect rate limits. Workflows, automations, and ERP-specific logic do not migrate and must be rebuilt in Freshsales. We deliver a field-level diff on a sample migration before committing the full run. During the delta-pickup window, your team continues entering data in Exact; FlitStack captures those new and modified records in a second migration pass to ensure no data is lost 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 EXACT 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.
EXACT
Contact
Freshsales
Lead / Contact
1:manyExact contacts do not have an inherent lifecycle stage. FlitStack routes each contact into Freshsales as either a Lead or a Contact based on a business rule you define — for example, contacts associated with closed won deals become Contacts; unengaged contacts become Leads. Email and name fields are preserved exactly; the split is the primary transformation at the object level.
EXACT
Company / Account
Freshsales
Account
1:1Exact stores business entities as companies or account records with address, phone, website, industry, and employee count fields. Freshsales' Account object accepts these fields directly. FlitStack maps Exact's company name to Account Name, domain to Website, and industry to the Industry pick-list with value-by-value mapping for standard industry terms.
EXACT
Deal / Document (sales-related)
Freshsales
Opportunity
1:1Exact tracks deal-value records within its financial-document model. Freshsales Opportunities use Name, Amount, Stage, Close Date, and OwnerId. FlitStack extracts the monetary value and document description from Exact's sales documents, maps them to the Opportunity object, and reconstructs the pipeline stage using a value-mapping you define for your sales process stages.
EXACT
Custom Field (on Contact)
Freshsales
Custom Field on Lead / Contact
1:1Exact custom fields on contacts — such as region codes, product interests, or segmentation flags — have no direct Freshsales equivalent. FlitStack creates matching custom fields in Freshsales (Lead and Contact objects) using the same data type (text, number, pick-list, date) and migrates values record-by-record, preserving the original field label for admin reference.
EXACT
Custom Field (on Deal)
Freshsales
Custom Field on Opportunity
1:1Exact custom properties on deal records — discount percentages, competitor references, procurement stage — do not exist in Freshsales' standard Opportunity schema. FlitStack creates custom fields on the Opportunity object in Freshsales and migrates values with type-aware mapping: percentages, currencies, and dates are preserved in their native formats.
EXACT
Document (notes and attachments)
Freshsales
Note / Attachment
1:1Exact stores document notes and file attachments against records. FlitStack extracts note body text and file attachments and loads them into Freshsales Notes and Files respectively. File size limits of 25MB per file are enforced; larger files are flagged for manual re-upload to Freshsales Files.
EXACT
Phone Call Log
Freshsales
Sales Activity / Task
1:1Exact records phone interactions in activity logs. Freshsales tracks calls as Sales Activities or Tasks with Type='Call', preserving original timestamps, duration, and owner. Subject and notes are mapped from Exact's call log description fields. Call recordings stored in Exact are flagged as files requiring re-upload.
EXACT
Email Interaction Log
Freshsales
Sales Activity / Task
1:1Exact email tracking logs map directly to Freshsales Sales Activities with Type='Email', preserving the original sent date, recipient, subject, and body content for each interaction. Freshsales' built-in email tracking features replace Exact's email logging once the migration is complete, so your team transitions to native Freshsales email tools post-migration. All historical email content remains searchable in Freshsales after the transition.
EXACT
Owner / User
Freshsales
User (Owner)
1:1Exact users who own records are matched to Freshsales users by email address. FlitStack resolves each Exact owner to a Freshsales User ID before migrating any record with an OwnerId. Unmatched owners are flagged before migration — your team either provisions a Freshsales account or assigns records to a fallback owner.
EXACT
Project
Freshsales
Custom Object / Deal
1:1Exact projects do not have a native Freshsales equivalent — Freshsales is a CRM, not a project management system. FlitStack offers two paths: recreate project-level data as Freshsales Opportunities with a custom project-reference field, or flag the records as non-migratable and recommend a project management tool alongside Freshsales.
| EXACT | Freshsales | Compatibility | |
|---|---|---|---|
| Contact | Lead / Contact1:many | Fully supported | |
| Company / Account | Account1:1 | Fully supported | |
| Deal / Document (sales-related) | Opportunity1:1 | Fully supported | |
| Custom Field (on Contact) | Custom Field on Lead / Contact1:1 | Fully supported | |
| Custom Field (on Deal) | Custom Field on Opportunity1:1 | Fully supported | |
| Document (notes and attachments) | Note / Attachment1:1 | Fully supported | |
| Phone Call Log | Sales Activity / Task1:1 | Fully supported | |
| Email Interaction Log | Sales Activity / Task1:1 | Fully supported | |
| Owner / User | User (Owner)1:1 | Fully supported | |
| Project | Custom Object / 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.
EXACT gotchas
Strict API rate limits gate bulk extraction
Exact Globe vs Exact Online feature drift
Workflow and signalling rules are not exportable
OAuth token lifecycle requires careful handling
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
Inventory Exact CRM data and design the Freshsales schema
FlitStack connects to Exact via API using read-only credentials and inventories all CRM-adjacent records: contacts, companies, deal documents, activities, and custom fields. We produce a Data Inventory Report listing record counts per object, custom field definitions, and any data-quality flags (duplicate emails, missing required fields). From this, we design the Freshsales schema: which custom fields to create, which pipeline and stages to set up, and what lifecycle stage rules to apply. This report is the planning document your Freshsales admin uses to configure the destination account before data arrives.
Resolve owners and provision Freshsales users
Exact owner records are matched to Freshsales users by email address. FlitStack generates an Owner Resolution Report listing each Exact owner, their email, and the corresponding Freshsales user status (found, not found, or needs provisioning). Your team creates Freshsales user accounts for any unmatched owners before migration. No record migrates without a resolved owner — records belonging to unresolvable owners are assigned to a designated fallback Freshsales user and flagged in the post-migration audit log.
Export Exact data in batches respecting API rate limits
FlitStack exports Exact data in batches of 200 records per API call, using exponential back-off between requests to respect Exact's concurrent request limits. Large datasets (50k+ records) are split across multiple export windows. CRM-relevant records — contacts, companies, deal documents, activities, and attachments — are extracted with original timestamps, owner references, and custom field values intact. The export phase runs read-only and does not modify your Exact account. All export operations are logged with timestamps, record counts, and error rates.
Run a sample migration with field-level diff
A representative slice of 100–500 records migrates to Freshsales first — covering contacts, accounts, opportunities, and a sample of activities. FlitStack generates a field-level diff comparing source values against destination field values for every mapped property. You verify lifecycle stage routing, pipeline stage mapping, owner resolution, and custom field preservation before the full run proceeds. Any mapping corrections are made to the migration plan before the full dataset is touched. This step is the checkpoint that prevents post-migration data surprises.
Execute full migration with delta-pickup cutover
The full migration loads into Freshsales using batch inserts of 50 records per API call, respecting Freshsales' rate limits. A delta-pickup window of 24–48 hours runs concurrently: any records created or modified in Exact during the cutover are captured in a second, smaller migration pass. FlitStack produces a Migration Audit Log listing source record ID, destination record ID, timestamp, and operation type for every record. One-click rollback reverts the Freshsales org to its pre-migration state if reconciliation reveals critical issues.
Platform deep dives
EXACT
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 EXACT 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
EXACT: 60 API calls per minute AND 5,000 API calls per day, per app per company. Signalled via X-RateLimit-Minutely-Remaining/Reset and X-RateLimit-Daily-Remaining/Reset headers. HTTP 429 returned on overrun..
Data volume sensitivity
EXACT exposes a bulk API — large-volume migrations stream efficiently.
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 EXACT to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your EXACT 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 EXACT
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.