Helpdesk migration

Migrate from UserHorn to Zendesk

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

UserHorn logo

UserHorn

Source

Zendesk

Destination

Zendesk logo

Compatibility

92%

11 of 12

objects map 1:1 between UserHorn and Zendesk.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

UserHorn is a helpdesk platform for which we were unable to recover public API documentation, data schema, or authentication method during research. This creates a non-standard migration condition: we begin every UserHorn engagement with a discovery phase to map the actual source schema via direct API probing or file-based export analysis. On the Zendesk side, we use the Support API (700 requests per minute at Enterprise, 400 at Professional) and the Help Center API for knowledge base articles. We do not migrate Workflows, Automations, or Macros as code; these require a written inventory delivered to the customer's admin for post-migration rebuild. Attachments migrate via Zendesk's Attachments API endpoint with size validation against the account tier limit. A critical pre-migration requirement is documenting all time zone settings in UserHorn before any export begins, because Zendesk stores timestamps in the configured account time zone and misalignment causes incorrect historical dates on tickets.

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

Zendesk logo

Zendesk

What's pulling them in

  • Mature omnichannel routing across email, chat, phone, messaging, and social — one unified inbox for support teams regardless of size or complexity.
  • Deep automation with Triggers, Automations, and SLA Policies lets high-volume teams enforce consistent workflows without manual ticket handling.
  • Large ecosystem of third-party integrations and a public app marketplace reduce friction for teams already using Salesforce, Jira, or Slack.
  • Industry-leading brand recognition and trust signal — many enterprise buyers default to Zendesk as a known quantity in vendor procurement cycles.
  • Generous documentation library and community mean onboarding teams can self-configure without needing a services engagement to get started.

Object mapping

How UserHorn objects map to Zendesk

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

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

UserHorn

Ticket

maps to

Zendesk

Ticket

1:1
Fully supported

UserHorn ticket records map to Zendesk Ticket. The mapping requires a discovery phase to identify the source field names and data types for Subject, Description, Status, Priority, and Assignee. We use the Zendesk Tickets API endpoint with batch processing to create records in dependency order. Zendesk's ticket ID is auto-generated; the original UserHorn ticket ID is preserved in a custom field source_id__c for audit traceability.

UserHorn

End User

maps to

Zendesk

User (end-user type)

1:1
Fully supported

UserHorn end-user records map to Zendesk User with role=end-user. Email address is the dedupe key. We resolve the User record creation before any Ticket import because Zendesk requires a valid requester_id on ticket creation. If UserHorn stores users without email (e.g., anonymous submitter records), we flag these for the customer's admin to review before migration.

UserHorn

Agent

maps to

Zendesk

User (agent type)

1:1
Fully supported

UserHorn agent or staff records map to Zendesk User with role=agent. We match by email against the destination Zendesk account's user table. Agents without matching Zendesk users go to a reconciliation queue; the admin provisions the accounts before migration resumes. Agent group assignments in UserHorn map to Zendesk Groups, which we create before user migration.

UserHorn

Organization

maps to

Zendesk

Organization

1:1
Fully supported

If UserHorn supports an Organization or Company object, it maps to Zendesk Organization. Organization is created before end-user migration so that the organization_id field can be assigned on User records. We use the Zendesk Organizations API with name as the dedupe key.

UserHorn

Attachment

maps to

Zendesk

Attachment

1:1
Fully supported

File attachments on tickets (images, PDFs, documents) migrate via the Zendesk Attachments API. We validate file sizes against the Zendesk account tier limit (7 MB per attachment on most tiers, 20 MB on Enterprise with Large File Storage enabled). Inline images embedded in ticket descriptions or comments are extracted and re-uploaded as separate attachment records linked to the parent ticket. Files exceeding size limits are flagged for the admin to review and re-attach manually post-migration.

UserHorn

Comment

maps to

Zendesk

Comment

1:1
Fully supported

Ticket comments and reply threads migrate to Zendesk Ticket Comments. Author attribution maps to the Zendesk User record resolved during user migration. Public vs. private comment visibility is preserved through the Zendesk public flag. We process comments in chronological order to maintain thread integrity.

UserHorn

Tag

maps to

Zendesk

Tag

1:1
Fully supported

UserHorn ticket tags migrate to Zendesk Tags. Tags are created implicitly during ticket import if they do not already exist in the destination account. We do not migrate tag-based automation rules (if UserHorn supports them) because tags on the Zendesk side are labels only, not trigger conditions. The customer receives a written inventory of any tag-to-automation dependencies for manual rebuild.

