Helpdesk migration

Migrate from Service to Intercom

Field-level mapping, validation, and rollback between Service and Intercom. We move data and schema; workflows are rebuilt natively in Intercom.

Service logo

Service

Source

Intercom

Destination

Intercom logo

Compatibility

100%

12 of 12

objects map 1:1 between Service and Intercom.

Complexity

BStandard

Timeline

24–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Legacy helpdesk platforms organize support around structured tickets — discrete records with statuses, priorities, requesters, and internal comments stored in separate comment tables. Intercom organizes everything around contacts and conversations, where each conversation is a thread of conversation_parts spanning messages, notes, and actions. The migration is a structural translation: tickets become conversations, comments become conversation_parts, and internal notes require deliberate mapping to Intercom's private parts. We extract data from the source platform via its native export API or CSV, transform the schema to match Intercom's REST API payload, and write records using Intercom's /contacts, /conversations, and /companies endpoints. Custom fields on the source side map to Intercom custom attributes, which must be pre-created in the workspace before bulk write runs. SLA policies, assignment rules, and escalation workflows do not migrate — we export those definitions as JSON so your Intercom admin can rebuild them in Intercom's workflow engine. A 24–48-hour delta window captures any records modified during cutover so Intercom reflects the final source state at go-live.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Service logo

Service

What's pushing teams away

  • Performance and speed inconsistencies are cited in multiple reviews, with users describing occasional sluggishness, slow loading when multiple tabs are open, and a heavy user interface that impacts daily productivity.
  • Steep learning curve and complex administration requirements make the platform difficult to implement and train users on, according to reviews from smaller teams and those without dedicated ITSM expertise.
  • The platform is perceived as overkill for simpler use cases, with organizations noting they need to use only a fraction of available features while paying enterprise pricing for full functionality.

Choosing

Intercom logo

Intercom

What's pulling them in

  • Instant chat and message threading on websites and apps gives support teams a single inbox without context-switching, according to reviewers on Capterra and G2 who highlight fast response times as a primary benefit.
  • Fin AI handles repetitive inbound queries automatically, reducing agent workload measurably — G2 reviewers report fewer escalations and faster first-response times once Fin is configured.
  • Automation workflows (Outbound, Operator, and custom bots) allow teams to qualify leads and route tickets without manual intervention, appealing to growth-stage SaaS companies managing high ticket volumes.
  • Help center articles and self-service deflection are natively integrated, so knowledge base content and chat conversations live in the same workspace, simplifying reporting.
  • Multi-channel support (live chat, email, SMS, WhatsApp, Phone) consolidates customer touchpoints into one inbox, reducing the operational overhead of managing separate tools.

Object mapping

How Service objects map to Intercom

Each row shows how a Service 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.

Service

Ticket / Case

maps to

Intercom

Conversation

1:1
Fully supported

Each source ticket becomes one Intercom conversation. The conversation subject is mapped from the ticket title or first comment body. The conversation state (open, closed, snoozed) is translated from ticket status using value mapping rules. All subsequent comments become conversation_parts in strict chronological order using the original created_at timestamp from each comment record.

Service

Contact / User

maps to

Intercom

Contact (User type)

1:1
Fully supported

Source contacts with email addresses map directly to Intercom contacts of type 'user'. Email is the required identifier. Contacts without email (e.g., anonymous users in the source) land as Intercom leads. We preserve the source contact ID in Source_System_ID__c on the Intercom contact for delta-run deduplication.

Service

Company / Organization

maps to

Intercom

Company

1:1
Fully supported

Source companies map 1:1 to Intercom companies using domain as the matching key. If a contact's email domain matches an existing Intercom company, we link them via the company_id field. Multi-company associations on a single contact collapse to the primary company with additional domains preserved as custom attributes.

Service

Internal Note (on ticket)

maps to

Intercom

Conversation Part (private note)

1:1
Fully supported

