CRM migration
Field-level mapping, validation, and rollback between Cordis CRM and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Cordis CRM
Source
Freshsales
Destination
Compatibility
6 of 9
objects map 1:1 between Cordis CRM and Freshsales.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Migrating from Cordis CRM to Freshsales is a migration from a platform with limited documented export capability to one of the most transparent, well-documented SMB CRMs on the market. Cordis CRM organizes data around Profiles, Campaigns, and Task automation but does not publish API endpoints or data schemas publicly, requiring manual CSV extraction or coordination with Cordis support for data retrieval. We handle that extraction constraint upfront, normalize the exported data, and load Contacts, Companies, Deals, Tasks, Documents, and Custom Fields into Freshsales using its CSV import layer with support for up to 25,000 records per batch. Freshsales's Freddy AI, built-in phone and email, and tiered pricing starting at $9 per user per month make it a meaningful upgrade for teams that have outgrown Cordis's feature set or are paying for integrations that Freshsales includes natively. We do not migrate automations, sequences, or workflow logic; we deliver a written inventory of these for the customer's admin to rebuild in Freshsales.
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 Cordis CRM 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.
Cordis CRM
Contact Profile
Freshsales
Lead or Contact
1:manyCordis CRM contact profiles map to Freshsales Leads (unqualified prospects) or Contacts (qualified records attached to accounts). We survey the customer's Cordis instance during scoping to identify all active contact fields and determine the split rule based on the customer's pipeline stage definitions. Email address serves as the unique identifier for deduplication during Freshsales import, matching Freshsales's native import behavior.
Cordis CRM
Company
Freshsales
Account
1:1Cordis CRM company records map directly to Freshsales Accounts. Company name becomes the Account Name field, and any domain or website data maps to the Website field. We export the contact-to-company relationship graph and remap it using company-name matching in Freshsales so that contacts are linked to their parent accounts post-import.
Cordis CRM
Pipeline and Stage
Freshsales
Pipeline and Deal Stage
lossyCordis CRM pipeline stages migrate to Freshsales pipeline stages within the Deals module. Stage names and order are preserved, and any custom stage probability values map to Freshsales stage probability settings. We create the destination pipeline structure in Freshsales before importing any deal records to ensure stage assignments are valid at the time of import.
Cordis CRM
Deal
Freshsales
Deal
1:1Cordis CRM deal records map to Freshsales Deals within the appropriate pipeline. Deal amount, close date, owner, and associated contact and company links migrate. We resolve the Freshsales owner by email match against the User table, and we resolve the associated contact and account using the ID mapping tables generated during earlier import phases.
Cordis CRM
Task
Freshsales
Task
1:1Automated and manual tasks from Cordis CRM migrate to Freshsales Tasks with status, due date, priority, and owner preserved. Task descriptions and notes migrate as activity body text. Recurrence rules from Cordis do not carry forward; we flag recurring tasks in the reconciliation report for the customer's admin to reconfigure as Freshsales automation rules post-migration.
Cordis CRM
Campaign
Freshsales
Target List or Contact Segmentation
1:1Cordis CRM campaign records and campaign membership data migrate to Freshsales target lists or contact segments depending on the customer's segmentation strategy. Campaign status and type fields map to Freshsales target list properties. Active campaign memberships are preserved as segment membership so that marketing ops can continue targeting migrated groups.
Cordis CRM
Document
Freshsales
Attachment
1:1Cordis CRM documents linked to contact or company records migrate as Freshsales Attachments. We extract documents from the customer's export and re-associate them using record ID mapping tables. Version history is not guaranteed to export cleanly; we migrate the latest version and flag any records with multiple versions so the customer can decide whether to restore earlier versions manually post-migration.
Cordis CRM
Custom Field
Freshsales
Custom Field
lossyCordis CRM custom fields vary by customer instance and are not publicly documented. We survey the customer's instance during scoping to identify all active custom fields, infer data types from the exported values, and create matching custom fields in Freshsales before the data import phase. Custom field names and types must match exactly for Freshsales CSV import to succeed, per Freshworks support documentation.
Cordis CRM
Attachment
Freshsales
Attachment
1:1File attachments linked to Cordis CRM records (deals, contacts, companies) are extracted individually and re-associated in Freshsales using the record ID mapping tables generated during import. Filename preservation and original file formats are maintained during extraction and upload.
| Cordis CRM | Freshsales | Compatibility | |
|---|---|---|---|
| Contact Profile | Lead or Contact1:many | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Pipeline and Stage | Pipeline and Deal Stagelossy | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Campaign | Target List or Contact Segmentation1:1 | Fully supported | |
| Document | Attachment1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Attachment | Attachment1: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.
Cordis CRM gotchas
No documented public API for self-service bulk export
Google Workspace integration does not auto-export email history
Document version history may not export cleanly
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
Export request and data audit
We submit a scoped data export request to the customer, including all contacts, companies, deals, tasks, campaign memberships, documents, custom field values, and attachment references. If the export is available as a self-service CSV download, we proceed directly. If not, we coordinate with Cordis support for vendor-assisted export. We audit the export for field completeness, duplicate rate, and date ranges before proceeding, and we survey the customer's Cordis instance for any active custom fields that do not appear in the exported header.
Schema design and Freshsales field pre-creation
We design the destination schema in Freshsales based on the audited export. This includes creating all custom fields (matching names and inferred types from the Cordis export), setting up deal pipelines and stages matching the Cordis structure, creating target lists for campaign membership, and configuring the Lead versus Contact split rule based on the customer's pipeline stage definitions. Freshsales custom fields must be created before any CSV import runs.
Document and attachment extraction
We extract documents and attachments from the customer's Cordis instance and from any Google Drive folders accessible via the Google Workspace integration. We extract the latest version of each document and build a filename-to-record mapping table that links each document to its parent contact, company, or deal in Freshsales using the ID mapping generated during the import phases.
Data import in dependency order
We run the import in record-dependency order: Accounts (from Cordis companies) first, then Leads and Contacts (with AccountId resolved using company-name matching), then Deals (with OwnerId, AccountId, and ContactId resolved), then Tasks and campaign memberships, then Documents and Attachments. Each phase emits a row-count reconciliation report. Freshsales CSV import supports up to 25,000 records per batch; we chunk larger sets and run them sequentially.
Email history extraction
Because Cordis CRM does not export email engagement history through its Google Workspace integration, we extract email history directly from the customer's Gmail account where authorized. We match emails by sender and recipient email addresses against migrated Contact records in Freshsales and attach the email content as Notes or Activity records linked to the matching contact.
Cutover, delta sync, and automation handoff
We freeze Cordis CRM writes during cutover, run a final delta migration of any records created or modified during the migration window, then enable Freshsales as the system of record. We deliver a written inventory of all Cordis automations, task recurrence rules, and campaign logic requiring rebuild in Freshsales. We support a brief post-migration reconciliation window for record count verification. We do not rebuild Cordis automations as Freshsales automation rules inside the migration scope.
Platform deep dives
Cordis CRM
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Cordis CRM and Freshsales.
Object compatibility
4 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
Cordis CRM: Not applicable — no public API..
Data volume sensitivity
Cordis CRM 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 Cordis CRM to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Cordis CRM 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 Cordis CRM
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.