UserHero Docs
Data Migration

Data Migration Overview

Import historical tickets and feedback from external platforms into UserHero

Data Migration

Data Migration lets you import historical tickets and feedback from external platforms into UserHero. Connect your source, map fields, run an optional trial, then execute a full import. Imported records land as Feedback items in your selected project.

Migration is a one-time bulk import of historical data. For ongoing two-way sync with tools like Linear and Jira, see Sync Adapters.

Supported Providers

ProviderAuth MethodStatus
FreshdeskAPI key + subdomainAvailable
CSV fileFile uploadAvailable
JSON fileFile uploadAvailable
ZendeskOAuth 2.0Coming soon
IntercomOAuth 2.0Coming soon
JiraOAuth 2.0Coming soon
Zoho DeskAPI keyComing soon
HubSpotOAuth 2.0Coming soon

How It Works

Source (Freshdesk / CSV / JSON)

  Migration Wizard
  1. Choose provider
  2. Connect / upload
  3. Map fields
  4. Select project
  5. Review & import

  Feedback Inbox
  1. Choose a provider — Select Freshdesk for API-based import, or upload a CSV/JSON file.
  2. Connect — Enter your API credentials (Freshdesk) or upload your file. The system validates the connection and detects available fields.
  3. Map fields — Map source fields to UserHero fields (message, category, status, email, phone, assignee, due date, etc.). Status and priority values can be transformed automatically.
  4. Select project — Choose which project receives the imported feedback.
  5. Review & import — See a summary of your configuration, then start a trial run or full import.

Target Fields

Each source field maps to one of these UserHero fields:

Target FieldDescription
messageFeedback message (required — at least one field must map here)
categorybug, feature, suggestion, or other
rating1-5 star rating
statusnew, in-progress, resolved, or archived
tagsComma-separated tags
userEmailSubmitter email address
userNameSubmitter name
userPhoneSubmitter phone number
assigneeEmailAssigned agent email (auto-resolved to workspace member)
assigneeNameAssigned agent name
companyNameCustomer company name
dueDateDue date for SLA tracking
updatedAtLast updated timestamp (used for status timeline)
externalIdCustom unique ID for stable re-imports
context.pageUrlOriginal page URL
customMetadataCustom key-value data (Pro plan)
createdAtPreserve the original timestamp
ignoreSkip this field

Import Window

The date range of records you can import is determined by your plan's data retention period:

PlanRetentionImport Window
Free7 daysLast 7 days
Starter30 daysLast 30 days
Growth90 daysLast 90 days
Pro365 daysLast 365 days
Pro MaxUnlimitedAll time

Records outside your plan's retention window are automatically skipped. If you need to import older data, upgrade your plan first.

Trial Runs

Before committing to a full import, you can run a trial that imports only the first 10 records. This lets you verify that field mapping, status transforms, and date filtering work correctly. After reviewing the trial results, you can either adjust your mapping or proceed with a full import.

Duplicate Handling

Migration uses upsert logic — if you re-run an import, existing records are updated instead of duplicated. Each imported record is tracked by its external ID (e.g., Freshdesk ticket ID, or CSV row number), so running the same import twice is safe.

For CSV and JSON imports, you can map a column to externalId to use your own unique identifier instead of the auto-generated row number. This keeps re-imports stable even if rows are reordered.

Customer Records

Imported feedback is automatically linked to Customer records. During import, UserHero matches feedback to existing customers by email or phone number. If no match is found, a new customer record is created.

The import progress page shows how many customers were created and updated.

Conversations & Notes

For Freshdesk imports on Starter plans and above, ticket conversations (replies and internal notes) are imported alongside the ticket data. Agent replies and customer responses are preserved as comments on the feedback item, and internal notes are stored separately.

Assignee Mapping

When importing from Freshdesk, agent emails from tickets are automatically matched to workspace members. If the agent's email matches a team member in your workspace, the feedback item is assigned to them. Unmatched agents are stored by email for reference.

SLA & Due Dates

If the source data includes a due date (e.g., Freshdesk due_by), it is preserved on the feedback item. UserHero computes whether the SLA was breached based on the due date and current status, so your dashboard reflects historical SLA performance.

Attachments

For Freshdesk imports, file attachments are downloaded from the source and re-uploaded to Firebase Storage. The attachment URL is stored on the feedback record. CSV and JSON imports do not support attachment migration.

Usage Billing

Imported records are not counted toward your monthly feedback usage quota. Migration imports historical data — it does not inflate your usage metrics.

Next Steps

On this page