Helpdesk migration
Field-level mapping, validation, and rollback between UserHorn and Zendesk. We move data and schema; workflows are rebuilt natively in Zendesk.
UserHorn
Source
Zendesk
Destination
Compatibility
11 of 12
objects map 1:1 between UserHorn and Zendesk.
Complexity
BStandard
Timeline
4-8 weeks
Overview
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.
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 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
Zendesk
Ticket
1:1UserHorn 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
Zendesk
User (end-user type)
1:1UserHorn 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
Zendesk
User (agent type)
1:1UserHorn 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
Zendesk
Organization
1:1If 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
Zendesk
Attachment
1:1File 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
Zendesk
Comment
1:1Ticket 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
Zendesk
Tag
1:1UserHorn 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
Zendesk
Custom Field
lossyUserHorn 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
Zendesk
Satisfaction Application Rating
1:1If 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
Zendesk
Time Entry
1:1If 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
Zendesk
Help Center Article
1:1If 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
Zendesk
Group
1:1UserHorn 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.
| UserHorn | Zendesk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| End User | User (end-user type)1:1 | Fully supported | |
| Agent | User (agent type)1:1 | Fully supported | |
| Organization | Organization1:1 | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Comment | Comment1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Satisfaction Rating | Satisfaction Application Rating1:1 | Fully supported | |
| Time Tracking | Time Entry1:1 | Fully supported | |
| Knowledge Base Article | Help Center Article1:1 | Fully supported | |
| Group | Group1:1 | 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
Zendesk gotchas
Data export requires API scripting on non-Enterprise plans
Automations cap at 500 active rules and 1,000 tickets per hour
Help Center has no native export feature
Custom Objects and full data export are Enterprise-only
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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
UserHorn
Source
Strengths
Weaknesses
Zendesk
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. All 7 core objects map 1:1 between UserHorn and Zendesk.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across UserHorn and Zendesk.
Object compatibility
All 7 core objects map 1:1 between UserHorn and Zendesk.
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 Zendesk migration scoping. Not seeing yours? Book a call.
Walk through your UserHorn to Zendesk 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 Zendesk
Same-Helpdesk migrations
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.