Migration FAQ
Frequently asked questions about importing data into UserHero
Migration FAQ
General
What does data migration do?
Data migration imports historical tickets and feedback from external platforms (Freshdesk, CSV files, JSON files) into your UserHero project as feedback items. It is a one-time bulk import, not an ongoing sync.
Does migration count toward my monthly feedback quota?
No. Imported records are marked with a migration source and are excluded from your monthly usage counters.
Can I import into multiple projects?
Each migration job targets a single project. To import into multiple projects, run separate imports for each.
What happens if the import fails partway through?
Partially imported records are preserved. You can review the error log, fix any issues, and re-run the import. The upsert logic ensures already-imported records are updated, not duplicated.
Import Window & Plans
Why can't I import all my historical data?
The import window is tied to your plan's data retention period. This ensures you only import data you can keep:
| Plan | Import Window |
|---|---|
| Free | Last 7 days |
| Starter | Last 30 days |
| Growth | Last 90 days |
| Pro | Last 365 days |
| Pro Max | Unlimited |
Can I upgrade to import more data?
Yes. Upgrade your plan first, then start the import. The wizard will automatically use your new plan's retention window.
What happens to imported data if I downgrade my plan?
Imported data follows the same retention rules as all feedback. If you downgrade and records fall outside your new retention window, they will be subject to the standard data retention policy.
Trial Runs
What is a trial run?
A trial run imports only the first 10 records from your source. It lets you verify that field mapping, status transforms, and date filtering work correctly before committing to a full import.
Can I delete trial run records?
Trial records are regular feedback items. You can delete them manually from the feedback inbox if needed.
How do I convert a trial to a full import?
On the job detail page, click Run Full Import. This creates a new migration job that imports all records (including the 10 from the trial, which are updated via upsert).
Duplicates & Re-running
What happens if I run the same import twice?
Migration uses upsert logic. Each record has a unique external ID (Freshdesk ticket ID, CSV row number, or JSON array index). Re-running an import updates existing records instead of creating duplicates.
Will re-importing overwrite my changes?
Yes. If you manually edited a feedback item that was originally imported, re-running the import will overwrite those changes with the source data.
Re-running an import overwrites any manual changes you've made to imported feedback items. Export or note any changes before re-importing.
Can I change field mapping and re-import?
Yes. Create a new migration job with updated field mapping. The upsert logic will update existing records with the new mapping.
Attachments
Which providers support attachment migration?
Only Freshdesk. Attachments are downloaded from the Freshdesk API and re-uploaded to UserHero's storage.
What if an attachment fails to download?
The attachment error is logged but does not block the import. The feedback record is still created — only the attachment link is missing. Check the error log on the job detail page.
Is there a file size limit for attachments?
Individual attachments are limited by the source provider's constraints. There is no additional limit imposed by UserHero during migration.
Customer Records
Does migration create customer records?
Yes. When imported feedback includes a user email or phone number, UserHero automatically creates or updates a Customer record. Existing customers are matched by email or phone — if found, the record is updated. Otherwise, a new customer is created.
What customer data is imported?
The customer's name, email, phone number, and company name are stored based on your field mapping. For Freshdesk imports, the requester's name, email, phone, and company are mapped by default.
Can I see how many customers were created?
Yes. The import progress page shows customer stats — how many were created and how many were updated.
Conversations & Notes
Does migration import ticket conversations?
For Freshdesk imports on Starter plans and above, ticket conversations are imported. Customer replies are stored as comments on the feedback item, and agent notes are stored as internal notes.
Are conversations imported from CSV or JSON?
No. CSV and JSON imports only support flat feedback records. Conversations are only imported from API-based providers like Freshdesk.
Assignees & SLA
Are ticket assignees imported?
For Freshdesk imports, agent emails are matched to your workspace members. If the agent's email matches a team member, the feedback item is assigned to them.
What happens if the agent isn't in my workspace?
The agent's name and email are still stored on the feedback item for reference, but it won't be assigned to a workspace member.
Are SLA due dates imported?
Yes. Due dates from Freshdesk (due_by) are preserved. UserHero computes whether the SLA was breached based on the due date and resolution status.
External IDs & Stable Re-imports
What is an external ID?
For CSV and JSON imports, each row is normally identified by its index (csv-row-0, json-row-1, etc.). If you map a column or field to externalId, that value is used instead. This keeps re-imports stable even if you reorder or modify the file.
When should I use external IDs?
If you plan to re-import the same data after modifying the file (adding rows, reordering, etc.), mapping an externalId prevents duplicates. If you only import once with an unmodified file, the default row-based IDs work fine.
CSV & JSON Specific
What delimiter does CSV import use?
Comma (,) by default. TSV files using tabs are also supported — specify the delimiter in the upload step if auto-detection doesn't work.
Does JSON import support nested objects?
Yes. Use dot-notation in your field mapping to access nested fields. For example, map reporter.email to userEmail. See the JSON Import Guide for details.
My CSV has special characters — will they import correctly?
Save your file as UTF-8 encoding. In Microsoft Excel: File → Save As → select "CSV UTF-8 (Comma delimited)". Other encodings may cause garbled text.
Can I import from Google Sheets?
Export your Google Sheet as a CSV file (File → Download → Comma-separated values), then use the CSV import.
Freshdesk Specific
Is my Freshdesk API key stored securely?
Yes. API keys are encrypted with AES-256-GCM before storage and only decrypted during the active migration process.
How long does a Freshdesk import take?
It depends on the number of tickets and attachments. The import processes 100 tickets per page with automatic rate limit handling. A typical import of 1,000 tickets takes a few minutes; 10,000+ tickets may take longer.
Does the import fetch all ticket fields?
The import fetches standard Freshdesk ticket fields (subject, description, status, priority, type, tags, requester email, attachments, created date). Custom fields are available in the field mapping UI.
What about Freshdesk conversations/replies?
Currently, only the ticket subject and description are imported. Individual conversation replies within a ticket are not imported as separate records.