Helpdesk migration

Migrate from UserHorn to HubSpot Service Hub

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

UserHorn logo

UserHorn

Source

HubSpot Service Hub

Destination

HubSpot Service Hub logo

Compatibility

77%

10 of 13

objects map 1:1 between UserHorn and HubSpot Service Hub.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from UserHorn to HubSpot Service Hub consolidates your support stack onto a CRM-native platform where ticket records, contact records, and deal records share a single schema. HubSpot Service Hub uses Tickets as the core support object with a configurable pipeline model, conversation threads tracked in the shared Inbox linked to Contact or Company records, and agent management through HubSpot User roles and teams. We extract support records, customer profiles, agent assignments, and conversation history from UserHorn, map them to HubSpot Tickets with the correct pipeline and status values, and load them via HubSpot's REST and Bulk APIs with parent-record lookup resolution. We do not migrate Workflows, automations, knowledge base configurations, or reporting dashboards; these require rebuild by your admin using HubSpot's native tools post-migration. The scope includes a written inventory of any UserHorn automations requiring rebuild in HubSpot Workflows so your team has a concrete action plan after cutover.

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

UserHorn logo

UserHorn

What's pushing teams away

  • Admin area is reported as complicated initially per reviewer feedback — onboarding has a learning curve that can stall adoption.
  • Very small vendor with limited public review footprint, making procurement validation difficult.
  • Feature depth (advanced SLA management, omnichannel chat, voice integration, AI assist) lags Zendesk / Freshdesk / Intercom by a wide margin.
  • No publicly documented REST API — integration with external CRMs or BI tools requires vendor cooperation.
  • Startup tier (€50/year) is hard-capped to projects under 3 years old and only 2 staff members; outgrowing it forces the larger Professional tier.

Choosing

HubSpot Service Hub logo

HubSpot Service Hub

What's pulling them in

  • Unified CRM context means every support ticket links directly to the Contact and Company record without a separate integration
  • Free tier provides unlimited support seat access with basic ticketing and a shared inbox for small teams to validate fit before committing
  • Omnichannel routing consolidates email, live chat, Facebook Messenger, WhatsApp, and Instagram DM into one queue
  • Built-in customer success workspace gives health scores and portfolio views that other standalone helpdesks cannot match
  • AI-powered Breeze agent automates common resolutions and surfaces knowledge base articles without agent intervention

Object mapping

How UserHorn objects map to HubSpot Service Hub

Each row shows how a UserHorn object lands in HubSpot Service Hub, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

UserHorn

Contact

maps to

HubSpot Service Hub

Contact

1:1
Fully supported

UserHorn customer profiles (name, email, phone, company association) map directly to HubSpot Contact. We use email as the primary deduplication key. Any custom fields on the UserHorn contact record map to HubSpot custom contact properties created before migration. If UserHorn stores company-level data on the contact, we resolve the Company-to-Account lookup before contact insert.

UserHorn

Company

maps to

HubSpot Service Hub

Company

1:1
Fully supported

UserHorn organizations or company records map to HubSpot Company. Domain becomes the Company website field. We resolve the Company-to-Contact association so that when contacts are loaded, their Company lookup is already satisfied. Company records are loaded before contacts to maintain referential integrity through the HubSpot Bulk API.

UserHorn

Ticket

maps to

HubSpot Service Hub

Ticket

1:1
Fully supported

UserHorn tickets map to HubSpot Tickets. The ticket subject, description, status, priority, and timestamps migrate directly. We map UserHorn ticket statuses to HubSpot Ticket pipeline stage values, and any UserHorn custom fields map to HubSpot Ticket custom properties. Ticket ID is preserved in a custom field for cross-referencing against UserHorn records post-migration.

UserHorn

Ticket Status

maps to

HubSpot Service Hub

Ticket Pipeline Stage

lossy
Fully supported

