Data Migration from Zoho CRM to Bitrix24
Zoho CRM is a scalable platform with a well-developed product ecosystem. Companies migrate to Bitrix24 for various reasons: tool consolidation (CRM + tasks + website in one place), localisation, and pricing. Zoho provides a good API, but the data model requires careful study before migration.
Zoho CRM Data Structure
Zoho CRM operates with modules (analogous to objects). Standard modules:
-
Leads— leads (initial contacts) -
Contacts— contacts (qualified) -
Accounts— companies/organisations -
Deals— deals (Opportunities) -
Activities— activities:Tasks,Events,Calls -
Cases— support cases
Beyond the standard ones, Zoho allows creating custom modules — analogous to custom entities with no direct equivalent in base Bitrix24 (only in On-Premise via custom development).
Zoho API v2: Specifics
Zoho uses OAuth2. API v2 returns data with pagination via page and per_page parameters (maximum 200 records per request):
$page = 1;
$leads = [];
do {
$response = $zoho->get('/crm/v2/Leads', [
'page' => $page,
'per_page' => 200,
'fields' => 'First_Name,Last_Name,Email,Phone,Company,Lead_Status,Owner',
]);
$leads = array_merge($leads, $response['data'] ?? []);
$page++;
$info = $response['info'];
} while ($info['more_records']);
Fetching module metadata (list of fields):
$fields = $zoho->get('/crm/v2/settings/fields', ['module' => 'Leads'])['fields'];
Mapping: Leads and Contacts
Zoho CRM separates Leads and Contacts analogously to Bitrix24, which simplifies mapping. One nuance: in Zoho, converting a lead creates a Contact + Account + Deal simultaneously. In Bitrix24 this process is analogous (lead conversion). Converted leads in Zoho do not need to be migrated as leads — they already exist in Contacts and Deals.
| Zoho Module | Bitrix24 | |
|---|---|---|
| Lead (unconverted) | Lead (crm.lead) |
|
| Contact | Contact (crm.contact) |
|
| Account | Company (crm.company) |
|
| Deal | Deal (crm.deal) |
|
| Task | Task (tasks.task) |
|
| Event | Activity type "Meeting" | crm.activity.add |
| Call | Activity type "Call" | crm.activity.add |
| Note | Comment | crm.timeline.comment.add |
Custom Fields
Zoho supports extended custom field types: Formula (computed fields), Subform (nested forms, analogous to related tables), Multi-select Lookup. These types have no direct equivalent in Bitrix24 and require architectural decisions:
-
Formula— computed in Bitrix24 via robots or custom handlers -
Subform— migrated as a separate CRM entity with a link -
Multi-select Lookup— emulated via a multiple field of typecrm
Roles and Security Profiles
Zoho CRM has a sophisticated role model: profiles, roles, and record-level security rules. In Bitrix24 the equivalent is CRM roles and access permissions. There is no direct migration of the role model — it is configured manually based on client documentation.
Typical Timelines
| Volume | Modules | Timeline |
|---|---|---|
| Up to 20,000 records, standard modules | 4 modules | 2–4 weeks |
| 20,000–100,000 records, custom fields | 6–10 modules | 4–8 weeks |
| 100,000+ records, custom modules, subforms | 10+ modules | 2–4 months |
The Zoho ecosystem (Zoho Projects, Zoho Desk, Zoho Books) is migrated in separate projects — each product requires its own strategy.







