CRM migration
Field-level mapping, validation, and rollback between Olqan and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Olqan
Source
Salesforce Sales Cloud
Destination
Compatibility
11 of 15
objects map 1:1 between Olqan and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from Olqan to Salesforce is a structural migration that separates a unified all-in-one workspace into its component CRM, project management, and service objects. Olqan stores Contacts, Companies, Deals, Projects, Tasks, Employees, Time Logs, Invoices, and Tickets in a single platform; Salesforce distributes these across Sales Cloud, Experience Cloud (for employee records), and optional Service Cloud. We extract each object class from Olqan's export, resolve dependencies (Accounts before Contacts, Opportunities before Line Items), and load into the corresponding Salesforce objects. Olqan's Deals map to Opportunities with pipeline stage name translation; Olqan's Employees map to Contacts with a custom department field since Salesforce has no native HR module; Invoices map to custom Invoice records or ContentDocument-stored PDFs with a custom header. Custom fields on every object migrate to Salesforce custom properties. We do not migrate Olqan automations, project templates, or HR workflows; we deliver a written inventory for the customer's admin to rebuild in Salesforce Flow or an AppExchange solution.
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 Olqan 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.
Olqan
Contact
Salesforce Sales Cloud
Contact
1:1Olqan CRM Contacts map directly to Salesforce Contact. The standard fields (name, email, phone, company association, lifecycle stage, owner) transfer to their Salesforce equivalents. We resolve the Olqan company_id to the Salesforce AccountId via a lookup table built during the Account migration phase. Any contact without a matching Account is flagged in the reconciliation report for the admin to address before final cutover.
Olqan
Company
Salesforce Sales Cloud
Account
1:1Olqan Companies map to Salesforce Account. The company name becomes Account Name; address, industry, and size map to standard Account fields. The domain field from Olqan populates Account Website as the dedupe key. Account is created before Contact migration so that AccountId references are satisfied at the moment of Contact insert, avoiding orphaned contact records.
Olqan
Deal
Salesforce Sales Cloud
Opportunity
1:1Olqan Deals map to Salesforce Opportunity. The deal value and currency transfer to Amount and CurrencyIsoCode; pipeline stage label from Olqan maps to the Salesforce StageName picklist value in the target Sales Process. We create a Salesforce Record Type per Olqan pipeline during schema design so that stage values remain scoped per business line. Closed-Lost and Closed-Won dates transfer to CloseDate.
Olqan
Deal Stage / Pipeline
Salesforce Sales Cloud
StageName + Record Type + Sales Process
lossyEach Olqan deal pipeline becomes a Salesforce Record Type on Opportunity with a corresponding Sales Process that defines the valid StageName values and their probability percentages. Stage probability percentages round to the nearest integer Salesforce allows. If Olqan pipeline stage names are not valid Salesforce picklist values, we create new stage entries in the target org's Sales Process before migration.
Olqan
Project
Salesforce Sales Cloud
Project (standard) or Custom Project object
1:1Olqan Projects migrate to Salesforce standard Project object (available with Salesforce Field Service or an AppExchange project management app) or to a custom Project__c object if the destination org has no native project license. We preserve the project name, description, start and end dates, status, and assignees. Milestone records in Olqan become Salesforce Milestones or custom milestone__c records depending on the destination schema.
Olqan
Task (within Projects)
Salesforce Sales Cloud
Task
1:1Olqan Tasks nested within Projects migrate to Salesforce Task records linked to the parent Project via WhatId. Task title, description, assignee (resolved via User email match), due date, and status all transfer. Parent-child task nesting in Olqan is preserved via a custom parent_task__c lookup or by setting the Salesforce native Subtask flag. Independent Tasks outside of Projects map to standalone Salesforce Tasks without a WhatId.
Olqan
Time Log
Salesforce Sales Cloud
Time Sheet / Time Sheet Entry or Custom Object
1:1Olqan Time Logs (associated with Tasks, Projects, or Employees) map to Salesforce Time Sheet and Time Sheet Entry records if the destination org has Field Service or a project app license. Otherwise, time log data migrates to a custom Time_Log__c object with fields for hours, date, billable flag, and linked entity references. The linked entity reference (task or project) resolves to the Salesforce Task or Project ID at migration time.
Olqan
Employee
Salesforce Sales Cloud
Contact (with custom fields)
1:manyOlqan Employees (job title, department, start date, contact details, manager hierarchy) have no native Salesforce equivalent since Salesforce has no built-in HR module. We map Employee records to Salesforce Contact with a custom field employee_type__c set to 'Internal' to distinguish from customer Contacts. Reporting relationships and manager hierarchy preserve in the org structure as Salesforce Role Hierarchy or a custom reporting_chain__c field. If the customer licenses an AppExchange HR app post-migration, the Employee records are already in the correct object class for re-assignment.
Olqan
Invoice
Salesforce Sales Cloud
Custom Invoice__c object or ContentDocument PDF
1:1Olqan Invoice header data (invoice number, line items, totals, status, payment terms) has no native Salesforce equivalent. We create a custom Invoice__c object with fields for invoice number, issue date, due date, total amount, status, and line item data (custom Invoice_Line_Item__c child object or a JSON blob in a long-text field depending on complexity). Historical paid invoices preserve their original amounts and dates as read-only records. If Salesforce Billing is not in scope, PDF attachments from Olqan migrate as ContentDocument records linked to the parent Invoice__c.
Olqan
Ticket
Salesforce Sales Cloud
Case (requires Service Cloud)
1:1Olqan Tickets (customer association, agent assignment, status, priority, conversation threads) map to Salesforce Case if the destination org includes Service Cloud. Ticket pipeline maps to Case Record Type; ticket status and priority map to Case Status and Priority picklists. Conversation threads migrate as EmailMessage records linked to the Case. If Service Cloud is not licensed in the destination, tickets are mapped to a custom Ticket__c object or documented for Service Cloud activation as a separate scope.
Olqan
Custom Field
Salesforce Sales Cloud
Custom Field
lossyOlqan custom fields on Contacts, Companies, Deals, Projects, Tasks, Employees, and Tickets migrate to Salesforce custom fields of equivalent data type. We detect custom field labels, API names, and data types during discovery, then pre-create the Salesforce custom field schema (including any dependencies on picklists, formulas, or validation rules) before data import. Custom field values that do not fit Salesforce's data model (e.g., complex nested arrays) store in a catch-all long-text migration_notes__c field.
Olqan
User / Owner
Salesforce Sales Cloud
User
1:1Olqan Users and Owners referenced on Contacts, Companies, Deals, Projects, Tasks, and Tickets resolve by email address match against the Salesforce destination org's User table. Owners without a matching Salesforce User enter a reconciliation queue; the customer's admin provisions missing Users before record import resumes. Inactive Olqan users map to Salesforce Users with an IsActive flag set accordingly.
Olqan
Attachment
Salesforce Sales Cloud
ContentDocument (via ContentVersion)
1:1File attachments on Deals, Projects, Tasks, Tickets, and Invoices migrate as Salesforce ContentDocument records via ContentVersion upload. We preserve original filename, upload date, and association to the parent record via ContentDocumentLink. Attachments exceeding Salesforce's 25 MB per file limit are chunked or flagged for the customer to store externally with a link stored in Salesforce. Unsupported file types (executables, certain legacy formats) are logged and excluded from migration.
Olqan
Note
Salesforce Sales Cloud
Note
1:1Olqan Notes (text entries on Deals, Contacts, Projects, or Tasks) migrate to Salesforce Note records linked via ContentDocumentLink to the parent record. Note body transfers as rich text; image attachments within notes migrate as separate ContentDocument records. We preserve the note creation date as the Salesforce Note CreatedDate for chronological ordering on the activity timeline.
Olqan
Olqan Integration / Automation
Salesforce Sales Cloud
Written Inventory (no code migration)
lossyOlqan automations, workflow rules, and cross-module automations do not migrate as code to Salesforce Flow because the automation models differ structurally. We audit every active automation in Olqan and deliver a written inventory documenting each rule's trigger, conditions, actions, and a recommended Salesforce Flow equivalent. The customer's admin or a Salesforce partner rebuilds automations post-migration. This inventory is delivered as part of the standard migration handoff package.
| Olqan | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Deal Stage / Pipeline | StageName + Record Type + Sales Processlossy | Fully supported | |
| Project | Project (standard) or Custom Project object1:1 | Fully supported | |
| Task (within Projects) | Task1:1 | Fully supported | |
| Time Log | Time Sheet / Time Sheet Entry or Custom Object1:1 | Fully supported | |
| Employee | Contact (with custom fields)1:many | Fully supported | |
| Invoice | Custom Invoice__c object or ContentDocument PDF1:1 | Fully supported | |
| Ticket | Case (requires Service Cloud)1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| User / Owner | User1:1 | Fully supported | |
| Attachment | ContentDocument (via ContentVersion)1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Olqan Integration / Automation | Written Inventory (no code migration)lossy | 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.
Olqan gotchas
No mobile app for iOS or Android
Limited third-party integration ecosystem
Mixed-object exports require post-processing
Newer platform with evolving feature set
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
Discovery and module inventory
We audit the Olqan account across its CRM, Project, HR, Finance, and Ticketing modules. For each module we count record volumes by object class, identify custom fields, audit active automations and workflow rules, and assess export capability by module. We also confirm the destination Salesforce org's licensed products (Sales Cloud only, Sales Cloud plus Service Cloud, or full Salesforce Platform) because this determines whether Tickets map to Case or a custom object, whether Projects use the standard object or a custom schema, and whether Employee records need a custom HR object design. The discovery output is a written migration scope with record counts, object mapping draft, and a Salesforce edition recommendation.
Schema design and Salesforce destination setup
We design the destination schema in Salesforce. This includes creating any missing custom objects (Invoice__c, Employee__c if needed), custom fields on standard objects (hs_original_lifecycle__c, olqan_id__c as a cross-system reference, employee_type__c), Sales Processes and Record Types per Olqan pipeline, and picklist values for stage names that do not yet exist in Salesforce. Schema is deployed to a Salesforce Sandbox first for validation before any production migration step begins.
Mixed-module export parsing and data quality check
Olqan's export is parsed into separate object-class files: Contacts.csv, Companies.csv, Deals.csv, Projects.csv, Tasks.csv, Employees.csv, TimeLogs.csv, Invoices.csv, Tickets.csv, Attachments.csv. We run a data quality check on each file: detecting duplicates via email (Contacts), company name (Accounts), deal ID (Opportunities); flagging records with missing required fields; and identifying any object-class ambiguity that requires manual classification. This phase may take up to five days depending on export volume and the presence of mixed-object files.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume. The customer's admin or RevOps lead reconciles record counts for each object, spot-checks 25-50 records per object against the Olqan source, and validates that custom field values transferred correctly. Any field mapping corrections, stage name additions, or object-class reclassifications happen in this phase. Sign-off on the sandbox migration is required before production migration begins.
Owner reconciliation and User provisioning
We extract every distinct Olqan user referenced as an owner or assignee on Contacts, Companies, Deals, Projects, Tasks, and Tickets and match by email against the Salesforce destination org's User table. Olqan users without a matching Salesforce User enter a named reconciliation queue. The customer's Salesforce admin provisions any missing Users and confirms whether they should be active or inactive. This step is blocking: Salesforce requires OwnerId references on all standard objects, so User provisioning must complete before the production record migration phase.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Companies), Contacts (with AccountId resolved), Opportunities (with StageName mapped, AccountId and OwnerId resolved), Projects, Tasks (with WhatId resolved to parent Project), Employees (mapped to Contacts with custom fields), Time Logs (mapped to Time Sheet or custom object), Cases (from Tickets, if Service Cloud is licensed), Custom Invoice schema and records, Activity history and Notes via Bulk API 2.0, Custom Fields, Attachments via ContentVersion and ContentDocumentLink. Each phase emits a row-count reconciliation report before the next phase begins. We use the Salesforce Bulk API 2.0 with batch chunking and exponential backoff for all bulk inserts.
Cutover, validation, and automation rebuild handoff
We freeze Olqan writes during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We deliver the Olqan automation inventory document to the customer's admin team with a recommended Salesforce Flow equivalent for each rule. We support a one-week hypercare window to resolve any reconciliation issues raised by the customer's teams. We do not rebuild Olqan automations as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Olqan
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Olqan and Salesforce Sales Cloud.
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
Olqan: Not publicly documented.
Data volume sensitivity
Olqan 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 Olqan to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Olqan 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 Olqan
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.