Internal notes from the source ticket do not appear as public messages in Intercom. We map them to conversation_parts with part_type set to 'note' and body containing the note content. The original author (agent) is mapped to the Intercom admin_id; the timestamp is preserved as created_at on the part. Internal notes that mention other agents via @mentions are stored as plain text within the note body.

Service

Public Comment (customer reply)

maps to

Intercom

Conversation Part (message)

1:1
Fully supported

Public comments from both the customer and the agent become Intercom conversation_parts of type 'comment'. The author_type field is set to 'user' for customer messages and 'admin' for agent messages. HTML-formatted comments are stripped to plain text unless Intercom's allowed HTML subset is used.

Service

Custom Field (ticket-level)

maps to

Intercom

Custom Attribute (on Conversation or Contact)

1:1
Fully supported

Source ticket custom fields require pre-created custom attributes in the Intercom workspace before migration runs. We generate the attribute manifest (name, type, options) during the discovery phase. For pick-list fields, the options array is mapped value-by-value. Date, number, and boolean fields map directly to their Intercom equivalents. Text fields with >255 characters are truncated with a note flag if the source value exceeded Intercom's limit.

Service

SLA Policy / SLA Breach

maps to

Intercom

Custom Attribute + Workflow Timeout

1:1
Fully supported

Intercom has no native SLA policy object. Source SLA policies and breach timestamps are migrated as custom attributes on conversations (SLA_Policy_Name__c, SLA_Breach_Time__c, SLA_Responded_At__c). SLA-aware escalation can be rebuilt in Intercom using workflow timeouts that trigger reassignment or priority escalation. We export the full SLA definition as a JSON reference file.

Service

Attachment / File

maps to

Intercom

Intercom File Upload (re-hosted)

1:1
Fully supported

Source attachments are downloaded from the source storage URL and re-uploaded to Intercom's file CDN using the Conversations API attachments endpoint. Original file metadata (name, size, content_type, original URL) is preserved in custom attributes on the conversation so auditors can trace the original source. Inline images in notes are extracted, re-hosted, and the note body is updated with the new Intercom CDN URL.

Service

Agent / Admin

maps to

Intercom

Admin (resolved by email match)

1:1
Fully supported

Source agents are resolved against Intercom admins by email address. Matched agents have their source ID stored in Original_Agent_ID__c for audit trail. Agents in the source with no corresponding Intercom admin account are flagged before migration; their records are assigned to a fallback admin so no conversation lands unassigned.

Service

Tag / Label

maps to

Intercom

Tag

1:1
Fully supported

Source ticket tags map directly to Intercom conversation tags. Tags are applied via the /conversations/{id}/tags endpoint after the conversation is created. Tag names are preserved as-is; if a tag exceeds Intercom's 50-character limit, it is truncated and flagged in the migration report.

Service

Workflow / Automation Rule

maps to

Intercom

Not migrated — Intercom Workflow

1:1
Fully supported

Workflows, automation rules, escalation paths, and SLA triggers do not have equivalents in Intercom's data model and cannot be migrated as structured data. We export the workflow definitions as a JSON object describing triggers, conditions, and actions so your Intercom admin can rebuild them in Intercom's Workflow Builder. Macros and saved replies are exported separately and provided as a rebuild reference.

Service

Satisfaction Rating (CSAT)

maps to

Intercom

Conversation Part (rating type)

1:1
Fully supported

If the source platform records CSAT ratings on closed tickets, we map them to Intercom conversation_parts with type 'rating'. The score (1–5 or positive/negative) and optional free-text comment are preserved. Intercom's native CSAT widget generates ratings on new conversations post-migration; historical ratings from the source are stored as part history so the full timeline is visible in the conversation view.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Service logo

Service gotchas

Medium

Performance slowness in UI and load times is a documented issue

Intercom logo

Intercom gotchas

High

S3 JSON export omits conversation transcripts

High

Workspace isolation prevents workflow migration

Medium

Fin AI resolution fees compound with automation success

Medium

Two-year conversation history limit on historical export

Low

Private app rate limits share workspace quota

Pair-specific challenges

  • Intercom API 10-second windowing throttles bulk exports silently unless request pacing is managed

    Intercom's REST API distributes its per-minute rate limit (default: 10,000 requests per minute per private app) into 10-second windows — roughly 1,666 requests per window. A migration script that fires burst requests hits 429 responses immediately even though the per-minute quota appears generous. FlitStack AI monitors X-RateLimit-Remaining headers and implements exponential backoff with jitter between windows, distributing bulk write operations evenly so migrations complete without throttling pauses that would otherwise extend timelines by hours or days on large datasets.

  • Internal notes map to Intercom private parts only if part_type is explicitly set

    Most source helpdesk systems store internal notes as a boolean flag on comment records. In Intercom, a conversation_part with type 'note' is private by default only when created by a user with admin-level permissions. If the part_type is not set correctly during migration, internal notes can appear as public conversation parts visible to end customers — a data-privacy incident. FlitStack sets part_type='note' and author.type='admin' for every source internal note, and the migration manifest logs the original visibility setting so audit trails are preserved.

  • Intercom has no native SLA policy object — SLA data must be reconstructed as custom attributes and workflow triggers

    Source helpdesk platforms expose SLA policies as first-class objects with breach timestamps, pause rules, and escalation actions. Intercom's data model has no equivalent — SLA data must be stored as custom attributes on conversations (e.g., SLA_Policy_Name__c, SLA_Responded_At__c) and SLA-aware escalation rebuilt using Intercom workflow timeouts. We export the full SLA definition as a JSON object during migration so your Intercom admin can rebuild escalation logic without reverse-engineering the source policy. Teams that skip this step lose SLA auditability in Intercom.

  • Attachments are re-hosted on Intercom's CDN — original storage URLs are broken after migration

    Intercom does not maintain references to external file URLs. All source attachments are downloaded, uploaded to Intercom's CDN, and the Intercom file URL replaces the original. Original file metadata (name, size, content type, source URL) is preserved as a custom attribute on the conversation so auditors can trace provenance. For files exceeding Intercom's 25MB attachment limit, the file is stored with a note pointing to the source URL for manual retrieval — this is flagged in the migration report.

  • Call transcripts require a separate API endpoint and are limited to 20 per request

    If the source helpdesk recorded call transcripts (Intercom Phone or a third-party telephony integration), these do not appear in the standard Intercom conversation export. Call transcripts are accessed via GET /calls/{id}/transcript, and each request can return a maximum of 20 transcripts. For teams with thousands of call records, this endpoint limitation means call transcript migration is the longest-running phase of a voice-enabled migration. FlitStack sequences call transcript extraction after all other data is migrated and uses the 20-per-request constraint to batch the export correctly.

Migration approach

Six steps for a successful Service to Intercom data migration

  1. Authenticate both platforms and run schema discovery

    We connect to the source helpdesk via its native API using OAuth or API key credentials. Schema discovery enumerates all ticket fields, custom fields, ticket types, groups, and SLA policies. We simultaneously confirm the Intercom workspace structure — existing contacts, companies, ticket types, and custom attributes — and flag any pre-creation required before data writes begin. The discovery output is a field manifest showing every source field, its Intercom target, and any transformation logic required.

  2. Create Intercom custom attributes and ticket types

    Intercom custom attributes and ticket types must exist before bulk writes. We create every custom attribute identified in the discovery phase (text, number, date, boolean, or pick-list) using the Attributes API and create Intercom ticket types matching the source ticket types. Agents and group emails from the source are mapped to Intercom admins and Inbox routing rules. We run this step in a staging pass before any source data is touched so the Intercom workspace is schema-ready for the migration run.

  3. Migrate contacts and companies first

    Contacts and companies must land in Intercom before conversations can reference them via contact_id and company_id. We extract source contacts in batches, deduplicate by email, and write to Intercom's /contacts endpoint with name, email, phone, job_title, and any mapped custom attributes. Companies follow using domain as the matching key. If the source has contacts with no email (anonymous users), those land as Intercom leads. This step also resolves source agents to Intercom admin IDs by email match — unmatched agents are flagged for fallback assignment before conversations are processed.

  4. Migrate conversations with chronological conversation-part sequencing

    Tickets are converted to Intercom conversations in creation-date order. For each conversation, we write the base conversation record (subject, state, priority, ticket type, custom attributes, original ticket ID), then write conversation_parts in strict chronological sequence — each part carries its original timestamp. Internal notes are written with part_type='note'; public messages with part_type='comment'. Attachments are downloaded, re-uploaded to Intercom's CDN, and linked to the relevant part. SLA policy names and breach timestamps are written as custom attributes. Rate-limit headers are monitored throughout; request pacing adjusts automatically to avoid 429 responses.

  5. Run delta pickup and verify with a field-level audit report

    After the bulk migration completes, we set a delta checkpoint timestamp. A 24–48-hour delta pickup window captures any tickets, contacts, or conversations created or modified in the source during the cutover window. We generate a field-level audit report comparing a statistical sample of source and destination records (field-by-field diff) so you can verify SLA data, internal note visibility, assignee resolution, and custom attribute completeness. One-click rollback is available if the audit reveals systematic issues — the report identifies the root cause and affected record ranges before rollback is triggered.

