Skip to main content

Tejas Mondeeri

·10 min read

The Complete Guide to Migrating from Help Scout to Intercom

Planning a Help Scout to Intercom migration? This guide explains object mapping, thread history, attachment workarounds, tags, and common pitfalls.

ClonePartner Help Scout to Intercom migration

Moving from Help Scout to Intercom is more than just a platform switch. It’s a shift from a shared mailbox style workflow to a full conversational relationship model. Help Scout is organized around mailboxes, customers, and conversations. Intercom, on the other hand, focuses on contacts, companies, and conversations enriched with automation, tickets, and data attributes.

This guide walks you through each step of the process: from defining your scope to rebuilding workflows and managing historical data. You’ll also find insider tactics that only come from engineers who’ve performed this migration multiple times.

1. Define Your Migration Scope

Before exporting anything, decide what you need to move and what you’ll rebuild. Help Scout’s model is simple but broad. It includes customers, conversations, threads, attachments, tags, ratings, and saved replies. Intercom supports all of those concepts, but some of them translate differently.

Data to migrate

  • Customers (including addresses, phones, social profiles)
  • Organizations
  • Conversations and their threads
  • Attachments and tags
  • Ratings (CSAT)
  • Custom fields and properties
  • Docs knowledge base.

Configuration to rebuild

  • Mailboxes
  • Saved Replies
  • Routing Rules
  • Folders and Views
  • Docs navigation, visibility rules, redirects, SEO settings

Data to archive

  • Historical reports and performance metrics
  • Automation rules and triggers
  • Old workflows that have no Intercom equivalent
  • Article revision history and analytics that do not map

Once you’ve mapped these, create a migration sheet that captures every Help Scout object, its Intercom destination, and any field transformations needed.

2. Prepare Intercom for Data Import

Before any data import, configure your Intercom workspace so that migrated records have valid relationships.

  1. Create data attributes. These act as custom fields for Contacts, Companies, and Conversations. Predefine attributes for every Help Scout property you intend to preserve.
  2. Configure Teams and Agents. Create teams and assign agents before importing conversations.
  3. Enable Conversation Ratings if you plan to migrate historical CSAT data.
  4. Review your tag taxonomy. Standardize naming, since both systems use tags but apply them differently.
  5. Precreate Collections that will receive migrated content.
  6. Decide your hierarchy strategy and prepare article attributes.

Once done, your Intercom workspace will be ready to receive imported customers, conversations, and relationships.

3. Migrate Objects

This section covers the detailed object mappings and migration order. The logical flow is:

Properties → Organizations → Customers → Conversations → Threads → Attachments → Tags → Ratings → Knowledge Base

3.1 Properties and Custom Fields

Help Scout properties are flexible fields on customers, conversations, or organizations. In Intercom, these map to Data Attributes.

Define each field’s type (string, number, boolean, or date) before import. For example:

Help Scout Property

Intercom Equivalent

Notes

custom_fields.priority

conversation_data_attributes.priority

Create custom field first

customer_property.industry

contact_data_attributes.industry

Define field in Intercom Settings → Data attributes

organization_property.plan_tier

company_data_attributes.plan_tier

Store company-level fields

3.2 Organizations → Companies

Help Scout Organizations translate directly to Intercom Companies.

Each Company can be identified by its company_id or name, and linked to Contacts.

Help Scout Field

Intercom Field

Notes

id

external_id

Keep stable for idempotent imports

name

name

Direct mapping

domain

domain

Enables auto-linking for contacts

custom fields

company_data_attributes

Define before import

Once companies are imported, verify they appear once per unique domain and are linked to the right contacts.

3.3 Customers → Contacts

Customers are the core of the migration. Every Help Scout Customer becomes an Intercom Contact.

Help Scout Field

Intercom Field

Notes

id

external_id

Use to ensure idempotency

first_name / last_name

name

Combine into one

email

email

Required only if external_id is not provided. Intercom allows creating contacts identified solely by external_id

phone

phone

Normalize to E.164 format

