All Posts
itsmitsm migrationguide

Import tickets into Freshservice 2026: CSV, API and bulk limits

Freshservice import tickets guide for 2026: what CSV import covers, API and Bulk API limits, field mapping and a cutover checklist. Plan yours.

Ayush Bothra

Ayush Bothra

MigrateX

Published Updated 14 min read
Freshservice import tickets routes: CSV import for users and assets, REST API v2 and the partner Bulk API carrying ticket history into Freshservice

Methodology: built from Freshservice support articles, the Freshservice API reference, Freshworks migration pages and staff replies on the Freshworks Community, all checked on 1 Oct 2026. No vendor reviewed or paid for this article. We did not run hands-on tests.

You can't import tickets into Freshservice with its self-service CSV importer. That importer covers requesters, agents, departments, locations, assets and custom objects. Ticket history goes in through the Freshservice REST API, the Bulk API reserved for Freshservice data migration partners, or a CSV migration run by Freshservice support on request.

If you searched "freshservice import tickets" because your team is moving onto Freshservice and wants its old incidents and requests too, this guide sets every route beside Freshworks' published limits. It covers what moves, what gets rebuilt and how to plan a cutover you can reconcile.

Key takeaways

  • Freshservice documents CSV import for requesters, agents, departments, locations, assets and custom object records, but no self-service CSV import for tickets (Freshservice support, as of 1 Oct 2026).
  • The REST API allows 100, 200, 400 or 500 calls per minute on Starter, Growth, Pro and Enterprise, and Create Ticket has its own sub-limit of 50 to 160 per minute (Freshservice API, as of 1 Oct 2026).
  • The Bulk API is for Freshservice data migration partners only: tickets and notes, 50 per request, 10 requests per minute, attachments up to 40 MB per entity (Freshservice support, as of 1 Oct 2026).
  • Business rules, workflows, Slack and Teams "will not be muted" during a bulk import (Freshservice support, as of 1 Oct 2026). Workflows, SLA policies and running SLA timers are rebuilt, not imported.

Why teams import tickets into Freshservice in 2026

Most teams import history because the old platform is closing. These dated triggers are pushing service desks to move.

TriggerWhat the source says
Cherwell end of lifeCherwell Service Management reaches end of life on 31 Dec 2026, according to StrataCom (StrataCom, as of 1 Oct 2026) and Beyond20 (Beyond20, as of 1 Oct 2026). See our Cherwell end-of-life plan
Jira Data Center end of lifeNew customers could not buy Data Center after 30 Mar 2026, and Jira Service Management Data Center reaches end of life on 28 Mar 2029 (Atlassian, as of 1 Oct 2026). See our Jira Data Center end-of-life timeline
Freshservice on more shortlistsFreshworks says it was named a Leader in the 2026 Gartner Magic Quadrant for IT Service Management Platforms, published 27 Jul 2026 (Freshworks, as of 1 Oct 2026)

Still choosing? Compare Freshservice vs ServiceNow and Zendesk vs Freshservice. Plans matter here too: see the Freshservice pricing guide.

Freshservice ticket import options at a glance

A Freshservice ticket import has three documented routes: the public REST API, the partner-only Bulk API, and a CSV migration run by Freshservice support. Self-service CSV import is for the records tickets depend on.

RouteWhat it importsWho can use itDocumented limitsSource (as of 1 Oct 2026)
Self-service CSV importRequesters, agents, departments, locations, assets, custom objects. Not ticketsAny adminCSV only; one asset type per fileFreshservice support
CSV migration by Freshservice supportTickets, on requestCustomers who ask supportNone published; in 2021 Freshservice staff said support would "perform a CSV migration from our end"Freshworks Community
REST API v2Tickets, conversations, problems, changes, assets, usersAny plan100 to 500 calls per minute by plan; Create Ticket 50 to 160 per minute; 40 MB of attachments per ticketFreshservice API
Bulk APITickets and notes onlyData migration partners50 records per request; 10 requests per minute; 40 MB per entityFreshservice support
Migration tokenAny public API entityData migration partnersUp to 700 calls per minute for an approved windowFreshservice support

Freshservice import tickets routes compared: self-service CSV import, support-run CSV migration, REST API v2, Bulk API and migration token with their published limits

What Freshservice CSV import covers, and why tickets aren't on the list

Freshservice data import by CSV is built for reference data: the people, places and things tickets point to. Load it first, because tickets and notes reference it by ID or email.

