Helpdesk migration
Field-level mapping, validation, and rollback between UserHorn and Intercom. We move data and schema; workflows are rebuilt natively in Intercom.
UserHorn
Source
Intercom
Destination
Compatibility
7 of 10
objects map 1:1 between UserHorn and Intercom.
Complexity
BStandard
Timeline
3-5 weeks
Overview
UserHorn is a helpdesk platform for which no public API documentation, technical schema, or customer review data was recoverable during research, making a precise field-level migration map impossible to produce without direct access to the source environment. We approach this migration through structured discovery: we connect to UserHorn's API or database export to enumerate the actual object model, field names, and data types before we write any mapping. Intercom accepts Contacts (Users), Companies, Conversations (Tickets), and Help Center Articles via its REST API and bulk import endpoints. We migrate what we can enumerate and we flag everything we cannot — custom objects, closed-caption attachments, internal notes threads — in a written scope so your admin knows what requires manual rebuild. We do not migrate Workflows, Automation Rules, or Campaigns because these are logic-based configurations that cannot be copied between platforms; we deliver a written inventory of each for your team to recreate in Intercom.
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 UserHorn 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.
UserHorn
Contact / End User
Intercom
User (contact)
1:1UserHorn contacts migrate to Intercom Users. Every contact requires an email address or user_id to associate with a conversation — contacts without either must be resolved before migration or archived as a separate JSON export for reference. The role attribute determines whether a record is a user or lead in Intercom. We deduplicate by email during import to prevent duplicate contacts.
UserHorn
Company / Organization
Intercom
Company
1:1UserHorn companies map directly to Intercom Companies. Company is created before any related contacts so that the Company relationship is satisfied at the moment of contact import. We use company domain or name as the dedupe key. If UserHorn supports company-domain extraction from contacts, we use that for automated Company creation.
UserHorn
Ticket / Case
Intercom
Conversation or Ticket
1:1UserHorn tickets migrate to Intercom Conversations (the default) or Tickets mode depending on the customer's preference. Each ticket thread becomes a conversation with message-level history. The assignee, status, priority, and custom fields transfer. If UserHorn stores messages as a separate table, we sequence them by timestamp and insert into the conversation in order. Closed tickets migrate with a delta-date cutoff to avoid reopening resolved conversations during final sync.
UserHorn
Agent / Agent Group
Intercom
Teammate and Team
1:1UserHorn agents map to Intercom Teammates. We match by email. Agent groups map to Intercom Teams. If the destination Intercom workspace does not have the corresponding Teammates provisioned, we hold the assignee mappings in a reconciliation queue and populate them after the admin provisions the users.
UserHorn
Custom Object
Intercom
Custom Object
1:1UserHorn custom objects migrate to Intercom Custom Objects if UserHorn exposes them via API. Intercom Custom Objects are stored and queryable via API but are only directly visible in the Intercom UI within bot flows — they do not appear in the standard People, Company, or Conversation views. We advise customers during scoping whether custom object visibility in Intercom's UI meets their use case.
UserHorn
Article / Knowledge Base
Intercom
Article (via Collection and Section)
1:1UserHorn knowledge base articles migrate to Intercom Help Center Articles. We map the existing category structure to Intercom's Collection > Section > Article hierarchy. If UserHorn uses a two-level hierarchy, we create the articles under a Section within a Collection. If it uses a single level, we create a Collection and place articles directly under it. Intercom allows article creation without a section, which simplifies two-level sources.
UserHorn
Custom Field / Attribute
Intercom
Data Attribute
lossyUserHorn custom fields migrate to Intercom Data Attributes, which attach to Users and Companies. We pre-create Data Attributes in Intercom before importing any contacts or companies. Attribute types (string, number, date, boolean, list) are matched to Intercom's attribute type system. If a UserHorn attribute is a multi-select, we create it as a list attribute in Intercom.
UserHorn
Attachment
Intercom
Attachment
1:1UserHorn ticket attachments migrate to Intercom conversation attachments. We reattach files directly in Intercom with no external references. Inline images within message bodies are preserved. Files must be downloaded from UserHorn and re-uploaded to Intercom's storage during migration.
UserHorn
Workflow / Automation
Intercom
Workflow (rebuild required)
lossyUserHorn Workflows and Automation Rules do not migrate to Intercom as code because the two platforms use fundamentally different rule engines. We deliver a written inventory of every active UserHorn workflow with its trigger, conditions, and actions, plus a recommended Intercom Rule or Workflow equivalent. The customer's admin rebuilds these in Intercom post-migration. This is standard scope.
UserHorn
Campaign / Sequence
Intercom
Outbound Campaign (rebuild required)
lossyUserHorn outbound campaigns and sequences do not migrate. We disable active automated email campaigns in the UserHorn account before migration begins to avoid API rate-limit consumption during the import window. We deliver a written inventory of each campaign for the admin to rebuild in Intercom Outbound or via a dedicated sales engagement tool if the customer uses a separate cadence platform.
| UserHorn | Intercom | Compatibility | |
|---|---|---|---|
| Contact / End User | User (contact)1:1 | Fully supported | |
| Company / Organization | Company1:1 | Fully supported | |
| Ticket / Case | Conversation or Ticket1:1 | Fully supported | |
| Agent / Agent Group | Teammate and Team1:1 | Fully supported | |
| Custom Object | Custom Object1:1 | Fully supported | |
| Article / Knowledge Base | Article (via Collection and Section)1:1 | Fully supported | |
| Custom Field / Attribute | Data Attributelossy | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Workflow / Automation | Workflow (rebuild required)lossy | Fully supported | |
| Campaign / Sequence | Outbound Campaign (rebuild required)lossy | 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.
UserHorn gotchas
Startup tier locks new accounts to projects under 3 years old
No documented public API for export
Language variants live as separate language projects, not translations
Custom-branded domain configuration must be reconfigured post-migration
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
Schema discovery and data audit
We connect to UserHorn's API (OAuth or API key, depending on what UserHorn exposes) or work with the customer to obtain a database export. We enumerate all objects, field names, field types, relationships, and record counts. We produce a data audit report that identifies: contacts without email or user_id, orphaned tickets, custom objects, and any schema elements that have no direct Intercom equivalent. This phase gates all subsequent work — the migration map is not finalized until discovery is complete.
Intercom workspace preparation
Before any data moves, we configure the destination Intercom workspace. This includes provisioning Teammates and Teams, creating Data Attributes that mirror UserHorn custom fields, setting up the Help Center with Collections and Sections matching the source hierarchy, and creating any required Custom Objects. We disable phone number validation and document this change. If the customer uses Fin AI Agent, we confirm the workspace data residency (US, EU, or AU) and flag the EU/AU limitation for the Fin data connector.
Contact and Company bulk import
We import Users (contacts) and Companies via Intercom's bulk API or CSV importer, with email as the dedupe key. We process contacts in batches of 500-1,000 records with exponential backoff on rate-limit responses. Company is created before any related contacts so that the relationship is satisfied at insert time. Contacts without email or user_id are held in a reconciliation queue for the customer to resolve.
Ticket and conversation migration
We migrate tickets to Intercom Conversations using the resolved contact records as the parent. Messages are sequenced by timestamp and inserted in order. Assignee is resolved by email against the Intercom Teammate list. Status and priority map to Intercom's conversation state model. Closed tickets migrate with a delta-date cutoff to capture the final state. Attachments are re-uploaded to Intercom storage inline with the message insert.
Delta sync and cutover
We freeze writes in UserHorn during the final 24-hour delta window. We run a final delta migration of any contacts, companies, or tickets modified or created since the main migration run. We then enable Intercom as the system of record, configure email forwarding and messenger launch, and deliver the Workflow and Campaign inventory document for the customer's admin to rebuild in Intercom.
Validation and post-migration handoff
We validate record counts across all objects (contacts in, companies in, conversations in, articles in) against the discovery audit. We spot-check 25-50 records against the UserHorn source for field-level accuracy. We deliver the automation inventory document and a written handoff summary. We support a one-week post-migration window for reconciliation issues. Workflow rebuild, automation rebuild, and admin training are outside standard scope and are handled as separate engagements.
Platform deep dives
UserHorn
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 UserHorn 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
UserHorn: Not publicly documented — confirmed during integration scoping..
Data volume sensitivity
UserHorn 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 UserHorn to Intercom migration scoping. Not seeing yours? Book a call.
Walk through your UserHorn 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 UserHorn
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.