Skip to content

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.

Tejas Mondeeri Tejas Mondeeri · · 8 min read
The Complete Guide to Migrating from Freshdesk to Intercom
TALK TO AN ENGINEER

Planning a migration?

Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.

Schedule a free call
  • 1,200+ migrations completed
  • Zero downtime guaranteed
  • Transparent, fixed pricing
  • Project success responsibility
  • Post-migration support included

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

Technical nuance: Intercom enforces strict uniqueness on company names if domains aren't provided. If your Freshdesk instance contains duplicate company names, you must merge them or append a unique identifier before import. Intercom API rate limits also apply—batch your requests to respect the limit of 83 requests per 10 seconds.

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.”

Technical nuance: Intercom enforces strict uniqueness on the email field. Freshdesk sometimes allows multiple contacts with the same email if created via different channels. You must deduplicate these records or merge their ticket histories in your script before pushing to Intercom.

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.

Technical nuance: Intercom's Tickets API is structurally distinct from its Conversations API. Tickets are designed for asynchronous, state-driven workflows (like bug tracking or complex support), whereas Conversations handle continuous dialogue. Evaluate whether a Freshdesk ticket maps better to an Intercom Ticket or an Intercom Conversation based on your team's workflow.

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.”

Technical nuance: Migrating attachments is a multi-step process. Freshdesk attachment URLs require authentication and expire. You must download the binary file to memory, upload it to Intercom via a multipart/form-data POST request, and then reference the returned upload ID in the conversation part. Inline images in HTML bodies must also be parsed, downloaded, and replaced with Intercom-hosted URLs.

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.

Migration approaches: Pros and cons

When moving from Freshdesk to Intercom, you generally have three paths. Each comes with distinct trade-offs.

1. Automated SaaS migration tools

  • Pros: Low upfront cost, fast setup for standard configurations, UI-driven mapping.
  • Cons: Highly rigid. These tools often fail on complex custom fields, large attachments, or inline HTML images. They lack robust error handling for API rate limits and provide no dedicated engineering support when edge cases cause data drops.

2. DIY custom scripts

  • Pros: Ultimate control over data transformations and business logic.
  • Cons: High engineering cost. Your internal team must learn both the Freshdesk and Intercom APIs, handle pagination, manage rate limits, and build idempotency to prevent duplicates during failed runs. This pulls engineers away from core product work.

3. Managed services (ClonePartner)

  • Pros: Engineer-led execution. We write custom scripts tailored to your exact schema, handle all API edge cases (like multipart attachment uploads and HTML sanitization), and guarantee zero data loss. You get the control of a custom script without the internal resource drain.
  • Cons: Higher initial cost than off-the-shelf SaaS tools.

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.

Why ClonePartner stands out: We don’t rely on generic middleware or rigid off-the-shelf tools. At ClonePartner, every Freshdesk to Intercom migration is handled by a senior engineer who audits your specific data structure and writes custom code to execute the move. We handle the technical nuances—API rate limits, strict email deduplication, inline image parsing, and relational mapping—so your team doesn't have to. If you want a seamless transition with zero data loss, ClonePartner manages the entire process from planning to go-live.

Further reading:

More from our Blog