Platform deep dives

Context on both ends of the pair

Service logo

Service

Source

Strengths

  • Deep ITSM workflow automation across incident, problem, change, knowledge, and request management in one unified platform.
  • Enterprise-grade governance — role-based access controls, ACLs, approval chains, and audit logging.
  • Extensive integration ecosystem connecting to enterprise identity, CMDB, asset, and monitoring systems.
  • Robust customer support for ITSM operations, rated highly by enterprise reviewers.
  • Scoped application architecture lets large enterprises build and deploy custom apps with isolated data domains.

Weaknesses

  • Heavy user interface and occasional performance sluggishness reported across multiple reviews
  • Steep learning curve requiring dedicated administrators and significant training investment
  • Complex pricing structure designed for large enterprises, making cost predictability difficult for smaller organizations
Intercom logo

Intercom

Destination

Strengths

  • Integrated AI agent (Fin) for automated resolution with per-resolution billing that rewards high automation rates.
  • Multi-channel inbox consolidating live chat, email, SMS, WhatsApp, and Phone into a single threaded view.
  • Native help center with articles, collections, and self-service deflection capabilities.
  • Workflow automation for routing, qualification, and proactive outbound messaging across channels.
  • Strong API ecosystem with 10,000 req/min rate limits for private apps enabling high-throughput migration pipelines.

Weaknesses

  • Pricing model compounds with seat count, AI resolution fees, channel costs, and multiple add-ons, making total cost hard to predict.
  • Workspace-level isolation prevents moving workflows or content between environments, requiring manual rebuilds.
  • S3 JSON export deliberately excludes conversation transcripts, necessitating REST API calls for full message history.
  • Outages are reported as frequent enough to be a concern for always-on support operations.
  • Setup complexity means teams often require internal guidance or professional services to configure bots and automation correctly.

Complexity grading

How hard is this migration?

Standard Helpdesk migration. 2 of 7 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Service and Intercom.

  • Object compatibility

    B

    2 of 7 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Service: Configurable per-instance rate limits. ServiceNow enforces a default inbound transaction quota and inbound API rate limits that admins can tune by user, IP, or system property. HTTP 429 responses signal throttling..

  • Data volume sensitivity

    A

    Service exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Service to Intercom migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Service to Intercom data migrations

Answers to the questions buyers ask most during Service to Intercom migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Service to Intercom migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations complete in 24–72 hours of clock time for under 50,000 records. Larger setups with 500k+ records, complex custom field schemas, or voice-enabled call transcript extraction extend to 5–10 days. The longest single phase is usually call transcript extraction from the source telephony system because Intercom's /calls endpoint limits retrieval to 20 transcripts per request. FlitStack sequences this phase last and batches extraction correctly so it does not throttle other write operations.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Service.
Land in Intercom, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day