Migrate your Chatwoot data
Open-source, self-hostable customer support platform with omni-channel inbox and a generous free tier. Grows from solo shop to mid-market, but feature gating and data retention limits trip up scaling teams.
In its favor
Why people choose Chatwoot
The signal that keeps Chatwoot on the shortlist. Sourced from G2, Capterra, and customer scoping calls.
Self-hosting option gives engineering teams full data sovereignty without per-seat SaaS fees, making it a direct replacement for Intercom at a fraction of the cost.
Free Hacker plan with 2 agents and 500 conversations lets small teams validate the platform before committing to a paid tier.
Omni-channel inbox unifies live chat, email, WhatsApp, Facebook, and API into a single queue, eliminating tab-switching for support agents.
G2 reviewers highlight clean interface and minimal training: interns resolve tickets on day one without onboarding docs.
Open-source codebase means teams can self-host on Docker Compose, own their PostgreSQL and Redis, and avoid vendor lock-in.
The Hacker free plan caps at 2 agents, 1 inbox, and 30-day data retention — teams that grow quickly hit these walls and feel forced to upgrade before they are ready.
G2 reviewers report limited connectivity issues and technical glitches including portal disconnections that interrupt active support sessions.
Captain AI credits model charges $20 per 1,000 extra credits beyond the free monthly allocation, creating unexpected billing surprises for teams that adopt AI features heavily.
Feature gating is aggressive: Teams, Automation Rules, Help Center, SSO, Audit Logs, and SLA Policies all require paid tiers, making the real cost much higher than the headline per-agent price.
Database schema inconsistencies on stable tags v4.2–v4.4 have caused production installation failures, making version upgrades risky without careful pre-testing.
Reasons to switch
Why people leave Chatwoot
The recurring reasons buyers give for replacing Chatwoot. Presented as facts, not knocks.
Platform scorecard
Strengths, weaknesses, and where Chatwoot fits
Grades across six dimensions, plus a SWOT-style view of where the platform shines and where it falls short.
SWOT — strengths, weaknesses, and use-case fit
Strengths
Weaknesses
Where it works
Where it struggles
Pricing tiers
Chatwoot pricing overview
Chatwoot bills per agent on cloud plans ($0–$39/agent/month) with data retention ranging from 30 days on the free Hacker tier to 2 years on Business. Self-hosted Enterprise Edition costs $99/agent/month. Captain AI credits cost $20 per 1,000 beyond the included monthly allocation.
Hacker
Tier 1 of 4
$0 /agent/month
What's included
Need help selecting your Helpdesk?
Book a free 30 minute consultationPricing is informational. FlitStack AI does not bill on Chatwoot's schedule — see our quote-based pricing →
What gets migrated
Chatwoot object support
Object-by-object support for Chatwoot migrations. Per-pair details surface during scoping.
Conversations
Fully supportedConversations are the core unit in Chatwoot. Each has a status (open/resolved/pending), priority, assignee, team, inbox, and labels. We migrate conversations as complete objects including their message arrays, timestamps, and custom_attributes. Round-robin assignment logic must be explicitly re-applied at the destination.
Contacts
Fully supportedContacts store name, email, phone, and custom_attributes. Standard attributes auto-update; custom ones require schema mapping. We export all Contact records and re-import them, preserving any Contact Labels as tag arrays on the destination record.
Messages
Fully supportedMessages belong to Conversations and carry content, sender_type (agent/customer), attachments, and private notes. We preserve message order by created_at timestamp. Attachments are stored as URLs and must be re-hosted or linked depending on destination storage capabilities.
Inboxes
Mapping requiredInboxes represent channels (Website Live Chat, Email, WhatsApp, Facebook, Twitter, API). Channel configuration (webhook URLs, page tokens, WhatsApp templates) does not transfer between platforms. We migrate inbox structure but channel credentials must be reconfigured at the destination.
Agents
Fully supportedAgents are user accounts tied to email, name, role, and availability status. Roles are limited on lower tiers. We map Agents to destination user accounts and preserve role assignments. Passwords cannot be exported and must be reset at the destination.
Teams
Mapping requiredTeams are available only on Business and Enterprise tiers. They group agents and route conversations. If the source is on Hacker or Startups, no Teams exist to migrate. We create matching Team structures and reassign agent-team memberships at the destination.
Labels
Fully supportedLabels are string tags applied to Conversations. They are simple key-value records. We export the full label taxonomy and re-apply labels to migrated conversations. Label color and display metadata are preserved where supported by the destination.
Custom Attributes
Mapping requiredCustom Attributes attach to Conversations or Contacts and can be text, number, dropdown, or checkbox. Schema must be created at the destination before import. Values are migrated as raw data; downstream automation rules referencing them must be rebuilt.
Canned Responses
Fully supportedCanned Responses are pre-written reply templates with shortcut codes. We export the full set including content and shortcut triggers. They map cleanly to most destination platforms as template or snippet objects.
Automation Rules
Mapping requiredAutomation Rules trigger on Events (conversation created/updated) and execute Actions (assign, label, send email). They require Business tier or higher. Rule logic is platform-specific and must be rebuilt at the destination; we export the rule definitions as documentation for manual reconstruction.
Help Center Articles
Mapping requiredHelp Center Articles are published knowledge base content. This feature requires Startups tier or higher. Articles have title, body (markdown), category, and locale. We export the full article tree and re-publish it, though category structure may require manual recreation depending on destination schema.
SLA Policies
Mapping requiredSLA Policies define first-response and resolution time targets per priority level and are Enterprise Edition only. We export policy definitions and compliance metrics but cannot migrate the live SLA clock state. SLA alerts and business-hours configuration must be reapplied manually.
Integrations
Mapping requiredIntegrations include Slack, Webhooks, and third-party bots. Webhook URLs, Slack channel mappings, and bot tokens are credentials-bound and will not function at the destination. We document integration configurations so they can be re-entered manually at the destination.
Reports
Not in this platformReports (CSAT, conversation metrics, agent performance) are derived data calculated at query time from conversation and message records. We do not export report snapshots. The underlying Conversations and Messages are migrated so reporting can be regenerated at the destination from historical data.
| Object | Support | Notes |
|---|---|---|
| Conversations | Fully supported | Conversations are the core unit in Chatwoot. Each has a status (open/resolved/pending), priority, assignee, team, inbox, and labels. We migrate conversations as complete objects including their message arrays, timestamps, and custom_attributes. Round-robin assignment logic must be explicitly re-applied at the destination. |
| Contacts | Fully supported | Contacts store name, email, phone, and custom_attributes. Standard attributes auto-update; custom ones require schema mapping. We export all Contact records and re-import them, preserving any Contact Labels as tag arrays on the destination record. |
| Messages | Fully supported | Messages belong to Conversations and carry content, sender_type (agent/customer), attachments, and private notes. We preserve message order by created_at timestamp. Attachments are stored as URLs and must be re-hosted or linked depending on destination storage capabilities. |
| Inboxes | Mapping required | Inboxes represent channels (Website Live Chat, Email, WhatsApp, Facebook, Twitter, API). Channel configuration (webhook URLs, page tokens, WhatsApp templates) does not transfer between platforms. We migrate inbox structure but channel credentials must be reconfigured at the destination. |
| Agents | Fully supported | Agents are user accounts tied to email, name, role, and availability status. Roles are limited on lower tiers. We map Agents to destination user accounts and preserve role assignments. Passwords cannot be exported and must be reset at the destination. |
| Teams | Mapping required | Teams are available only on Business and Enterprise tiers. They group agents and route conversations. If the source is on Hacker or Startups, no Teams exist to migrate. We create matching Team structures and reassign agent-team memberships at the destination. |
| Labels | Fully supported | Labels are string tags applied to Conversations. They are simple key-value records. We export the full label taxonomy and re-apply labels to migrated conversations. Label color and display metadata are preserved where supported by the destination. |
| Custom Attributes | Mapping required | Custom Attributes attach to Conversations or Contacts and can be text, number, dropdown, or checkbox. Schema must be created at the destination before import. Values are migrated as raw data; downstream automation rules referencing them must be rebuilt. |
| Canned Responses | Fully supported | Canned Responses are pre-written reply templates with shortcut codes. We export the full set including content and shortcut triggers. They map cleanly to most destination platforms as template or snippet objects. |
| Automation Rules | Mapping required | Automation Rules trigger on Events (conversation created/updated) and execute Actions (assign, label, send email). They require Business tier or higher. Rule logic is platform-specific and must be rebuilt at the destination; we export the rule definitions as documentation for manual reconstruction. |
| Help Center Articles | Mapping required | Help Center Articles are published knowledge base content. This feature requires Startups tier or higher. Articles have title, body (markdown), category, and locale. We export the full article tree and re-publish it, though category structure may require manual recreation depending on destination schema. |
| SLA Policies | Mapping required | SLA Policies define first-response and resolution time targets per priority level and are Enterprise Edition only. We export policy definitions and compliance metrics but cannot migrate the live SLA clock state. SLA alerts and business-hours configuration must be reapplied manually. |
| Integrations | Mapping required | Integrations include Slack, Webhooks, and third-party bots. Webhook URLs, Slack channel mappings, and bot tokens are credentials-bound and will not function at the destination. We document integration configurations so they can be re-entered manually at the destination. |
| Reports | Not in this platform | Reports (CSAT, conversation metrics, agent performance) are derived data calculated at query time from conversation and message records. We do not export report snapshots. The underlying Conversations and Messages are migrated so reporting can be regenerated at the destination from historical data. |
Gotchas
What to watch for in Chatwoot migrations
Issues we've hit on past Chatwoot migrations, tagged by severity. FlitStack AI handles every one — surfacing them up front because buyer engineering teams want to know.
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
| Severity | Issue |
|---|---|
| High | Hacker plan 30-day data retention permanently deletes conversations |
| High | Free plan limits silently block new inboxes and agents |
| Medium | Captain AI credits bill at $20 per 1,000 beyond the monthly allocation |
| Medium | Database schema inconsistencies on stable tags v4.2–v4.4 |
| Low | Automation Rules and SLA Policies are tier-gated and cannot export from lower plans |
Leaving Chatwoot?
Where Chatwoot customers move next
7 destinations Chatwoot can migrate to.
How a Chatwoot migration works
Four steps, Chatwoot-specific
Connect
API key (personal access token) into Chatwoot. Scopes limited to read-only on the data we move.
Map
We translate Chatwoot-specific structures (custom fields, objects, value lists) to the destination's model.
Sample
Test with a 50–200 record subset to validate Chatwoot quirks before production.
Migrate
Full migration with Chatwoot rate-limit handling. Rollback available throughout.
FAQ
Chatwoot migration FAQ
Answers to the questions buyers ask most during Chatwoot migration scoping. Not seeing yours? Book a call.
Can't find your answer?
Walk through your Chatwoot migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationOther helpdesks we support
Ready when you are
Migrate Chatwoot.
Without the rebuild.
Free scoping call with a migration engineer. Tell us about your Chatwoot setup and destination — written quote back within a business day.