Helpdesk migration
Field-level mapping, validation, and rollback between Chatwoot and Gorgias. We move data and schema; workflows are rebuilt natively in Gorgias.
Chatwoot
Source
Gorgias
Destination
Compatibility
8 of 12
objects map 1:1 between Chatwoot and Gorgias.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Chatwoot and Gorgias take different structural approaches to customer support data. Chatwoot organizes around Inboxes and Conversations with labels and canned responses; Gorgias uses Tickets, Customers, and Macros with a deep Shopify and e-commerce integration layer. We map Chatwoot Conversations to Gorgias Tickets, Contacts to Customers, Agents to Users, and Labels to Tags. We flag that Chatwoot's free Hacker plan retains only 30 days of conversation history, which permanently eliminates any older tickets from the migration scope. Channel configurations (webhook URLs, WhatsApp templates, API keys, page tokens) are credentials-bound and do not transfer; we document the full channel inventory and provide a rebuild checklist for the customer's admin. Automation Rules and SLA Policies are tier-gated on Chatwoot and will not exist on lower plans, and neither these nor Gorgias Macros migrate as code. We deliver a written automation inventory for manual rebuild in Gorgias.
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 Gorgias, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Chatwoot
Conversation
Gorgias
Ticket
1:1Chatwoot Conversations map directly to Gorgias Tickets. Each Conversation carries status (open/resolved/pending), priority, assignee, team, inbox, and labels that map to Gorgias's Ticket status, priority, assignee, team, channel, and tags respectively. The full message thread migrates as comments on the Ticket. Chatwoot conversation priority flags (priority/low/normal/high/urgent) map to Gorgias's Ticket priority enum. The migration preserves created_at and updated_at timestamps on the Ticket record and on each Comment.
Chatwoot
Contact
Gorgias
Customer
1:1Chatwoot Contact records (name, email, phone, custom_attributes) map to Gorgias Customer records. The email field serves as the dedupe key during import. Custom attributes on Chatwoot Contacts (dropdown, text, checkbox, number) require pre-creation of matching custom fields in Gorgias via the custom-fields API endpoint before the Customer import phase. Chatwoot's built-in contact attributes (name, email, phone, picture, identifier) map directly; external identifiers and pixel IDs do not transfer.
Chatwoot
Message
Gorgias
Comment
1:1Chatwoot Messages belonging to a Conversation migrate as Gorgias Comments on the parent Ticket. Message content, sender_type (agent/customer), attachments, and private/internal note flags transfer. We order Comments by created_at timestamp to preserve the chronological thread. Attachments stored as Chatwoot blob URLs migrate as external links on the Comment; the actual file storage must be re-hosted or re-uploaded separately because Chatwoot blob credentials do not map to Gorgias attachment storage.
Chatwoot
Agent
Gorgias
User
1:1Chatwoot Agents map to Gorgias Users by email match. The Agent's name, role (agent/admin), and availability status migrate. Chatwoot role names (administrator, agent) map to Gorgias role equivalents. Passwords cannot transfer between platforms for security reasons; the customer provisions new Gorgias user credentials separately or uses SSO if available. Any Chatwoot Agent without a matching email in Gorgias goes to a reconciliation queue.
Chatwoot
Inbox
Gorgias
Channel
lossyChatwoot Inboxes (website live chat, email, WhatsApp, Facebook, Twitter, API) do not transfer as configured channels because webhook URLs, page tokens, WhatsApp Business API credentials, and API keys are credentials-bound to Chatwoot's infrastructure. We export the full inbox inventory (name, channel type, agents assigned) as a configuration checklist. The customer reconfigures each channel in Gorgias using the same credentials from their providers (WhatsApp Business API, Facebook App, email provider SMTP/IMAP). The Help Desk Migration app in Gorgias supports email import configuration directly from source email accounts.
Chatwoot
Team
Gorgias
Team
1:1Chatwoot Teams (Business+ tier only) map to Gorgias Teams. Teams group agents and route conversations in both platforms. If the source Chatwoot account is on Hacker or Startups, no Teams exist to migrate and this step is skipped. We create the team structure in Gorgias and assign the migrated Agents to the matching Team during the User import phase.
Chatwoot
Label
Gorgias
Tag
1:1Chatwoot Labels are string tags applied to Conversations. We export the full label taxonomy (name, color, display metadata) and remap them as Gorgias Tags on the corresponding Tickets. Label color and display metadata are not preserved because Gorgias Tags are plain string labels without color assignment at the API level. The customer can apply color manually in Gorgias if needed.
Chatwoot
Canned Response
Gorgias
Macro
1:1Chatwoot Canned Responses (pre-written reply templates with shortcut codes) map to Gorgias Macros. We export the full set including content, shortcut triggers, and any attached action (assign agent, add label, update status). Macro content migrates as the Macro's reply text; shortcut triggers do not transfer as triggers because Gorgias Macros are executed manually by agents rather than auto-triggered on keywords.
Chatwoot
Custom Attribute
Gorgias
Custom Field
lossyChatwoot Custom Attributes attached to Conversations or Contacts (text, number, dropdown, checkbox) require schema pre-creation in Gorgias before import. We export the Chatwoot custom attribute definitions (name, type, dropdown options) and create matching Gorgias custom fields via the custom-fields API with the same name and data type. Values migrate as raw data during the Conversation and Customer import phases.
Chatwoot
Help Center Article
Gorgias
Knowledge Base Article
1:1Chatwoot Help Center Articles (Startups+ tier) migrate to Gorgias Knowledge Base Articles. We export title, body (markdown), category, and locale for each article. Markdown body content transfers directly; images embedded in markdown require re-uploading to Gorgias's media library because image URLs are credentials-bound to Chatwoot's blob storage. Article category hierarchy maps to Gorgias Knowledge Base categories.
Chatwoot
Automation Rule
Gorgias
Rule or Automation
lossyChatwoot Automation Rules (Business+ tier only) trigger on conversation events and execute actions (assign, label, send email). The rule logic is Chatwoot-specific and does not transfer as executable code to Gorgias. We export every Automation Rule definition (trigger conditions, actions, execution order) as a written document. The customer's admin rebuilds equivalent Rules or Automations in Gorgias based on the inventory. If the source Chatwoot account is on Hacker or Startups, no Automation Rules exist to document.
Chatwoot
Integration
Gorgias
Integration
lossyChatwoot Integrations (Slack, Webhooks, third-party bots) have credentials-bound configurations that do not transfer. We document each active integration (name, type, trigger/action mapping) as a configuration checklist. Webhook URLs, Slack channel IDs, and bot tokens must be re-created in Gorgias. The customer configures the Gorgias-Slack integration directly in Settings if Slack connectivity is needed at the destination.
| Chatwoot | Gorgias | Compatibility | |
|---|---|---|---|
| Conversation | Ticket1:1 | Fully supported | |
| Contact | Customer1:1 | Fully supported | |
| Message | Comment1:1 | Fully supported | |
| Agent | User1:1 | Fully supported | |
| Inbox | Channellossy | Fully supported | |
| Team | Team1:1 | Fully supported | |
| Label | Tag1:1 | Fully supported | |
| Canned Response | Macro1:1 | Fully supported | |
| Custom Attribute | Custom Fieldlossy | Fully supported | |
| Help Center Article | Knowledge Base Article1:1 | Fully supported | |
| Automation Rule | Rule or Automationlossy | Fully supported | |
| Integration | Integrationlossy | 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.
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
Gorgias gotchas
AI Agent adds outcome-based fees on top of billable ticket costs
Overage billing for tickets scales nonlinearly
API rate limits restrict bulk export throughput
Agent data visibility cannot be restricted by role for GDPR use cases
Knowledge Base translations require separate API calls per locale
Pair-specific challenges
Migration approach
Scoping and data audit
We audit the source Chatwoot account across plan tier, conversation volume, agent count, inbox count, label taxonomy, canned responses, custom attributes, Help Center article count, and any active Automation Rules or SLA Policies. We identify data retention boundaries (30-day cliff on Hacker plan) and flag conversations that are permanently lost before migration begins. We produce a written migration scope document covering record counts per object, channel inventory, and which objects are absent due to plan tier.
Schema pre-creation in Gorgias
Before importing any records, we create the destination schema in Gorgias. This includes custom fields (matching Chatwoot custom attribute definitions via the custom-fields API with object_type set to Ticket or Customer), Knowledge Base categories (matching Chatwoot Help Center category hierarchy), and Teams (matching Chatwoot Team structure if present). Schema deployment is validated before any data moves because Gorgias rejects imports referencing undefined custom fields.
Agent and team provisioning
We extract every distinct Chatwoot Agent and map them by email to Gorgias Users. We assign roles (agent/admin) and group them into Gorgias Teams matching the Chatwoot Team structure. Any Chatwoot Agent without a matching Gorgias email goes to a reconciliation queue for the customer's admin to provision. This step must complete before any Conversation or Customer import because assignee and team references require resolved User IDs.
Customer and Conversation migration in dependency order
We run the migration in dependency order: Customers (from Chatwoot Contacts) first, then Tickets (from Chatwoot Conversations) with the message thread as Comments. We use email as the dedupe key for Customers. Labels from Chatwoot migrate as Tags on the Ticket. Attachments are handled as URL references pointing to the original Chatwoot-hosted file; the customer re-uploads files to Gorgias media if attachment access is required. Help Center articles migrate to Knowledge Base with markdown body content and category assignment.
Channel rebuild checklist delivery
We deliver a written channel inventory document listing every Chatwoot Inbox (name, channel type, provider, current configuration URL). The customer reconfigures each channel in Gorgias using the same provider credentials. We provide a step-by-step checklist for configuring email import, WhatsApp Business API, Facebook Messenger, live chat widget, and API channel in Gorgias. This step is outside the data migration scope because credentials cannot transfer.
Cutover and automation inventory handoff
We freeze Chatwoot writes during cutover, run a final delta migration of records modified during the migration window, and switch Gorgias to system of record. We deliver the Automation Rule and SLA Policy inventory document to the customer's admin team for rebuild in Gorgias Rules and Automations. We support a three-day hypercare window for reconciliation issues. We do not rebuild Chatwoot automations as Gorgias Rules inside the migration scope; that work is documented for the customer's admin.
Platform deep dives
Chatwoot
Source
Strengths
Weaknesses
Gorgias
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 3 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 Gorgias.
Object compatibility
3 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 Gorgias migration scoping. Not seeing yours? Book a call.
Walk through your Chatwoot to Gorgias 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 Gorgias
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.