Helpdesk migration
Field-level mapping, validation, and rollback between Chatwoot and Zendesk. We move data and schema; workflows are rebuilt natively in Zendesk.
Chatwoot
Source
Zendesk
Destination
Compatibility
7 of 10
objects map 1:1 between Chatwoot and Zendesk.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Chatwoot to Zendesk is a move from a self-hostable, open-source tier-gated platform to a SaaS-native enterprise helpdesk. Chatwoot organizes support around Inboxes and Conversations; Zendesk organizes around Tickets with a unified Request queue. We map Chatwoot Conversations to Zendesk Tickets, preserving the full message thread with timestamps, attachments, and private notes. Contacts map to End Users and Users depending on whether they are customers or agents. Labels migrate to Tags, and Custom Attributes migrate to Zendesk custom ticket fields after the destination schema is pre-created. We flag that Chatwoot's Help Center, Automation Rules, and SLA Policies require Business or Enterprise tiers on the source and will be absent from the export if the source account is on Hacker or Startups. Zendesk Guide is a separate product requiring activation before article migration; we do not activate Guide as part of the migration scope. Workflows, automation rules, and canned response logic do not migrate; we deliver a written inventory of these for the customer's admin to rebuild.
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 Zendesk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Chatwoot
Conversation
Zendesk
Ticket
1:1Chatwoot Conversations map to Zendesk Tickets. Each Conversation's status (open/resolved/pending), priority, assignee, and created_at timestamp transfer to Ticket fields. The full message array (agent messages, customer messages, private notes) migrates as individual Ticket Comments preserving created_at order and message type. We tag migrated tickets with a system tag (migrated_from_chatwoot) to allow the customer's admin to exclude them from Zendesk Triggers and SLA calculations during initial setup.
Chatwoot
Contact
Zendesk
End User
1:1Chatwoot Contacts (name, email, phone, custom_attributes) map to Zendesk End Users. Email address is the dedupe key for import. We preserve any Chatwoot Contact custom_attributes as Zendesk user fields, which requires pre-creating the schema in Zendesk Admin before migration. Contacts without an email address are imported as Users with a placeholder domain to satisfy Zendesk's required email format.
Chatwoot
Agent
Zendesk
User
1:1Chatwoot Agents (name, email, role, availability_status) map to Zendesk Users. Role mapping: Chatwoot administrator maps to Zendesk admin; agent maps to agent. We resolve agents by email match against the Zendesk destination. Any Chatwoot Agent without a matching Zendesk User goes to a reconciliation queue for the customer's admin to provision before record import resumes.
Chatwoot
Message
Zendesk
Ticket Comment
1:1Chatwoot Messages belong to Conversations and carry content, sender_type (agent/customer), attachments, and created_at. We map agent messages to public Zendesk Ticket Comments and customer messages to public Ticket Comments. Chatwoot private notes map to Zendesk internal Ticket Comments. We preserve message order by created_at timestamp and migrate attachment URLs as references; actual attachment files require separate handling if the Chatwoot storage endpoint is accessible.
Chatwoot
Label
Zendesk
Tag
1:1Chatwoot Labels are string tags applied to Conversations. We export the full label taxonomy and map to Zendesk Tags. Note that Zendesk Tags are case-sensitive and have a 2,000-tag-per-account limit; we flag if the source label count approaches this boundary during scoping.
Chatwoot
Custom Attributes
Zendesk
Ticket Fields (custom)
lossyChatwoot Custom Attributes attach to Conversations or Contacts and support text, number, dropdown, and checkbox types. We pre-create the equivalent Zendesk custom ticket fields (for conversation-attached attributes) and custom user fields (for contact-attached attributes) in Zendesk Admin before migration. Dropdown attributes in Chatwoot require a corresponding Zendesk custom field with matching picklist values. Checkbox attributes map to Zendesk boolean fields.
Chatwoot
Inbox
Zendesk
Channel + View
lossyChatwoot Inboxes represent channels (Website Live Chat, Email, WhatsApp, Facebook, Twitter, API). Channel credentials (webhook URLs, page tokens, WhatsApp templates, API keys) are credentials-bound and do not transfer. We document the inbox taxonomy (channel type, agent assignment, team assignment) and map to Zendesk Channels and Views. The customer's admin configures channel credentials in Zendesk Admin post-migration.
Chatwoot
Team
Zendesk
Group
1:1Chatwoot Teams are available only on Business and Enterprise tiers and group agents for conversation routing. We map Chatwoot Teams to Zendesk Groups. If the source account is on Hacker or Startups, no Teams exist to migrate; we create matching Group structures in Zendesk Admin during migration.
Chatwoot
Canned Responses
Zendesk
Macros
1:1Chatwoot Canned Responses are pre-written reply templates with shortcut codes. We export the full set including content and shortcut triggers and map to Zendesk Macros. Chatwoot's shortcut code model maps to the Macro title field in Zendesk.
Chatwoot
Help Center Articles
Zendesk
Zendesk Guide Articles
lossyChatwoot Help Center Articles (available on Startups tier or higher) contain title, body (Markdown), category, and locale. Zendesk Guide is a separate product that must be manually activated and configured in the Zendesk admin before article migration. We export the full article tree and import into Zendesk Guide via the Guide API. Note that Help Center is not available on Chatwoot Hacker plan; if the source account is on Hacker, no articles exist to migrate. We do not activate Zendesk Guide as part of migration scope; this is a customer-admin action before or during migration.
| Chatwoot | Zendesk | Compatibility | |
|---|---|---|---|
| Conversation | Ticket1:1 | Fully supported | |
| Contact | End User1:1 | Fully supported | |
| Agent | User1:1 | Fully supported | |
| Message | Ticket Comment1:1 | Fully supported | |
| Label | Tag1:1 | Fully supported | |
| Custom Attributes | Ticket Fields (custom)lossy | Mapping required | |
| Inbox | Channel + Viewlossy | Fully supported | |
| Team | Group1:1 | Fully supported | |
| Canned Responses | Macros1:1 | Mapping required | |
| Help Center Articles | Zendesk Guide Articleslossy | 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
Zendesk gotchas
Data export requires API scripting on non-Enterprise plans
Automations cap at 500 active rules and 1,000 tickets per hour
Help Center has no native export feature
Custom Objects and full data export are Enterprise-only
Pair-specific challenges
Migration approach
Discovery and plan audit
We audit the source Chatwoot account across plan tier (Hacker/Startups/Business/Enterprise self-hosted), active inboxes, agent count, conversation volume, message count, custom attribute definitions, label taxonomy, canned response count, Help Center article count, and whether Automation Rules or SLA Policies exist. We pair this with a Zendesk edition decision: Suite Team ($19/agent) covers migrations with no Help Center; Suite Growth or Professional is required if Help Center or advanced reporting is needed. The discovery output is a written migration scope with record counts per object and a Zendesk plan recommendation.
Schema pre-creation and Help Center activation guidance
We create the destination Zendesk custom fields (ticket fields and user fields) matching every Chatwoot custom attribute before any data import. Dropdown custom attributes require picklist values to be defined in Zendesk Admin before the field is created. We provide the customer with Zendesk Guide activation instructions and Guide tier recommendation if Help Center articles are in scope. We create Zendesk Groups matching Chatwoot Teams, and Macros matching Canned Responses. Channel configurations are documented for the customer's admin to re-enter post-migration.
Sandbox migration and reconciliation
We run a full migration into a Zendesk Sandbox (copy of the destination account) using production-like data volume. The customer's support operations lead reconciles record counts (Tickets in, End Users in, Users in, Comments in), spot-checks 25-50 random tickets against the Chatwoot source, and validates label mapping and custom field population. The customer signs off the schema and mapping before production migration begins. Any mapping corrections happen in sandbox, not production.
Agent and Contact reconciliation
We extract every distinct Chatwoot Agent and Contact email and match against the Zendesk destination's user table. Agents without a matching Zendesk User go to a reconciliation queue. The customer's Zendesk admin provisions any missing Users before record import resumes. Contacts without emails receive a placeholder domain in Zendesk's required email format so that import does not fail. This step gates the Contact and Agent import phases.
Production migration in dependency order
We run production migration in record-dependency order: Users (validated), End Users (Contacts), Groups (from Teams), Tickets (Conversations with resolved author references), Ticket Comments (Messages preserving created_at order), Tags (from Labels), Custom field values (populated after field schema exists), Macros (Canned Responses), and Help Center Articles (after Guide activation is confirmed). We disable Zendesk Triggers and SLA policies before migration to prevent automated notifications from firing on imported tickets. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation rebuild handoff
We freeze Chatwoot writes during cutover, run a final delta migration of any records modified during the migration window, then enable Zendesk as the system of record. We re-enable Zendesk Triggers and SLA policies after migration completes. We deliver the Automation Rule and SLA Policy inventory document to the customer's admin team for manual rebuild in Zendesk Triggers and SLA policies. We support a one-week hypercare window for reconciliation issues. We do not rebuild Chatwoot Automation Rules as Zendesk Triggers or configure Help Center as part of migration scope; those are separate configuration tasks.
Platform deep dives
Chatwoot
Source
Strengths
Weaknesses
Zendesk
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. All 7 core objects map 1:1 between Chatwoot and Zendesk.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Chatwoot and Zendesk.
Object compatibility
All 7 core objects map 1:1 between Chatwoot and Zendesk.
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 Zendesk migration scoping. Not seeing yours? Book a call.
Walk through your Chatwoot to Zendesk 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 Zendesk
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.