UserHorn

Custom Field

maps to

Zendesk

Custom Field

lossy
Fully supported

UserHorn custom fields (discovered during the schema mapping phase) map to Zendesk custom ticket fields. We create the Zendesk custom field definition first with the correct field type (dropdown, text, checkbox, date, etc.), then map source values during ticket import. Dropdown fields in Zendesk create tags for reporting; we validate that the source values map cleanly to Zendesk picklist options before migration begins.

UserHorn

Satisfaction Rating

maps to

Zendesk

Satisfaction Application Rating

1:1
Fully supported

If UserHorn stores CSAT or satisfaction ratings on resolved tickets, these migrate to Zendesk's Satisfaction Rating object linked to the ticket. Zendesk supports thumbs up/down or star ratings depending on the account configuration. We create the satisfaction rating configuration in Zendesk before importing the historical ratings.

UserHorn

Time Tracking

maps to

Zendesk

Time Entry

1:1
Fully supported

If UserHorn records time spent on tickets, these migrate to Zendesk Ticket Time Entries. Zendesk stores time entries as a separate object linked to the ticket with attributes for start time, end time, and description. We validate the time entry format during the discovery phase and map any custom time-tracking fields to standard Zendesk time entry attributes.

UserHorn

Knowledge Base Article

maps to

Zendesk

Help Center Article

1:1
Fully supported

If UserHorn includes a knowledge base or help center with published articles, these migrate to Zendesk Guide articles. The section and category hierarchy is preserved. We use the Zendesk Help Center API to create sections first, then articles with section_id assigned. Article attachments migrate using the same attachment logic as ticket attachments. Multilingual articles require the Zendesk Enterprise Linguistic add-on; we flag any multilingual content for the admin to configure before import.

UserHorn

Group

maps to

Zendesk

Group

1:1
Fully supported

UserHorn agent groups map to Zendesk Groups. Groups must exist in Zendesk before agents can be assigned to them during user migration. We create groups in the same hierarchy as the source if UserHorn supports nested groups; Zendesk does not support nested groups, so parent groups become top-level Zendesk groups with child groups merged into a flat list for the admin to reorganize post-migration.

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

Zendesk logo

Zendesk gotchas

High

Data export requires API scripting on non-Enterprise plans

Medium

Automations cap at 500 active rules and 1,000 tickets per hour

Medium

Help Center has no native export feature

High

Custom Objects and full data export are Enterprise-only

Pair-specific challenges

  • UserHorn API documentation is not publicly recoverable

    We were unable to locate usable technical documentation, API references, or data schema for UserHorn across multiple research queries. This is not a migration-pair issue but a source-platform constraint. Before migration begins, we conduct a discovery phase using direct API probing or file-based export analysis to map the actual UserHorn schema. The timeline and price range reflect this discovery overhead. If UserHorn does not support bulk API export, we may need to rely on file-based extraction, which extends the timeline and may limit data completeness.

  • Zendesk drops ticket comments over 1 MB in JSON exports

    Zendesk's native JSON export omits comments from tickets larger than 1 MB. If the UserHorn export produces tickets with large comment threads, those threads may be silently excluded from a file-based export. We mitigate this by using the Zendesk Tickets API for import (which has no 1 MB comment limit) rather than relying on file-based import. If the source data itself contains truncated threads, we flag the affected ticket IDs for the customer's admin to review.

  • Custom dropdown fields generate tags in Zendesk

    Zendesk converts custom dropdown field values to tags for reporting and filtering purposes, and these tags persist even if the field is removed later. During migration, we map UserHorn dropdown values to Zendesk picklist options and document any tag generation for the admin. Before importing, we advise disabling the required-field condition on any Zendesk fields that may have empty values in the source data to prevent import errors.

  • Time zone settings must be documented before export

    Zendesk stores timestamps in the configured account time zone. If UserHorn uses a different time zone setting, historical ticket dates will shift after import, making the timeline appear altered to agents reviewing old tickets. We document the UserHorn time zone setting during discovery and set the Zendesk account time zone to match before migration begins. If a mismatch is discovered post-export, we flag the affected records and provide a correction script.

  • Customer notifications trigger by default on ticket creation

    Zendesk sends notification emails to requesters and CCs when tickets are created via API unless notifications are explicitly suppressed. We configure the Zendesk API import to bypass standard notification triggers, but any custom automations the customer has built in Zendesk may still fire during migration and send unwanted emails to customers. We recommend disabling custom triggers and email notifications in Zendesk before migration and re-enabling them after cutover.

