Skip to main content

Tejas Mondeeri

·6 min read

The Complete Guide to Migrating from Freshdesk to Intercom

Learn how to migrate from Freshdesk to Intercom step by step. Migrate tickets, conversations, contacts, help center content, and automations safely.

ClonePartner Freshdesk to Intercom

Migrating from Freshdesk to Intercom is more than just transferring support data. It’s about reshaping your customer experience architecture. This guide walks you through every technical and operational step, from defining your scope to rebuilding automations and preserving historical accuracy.

1. Define your migration scope

Start by identifying which data and configurations truly need to move. Freshdesk and Intercom share similar building blocks. contacts, companies, tickets (or conversations), and help articles. But their models differ deeply in how they represent state and hierarchy.

Data you can migrate via API:

  • Contacts
  • Companies
  • Tickets (→ Intercom Tickets)
  • Conversations (→ Intercom Conversations)
  • Notes, Replies, and Attachments
  • Tags, Custom Fields, and CSAT ratings
  • Help Center articles

Data to rebuild manually:

  • Agents, Teams, SLAs, Business Hours, Automations
  • Saved Replies and Workflows
  • Email routing rules and mailboxes

Data to archive:

  • Time entries and analytics reports
  • Historical SLA metrics (not exposed through Intercom API)

Once you’ve defined scope, create a mapping sheet tracking each Freshdesk object, its Intercom equivalent, and the data transformations required.

2. Prepare Intercom for data import

Before migrating, Intercom must be ready to receive your data structure. Since relationships are strict (contacts link to companies, tickets reference both), prepare your workspace in this order:

  1. Create data attributes for contacts, companies, tickets, and conversations to mirror your Freshdesk custom fields.
  2. Set up ticket types and attributes for common categories (bug, refund, feature request).
  3. Rebuild your Help Center structure: create Collections and Folders before importing Articles.
  4. Invite all agents and assign them to Teams matching Freshdesk groups.
  5. Tag taxonomy cleanup: standardize tags to avoid duplicates during import.

With this foundation ready, you can begin API imports safely without referential issues.

3. Migrate objects (the heart of your migration)

3.1 Companies

Freshdesk Companies map directly to Intercom Companies.
Use company name and domain to maintain association with contacts.

Freshdesk

Intercom

Notes

id

company_id

Use as external_id for idempotent imports

name

name

Must be unique

domains[]

domains[]

Enables automatic linking

custom_fields

custom_attributes

Pre-create attributes

created_at

Custom “original_created_at” field

Intercom can’t backdate timestamps

3.2 Contacts

Freshdesk Contacts correspond to Intercom Contacts. Each contact can belong to a company, have multiple emails, and store extended attributes.

Freshdesk

Intercom

Notes

id

external_id

Required for deduplication

name

name

Combine first/last names if stored separately

email

email

Required for mapping replies

phone

phone

Normalize to E.164

company_id

Company relationship

Link post-import

tags[]

tags[]

1:1 mapping

custom_fields{}

custom_attributes{}

Create in advance

Exclude deactivated or spam contacts. Leads can be imported as contacts tagged “lead.”

3.3 Tickets → Intercom Tickets

Freshdesk Tickets are closest to Intercom’s Tickets API, which supports structured workflows and reporting.

Freshdesk

Intercom

Notes

id

external_id

Maintain idempotency

subject

title

Default to “No Subject” if missing

description

description

Clean HTML and upload inline images

priority

priority

Map Low→Low, High→High

status

state

Open, Pending, Resolved, Closed

group_id

team_assignee_id

Map to team in Intercom

agent_id

admin_assignee_id

Map to admin

tags[]

tags[]

Direct import

custom_fields{}

ticket_attributes{}

Schema must pre-exist

Attachments and replies:
Freshdesk stores conversations under each ticket. Intercom allows threaded replies with authors (contact or admin). Migrate each reply chronologically, attaching files where applicable.

3.4 Conversations

Freshdesk’s live chats and email threads map to Intercom Conversations. These represent actual message timelines with parts (messages, notes, and replies).

Freshdesk

Intercom

Notes

ticket_id

conversation_id

For one-to-one mapping

subject

source.subject

Optional; derive from first message

body_html

source.body

Sanitize and re-upload inline images

attachments[]

attachments[]

Upload via multipart API

status

state

Map Open, Pending, Closed

requester

contact_ids

Must exist as contact

agent_id

teammate_ids

Must exist as admin

tags[]

tag_ids

Maintain parity

created_at

created_at

If not backdatable, store in note text

Each conversation part becomes a message or note inside the Intercom thread. Internal notes map to Intercom “admin notes.”

3.5 Notes and Tags

Freshdesk private notes migrate as Intercom Notes attached to contacts or conversations. Tags migrate one-to-one.
Tag relationships are supported across contacts, conversations, and tickets in Intercom.

3.6 CSAT

Freshdesk’s Satisfaction Ratings can be represented in Intercom’s conversation_rating fields.
For historical data, add private notes containing the rating and timestamp if it can’t be programmatically created.

3.7 Help Center (Solutions → Help Center)

Freshdesk Solutions map to Intercom’s Help Center Collections and Articles.

Freshdesk

Intercom

Notes

category

collection

Parent-level grouping

folder

section

Sub-grouping

article

article

Retain formatting and attachments

tags[]

labels[]

Preserve topic tags

translations[]

translations[]

Optional multilingual support

After import, validate article URLs and re-upload attachments to Intercom’s CDN.

4. Rebuild automations, SLAs, and workflows

Once data migration is complete, reconstruct operational logic inside Intercom:

  • Rebuild workflows and assignment rules using Intercom’s automation builder.
  • Convert Freshdesk SLAs into Intercom’s ticket rules and reminders.
  • Recreate Saved Replies as Internal Articles for agents.
  • Configure Inbox routing for team-level ticket handling.
  • Rebuild tags-based triggers as workflow conditions.

This ensures your new workspace behaves like Freshdesk while taking advantage of Intercom’s unified chat + ticket system.

5. Manage gaps and historical data

Some Freshdesk features have no equivalent in Intercom and should be handled manually:

Missing in Intercom

Workaround

Time entries

Export to CSV for offline reporting

Agent roles & SLAs

Recreate manually

Ticket dependencies

Store relationships as linked_ticket_ids in attributes

Backdated timestamps

Add original_created_at note on record

Analytics data

Export as archive for reference

For audit purposes, keep an external archive (CSV or JSON) of closed tickets older than your retention threshold.

6. Insider Secrets

  1. Preserve conversation order.
    Intercom threads must reflect original sequence. Always sort messages by timestamp before insertion.
  2. Use external_id religiously.
    This ensures you can re-run delta migrations safely without duplicates.
  3. Don’t import everything at once.
    Test with 100 records covering edge cases (multi-agent tickets, attachments, non-English articles).
  4. Tag everything with origin.
    Add a tag like migrated_from_freshdesk for easy filtering and rollback verification.

Quick Recap

Migrating from Freshdesk to Intercom isn’t just about data, it’s about transitioning to a conversational model that unifies tickets, chat, and automation.

Start by preparing your data attributes and workspace, then move companies, contacts, tickets, and conversations in sequence.

Rebuild your automations and Help Center only after data validation. Handle historical metrics and timestamps via notes or archives.

At ClonePartner, we’ve completed numerous Freshdesk to Intercom migrations. Each project is handled by a dedicated engineer who customizes the data mapping to match your setup. If you want to avoid the technical complexity, ClonePartner can manage the entire migration for you, from planning and field mapping to validation and go live.

Further reading: