Helpdesk migration
Field-level mapping, validation, and rollback between Chatwoot and Zoho Desk. We move data and schema; workflows are rebuilt natively in Zoho Desk.
Chatwoot
Source
Zoho Desk
Destination
Compatibility
9 of 12
objects map 1:1 between Chatwoot and Zoho Desk.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Chatwoot and Zoho Desk take fundamentally different structural approaches to support data. Chatwoot routes all channels through a unified Inbox model with Agents and Teams as the primary organizational units. Zoho Desk separates Tickets, Contacts, and Accounts into distinct modules and uses Department-based routing with Role-based access control. A migration from Chatwoot to Zoho Desk must resolve this schema difference: Chatwoot Conversations become Zoho Desk Tickets, Chatwoot Inboxes become Zoho Departments, and Chatwoot Teams become Zoho Teams with manual role mapping. We preserve message threads with full attachment URLs and timestamps, re-associate every conversation with the correct Contact or Account in Zoho, and flag that Automation Rules and SLA Policies will not transfer from Chatwoot's lower tiers because those objects do not exist in the source export regardless of the migration method. Zoho Desk's native SLA management, Blueprint workflows, and Zia AI are available at Professional tier and above, giving teams that have outgrown Chatwoot's tier-gating a structural upgrade without moving to a significantly higher per-seat cost.
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 Chatwoot object lands in Zoho Desk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Chatwoot
Conversation
Zoho Desk
Ticket
1:1Chatwoot Conversations map directly to Zoho Desk Tickets. The Conversation status (open, resolved, pending, snoozed) maps to Zoho Ticket Status, priority maps to Priority, assignee maps to Agent lookup, and the inbox assignment maps to Department. Chatwoot's conversation created_at timestamp preserves as Ticket Created Time. We validate that the Zoho Department exists before migration because conversation routing depends on Department being configured in Zoho first.
Chatwoot
Contact
Zoho Desk
Contact
1:1Chatwoot Contacts map to Zoho Desk Contacts. Standard fields (name, email, phone, custom_attributes) migrate directly. Chatwoot's contact identifier becomes a ContactExtId field in Zoho's import schema for cross-reference. If the source Chatwoot account has no Contacts (Hacker plan users rarely configure them), we create minimal Contact records from conversation initiator data during migration. Custom attributes require pre-created fields in Zoho Desk before contact import begins.
Chatwoot
Message
Zoho Desk
Thread
1:1Chatwoot Messages map to Zoho Desk Ticket Threads. Each message carries content, sender_type (agent/customer), created_at timestamp, and attachment URLs. We preserve message order by created_at and migrate both customer messages and internal notes as Thread entries in Zoho. Agent private notes map to Zoho's private comment capability if the destination role permits. Attachments store as URL references; Zoho Desk does not re-download them, so attachment accessibility depends on whether the source URLs remain reachable.
Chatwoot
Inbox
Zoho Desk
Department
1:manyChatwoot Inboxes (website live chat, email, WhatsApp, Facebook, API channels) map to Zoho Desk Departments. Each Inbox becomes a Department in Zoho Desk, and conversations from that Inbox route into the corresponding Department as Tickets. We create the Zoho Department schema before conversation migration so that every incoming Ticket has a valid Department reference. Multiple Chatwoot Inboxes can map to a single Zoho Department if the customer prefers consolidated routing.
Chatwoot
Agent
Zoho Desk
Agent (User)
1:1Chatwoot Agents map to Zoho Desk Agents (User records). We resolve by email match. Agent roles (administrator, agent) map to Zoho Desk roles (executive, admin, agent) during scoping. Chatwoot's agent availability status does not transfer; agents start as active in Zoho Desk. Any Chatwoot Agent without a matching Zoho User email goes to a reconciliation queue for the customer's admin to provision before migration resumes.
Chatwoot
Team
Zoho Desk
Team
1:1Chatwoot Teams (Business and Enterprise tier only) map to Zoho Desk Teams. Teams are available on Chatwoot's paid tiers, so we check the source plan during scoping. If the source is on Hacker or Startups, no Teams exist to migrate. For sources with Teams, we create matching Team structures in Zoho Desk and assign the migrated Agents to their corresponding Team. Team-based routing in Zoho is configured after agent import.
Chatwoot
Label
Zoho Desk
Tag
1:1Chatwoot Labels (string tags applied to Conversations) map to Zoho Desk Tags. Labels are simple key-value records and migrate directly as tags on the corresponding Ticket. Tag color metadata from Chatwoot does not transfer; tags in Zoho Desk use a single color scheme per tag unless manually recolored after migration.
Chatwoot
Custom Attributes
Zoho Desk
Custom Fields
1:1Chatwoot Custom Attributes (text, number, dropdown, checkbox attached to Conversations or Contacts) map to Zoho Desk Custom Fields. We pre-create the custom field schema in Zoho Desk before import using the Zoho Desk Custom Fields API, matching the field type from Chatwoot to the equivalent Zoho field type. Values migrate as raw data; downstream reporting on custom fields requires manual dashboard configuration in Zoho after migration.
Chatwoot
Canned Responses
Zoho Desk
Templates
1:1Chatwoot Canned Responses (pre-written reply templates with shortcut codes) map to Zoho Desk Templates. We export the full set including content and shortcut triggers and re-import as Zoho Desk Ticket Templates. Shortcut code triggers are documented in the migration output but must be manually reconfigured in Zoho Desk's Template settings because the shortcut trigger model differs between platforms.
Chatwoot
Help Center Articles
Zoho Desk
Help Center Articles
1:1Chatwoot Help Center Articles (available on Startups tier and above) map to Zoho Desk Help Center Articles. Article title, body (markdown), category, and locale migrate directly. Article author attribution does not transfer; the migration user becomes the author. Note: Zoho Desk Help Center does not migrate attachments to articles; article attachments must be re-uploaded manually in Zoho Desk after migration.
Chatwoot
Automation Rules
Zoho Desk
Workflow Rules (documentation only)
lossyChatwoot Automation Rules (Business tier and above) do not migrate. The rule logic is Chatwoot-specific and cannot be expressed in Zoho Desk's Workflow Rules or Blueprint format without manual redesign. We deliver a written inventory of every active Chatwoot Automation Rule with its trigger, conditions, and actions, plus a recommended Zoho Desk Workflow Rule or Blueprint equivalent. The customer's admin rebuilds these post-migration.
Chatwoot
Integrations
Zoho Desk
Integrations (documentation only)
lossyChatwoot Integrations (Slack, Webhooks, third-party bots) do not migrate because webhook URLs, Slack channel mappings, and bot tokens are credentials-bound and will not function at the destination. We document every active integration, the Chatwoot configuration values, and the recommended Zoho Desk integration equivalent. Slack integration in Zoho Desk requires a separate Slack app setup with org-level token authorization that the customer's admin configures post-migration.
| Chatwoot | Zoho Desk | Compatibility | |
|---|---|---|---|
| Conversation | Ticket1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Message | Thread1:1 | Fully supported | |
| Inbox | Department1:many | Fully supported | |
| Agent | Agent (User)1:1 | Fully supported | |
| Team | Team1:1 | Fully supported | |
| Label | Tag1:1 | Fully supported | |
| Custom Attributes | Custom Fields1:1 | Mapping required | |
| Canned Responses | Templates1:1 | Fully supported | |
| Help Center Articles | Help Center Articles1:1 | Mapping required | |
| Automation Rules | Workflow Rules (documentation only)lossy | Mapping required | |
| Integrations | Integrations (documentation only)lossy | 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.
Chatwoot gotchas
Hacker plan 30-day data retention permanently deletes conversations
Free plan limits silently block new inboxes and agents
Captain AI credits bill at $20 per 1,000 beyond the monthly allocation
Database schema inconsistencies on stable tags v4.2–v4.4
Automation Rules and SLA Policies are tier-gated and cannot export from lower plans
Zoho Desk gotchas
Agent email identity determines comment ownership after migration
Blueprints and SLA policies do not export via API
File upload capped at 10GB per migration batch
Tier-gated export and migration capabilities
Inbound migration is two-phase with a hard Phase 2 cutoff
Pair-specific challenges
Migration approach
Discovery and source plan audit
We audit the source Chatwoot account across plan tier, active inboxes, agent count, team structure, conversation volume, Help Center article count, custom attributes, and active integration list. We query the account creation date and last conversation timestamp to determine whether historical conversations fall within the retention window. We identify which Chatwoot objects (Teams, Automation Rules, SLA Policies, Help Center) exist in the export based on the source plan. The discovery output is a written migration scope with object inventory, retention assessment, and a list of objects requiring manual rebuild post-migration.
Export preparation and data validation
We extract Chatwoot data via the REST API (Contacts, Conversations, Messages, Agents, Teams, Labels, Custom Attributes, Canned Responses, Help Center Articles) and validate schema integrity before transformation. If the source Chatwoot instance is running stable releases v4.2 through v4.4, we run a schema validation check per GitHub Issue #12128 to detect any database inconsistencies that could corrupt the export. We disable webhook integrations at the source before export to prevent new conversation activity from entering the migration window untracked.
Zoho Desk schema design
We pre-create the Zoho Desk schema before any data import. This includes provisioning Zoho Departments (mapped from Chatwoot Inboxes), creating custom fields in the Tickets and Contacts modules to receive Chatwoot Custom Attributes, configuring Zoho Desk Roles and agent profiles, creating Ticket Templates from Chatwoot Canned Responses, and designing the Tag taxonomy from Chatwoot Labels. We deploy the schema via Zoho Desk API into a pre-production portal first. Schema must be complete before record migration begins because parent-record lookups (Department on Ticket, Account on Contact) are validated at insert time.
Sandbox migration and reconciliation
We run a full migration into a Zoho Desk sandbox or parallel portal using production data volume. The customer's support operations lead reconciles record counts (Tickets in, Contacts in, Agents in, Thread entries in), spot-checks 25-50 random Tickets against the Chatwoot source conversation, and validates that conversation threading, timestamps, and labels are correctly represented. Any mapping corrections happen in this phase. We do not begin production migration until the sandbox reconciliation is signed off.
Production migration in dependency order
We run production migration in record-dependency order: Agents (manual provisioning confirmed), Departments (Chatwoot Inbox mapping applied), Contacts (with Custom Attributes resolved), Accounts (if customer companies are separated from contacts), Tickets (with DepartmentId, AgentId, and CreatedTime set to original conversation timestamp), Ticket Threads (message content and attachments), Canned Responses as Templates, Labels as Tags, and Help Center Articles last. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, delta sync, and rebuild handoff
We freeze Chatwoot writes during the cutover window, run a final delta migration of any conversations created or modified during the migration window, then enable Zoho Desk as the system of record. We deliver the Automation Rules and SLA Policies inventory document (for Business/Enterprise source tiers) and the Integration configuration checklist to the customer's admin team. We support a one-week hypercare window where we resolve reconciliation issues raised during the first week of Zoho Desk production use. We do not rebuild Chatwoot Automation Rules as Zoho Desk Workflow Rules or Blueprint flows inside the migration scope; that is a separate engagement.
Platform deep dives
Chatwoot
Source
Strengths
Weaknesses
Zoho Desk
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 4 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Chatwoot and Zoho Desk.
Object compatibility
4 of 7 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
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Chatwoot: Not publicly documented.
Data volume sensitivity
Chatwoot 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 Chatwoot to Zoho Desk migration scoping. Not seeing yours? Book a call.
Walk through your Chatwoot to Zoho Desk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Chatwoot
Other ways to arrive at Zoho Desk
Same-Helpdesk migrations
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.