Helpdesk migration
Field-level mapping, validation, and rollback between Chatwoot and Intercom. We move data and schema; workflows are rebuilt natively in Intercom.
Chatwoot
Source
Intercom
Destination
Compatibility
10 of 12
objects map 1:1 between Chatwoot and Intercom.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Chatwoot to Intercom is a platform switch that consolidates a self-managed support stack onto a SaaS-native one. Chatwoot organizes support around Inboxes (live chat, email, WhatsApp, API, Facebook) with Agents, Teams, and Labels; Intercom uses Conversations tied to Users and Leads with a structured Inbox, Workflows, and Help Center. We export the full conversation history including message arrays, attachments, and timestamps, re-associate them with imported Contacts, and map Labels to Intercom Tags. Teams from Chatwoot Business and Enterprise tiers map to Intercom's Inbox team structure. We do not migrate Automation Rules, Canned Responses, or Help Center Articles as code; we deliver written inventories for the customer's admin to rebuild. The Captain AI credit model and 30-day retention cliff on Chatwoot Hacker plans are source-side constraints that determine whether historical conversations exist at export time.
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 Intercom, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Chatwoot
Conversation
Intercom
Conversation (Ticket)
1:1Chatwoot Conversations map to Intercom Conversations (Tickets). Each conversation carries status (open/resolved/pending), priority, assignee, team, inbox, labels, and a full message thread. We preserve the conversation status as Intercom's open/closed/snoozed state, resolve assignee by email against imported Users, and carry priority as a custom conversation attribute. Message arrays are re-imported as conversation parts in chronological order by created_at timestamp. Attachments stored as URLs are re-uploaded to Intercom's file storage and linked to the conversation part.
Chatwoot
Contact
Intercom
User or Lead
1:1Chatwoot Contacts with email addresses map to Intercom Users. Contacts without email map to Leads. Standard attributes (name, email, phone, custom_attributes) migrate directly. We create the Intercom contact record first so that conversation imports can reference the User/Lead by external_id. Custom attributes require pre-creation of corresponding custom data attributes in the Intercom workspace before import.
Chatwoot
Message
Intercom
Conversation Part
1:1Chatwoot Messages belong to Conversations and carry content, sender_type (agent/customer), attachments, and private notes. We preserve message order by created_at timestamp. Agent messages become conversation parts from the assigned User; customer messages become parts from the contact. Private notes in Chatwoot map to internal Intercom notes. Attachments are re-uploaded and linked to the conversation part.
Chatwoot
Inbox
Intercom
Inbox
lossyChatwoot Inboxes (Website Live Chat, Email, WhatsApp, Facebook, Twitter, API) map to Intercom Inboxes. Channel configuration (webhook URLs, page tokens, WhatsApp template IDs, API keys) does not transfer between platforms and must be re-configured manually in Intercom for each channel. We document the source inbox types and the channel configuration requirements so the customer's admin sets up the equivalent inboxes before migration.
Chatwoot
Agent
Intercom
User
1:1Chatwoot Agents (user accounts with email, name, role, and availability status) map to Intercom Users. Role assignment migrates as Intercom team membership. Availability status is set at migration time; agents start as offline and can be set to online after migration. Passwords cannot transfer; users receive email invitations to set their own passwords. Agents without email addresses are flagged during scoping for manual resolution.
Chatwoot
Team
Intercom
Team or Inbox Assignment Rule
1:1Chatwoot Teams (Business and Enterprise tiers only) group agents and route conversations. Teams migrate to Intercom Teams with the same agent membership. If the source is on Hacker or Startups tier, no Teams exist to migrate. We create matching Team structures and configure Inbox assignment rules in Intercom during migration. Teams without a Chatwoot equivalent are created as Intercom Teams for organizational clarity.
Chatwoot
Label
Intercom
Tag
1:1Chatwoot Labels are string tags applied to Conversations. They migrate as Intercom Tags on the mapped conversation. Label color and display metadata are Chatwoot-specific and do not transfer; Intercom Tags are text-based. We export the full label taxonomy and re-apply each label to migrated conversations by conversation ID. Tag counts are reconciled against the source label counts post-import.
Chatwoot
Custom Attribute
Intercom
Custom Data Attribute
lossyChatwoot Custom Attributes (text, number, dropdown, checkbox) attach to Conversations or Contacts. Intercom requires custom data attributes to be pre-created in the workspace before import. We create matching attributes in Intercom during the schema preparation phase, preserving the attribute type (string, number, dropdown options, boolean). Values are migrated as raw data. Downstream automation references to these attributes require rebuilding in Intercom Workflows post-migration.
Chatwoot
Canned Response
Intercom
Saved Reply
1:1Chatwoot Canned Responses are pre-written reply templates with shortcut codes. They map directly to Intercom Saved Replies. Shortcut triggers migrate as the Saved Reply shortcut. Content migrates as-is. We export the full canned response set including shortcut triggers and apply them to the Intercom workspace. Saved Reply grouping by category does not exist in Chatwoot, so all migrate as ungrouped.
Chatwoot
Automation Rule
Intercom
Workflow (documentation only)
1:1Chatwoot Automation Rules (Business tier and above) trigger on Events (conversation created/updated) and execute Actions (assign, label, send email). Rule logic is platform-specific and cannot transfer as code. We export every Automation Rule with its trigger, conditions, and actions into a written inventory document. The customer's admin rebuilds equivalent Workflows in Intercom. If the source is on Hacker or Startups tier, no Automation Rules exist to document.
Chatwoot
Help Center Article
Intercom
Article or Collection
1:1Chatwoot Help Center Articles (Startups tier and above) have title, body (markdown), category, and locale. They migrate to Intercom Articles and Collections. We export the full article tree and re-import the content into Intercom's Help Center. Article URLs, slug structure, and category hierarchy require manual reconstruction in Intercom's content management UI. If the source is on Hacker tier, no Help Center exists to migrate.
Chatwoot
SLA Policy
Intercom
SLA (documentation only)
1:1Chatwoot SLA Policies (Enterprise Edition only) define first-response and resolution time targets per priority level. Intercom does not have a native SLA Policy object; SLA compliance tracking requires third-party apps or custom reporting. We export SLA Policy definitions and compliance metrics into a written document. The customer configures equivalent SLA monitoring in Intercom using Workflows and reporting or a compatible AppExchange SLA tool.
| Chatwoot | Intercom | Compatibility | |
|---|---|---|---|
| Conversation | Conversation (Ticket)1:1 | Fully supported | |
| Contact | User or Lead1:1 | Fully supported | |
| Message | Conversation Part1:1 | Fully supported | |
| Inbox | Inboxlossy | Fully supported | |
| Agent | User1:1 | Fully supported | |
| Team | Team or Inbox Assignment Rule1:1 | Fully supported | |
| Label | Tag1:1 | Fully supported | |
| Custom Attribute | Custom Data Attributelossy | Fully supported | |
| Canned Response | Saved Reply1:1 | Fully supported | |
| Automation Rule | Workflow (documentation only)1:1 | Fully supported | |
| Help Center Article | Article or Collection1:1 | Fully supported | |
| SLA Policy | SLA (documentation only)1:1 | 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
Intercom gotchas
S3 JSON export omits conversation transcripts
Workspace isolation prevents workflow migration
Fin AI resolution fees compound with automation success
Two-year conversation history limit on historical export
Private app rate limits share workspace quota
Pair-specific challenges
Migration approach
Discovery and retention audit
We audit the source Chatwoot account across plan tier, agent count, inbox types, conversation volume, custom attribute definitions, and active labels. The most critical discovery item is data retention: if the source is on Hacker tier and older than 30 days, we identify which conversations are recoverable and which are already purged. We also extract the full object inventory (conversations, contacts, messages, agents, teams, labels, custom attributes, canned responses, automation rules, help center articles) with row counts. The discovery output is a written migration scope and a retention status report that determines what historical data is available to migrate.
Schema preparation and Intercom workspace setup
We pre-create custom data attributes in the Intercom workspace that mirror Chatwoot's custom attribute definitions. We create matching Inbox structures for each Chatwoot inbox channel (live chat, email, WhatsApp, API) and document the channel configuration that requires re-setup (webhook URLs, page tokens, WhatsApp templates). We create Teams that mirror Chatwoot Teams if the source is on Business or Enterprise. If Intercom Custom Objects are needed for Chatwoot custom attributes, we flag the API write limitation and recommend the custom data attribute strategy instead.
Export, transform, and sandbox validation
We export Chatwoot data via the REST API and pg_dump for self-hosted instances. Exports run in parallel for contacts, conversations, and messages to minimize total export time. We transform the data into Intercom's import schema: Contacts to Users/Leads with external_id, Conversations to Tickets with conversation parts, Labels to Tags. We run a sandbox migration into a non-production Intercom workspace using a representative sample (200-500 records per object) to validate mapping fidelity and flag any data quality issues before full production migration.
Contact import with deduplication
We import Contacts first because all subsequent objects depend on the contact record. Chatwoot Contacts with email addresses become Intercom Users; contacts without email become Leads. We apply email deduplication logic (existing Intercom users with matching email are matched rather than duplicated). Phone numbers are validated and cleaned before import; invalid numbers are flagged for manual correction. Custom attribute values are set on each contact record using the pre-created custom data attributes. We reconcile contact counts between Chatwoot source and Intercom destination before proceeding.
Conversation import with message threading
We import Conversations in batches of 200-500 using the Intercom API with exponential backoff and rate limit handling. Each conversation references its contact by external_id, which was set during the contact import phase. Message parts are imported in created_at timestamp order to preserve chronological threading. Private notes from Chatwoot become internal notes in Intercom. Labels are applied per conversation. Attachments are re-uploaded to Intercom's file storage and linked to conversation parts. We reconcile conversation counts and message counts post-import against source totals.
Cutover, delta migration, and Workflow rebuild handoff
We freeze Chatwoot writes during cutover, run a final delta migration of any conversations or contacts created or modified after the initial export timestamp, then hand off to Intercom as the system of record. We deliver the Automation Rule inventory document (for Business and Enterprise source plans) and the Help Center article export so the customer's admin can rebuild Workflows and Help Center content in Intercom. We do not rebuild Chatwoot Canned Responses as Saved Replies inside the migration scope unless specifically contracted. We provide a one-week hypercare window for reconciliation issues raised during the first week of production use.
Platform deep dives
Chatwoot
Source
Strengths
Weaknesses
Intercom
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. 2 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Chatwoot and Intercom.
Object compatibility
2 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 Intercom migration scoping. Not seeing yours? Book a call.
Walk through your Chatwoot to Intercom 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 Intercom
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.