CRM migration
Field-level mapping, validation, and rollback between Salesforce Field Service and Zoho CRM. We move data and schema; workflows are rebuilt natively in Zoho CRM.
Salesforce Field Service
Source
Zoho CRM
Destination
Compatibility
13 of 13
objects map 1:1 between Salesforce Field Service and Zoho CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Salesforce Field Service stores field operations data across Service Cloud and Field Service-specific objects including WorkOrder, ServiceAppointment, WorkOrderLineItem, ServiceResource, and SkillRequirement — all with complex parent-child relationships, scheduling constraints, and territory-based routing logic. Zoho CRM models field operations differently, using a combination of standard modules (Tasks, Events, Calls) plus custom modules for Work Orders and Service Appointments, with Blueprints handling approval flows rather than Salesforce Flows. The migration must translate Salesforce's foreign-key relationship model (AccountId, ContactId, ServiceResourceId lookups) into Zoho's lookup field references, handle the difference between Salesforce's ActivityHistory and Zoho's activity logging, and preserve custom field data types including multi-select picklists, formula fields, and geo-location fields. We extract Salesforce data via REST API using Bulk API for large record sets, map Work Orders to custom Zoho modules with stage pick-lists, and route Service Appointments to Zoho Tasks or Events based on appointment type. We preserve original created dates as custom fields since Zoho's CreatedTime is set at import time. Ownership resolves by email match to Zoho Users. Automations (FSL scheduling rules, entitlement processes) do not migrate and must be rebuilt in Zoho's Blueprint editor or Deluge scripts.
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 Salesforce Field Service 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.
Salesforce Field Service
Account
Zoho CRM
Accounts
1:1Direct object map. Salesforce Account maps to Zoho Accounts module. Salesforce's Parent Account lookup (ParentId) translates to Zoho's Parent Account lookup field. Multi-address support maps directly. Annual revenue and employee count fields transfer as-is. Zoho Accounts support custom fields for any additional Salesforce Account fields.
Salesforce Field Service
Contact
Zoho CRM
Contacts
1:1Direct object map. Salesforce Contact maps to Zoho Contacts module with all standard fields (Name, Email, Phone, Title, Department). Salesforce's AccountId lookup attaches the contact to the corresponding Zoho Account. ReportsTo field maps to Zoho's Manager field. Custom contact fields migrate as Zoho custom fields.
Salesforce Field Service
Lead
Zoho CRM
Leads
1:1Direct object map. Salesforce Lead maps to Zoho Leads module with all standard fields (Name, Company, Email, Phone, Status, Rating). LeadSource values require value mapping to align picklist values. IsConverted flag does not have a direct equivalent in Zoho — we preserve it as a custom field for reporting continuity.
Salesforce Field Service
Opportunity
Zoho CRM
Deals
1:1Salesforce Opportunity maps to Zoho Deals module. StageName values require value mapping per Zoho's deal stage picklist configuration. Amount, CloseDate, Probability, and ForecastCategory map directly. Zoho Deals support multiple pipelines through custom picklists rather than separate objects — Salesforce's multiple Opportunity record types may need pipeline-based segmentation in Zoho.
Salesforce Field Service
WorkOrder
Zoho CRM
WorkOrders (Custom Module)
1:1Salesforce WorkOrder requires a custom module in Zoho CRM since Zoho has no native WorkOrder object. We create the WorkOrders module with fields for Subject, Description, Status, Priority, ServiceType, FSL_Scheduling_Status__c, and all custom WorkOrder fields. Parent record links (AccountId, ContactId, CaseId) map to Zoho lookups. Original WorkOrderNumber preserved as a custom field for traceability.
Salesforce Field Service
ServiceAppointment
Zoho CRM
Tasks / Events
1:1Salesforce ServiceAppointment data splits across Zoho Tasks (for to-do type appointments) and Events (for scheduled visits). Appointment Type, Status, SchedStartTime, SchedEndTime, FSL_ArrivalWindowStartTime, and FSL_ArrivalWindowEndTime map to Zoho Task/Event date and time fields. ServiceResourceId resolves to Zoho User by email match. ParentRecordId lookups map to the corresponding Zoho custom module records (WorkOrders, Accounts).
Salesforce Field Service
WorkOrderLineItem
Zoho CRM
WorkOrders Line Items (Subform)
1:1Salesforce WorkOrderLineItem maps to a subform within the Zoho WorkOrders custom module. Each line item includes Product2 reference, Quantity, UnitPrice, Description, and Line Item Number. Subform fields in Zoho hold the line-item data structure. Pricebook entries map to Zoho Products module for product lookups.
Salesforce Field Service
ServiceResource
Zoho CRM
Users
1:1Salesforce ServiceResource (technicians and dispatchers) maps to Zoho Users. ServiceResource.IsActive determines user active/inactive status. RelatedUserId links to the corresponding Salesforce user record for email matching. ResourceType (Technician vs Dispatcher) maps to a Zoho custom field on the User record. Skills attached to ServiceResource may require a custom Skills module or multi-select field in Zoho.
Salesforce Field Service
SkillRequirement
Zoho CRM
Skills (Custom Module)
1:1Salesforce SkillRequirement (which defines required skills for a work order) requires a custom Skills module in Zoho linked to WorkOrders via lookup. Each skill record stores SkillId from Salesforce, skill name, and skill level. The many-to-many relationship between ServiceResource skills and SkillRequirements maps to a junction custom module.
Salesforce Field Service
Case
Zoho CRM
Cases
1:1Salesforce Case maps to Zoho Cases module with all standard fields (Subject, Description, Status, Priority, Origin, Type). CaseNumber preserved as a custom field since Zoho's Case ID is auto-generated. ParentCaseId maps to Zoho's Parent Case lookup. AssetId maps to Zoho's Product lookup for equipment reference. Custom Case fields migrate as Zoho custom fields.
Salesforce Field Service
Task / Event (Activity)
Zoho CRM
Tasks / Events
1:1Salesforce Tasks and Events map directly to Zoho Tasks and Events. Subject, Status, Priority, ActivityDate, Description map as-is. WhoId (Contact/Lead reference) maps to Zoho's related Contact or Lead lookup. WhatId (polymorphic) requires type detection and routing to the correct Zoho lookup field (Account, Deal, Case). Original timestamps preserved in custom datetime fields.
Salesforce Field Service
ContentDocument / Attachment
Zoho CRM
Attachments
1:1Salesforce file attachments (ContentDocument/ContentVersion) and record attachments migrate as Zoho attachments linked to the corresponding Zoho record. File size limits apply based on Zoho edition storage. Inline images in notes are extracted and rehosted as Zoho attachments. We match files to Zoho records by source record ID stored in a custom field.
Salesforce Field Service
Custom Objects
Zoho CRM
Custom Modules
1:1Salesforce custom objects (suffix __c) map 1:1 to Zoho custom modules. We create each custom module in Zoho before data migration, define the fields matching Salesforce's field types, and import records preserving relationships through lookup fields. N:N relationships between custom objects require Zoho junction custom modules.
| Salesforce Field Service | Zoho CRM | Compatibility | |
|---|---|---|---|
| Account | Accounts1:1 | Fully supported | |
| Contact | Contacts1:1 | Fully supported | |
| Lead | Leads1:1 | Fully supported | |
| Opportunity | Deals1:1 | Fully supported | |
| WorkOrder | WorkOrders (Custom Module)1:1 | Fully supported | |
| ServiceAppointment | Tasks / Events1:1 | Fully supported | |
| WorkOrderLineItem | WorkOrders Line Items (Subform)1:1 | Fully supported | |
| ServiceResource | Users1:1 | Mapping required | |
| SkillRequirement | Skills (Custom Module)1:1 | Fully supported | |
| Case | Cases1:1 | Fully supported | |
| Task / Event (Activity) | Tasks / Events1:1 | Fully supported | |
| ContentDocument / Attachment | Attachments1:1 | Mapping required | |
| Custom Objects | Custom Modules1:1 | Mapping required |
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.
Salesforce Field Service gotchas
250-record batch limit for Enhanced Scheduling optimization
Process Builder workflows do not migrate—must be rebuilt in Flow Builder
API rate limits vary by edition and are easy to exhaust during bulk migration
Storage overages at $125/GB inflate migration data costs
Custom fields and lookups require explicit field-level mapping
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
Audit Salesforce schema and export planning
We begin by connecting to your Salesforce org via REST API to catalog all standard and custom objects, field types, and record counts. We specifically audit WorkOrder record types, ServiceAppointment status values, and any custom FSL fields. This audit produces a Salesforce data dictionary that we cross-reference against Zoho's available field types to identify which Salesforce fields require custom Zoho field creation. We also identify deactivated users and Salesforce-to-Zoho field type mismatches (Salesforce geo-location fields, multi-select picklists) that need transformation logic.
Build Zoho custom modules and field schema
Before any data moves, we create the WorkOrders custom module in Zoho with all required fields, lookups to Accounts, Contacts, and Cases, and subforms for line items. We create any custom fields on standard Zoho modules (Leads, Contacts, Accounts, Deals, Cases) needed for Salesforce custom field data. Blueprints for deal stage enforcement and basic workflow triggers are configured in Zoho during this phase so the target schema is ready before validation runs.
Resolve owners and users by email
Salesforce users, Service Resources, and case owners are matched against Zoho Users by email address. Unmatched owners are flagged in a pre-migration exception report. Your team either creates Zoho user accounts for those owners or designates a fallback owner. We resolve WorkOrder and ServiceAppointment ownership during this step so every record lands with a valid Zoho owner at import time. The exception report must be cleared before the full migration run.
Run staged sample migration with field-level diff
A representative sample (100–500 records) migrates first, covering Accounts, Contacts, Leads, Deals, WorkOrders, ServiceAppointments, and a sample of attachments. We generate a field-level diff comparing source Salesforce values against the Zoho import result, verifying that picklist values mapped correctly, lookup relationships resolved, and custom field data populated. This sample run validates the Zoho schema setup before the full dataset commits.
Execute full migration with delta-pickup window
Full data migration runs using Salesforce Bulk API 2.0 for large object exports and Zoho REST API for imports, batching to stay within Zoho API credit limits. A delta-pickup window (24–48 hours) runs after the initial bulk load to capture records modified or created in Salesforce during the cutover period. All operations log to an audit trail. If reconciliation fails, one-click rollback reverts the Zoho org to its pre-migration state.
Platform deep dives
Salesforce Field Service
Source
Strengths
Weaknesses
Zoho CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Salesforce Field Service and Zoho CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Salesforce Field Service and Zoho CRM.
Object compatibility
All 8 core objects map 1:1 between Salesforce Field Service 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
Salesforce Field Service: Per-org daily API limit starts at 100,000 requests / 24 hours for Enterprise Edition and scales with licenses purchased. Additional API calls can be purchased in 200-10,000 increments. Bulk API and Bulk API 2.0 share an allocation of 15,000 batch submissions per 24 hours. HTTP 429 returned when rate-limited..
Data volume sensitivity
Salesforce Field Service 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 Salesforce Field Service to Zoho CRM migration scoping. Not seeing yours? Book a call.
Walk through your Salesforce Field Service 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 Salesforce Field Service
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.