CRM migration
Field-level mapping, validation, and rollback between Cordial and Zoho CRM. We move data and schema; workflows are rebuilt natively in Zoho CRM.
Cordial
Source
Zoho CRM
Destination
Compatibility
6 of 10
objects map 1:1 between Cordial and Zoho CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Cordial to Zoho CRM is a data-model inversion: Cordial stores contact attributes as flexible JSON properties with arrays and nested objects, while Zoho CRM enforces a relational schema with typed modules (Leads, Contacts, Accounts, Deals, Products, Tasks). We perform schema discovery on the Cordial export to identify every custom contact attribute, map array-type fields to multi-select picklists or related sublists, resolve the split between Cordial's unified contact collection and Zoho's separate Lead and Contact objects, and unpack Cordial's nested variant JSON under products into individual Zoho Product2 records. Channel preferences (email opt-in, SMS consent) migrate as boolean fields and are preserved on the Contact record. Automation workflows and segment rules are not exportable via Cordial's API and require rebuild in Zoho's Blueprint and workflow engine. We deliver a written automation inventory and a segment-rebuild map to the customer's Zoho admin post-migration.
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 Cordial object lands in Zoho CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Cordial
Contact
Zoho CRM
Lead and Contact (split required)
1:manyCordial's single flat Contacts collection maps to Zoho CRM's separate Lead and Contact modules. We apply a split rule during migration: contacts with a purchase event or lifecycle stage indicating a customer status map to Zoho Contact linked to an Account (converted from any related Company record); all other contacts map to Zoho Lead. We preserve Cordial's contact ID as a custom field cordial_id__c on both Lead and Contact for cross-reference. The split rule is defined during scoping based on the customer's Cordial attribute naming conventions and behavioral event history.
Cordial
Company
Zoho CRM
Account
1:1Cordial Companies map directly to Zoho CRM Accounts. The company name maps to Account Name, and domain or website maps to Website. If Cordial stores company-level revenue or employee count as custom attributes, these map to custom Account fields. Account is created before any Contact import so that the Account Name lookup is satisfied at Contact insert time.
Cordial
Contact Attribute (Custom Fields)
Zoho CRM
Custom Fields on Lead and Contact
lossyCordial's unlimited custom contact attributes map to Zoho CRM custom fields scoped per module. String attributes map to Zoho single-line or multi-line text fields. Number attributes map to Zoho numeric fields. Geo attributes (latitude, longitude, city) map to Zoho location fields or separate text fields. Array-type attributes (favorite_colors, tag lists, behavioral history arrays) are normalized: if the array has fewer than 30 distinct values, we map to Zoho multi-select picklist; if it has more or is unbounded, we flatten to a pipe-delimited text field. Array fields are flagged during discovery and the normalization strategy is agreed with the customer before import.
Cordial
List
Zoho CRM
Custom Field (Checkbox) or Zoho CRM Tags
lossyCordial Lists represent static audience segments stored as list membership on contacts. We migrate list membership as either a checkbox field per list (if fewer than 15 lists) or as Zoho CRM Tags on the Contact or Lead record. The customer chooses the strategy during scoping. Tag migration is subject to Zoho's 10-tag limit per record and 25-character tag length limit.
Cordial
Product
Zoho CRM
Product2 (unpacked variants)
1:1Cordial products store variants as nested JSON arrays under a single product record. Zoho CRM does not support nested variant structures natively, so we unpack the variant array and generate one Product2 record per SKU. We preserve the parent Cordial product ID as a custom field parent_product_id__c on each variant record and set a custom field variant_attributes__c (e.g., color=Red, size=Medium) to carry the variant differentiators. The customer decides whether to use Zoho Inventory module (add-on, for stock tracking) or standard Products for variant rows.
Cordial
Order
Zoho CRM
Deal (with Line Items) or Custom Module
lossyOrders are not a first-class object in Cordial's core schema and are typically stored as custom contact attributes or behavioral events with order ID, total, and line items. We map order data to Zoho CRM Deals: the order total becomes Deal Amount, order date becomes Close Date, and the order ID is stored in a custom field original_order_id__c. Line items from the order migrate as Deal Line Items linked to the Deal. If the customer has a high volume of historical orders, we recommend creating a custom Orders module in Zoho CRM instead, which requires Zoho Professional tier or higher.
Cordial
Channel Preferences
Zoho CRM
Custom Fields on Contact and Lead
1:1Cordial stores channel-level opt-in status (email, SMS, push) as sub-attributes on contacts. We map these to Zoho CRM custom fields: email_consent__c (checkbox), sms_consent__c (checkbox), push_consent__c (checkbox). Opt-in dates and source channels migrate as additional date and picklist fields. Zoho's own email compliance fields (ZC_E_email_Opt_Out) are updated in sync with the migrated consent flags.
Cordial
Events / Contact Activities
Zoho CRM
Task and Event
1:1Cordial behavioral events (opens, clicks, purchases, custom event types) migrate as Zoho CRM Tasks linked to the Contact or Lead record via WhoId. Purchase events with associated order data migrate as Deals first (see Order mapping) and then as Task records for the activity timeline. Event type maps to Task Subject, timestamp maps to Activity Date, and event properties migrate as custom Task fields. We use Zoho's Bulk API with batch chunking for large event volumes to avoid timeouts.
Cordial
Segment / Audience
Zoho CRM
Zoho Filters (saved views)
1:1Cordial segments are dynamic rule-based audiences. Segment definitions (attribute conditions and event triggers) are documented as a written inventory during migration scoping. We cannot export segment rules as executable Zoho filters via API, so we deliver a segment-rebuild guide that maps each Cordial segment condition to the equivalent Zoho Advanced Filter builder syntax. The customer's Zoho admin rebuilds segments as saved views or Workflow Rule triggers post-migration.
Cordial
Owner
Zoho CRM
User
1:1Cordial owners map to Zoho CRM Users by email match. We extract every distinct owner referenced on Contact, Company, Deal, and Engagement record and resolve against the Zoho destination org's User table. Owners without a matching Zoho User are held in a reconciliation queue for the customer's admin to provision before record import resumes.
| Cordial | Zoho CRM | Compatibility | |
|---|---|---|---|
| Contact | Lead and Contact (split required)1:many | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Contact Attribute (Custom Fields) | Custom Fields on Lead and Contactlossy | Fully supported | |
| List | Custom Field (Checkbox) or Zoho CRM Tagslossy | Fully supported | |
| Product | Product2 (unpacked variants)1:1 | Fully supported | |
| Order | Deal (with Line Items) or Custom Modulelossy | Fully supported | |
| Channel Preferences | Custom Fields on Contact and Lead1:1 | Fully supported | |
| Events / Contact Activities | Task and Event1:1 | Mapping required | |
| Segment / Audience | Zoho Filters (saved views)1:1 | Fully supported | |
| Owner | User1: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.
Cordial gotchas
Message experiment results are not API-exportable
Rate limits are method- and endpoint-specific
Custom contact attribute arrays require schema normalization
Products collection uses nested JSON with variants
Zoho CRM gotchas
API access requires Professional tier or above
Subform fields do not export cleanly via CSV
API credit consumption is non-linear
Export download links expire in 7 days
Owner (User) assignments require pre-mapped user IDs
Pair-specific challenges
Migration approach
Discovery and schema audit
We audit the source Cordial account across collections (Contacts, Companies, Products, Channels, Events), custom attribute count and types, product variant complexity, list count, segment definitions, and behavioral event history volume. We document the Cordial contact attribute schema with field types (string, number, geo, array) and flag any array fields for normalization. We assess Zoho CRM edition suitability: Standard ($14/user) covers Leads, Contacts, Accounts, Deals, Products, and Tasks; Professional ($23/user) is required for custom modules, multi-user workflows, and Blueprint; Enterprise ($47/user) is needed for advanced AI features, custom roles, and territory management. The discovery output is a written migration scope with field mapping, data model decisions, and an automation inventory document.
Schema design and field mapping in Zoho
We design the destination Zoho CRM schema before any data moves. This includes creating custom fields on Lead and Contact (with field types matched from Cordial attributes), setting up the Account module from Company data, configuring Deal stages mapped from any Cordial order or pipeline data, creating the Product2 records (with variant unpacking), and deciding on list-to-tag vs list-to-checkbox migration. We pre-create all custom fields in Zoho via the API before import, noting Zoho's 50-field creation limit during migration wizard use and handling overflow via pre-migration field creation. The Zoho Migration Wizard can suggest field mappings for standard fields; custom fields require manual mapping. Schema is validated in a Zoho sandbox or dev org before production migration.
Data cleaning and normalization
We clean the Cordial export data before Zoho import. This includes deduplication (by email on contacts, by company name on accounts), date format standardization (Zoho accepts YYYY-MM-DD and MM/DD/YYYY), phone number formatting, and array field normalization per the agreed strategy. We flag duplicate records for customer review and resolve ownership (Cordial owner email to Zoho User ID) for all Contact, Company, Deal, and Activity records. Order data is extracted from custom attributes and behavioral events and restructured into Deal records with line items.
Sandbox migration and reconciliation
We run a full migration into a Zoho sandbox environment using production-like data volume. The customer's Zoho admin reconciles record counts (Leads in, Contacts in, Accounts in, Deals in, Products in, Activities in), spot-checks 25-50 random records against the Cordial source, and validates that array fields are correctly normalized, channel preferences are preserved, and product variant unpacking is complete. Any mapping corrections, field type mismatches, or lookup resolution failures are addressed here before production migration begins.
Production migration in dependency order
We run production migration in dependency order: Accounts (from Cordial Companies), Products (with variant unpacking), Leads (with Contact split applied), Contacts (with AccountId resolved), Deals (with ContactId and AccountId resolved, and order data mapped), Tasks and Events (via Zoho Bulk API for large activity volumes), and Tags. Each phase emits a row-count reconciliation report before the next phase begins. Cordial's method-specific and endpoint-specific rate limits are respected with backoff logic and off-peak scheduling for large exports. Channel preferences are written as custom fields on Contact and Lead after the base record is created.
Cutover, validation, and automation rebuild handoff
We freeze Cordial writes during cutover, run a final delta migration of any records modified during the migration window, then enable Zoho CRM as the system of record. We deliver the automation inventory and segment-rebuild guide to the customer's Zoho admin team, mapping each Cordial Program trigger and step to the equivalent Zoho Blueprint stage or Workflow Rule condition. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild Cordial workflows as Zoho Blueprints or Workflow Rules inside the migration scope; that is a separate engagement or an internal Zoho admin task.
Platform deep dives
Cordial
Source
Strengths
Weaknesses
Zoho CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Cordial and Zoho CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Cordial and Zoho CRM.
Object compatibility
All 8 core objects map 1:1 between Cordial and Zoho CRM.
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
Cordial: Method- and endpoint-specific limits; default limits vary per tier; X-Rate-Limit-* response headers exposed; Retry-After header for backoff; limits are customizable per customer contract.
Data volume sensitivity
Cordial 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 Cordial to Zoho CRM migration scoping. Not seeing yours? Book a call.
Walk through your Cordial to Zoho CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Cordial
Other ways to arrive at Zoho CRM
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.