address

location fields

Use Intercom’s location.country, region, city

chat_handles / social_profiles

custom attributes

Store as text fields or JSON

websites[]

custom attributes

Multiple URLs → semicolon-separated string

tags[]

tags[]

One-to-one mapping

Leads or inactive users can be tagged as “legacy-lead” if they no longer exist in your active database.

3.4 Conversations

Help Scout Conversations correspond to Intercom Conversations.
The structure is similar. Each Conversation has metadata, tags, custom fields, and multiple threads.

Help Scout Field

Intercom Field

Notes

id

external_id

Critical for reruns

subject

title

Use first thread message if empty

status (active, closed, pending, spam)

state

Map to Intercom open, closed, or snoozed

mailbox_id

team_assignee_id

Map based on team created earlier

assignee_id

admin_assignee_id

Link to admin ID

created_at

created_at

Timestamps preserved (cannot be backdated)

tags[]

tags[]

Direct mapping

custom_fields

data_attributes

Pre-create all conversation fields

3.5 Threads → Conversation Parts

Help Scout Threads represent individual messages, notes, or phone logs inside conversations.
In Intercom, these become Conversation Parts.

Help Scout Thread Type

Intercom Equivalent

Notes

reply

conversation part (public)

Author = contact or admin

note

conversation part (internal note)

Mark as internal

phone

conversation part (public or note)

Tag as “phone_call” using source.type

chat

conversation part (public)

Include messenger timestamp

attachments

uploaded file references

Re-upload and attach to part

scheduled thread

external scheduler

Use a background job to post replies at correct time

Maintain chronological order of messages for readability, and attach timestamps in note headers when Intercom prevents backdating.

3.6 Attachments

Help Scout supports direct file attachments per thread. Intercom’s public API does not offer a general upload endpoint for conversation attachments.
The workaround is to:

  • Upload files to an external storage (e.g., S3)

  • Insert their signed URLs into the message body

  • Preserve original filenames and author context

If inline images exist, replace base64-encoded content with hosted links.

3.7 Tags

Tags migrate cleanly. Intercom supports tagging Contacts, Conversations, and Companies.

Steps:

  1. Create tag taxonomy in Intercom first.

  2. Import all unique Help Scout tags.

  3. Attach tags to contacts and conversations in the same batch.

This ensures uniform tag references across objects.

3.8 Ratings

Help Scout offers post-conversation satisfaction ratings that appear as “Great,” “Okay,” or “Not Good.” Intercom also supports conversation ratings, but its built-in conversation_rating object is read-only and cannot be populated through the API.

To preserve historical CSAT data from Help Scout, you can store the scores and comments as custom attributes or internal notes instead.

3.9 Saved Replies

Help Scout’s Saved Replies (canned messages) need to be recreated manually as Intercom Inbox Macros.

Export their text and subject from Help Scout and re-import them manually or through Intercom’s UI.

You can group similar replies by use case and assign them to the corresponding Teams.

3.10 Knowledge Base (Docs → Help Center)

Help Scout’s Docs product is structured around Sites, Collections, and Articles, while Intercom organizes knowledge bases as Help Centers, Collections, and Articles. The hierarchy is similar, but Intercom flattens categories and offers richer presentation and search options.

Docs Sites → Help Centers
Each Help Scout Docs site maps directly to one Intercom Help Center. If you manage multiple branded Docs sites in Help Scout, create separate Help Centers in Intercom.

Collections → Collections
Help Scout Collections (and any nested Categories under them) correspond to Intercom Collections. 

Help Scout Field

Intercom Field

Notes

id

external_id

Preserve for idempotent imports

name

name

Direct mapping

slug

custom attribute legacy_slug

Useful for redirects

visibility

Help Center visibility

Choose “Public” or “Internal” based on source

Articles → Articles
Help Scout Articles translate directly to Intercom Articles within each Collection.

Help Scout Field

Intercom Field

Notes

id

external_id

Required for reruns and deltas

name

title

Direct mapping

text (HTML)

body

