All Posts
itsmitsm migrationguide

Freshservice to ServiceNow Migration 2026: What Moves, What's Rebuilt

Freshservice to ServiceNow migration mapped field by field: states, priority, notes and CIs, with each vendor's documented limits. Plan your cutover.

Ayush Bothra

Ayush Bothra

MigrateX

Published Updated 12 min read

Methodology: built from Freshservice and ServiceNow documentation, pricing pages and newsroom posts, all checked on 7 Oct 2026. No vendor reviewed or paid for this article. We did not run hands-on tests.

A Freshservice to ServiceNow migration pulls tickets, problems, changes, users, knowledge and assets out of Freshservice through its API and exports, then loads them into ServiceNow through Import Sets, Transform Maps and the Table and Attachment APIs. Records and conversations move. Workflows, SLA policies, automations and catalog items are rebuilt in ServiceNow.

If you have outgrown Freshservice and plan to migrate from Freshservice to ServiceNow, this guide maps both data models field by field, with each vendor's documented limits.

Key takeaways

  • Freshservice caps a ticket list export at 10,000 tickets with ticket-level fields, and points to the API or the account-wide XML export for full conversation history (Freshservice support, as of 7 Oct 2026).
  • Freshservice's List All Tickets call returns only tickets created in the past 30 days by default, and include=conversations returns up to ten (Freshservice API docs, as of 7 Oct 2026).
  • Priority scales run in opposite directions: Freshservice Urgent is 4, ServiceNow Critical is 1, and ServiceNow sets priority from impact and urgency (vendor docs, as of 7 Oct 2026).
  • The ServiceNow Table API treats sys_ fields as system-generated and not updatable, so original dates need their own fields (ServiceNow docs, as of 7 Oct 2026).

Why teams move from Freshservice to ServiceNow

Most teams move because the service desk has become a platform question. Freshservice puts problem, change, release and major incident management on Pro at $99 per agent per month billed annually, and sandbox and audit logs on Enterprise (Freshservice pricing page, as of 7 Oct 2026). Teams that need them across many departments, with a CMDB at the center, look at ServiceNow.

ServiceNow sells ITSM as Foundation (incident, request, catalog, Asset Management/CMDB), Advanced (adds problem, change, major incident, on-call) and Prime (adds AI Agents for ITSM), by custom quote (ServiceNow ITSM pricing page, as of 7 Oct 2026). On 9 Apr 2026 ServiceNow said AI, data, security and governance "are now in every ServiceNow offering", not a separate purchase (ServiceNow newsroom).

This is not a weak tool losing to a strong one. Both vendors announced Leader placements in the 2026 Gartner Magic Quadrant for IT Service Management Platforms, published 27 Jul 2026 (Freshworks press release, 29 Jul 2026; ServiceNow Gartner page). The move is about scope and CMDB depth, and that shapes what you migrate.

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

Records and history move, configuration is rebuilt, and anything that depends on time or links is at risk.

Moves (with mapping)Rebuilt in ServiceNowAt risk without a plan
Incidents, problems, changes, conversationsWorkflow Automator rules, approvals, business rulesOriginal created and resolved dates
Requesters, agents, agent groups, departmentsSLA policies, business hours, escalationsSLA history; running timers never move
Public replies and private notesService catalog items and formsNote visibility if the private flag is mapped wrong
AttachmentsAssignment rules, priority matrix, notificationsLinks between incidents, problems, changes and assets
Knowledge articlesPortal and knowledge basesInline images hosted on the old domain
Assets and asset relationshipsCI class model and identification rulesDuplicate CIs on reruns

Freshservice says catalog items cannot be exported from the Service Catalog (Freshservice support, as of 7 Oct 2026). Treat the catalog as a design task.

Freshservice to ServiceNow field mapping

Field mapping decides whether the move works. The platforms disagree on record types, state names and which way priority numbers run.

Record types

In ServiceNow, Incident, Problem and Change Request extend the Task table (ServiceNow table extension docs, as of 7 Oct 2026). Freshservice incident tickets map to Incident; its API notes the ticket type field supports "only type 'incident' as of now", with a separate service request endpoint (Freshservice API docs). Service requests map to ServiceNow request and requested item records, whose catalog items must exist first.

Freshservice change types are Minor, Standard, Major and Emergency (Freshservice support). ServiceNow's are standard, normal and emergency, and a standard change starts from a published template (ServiceNow Change Management API docs, as of 7 Oct 2026). Load closed historical changes as normal or emergency and keep the Freshservice type in a field.

States and statuses

Freshservice (API value)ServiceNow incident stateNote
Open (2)New or In ProgressSplit on whether an agent is assigned
Pending (3)On HoldAdd a reason: Awaiting Caller, Change, Problem or Vendor
Resolved (4)ResolvedKeep resolution notes
Closed (5)ClosedLoad closed so no workflow reopens it
Custom statusesIn Progress or On HoldKeep the original in a field

Values come from the Freshservice API docs and ServiceNow incident state model (as of 7 Oct 2026). Freshservice lets admins toggle the SLA timer on Pending and custom statuses, so check each timer before mapping to On Hold.

Priority, impact and urgency

Freshservice priority runs Low 1 to Urgent 4, and impact and urgency Low 1 to High 3 (Freshservice API docs, as of 7 Oct 2026). ServiceNow runs the other way: impact and urgency are 1 High to 3 Low, sample lookup rules give priority 1 Critical to 4 Low, and the Priority field is read-only by default (ServiceNow docs, as of 7 Oct 2026). Map impact and urgency, let ServiceNow derive priority, and keep the original priority in a field, because Freshservice agents can override the matrix (Freshservice support).

Users, groups and departments

Requesters and agents become ServiceNow users, and agent groups become assignment groups; the Table API examples reference the sys_user and sys_user_group tables (ServiceNow docs). Freshservice requesters carry department_ids and reporting_manager_id (Freshservice API docs), so load departments and managers before users.

Notes: public vs private

Map public replies to Additional comments and private notes to Work notes. ServiceNow says "All users who can view incidents see additional comments" (ServiceNow incident docs, as of 7 Oct 2026). One wrong default exposes every internal note to the caller.

Attachments

Freshservice caps attachments at 40 MB in total per ticket (Freshservice API docs). The ServiceNow Attachment API takes one file per request, with a 1,024 MB default maximum (ServiceNow docs, as of 7 Oct 2026). Size is rarely the issue; request count is.

Links between records

The ServiceNow incident form has Problem, Change Request, Caused by Change and Configuration item fields (ServiceNow docs). Freshservice exposes them through ticket includes such as problem, change, assets and related_tickets (Freshservice API docs). Load problems and changes first, then write references onto incidents.

Assets and CIs

Freshservice asset relationships have default and custom types, each with a normal and inverse direction such as "Depends on" and "Used by" (Freshservice support, as of 7 Oct 2026). ServiceNow stores them in CI Relationship [cmdb_rel_ci] as parent CI, child CI and type (ServiceNow CMDB docs). Map asset types to CI classes and load relationships once both ends exist. ServiceNow's Identification and Reconciliation Engine prevents duplicate CIs, applies to import sets, and can match on source_name and source_native_key (ServiceNow IRE docs, as of 7 Oct 2026). Use the Freshservice asset ID as that key.

Export from Freshservice, import into ServiceNow

Treat ServiceNow data migration as two jobs: a rate-limited extract and a staged load.

Export from Freshservice

The ticket list export gives CSV or Excel, up to 10,000 tickets per export, and the account-wide export emails the entire service desk data as XML to the account admin (Freshservice support, as of 7 Oct 2026). Neither carries links and files in a loadable shape, so the API is the practical route.

The Freshservice API allows 100, 200, 400 or 500 calls per minute on Starter, Growth, Pro and Enterprise, "on an account wide basis", and "even invalid requests will count towards the rate limit" (Freshservice API docs, as of 7 Oct 2026). List All Tickets has a sub-limit of 40, 70, 120 or 140 per minute, pages hold at most 100 objects, and Pro and Enterprise can buy add-ons for 1,000 or 2,000 calls per minute.

On Pro, conversations need at least one call per ticket against the shared 400 per minute, so a 100,000-ticket history needs at least 250 minutes of the whole account's budget before attachments and retries. That is arithmetic from the documented limits, not a benchmark.

The Freshservice Bulk API is documented for partners importing into Freshservice, not exporting, and its limits are marked "to be confirmed post load testing" (Freshservice support, as of 7 Oct 2026). Leave it out of the extract plan.

Import into ServiceNow

Load through Import Sets: rows land in a staging table and a Transform Map moves them to the target. The Import Set API's insertMultiple call stages many rows per request, and "transformation is asynchronous by default" (ServiceNow docs, as of 7 Oct 2026). On coalesce, a match updates, no match inserts, and with several matches only the first is updated.

StepDocumented limit or behaviorSource (as of 7 Oct 2026)
Freshservice ticket list export10,000 tickets per exportFreshservice support
Freshservice API100 / 200 / 400 / 500 calls per minute; 100 per pageFreshservice API docs
Freshservice ticket viewinclude=conversations returns up to tenFreshservice API docs
ServiceNow Import Set APIinsertMultiple, asynchronous by defaultServiceNow docs
ServiceNow staging tablesContents older than seven days clearedServiceNow employee community post
ServiceNow Table APIsysparm_limit default 10,000; sys_ fields not updatableServiceNow docs
ServiceNow Attachment APIOne file per request; 1,024 MB defaultServiceNow docs

Read loaded records back with Table API sysparm_offset paging, and keep your own load logs, because staging rows do not last (ServiceNow employee community post, modified 2 Feb 2025).

Plan the migration in phases

  1. Discover. Count records by type, workspace and year. List custom statuses, fields, asset types and relationship types. Note your Freshservice plan, because it sets the API budget.
  2. Map. Build the mapping tables above. Decide where original IDs, dates, priority and change type live. Agree the history scope.
  3. Test migration. Load a sample covering every status, priority, record type and attachment type into sub-production. Check comment visibility with a requester login.
  4. Cutover with delta sync. Run the full load before the freeze window. At cutover, freeze Freshservice, pull records changed since the full load with the updated_since filter (Freshservice API docs), and load the delta. Make go/no-go on reconciliation results.
  5. Reconcile. Compare counts per table, state and year, then sample records end to end: conversations, attachments, links and CI relationships.
  6. Hypercare. Watch assignment, notifications, SLAs and reports. Keep Freshservice read-only until sign-off.

Pair-specific failure points

  1. The 30-day default. Freshservice says that by default "only tickets that have been created within the past 30 days will be returned" (Freshservice API docs, as of 7 Oct 2026). An extract without updated_since looks complete in testing and misses most of the history.
  2. Ten conversations. Long tickets fetched with include=conversations arrive truncated. Use GET /api/v2/tickets/[id]/conversations.
  3. Inverted priority. Copying priority 4 straight across turns an Urgent ticket into a Low incident.
  4. Original dates. sys_ fields are system-generated, so store Freshservice dates in their own fields.
  5. SLA history. ServiceNow SLA repair recreates SLA records "from the start" using the Task's history (ServiceNow SLA docs, as of 7 Oct 2026). Imported records carry little of it, so load Freshservice SLA outcomes as data.
  6. Weak coalesce keys. Coalescing on a non-unique field such as name updates only the first match.

Freshservice to ServiceNow migration checklist

  1. Record your Freshservice plan, its API limit and every integration sharing it.
  2. Count tickets, problems, changes, assets and articles by year and workspace.
  3. List custom statuses and their SLA timer settings.
  4. Decide the history scope and where archived records live.
  5. Build the ServiceNow change model and catalog items before loading changes and requests.
  6. Map impact and urgency, and keep the original priority in a field.
  7. Map public replies to Additional comments and private notes to Work notes.
  8. Create fields for Freshservice ID, created date, resolved date and change type.
  9. Load departments and managers, then users, then records.
  10. Map asset types to CI classes and set IRE identification on the Freshservice asset ID.
  11. Choose a unique coalesce key for every Transform Map.
  12. Plan the delta with updated_since and agree the freeze window.
  13. Reconcile before go/no-go and keep Freshservice read-only through hypercare.

FAQ

Methodology

We read Freshservice and ServiceNow documentation, API references, support articles, pricing pages and newsroom posts on 7 Oct 2026. Every limit is quoted from the vendor that owns the platform. The API-budget figure is our arithmetic from Freshservice's published limits, not a measured benchmark. 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