Migration approach

Six steps for a successful UserHorn to Zendesk data migration

  1. Source platform discovery and schema mapping

    Because UserHorn lacks publicly documented API or schema, we begin with a discovery phase. We attempt direct API authentication (OAuth, API key, or basic auth) against the provided endpoint, pull a representative record sample, and map the actual field names to a working Zendesk target schema. If API access is not available, we analyze any available file-based exports (CSV, JSON, XML) and document the field structure manually. The discovery output is a written data map and a confirmed migration scope, including the list of objects, record counts, and any fields that cannot be migrated due to format incompatibility.

  2. Zendesk target schema design

    We configure the Zendesk Support environment to match the discovered source schema. This includes creating custom ticket fields with the correct types (text, dropdown, checkbox, date), configuring Groups and agent profiles, setting up Organization fields, and enabling Help Center if knowledge base migration is in scope. We also set the Zendesk account time zone to match the UserHorn setting identified during discovery. Schema configuration is deployed to a Zendesk Sandbox or staging environment first for validation before production migration begins.

  3. Sandbox migration and reconciliation

    We run a full migration into the Zendesk staging environment using a representative data sample (typically 20-50 records per object type). The customer reviews the migrated records against the source, validates field mapping accuracy, confirms attachment rendering, and signs off on the schema before we proceed to production. Any mapping corrections are documented and applied to the production migration script. This step also confirms the Zendesk account's attachment size limits and any Help Center article hierarchy constraints.

  4. Production migration in dependency order

    We execute the production migration in record-dependency order: Groups (first, because agents reference them), Users (agents and end-users), Organizations, Custom Fields (field definitions before ticket data), Tickets with comments and attachments, Tags, Satisfaction Ratings, Time Entries, and Help Center articles last. We use Zendesk's Support API with batch chunking and rate-limit handling. Each phase emits a row-count reconciliation report before the next phase begins. We temporarily disable custom triggers and required-field validations during migration to prevent record rejection.

  5. Cutover, delta migration, and handoff

    We freeze writes to UserHorn during cutover, run a final delta migration of any records created or modified during the migration window, then set Zendesk as the system of record. All channel routing (email, chat, social) is redirected to Zendesk. We deliver a written inventory of any UserHorn Automations, Macros, or Workflows with a Zendesk equivalent recommendation for the customer's admin to rebuild post-migration. We provide a one-week hypercare window for reconciliation issues raised by the support team.

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.
Zendesk logo

Zendesk

Destination

Strengths

  • Well-documented REST API with broad endpoint coverage for Tickets, Users, Organizations, and Help Center.
  • Rich automation primitives: Triggers (event-driven), Automations (time-based), and Macros with variable substitution.
  • Multi-brand support enables large organizations to route and isolate support by product line or subsidiary.
  • Scalable from small teams on Team plan to global enterprises on Enterprise Plus with sandbox and disaster recovery options.
  • Large partner ecosystem and marketplace with hundreds of pre-built integrations reduces integration work at deployment.

Weaknesses

  • Per-agent pricing with aggressive feature gating makes lower tiers feel artificially limited.
  • No native full-KB export — Help Center content requires API scripting to extract.
  • AI features are add-on priced and behave inconsistently, not deeply embedded in core workflows.
  • Implementation timelines for complex multi-channel setups routinely exceed initial estimates by weeks or months.
  • Knowledge base and help center functionality are separate from core ticketing with their own permission model and versioning.

Complexity grading

How hard is this migration?

Standard Helpdesk migration. All 7 core objects map 1:1 between UserHorn and Zendesk.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across UserHorn and Zendesk.

  • Object compatibility

    A

    All 7 core objects map 1:1 between UserHorn and Zendesk.

  • 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 Zendesk 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 Zendesk data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

A typical UserHorn to Zendesk migration takes four to eight weeks for accounts with up to 50,000 tickets and a clean discovery outcome. If the discovery phase reveals non-standard data formats, large attachment volumes, or the absence of bulk API export capability, the timeline extends to eight to fourteen weeks. The discovery phase itself adds one to two weeks at the front of the project compared to migrations from platforms with documented APIs.

Adjacent paths

Related migrations to explore

Ready when you are

Move from UserHorn.
Land in Zendesk, 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