ModuleWhere to importWhat to knowSource (as of 1 Oct 2026)
RequestersAdmin > User Management > RequestersReporting Manager must be an email address; create locations firstFreshservice support
AgentsAdmin > User Management > AgentsAn "Occasional" column marks occasional agentsFreshservice support
Departments or companiesAdmin > User Management > Departments/CompaniesName is mandatoryFreshservice support
LocationsAdmin > Asset Management > LocationsUTF-8; parent written as a path, such as "USA/ California"Freshservice support
AssetsInventory > ImportOne asset type per import; hardware matches on serial number by default; Used By takes an emailFreshservice support
Custom object recordsThe object's Import optionRecord ID decides update, insert or skipFreshservice support

None of these articles gives a file size or row limit, so test a full-size file.

Tickets are different: we found no Freshservice support article documenting a self-service ticket import. Freshservice staff on the Freshworks Community have pointed customers to two options: ask support for a CSV migration, or create tickets through the API with a script (Freshworks Community, as of 1 Oct 2026). Ask what it carries today, especially notes, attachments and original dates.

Freshservice API and Bulk API limits

Your plan's rate limit sets how fast history loads through the API. Accounts created on or after 1 Sep 2020 use per-minute limits (Freshservice API, as of 1 Oct 2026).

Calls per minuteStarterGrowthProEnterprise
Overall account limit100200400500
Create, View or Update Ticket5080140160
List All Tickets or Requesters4070120140

Source: Freshservice API, as of 1 Oct 2026.

Live integrations share the overall limit during the load. Add-on packs lift it to 1,000 or 2,000 calls per minute, and a Retry-After header says how long to wait once you hit it (Freshservice API, as of 1 Oct 2026).

The Bulk API for migration partners

The Bulk API imports "Tickets and Notes" only, and Freshservice marks its rate limits "To be confirmed post load testing"; other entities use the public API (Freshservice support, as of 1 Oct 2026). Its rules:

  • At most 50 records per request and 10 requests per minute per bulk endpoint; job status checks allow 75 per minute (Freshservice support, as of 1 Oct 2026).
  • Each request returns a job ID. Freshservice says failed records "cannot be retried automatically", so log and resubmit them.
  • Attachments must sit at public URLs, up to 40 MB per entity (Freshservice support, as of 1 Oct 2026). A larger file is rejected; its ticket or note is still created.
  • A note needs its ticket to exist first, and workspaces and users must exist before records that use them.

On our arithmetic, 50 records at 10 requests a minute caps bulk ticket creation at 500 tickets a minute before notes (Freshservice support, as of 1 Oct 2026).

The migration token

Approved partners can request a migration token by giving the account ID, an approximate ticket count, future start and end dates and the region. It raises the public API limit to 700 calls per minute for that partner, account and window, and keeps agents from being blocked by spam protection (Freshservice support, as of 1 Oct 2026).

Before you start: scope and inventory

Count what you have before you pick a route: tickets, problems and changes per status; public replies and private notes; attachments, flagging oversized files; requesters, agents, groups and locations; assets by type; custom fields. Our guide on how to audit legacy help desk data before a migration walks through it.

Then agree with audit and reporting owners how much history moves: all of it, a cut-off, or a cut-off plus a read-only archive. Leaving Zendesk? Our Zendesk data migration guide covers what each Zendesk export includes.

What moves, what gets rebuilt, what's at risk

Records move as data. Configuration is rebuilt. Freshworks' own Zendesk migration guide says automation rules, triggers, workflows and "SLA policies and business rules" need manual reconfiguration (Freshworks, as of 1 Oct 2026).

What moves (as data)What gets rebuilt (not migrated)What's at risk
Incidents and service requests with status, priority and custom fieldsWorkflow Automator workflows and business rulesOriginal created and resolved dates
Public replies and private notesSLA policies, business hours and running SLA timersPrivate notes made public by a mapping error
Attachments within the per-entity limitCanned responses, scenario automations, notificationsOversized attachments and files behind a sign-in
Requesters, agents, departments, locationsService catalog items and formsLinks between incidents, problems, changes and assets
Assets and CIs, one asset type per CSVAssignment rules and group routingNotes credited to the import user, not the author
Problems, changes and releases, via the public APIIntegrations and Slack or Teams channelsUnmuted workflows firing on imported tickets

Sources: Freshservice support and Freshservice API, as of 1 Oct 2026.

Keeping each record's meaning, not only its fields, is what data fidelity in migration means. Keep historical SLA results as data, because definitions and live timers start fresh in Freshservice.

Field mapping for a Freshservice ticket import

Build the mapping before any data moves.

Source elementFreshservice targetWatch for
StatusOpen (2), Pending (3), Resolved (4), Closed (5), plus custom statuses (Freshservice API, as of 1 Oct 2026)The SLA timer for Pending and each custom status can be switched on or off (Freshservice support, as of 1 Oct 2026)
Priority or priority matrixLow (1), Medium (2), High (3), Urgent (4) (Freshservice API, as of 1 Oct 2026)Collapse impact and urgency into these values with a written rule
Requesterrequester_id or emailCreate Ticket needs one of them, so import requesters first
Assignee and groupresponder_id and group_idCreate agents and groups before tickets
Public reply or internal noteNote with private and incoming flagsThe Bulk API note carries user_id, private and incoming (Freshservice support, as of 1 Oct 2026)
Business unit or teamworkspace_idCreate workspaces first
Created and resolved datescreated_atThe API reference describes it only as "Ticket creation timestamp". Confirm how your route keeps original dates

Private notes, authors and attachments

Prove in testing that internal notes stay hidden from requesters and show their original author. Count attachments per ticket on both sides, and decide before the load what happens to files over the 40 MB limit (Freshservice support, as of 1 Oct 2026). Our guide to preventing a lost-attachment flood at cutover covers the options.

The Freshservice migration plan in phases

A Freshservice migration runs as a controlled change in six phases, each with an owner and a go/no-go gate. Freshworks describes its own approach as demo, full and delta migration (Freshworks, as of 1 Oct 2026), which fits the phase model in our ITSM migration guide.

  1. Discover. Run the inventory and record your plan's API limits.
  2. Map. Configure workspaces, statuses, fields, groups and SLA policies. Import requesters, agents, departments, locations and assets by CSV.
  3. Test migration. Switch off workflows, business rules and Slack or Teams notifications first. Load a slice with long threads, private notes, large attachments and every ticket type. Expect a delay before migrated data appears in search and analytics (Freshservice support, as of 1 Oct 2026).
  4. Cutover with delta sync. Load history ahead, freeze the source briefly, load what changed, then switch email channels and portal links.
  5. Reconcile. Compare counts per object and status, then sample tickets end to end. Ticket exports stop at 10,000 tickets each (Freshservice support, as of 1 Oct 2026), so split checks by date range or use the API.
  6. Hypercare. Re-enable workflows one at a time, watch SLA timers, and keep the source read-only until audit owners sign off.

Our ITSM migration checklist breaks each phase into individual checks.

Common failure points

Each comes from documented Freshservice behavior, so a test migration can catch it. For risks common to any help desk move, see help desk migration risks to plan for.

Failure pointWhy it happensHow to catch it
Workflows fire on old ticketsBulk imports don't mute business rules or workflowsSwitch them off before each load; check imported tickets for automated changes
Notes fail to loadThe parent ticket doesn't exist yetLoad tickets first and map source IDs to new ticket IDs
Records rejectedRequesters, groups or workspaces missingImport reference data first and verify counts
Missing attachmentsOversized files, or URLs that need sign-inCompare attachment counts per ticket
Failed records never reloadedBulk errors can't be retried automaticallyLog every job ID and resubmit failures
Dates reset to the import dayOriginal timestamps not carriedCheck created and resolved dates on sampled tickets

Building this in-house? Read why automated migration scripts fail first.

Freshservice ticket import checklist

  1. Choose the route: API script, partner Bulk API, or support-run CSV migration.
  2. Record your plan's overall and Create Ticket API limits.
  3. Count every object per status, plus oversized attachments.
  4. Agree the history scope with audit and reporting owners.
  5. List workflows, business rules, SLA policies and automations to rebuild.
  6. Create workspaces, statuses, fields and groups, then import reference data by CSV.
  7. Map statuses, priorities, requesters, groups and note visibility.
  8. Re-host attachments at URLs Freshservice can reach.
  9. Switch off workflows, business rules and Slack or Teams notifications.
  10. Run a test migration; check private notes and original dates.
  11. Plan the freeze window and delta pass.
  12. Reconcile counts and samples, then record go/no-go sign-off.

FAQ

Methodology

We built this guide from Freshservice support articles, the Freshservice API reference, Freshworks migration pages and Freshservice staff replies on the Freshworks Community, all checked on 1 Oct 2026. We read the pages that rank for "freshservice import tickets" to find gaps but do not cite them. Every limit links to the Freshworks page that publishes it; the bulk ceiling per minute is our arithmetic from those limits. We did not run hands-on tests.

Disclosure: MigrateX, the publisher of this article, runs ITSM data migrations, including between platforms named here. No vendor reviewed or paid for this article.

About MigrateX

With 20 years in enterprise ITSM, we've seen what breaks when a service desk changes platforms: SLA clocks reset, CI relationships disappear, and years of ticket history get scoped out to protect a go-live date. MigrateX moves that history intact, with tickets, attachments, relationships and audit trails, so your new platform starts with the record your team already trusts.

Ayush Bothra

Written by

Ayush Bothra

MigrateX

Ayush writes about ITSM platforms, pricing and what it takes to move a service desk to a new platform without losing its history.


Ready to migrate your help desk?

Run a free demo migration on your actual data. Review the results before anything touches production.

Run a Free Demo Migration