Each distinct status value in UserHorn becomes a HubSpot Ticket pipeline stage. We create the pipeline in HubSpot before migration with the same stage order and map status labels to stage names. Probability percentages for each stage are set during pipeline configuration to maintain accurate reporting post-migration.

UserHorn

Ticket Pipeline

maps to

HubSpot Service Hub

Ticket Pipeline

lossy
Fully supported

If UserHorn supports multiple ticket queues or pipelines, each maps to a separate HubSpot Ticket pipeline. HubSpot supports multiple concurrent pipelines from Professional tier. We configure each pipeline with its own stages, assigned teams, and SLA policies before record load.

UserHorn

Agent

maps to

HubSpot Service Hub

User

1:1
Fully supported

UserHorn agents map to HubSpot Users. We match by email address. Any UserHorn agent without a corresponding HubSpot User goes to a reconciliation queue before migration; the customer provisions missing users in HubSpot before record import begins. Agent role and team assignments in UserHorn map to HubSpot role-based inbox routing and Team membership.

UserHorn

Conversation

maps to

HubSpot Service Hub

Conversation (Inbox)

1:1
Fully supported

UserHorn ticket conversations and internal notes map to HubSpot conversational messages linked to the corresponding Ticket. Each message maps to a HubSpot ConversationMessage record with sender, recipient, timestamp, body, and attachment references. We resolve the Contact lookup by email for each message sender. Inline images in message bodies are handled as attachments linked to the conversation.

UserHorn

Attachment

maps to

HubSpot Service Hub

File (ContentDocument)

1:1
Fully supported

Ticket attachments and inline images migrate as HubSpot Files attached to the corresponding Ticket via ContentDocumentLink. File names and MIME types are preserved. Large attachment batches are chunked to stay within HubSpot API upload limits.

UserHorn

Note

maps to

HubSpot Service Hub

Note

1:1
Fully supported

UserHorn internal notes on tickets map to HubSpot Notes linked to the Ticket record. Note body text and timestamps migrate directly. We preserve the creating agent as a HubSpot Note property where the platform supports it.

UserHorn

Customer Property

maps to

HubSpot Service Hub

Contact Custom Property

1:1
Fully supported

UserHorn custom fields on customer records migrate to HubSpot Contact custom properties. We pre-create the property in HubSpot before migration using the correct type (text, number, date, single-checkbox, dropdown) matching the UserHorn field type. Field dependencies and conditional display rules are not migrated as configuration.

UserHorn

Ticket Property

maps to

HubSpot Service Hub

Ticket Custom Property

1:1
Fully supported

UserHorn custom fields on tickets migrate to HubSpot Ticket custom properties. We pre-create the property schema in HubSpot before migration. Multi-select checkbox values from UserHorn map to HubSpot multi-select contact or ticket properties. Any picklist fields are migrated with the original values preserved as-is.

UserHorn

Tag

maps to

HubSpot Service Hub

Ticket Topic or Custom Property

lossy
Fully supported

UserHorn tags on tickets are evaluated for mapping strategy during discovery. Tags used for categorization migrate to HubSpot Ticket Topics with TopicAssignment records. Tags used as agent labels or ticket-type indicators migrate to a multi-select ticket custom property. The customer chooses the strategy during scoping.

UserHorn

Time Tracking

maps to

HubSpot Service Hub

Ticket Custom Property (number)

1:1
Fully supported

If UserHorn tracks time spent on tickets, those values migrate to a HubSpot Ticket custom property of numeric type (time in minutes). We do not migrate timer sessions or time-entry line items as these are not standard HubSpot Ticket objects.

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.

UserHorn logo

UserHorn gotchas

Medium

Startup tier locks new accounts to projects under 3 years old

High

No documented public API for export

Medium

Language variants live as separate language projects, not translations

Low

Custom-branded domain configuration must be reconfigured post-migration

HubSpot Service Hub logo

HubSpot Service Hub gotchas

High

Rate limits throttle large migration API calls

High

Side conversations and Zendesk macros have no HubSpot equivalent

High

HubSpot stores ticket history as fragmented engagement objects

Medium

Custom Objects require Enterprise tier in HubSpot

Medium

Ticket pipeline stage probability values do not export cleanly

Pair-specific challenges

  • UserHorn schema and API documentation unverified

    No public API documentation, data schema, authentication method, or rate-limit information for UserHorn was recoverable from public research sources. Before migration begins, we require direct access to UserHorn's API endpoint (or a data export in a structured format such as CSV or JSON), authentication credentials for read access, and a schema map of the available object fields. Without these, we cannot guarantee field-level mapping accuracy and must scope the migration against an exported data sample rather than a live API connection.

  • HubSpot conversation threading requires Contact-level resolution

    HubSpot's conversational Inbox links messages to Contacts by HubSpot internal ID. If the migrating UserHorn contact email does not match an existing HubSpot Contact, the conversation message will fail to associate. We resolve all sender emails to HubSpot Contact IDs before conversation records are inserted, creating missing Contact records if necessary. Migrations that skip this step result in orphaned conversation messages visible in HubSpot but unattached to any Contact.

  • HubSpot Workflows do not migrate from UserHorn automations

    UserHorn rule-based triggers and automations have no direct equivalent in HubSpot's Workflow engine. HubSpot uses property-triggered Workflows with delay actions, CRM object updates, and notification steps that require manual rebuild using HubSpot's Workflow builder. We deliver a written inventory of every UserHorn automation with its trigger condition, action sequence, and recommended HubSpot Workflow equivalent. The customer's admin rebuilds these post-migration. Knowledge base articles similarly require rebuild using HubSpot's Knowledge Base tool.

  • Inline images in conversations may not transfer

    HubSpot's Import2 and Help Desk Migration documentation explicitly notes that inline images embedded in conversation threads cannot be migrated to HubSpot Service Hub. We flag inline image handling during discovery and offer two paths: strip inline images and preserve the text body, or extract images as separate file attachments and note the content location in a migration comment. The customer selects the approach before migration.

  • Ticket pipeline and SLA configuration must precede record load

    HubSpot requires that Ticket pipelines and SLA policies be configured before records are imported if they are to apply to historical tickets. SLA tracking and automatic pipeline routing require Professional tier or above. We configure pipeline stages, team assignments, and SLA policies in the HubSpot portal before any ticket records are loaded. SLA data from UserHorn migrates as custom ticket properties rather than native SLA records if the destination is on Starter tier.

Migration approach

Six steps for a successful UserHorn to HubSpot Service Hub data migration

  1. Discovery and schema verification

    We begin by obtaining UserHorn data access: either a live API connection with documentation of available endpoints and field types, or a structured data export (CSV, JSON) with a schema map. We inventory all objects (tickets, contacts, companies, agents, conversations, attachments, custom fields) and estimate volumes for each. If UserHorn API access is unavailable or undocumented, we scope against an exported data sample and flag any objects that cannot be reconciled to a HubSpot equivalent before migration begins.

  2. HubSpot Service Hub configuration

    We configure HubSpot Service Hub before any data loads. This includes creating the Ticket pipeline with stage values mapped from UserHorn status values, configuring team-based inbox routing to match UserHorn agent queues, provisioning HubSpot Users to match UserHorn agents, creating custom contact properties and custom ticket properties to receive UserHorn custom field data, and setting up any required SLA policies if the destination is Professional tier or above. All configuration happens in a HubSpot Sandbox or staging portal before production.

  3. Sandbox migration and reconciliation

    We run a full migration into the configured HubSpot Sandbox environment using representative data volumes. The customer reviews migrated records against source records for each object type (tickets, contacts, conversations, agents) and signs off the mapping and schema before production migration. Any field-level corrections, missing custom properties, or pipeline stage adjustments are made during this phase. We do not proceed to production until the customer has validated the sandbox output.

  4. Owner and agent reconciliation

    We extract every distinct agent referenced on UserHorn ticket and conversation records and match by email against the HubSpot User table. Agents without a matching HubSpot User go to a reconciliation queue. The customer's HubSpot admin provisions any missing Users, assigns roles and team memberships, and confirms inbox routing configuration. Migration cannot proceed past this step because HubSpot requires a valid OwnerId on imported ticket and contact records.

  5. Production migration in dependency order

    We run production migration in record-dependency order: HubSpot Users (validated), Companies (from UserHorn organizations), Contacts (with CompanyId resolved), Tickets (with ContactId and OwnerId resolved), Conversation messages (with ContactId resolved by email), Attachments (linked to tickets via ContentDocumentLink), and Notes. Custom properties are loaded after base objects are confirmed. Each phase emits a row-count reconciliation report before the next phase begins. We use HubSpot's REST API for smaller record sets and Bulk API for larger volumes with chunking and exponential backoff.

  6. Cutover, delta sync, and automation handoff

    We freeze UserHorn writes during cutover, run a final delta migration of any records created or modified during the migration window, then enable HubSpot Service Hub as the system of record. We deliver the automation and knowledge base inventory document to the customer's admin team with recommended HubSpot Workflow equivalents for each UserHorn rule. We support a one-week hypercare window for reconciliation issues raised during the first week of live operation. Workflow rebuild, knowledge base reconstruction, and reporting dashboard setup are outside standard migration scope.

Platform deep dives

Context on both ends of the pair

UserHorn logo

UserHorn

Source

Strengths

  • Combined knowledge base, community forum, and ticketing in one branded portal.
  • Inexpensive entry point with €11/month Professional tier.
  • Free SSL certificate and custom-domain hosting included.
  • Multilingual project support up to 5 languages.
  • 7-day free trial without payment for Professional evaluation.

Weaknesses

  • Admin UI complexity creates onboarding friction.
  • No public API documentation for self-serve integration.
  • Macro / automation / SLA depth is limited or absent.
  • Small vendor with limited public review footprint.
  • Multilingual model uses separate language projects rather than translations.
HubSpot Service Hub logo

HubSpot Service Hub

Destination

Strengths

  • Unified CRM object model means support context is always linked to sales and marketing data
  • Generous free tier with unlimited tickets and a shared inbox for small teams
  • Omnichannel inbox consolidates email, live chat, and major messaging platforms natively
  • Customer Success Workspace provides portfolio-level health scores without a separate tool
  • AI agent (Breeze) handles Tier-1 resolutions and knowledge base deflection automatically

Weaknesses

  • Per-seat pricing with mandatory onboarding fees inflates year-one cost significantly
  • Ticket history stored as fragmented engagement objects across APIs complicates export and migration
  • Custom Objects locked behind Enterprise tier limits portability for mid-market teams
  • Help desk depth—routing rules, SLA management, advanced reporting—trails dedicated tools like Zendesk
  • Setup and configuration requires real time investment; out-of-box defaults rarely fit existing workflows

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 UserHorn and HubSpot Service Hub.

  • 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

    UserHorn: Not publicly documented — confirmed during integration scoping..

  • Data volume sensitivity

    B

    UserHorn doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your UserHorn to HubSpot Service Hub 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 UserHorn to HubSpot Service Hub data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts with fewer than 10,000 tickets, 5,000 contacts, and a single ticket pipeline. Migrations with multiple pipelines, large conversation histories (over 100,000 messages), custom field schemas on both contact and ticket objects, or knowledge base content to document move to eight to twelve weeks because of pipeline configuration time, Bulk API chunking, and the manual agent-to-User reconciliation step. The primary timeline variable is the availability of UserHorn API access or structured data export; undocumented or manually-exported sources require additional data preparation time.

Adjacent paths

Related migrations to explore

Ready when you are

Move from UserHorn.
Land in HubSpot Service Hub, 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