CRM migration
Field-level mapping, validation, and rollback between EXACT and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
EXACT
Source
Salesforce Sales Cloud
Destination
Compatibility
11 of 11
objects map 1:1 between EXACT and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
48–72 hours
Overview
Exact Software organizes business data around GL accounts, cost centers, projects, and financial documents — an accounting-first model that does not provide native pipeline management, lead scoring, or opportunity-stage tracking. Salesforce Sales Cloud separates Leads from Contacts, ties every Contact to an Account via AccountId, and tracks deal progress through Opportunity Stage pick-lists scoped by Record Type. Teams migrate from Exact to Salesforce when sales process complexity exceeds what an accounting-centric system can manage — typically when they need multi-stage pipeline visibility, forecasting by probability, and automation that runs on CRM events rather than financial transactions. We map Exact Contacts to Salesforce Contacts, Exact Accounts to Salesforce Accounts, and Exact Projects (which represent deliverables, contracts, or work orders) to Salesforce Opportunities with a Project_Reference__c field preserving the Exact project identifier. Quotations and order history migrate as line items on custom Quotation__c objects or as custom fields on Opportunity. Activity logs and document attachments re-upload to Salesforce Files and Chatter. All owner resolution happens by email match against Salesforce users before records land.
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 Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
EXACT
Contact
Salesforce Sales Cloud
Contact
1:1Direct map from Exact Contact to Salesforce Contact. Every Exact Contact requires an existing Salesforce AccountId (via Account lookup) — if the Contact's primary company is not yet an Account in Salesforce, it is resolved against the Exact Account record first. Owner resolved by email match against Salesforce users; unmatched owners flagged before migration runs.
EXACT
Account
Salesforce Sales Cloud
Account
1:1Direct map from Exact Account to Salesforce Account. Exact stores company name, address, industry, and employee count — these map to Account.Name, BillingAddress, Industry, and NumberOfEmployees. Exact's parent-account hierarchy maps to Salesforce ParentId; circular references flagged during validation. If your Exact implementation uses additional account classification fields, these can be mapped to custom Account fields post-migration.
EXACT
Project
Salesforce Sales Cloud
Opportunity
1:1Exact Projects (deliverables, work orders, long-term contracts) map to Salesforce Opportunities. The project name becomes Opportunity.Name; project start and end dates map to CloseDate and a custom Project_Start_Date__c field. Project budget maps to Opportunity.Amount. Exact's project status (active/closed) maps to Opportunity.StageName via value mapping: active projects → 'Prospecting' or 'Value Proposition' by default, closed-won → 'Closed Won', closed-lost → 'Closed Lost'.
EXACT
Project
Salesforce Sales Cloud
Opportunity
1:1Exact's ProjectID is stored as Source_System_Project_ID__c on the Salesforce Opportunity for traceability and delta-run de-duplication. This field is used to match Exact project changes during the delta-pickup window after the initial migration run. During delta-pickup, any projects modified or created in Exact after the initial extraction timestamp are identified by matching Source_System_Project_ID__c and loaded into Salesforce with updated field values.
EXACT
Quotation
Salesforce Sales Cloud
Quotation__c (Custom Object)
1:1Exact Quotations are financial documents with line items, unit prices, and totals. Since Salesforce has no native quotation object at base Sales Cloud, FlitStack creates a Quotation__c custom object with Quote_Number__c, Quote_Date__c, Total_Amount__c, and Status__c. Quotation line items migrate as Quote_Line_Item__c children with Product_Name__c, Quantity__c, Unit_Price__c, and Discount__c.
EXACT
Order
Salesforce Sales Cloud
Opportunity
1:1Exact Orders (confirmed sales linked to Quotations and Projects) map to Salesforce Opportunity records. The Opportunity.StageName advances to a post-sale stage (typically 'Proposal/Price Quote' or 'Negotiation/Review' per record type). The order number is preserved as Order_Number__c custom field for audit continuity.
EXACT
Invoice
Salesforce Sales Cloud
Opportunity
1:1Exact Invoices are financial documents without a native Salesforce equivalent — invoices are accounting records generated after Opportunity close. We preserve invoice data as Invoice_History__c custom fields on the related Opportunity: Invoice_Number__c, Invoice_Date__c, and Invoice_Amount__c. Full invoice line-item accounting does not migrate as it belongs in the ERP domain.
EXACT
Document (attachment)
Salesforce Sales Cloud
ContentDocument (Salesforce Files)
1:1Exact document attachments linked to Contact, Account, or Project records are downloaded and re-uploaded to Salesforce Files. The ContentDocument is linked to the target Salesforce record (Contact, Account, or Opportunity) via ContentDocumentLink. Files exceeding Salesforce's 25MB default per-file limit are flagged for manual handling.
EXACT
Cost_Center
Salesforce Sales Cloud
Custom Field on Account or Opportunity
1:1Exact Cost Centers represent internal financial divisions that may map to a Cost_Center__c custom field on Account or Opportunity depending on whether the division aligns to a customer Account or a project budget. If multiple Cost Centers apply per project, a custom junction object Cost_Center_Allocation__c is created.
EXACT
GL_Account
Salesforce Sales Cloud
No Salesforce Equivalent
1:1General Ledger accounts are an Exact accounting-layer construct with no meaningful mapping to Salesforce Sales Cloud objects. GL Account references are not migrated; they remain in Exact or the destination ERP and are not surfaced in the CRM layer. If your sales team requires visibility into GL codes for financial reporting, this data belongs in a downstream ERP integration rather than the CRM database.
EXACT
Activity Log / Note
Salesforce Sales Cloud
Task / Note
1:1Exact notes and document-change logs migrate as Salesforce Tasks (for dated activities) or Notes (for free-text records). Original timestamps and Exact owner email are preserved; owner resolved by email to Salesforce user. High-volume activity logs are batched to avoid Salesforce API rate limits during load.
| EXACT | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Account | Account1:1 | Fully supported | |
| Project | Opportunity1:1 | Fully supported | |
| Project | Opportunity1:1 | Fully supported | |
| Quotation | Quotation__c (Custom Object)1:1 | Fully supported | |
| Order | Opportunity1:1 | Fully supported | |
| Invoice | Opportunity1:1 | Fully supported | |
| Document (attachment) | ContentDocument (Salesforce Files)1:1 | Fully supported | |
| Cost_Center | Custom Field on Account or Opportunity1:1 | Fully supported | |
| GL_Account | No Salesforce Equivalent1:1 | Fully supported | |
| Activity Log / Note | Task / Note1: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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Inventory Exact data model and export readiness
Before any data moves, FlitStack connects to your Exact environment via API to inventory all active objects: Contacts, Accounts, Projects, Quotations, Orders, and any custom fields used across divisions. We verify API access, confirm your Exact subscription tier's export limits, and identify records with missing required fields (blank emails, orphaned projects with no linked Contact). This inventory produces a Data Readiness Report with record counts per object, duplicate flags, and a ranked list of migration risks before we write a single record to Salesforce.
Design Salesforce schema and pre-create custom objects
Exact's accounting-first data model requires Salesforce-side schema preparation before any data loads. We create the Quotation__c and Quote_Line_Item__c custom objects, any custom __c fields on Account, Contact, and Opportunity (Project_Reference__c, Invoice_Amount__c, Order_Number__c, etc.), and the Record Types needed if your Salesforce org uses multiple opportunity sales processes. This step produces a Salesforce Schema Plan document your admin can implement in a sandbox before the production migration run, ensuring validation rules and required fields do not block data loads.
Resolve owners and validate contact-account relationships
Exact does not have a Salesforce-style user model — owner assignment in Exact is internal user ID without email binding to Salesforce. FlitStack resolves Exact user IDs by email match against your Salesforce user list. Contacts whose primary company is an Exact Account without a Salesforce counterpart are flagged: your admin either pre-creates the Salesforce Account or approves a fallback (unassigned Account) rule. No Opportunity lands in Salesforce without an OwnerId; no Contact lands without an AccountId.
Run sample migration with field-level diff
A representative slice — typically 200–500 records spanning Accounts, Contacts, Opportunities, and Quotation__c entries — migrates first against your Salesforce sandbox or staging org. We generate a field-level diff report comparing Exact source values against Salesforce destination values for every mapped field. You review the diff to verify that Exact project statuses mapped to the correct Salesforce StageName values, that quotation totals appear on the Quotation__c records, and that owner resolution resolved the expected percentage of records. No full run commits until you sign off on the sample diff.
Execute full migration with delta-pickup and rollback plan
The full migration runs in sequenced order: Accounts first (for AccountId resolution), then Contacts, then Opportunities with project-field mapping, then Quotation__c records and line items, then Files and Notes. A delta-pickup window (24–48 hours after initial load) captures any Exact records modified or created during the cutover window. FlitStack generates a reconciliation report comparing record counts and field totals between Exact and Salesforce. An audit log captures every operation, and one-click rollback reverts the Salesforce org to its pre-migration state if reconciliation reveals unexpected discrepancies.
Platform deep dives
EXACT
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 EXACT and Salesforce Sales Cloud.
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
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your EXACT to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.