Clean inline styles and image URLs

author_id

author_id

Map to existing admin

tags[]

tags[]

One-to-one mapping

attachments[]

attachments[]

Re-upload and update references

category_id

collection_id

Flatten if needed

visibility

published state

Set to published or draft

translations[]

language-specific articles

Create per-locale variants

After migration, verify that each article appears under the correct Collection and that internal links resolve to new Intercom article URLs.

Attachments and Images
Help Scout allows attachments and inline images. Intercom stores these as uploaded assets within articles. Re-upload files, then replace any src or href references in your HTML body with the new asset URLs.

4. Rebuild Automations, Workflows, and Views

Once data is imported, replicate Help Scout’s operational logic in Intercom:

  • Routing Rules → Workflows. Recreate auto-assignment and prioritization in Intercom’s Workflow Builder.

  • Mailboxes → Teams. Use Teams to segment customer support groups.

  • Folders and Views. Create saved filters in Intercom Inbox to mirror Help Scout’s folder structure (e.g., “My Pending Tickets”).

  • Saved Replies → Macros. Rebuild frequently used responses.

  • SLAs and Business Hours. Configure time-based rules for response expectations.

  • Recreate Help Center navigation using Collections and article ordering. Use your theme or UI to simulate category depth if needed.

  • Reapply visibility and SEO settings. Replicate public or internal visibility using Intercom’s Help Center and Article settings. Populate meta title and description fields as needed.

  • Implement your redirect map at the edge so old Docs URLs resolve to the new Intercom Articles. 

5. Manage Gaps and Historical Data

Not everything will fit neatly into Intercom’s data model. Handle these carefully:

Help Scout Object

Intercom Equivalent

Approach

Routing Configuration

Workflows

Recreate manually

Inboxes

Teams

Create manually, one per mailbox

Saved Replies

Macros

Manual recreation

Folders

Views

Manual recreation

Legacy Mailbox Rules

Workflow exports

Document for audit

For anything that cannot be replicated (e.g., API rate limits, old automations), export and archive them as CSV or JSON for reference.

6. Insider Secrets (last verified as of DD/MM/YYY)

This is where the hard-won lessons come in. Things only people who’ve done this migration at scale will tell you.

  1. Preserve the external IDs
    Always carry over Help Scout’s id as Intercom’s external_id. It’s your key to idempotent imports and safe delta runs.

  2. Normalize timestamps early
    Help Scout timestamps are in ISO format. Intercom expects UNIX epoch seconds. Convert and round before pushing data.

  3. Clean your HTML bodies
    Help Scout threads often embed signatures, inline images, or broken formatting. Use an HTML sanitizer to convert base64 images into hosted URLs before sending to Intercom.

  4. Batch attachments carefully
    Uploading attachments sequentially can hit API rate limits. Pre-stage uploads in parallel using a job queue, then inject URLs in messages.

  5. Handle private notes first
    Intercom enforces author context more strictly. Import internal notes before public replies to maintain correct chronological order and agent visibility.

  6. Backfill company-contact relationships
    Don’t rely on Intercom’s automatic domain matching alone. Explicitly attach each contact to its company after both exist.

  7. Run a pilot migration
    Pick 50–100 conversations covering all thread types (email, chat, note, phone). Validate formatting, attachments, and timestamps before scaling.

  8. Perform a delta sync before go-live
    On cutover day, pause Help Scout, re-export recent conversations updated in the last few hours, and rerun the import. This keeps both systems perfectly in sync.

Summary

Migrating from Help Scout to Intercom is a structured, multi-phase process.

Define your scope early. Create Intercom Data Attributes, Companies, and Teams before importing.

Migrate Customers, Conversations, Threads, Tags, Attachments, Ratings and Knowledge Base in that order.

Rebuild your workflows manually and document gaps.

If you’d rather not wrestle with mapping sheets and pagination loops, ClonePartner can handle the full migration for you. Every project gets a dedicated engineer who understands the nuances of both APIs and ensures zero downtime.

Further reading: