loader
Freshdesk to Salesforce Migration: Tickets & Knowledge | Tenetizer
Salesforce Migration

Freshdesk to Salesforce Migration: What We Learned from Real Migrations

We move your Freshdesk tickets, conversations, contacts and Solution articles into Salesforce Service Cloud and Knowledge, with links, images, videos and history intact.

By Ayub Ansari, Salesforce Technical Architect, Tenetizer Technologies 30+ Freshdesk migrations delivered Updated November 2026

Freshdesk to Salesforce migration, in short

A Freshdesk to Salesforce migration moves tickets into Service Cloud Cases, public replies into EmailMessages, private notes into internal comments, and Freshdesk Solutions articles into Salesforce Knowledge. The hard parts are conversation history, inline images, embedded videos, links between articles, and Freshdesk's API rate limits. For about 10,000 tickets and 1,000 articles, the load itself takes around 3 days after the mapping is agreed.

Moving from Freshdesk to Salesforce is not simply a matter of exporting tickets and importing them into Salesforce. In our Freshdesk-to-Salesforce migration projects, the difficult part has usually been the data that doesn't map cleanly: conversations, private notes, attachments, Knowledge articles, embedded images, article links, custom fields, and relationships between records. We've worked through these issues on real projects and built a repeatable approach for handling them. This guide explains what we migrate, how to get data out of Freshdesk, where the difficult parts are, and how we run the migration from discovery through cutover.

Why teams move from Freshdesk to Salesforce Service Cloud

Freshdesk is quick to set up and good at routing tickets. Teams usually move when support stops being a standalone function:

  • Support needs to see sales and account data. In Salesforce, a Case sits on the same Account as the Opportunities, contracts and billing records.
  • The company already runs on Salesforce. Keeping a separate helpdesk means duplicate contacts, two user logins and a sync to maintain.
  • Processes need more control. Entitlements, milestones, approval steps and Flow-based automation go further than Freshdesk's rules.
  • The help center needs to grow. Experience Cloud gives you a customer portal where people search Knowledge, log cases and track them, all on the same data.

What a Freshdesk migration actually has to move

A Freshdesk migration usually covers these areas. Each has its own difficulty:

AreaWhat's in itDifficulty
Setup and processService Cloud, queues, profiles, SLA policies, automations, canned responses, integrationsMedium. Rebuilt, not copied.
DataAgents, contacts, companies, tickets, conversations, attachments, time entries, satisfaction ratingsMedium to high, depending on history and attachments
KnowledgeSolution categories, folders, articles, translations, inline images, embedded videos, links between articlesHigh. Content needs cleaning, not just copying.
Customer portalFreshdesk support portal replaced with an Experience Cloud help centerMedium. Built new, fed by the migrated Knowledge.
Freshdesk calls it Solutions. Salesforce calls it Knowledge. Freshdesk's knowledge base lives under Solutions: categories, then folders, then articles. In Salesforce, articles become Knowledge records (Lightning Knowledge), and the category-and-folder tree becomes Data Categories. The structure doesn't map one to one, so it's worth agreeing the new category design before anything moves.

Freshdesk tickets to Salesforce Cases: object and field mapping

This is the core of the Freshdesk to Service Cloud data mapping. People and owners load first, so every Case can find its contact, account and owner.

FreshdeskSalesforceNotes
AgentUser (Service Cloud license)Needed before tickets load so Case owners resolve. Former agents map to a default owner.
GroupQueueUnassigned tickets land in the matching queue.
CompanyAccountCompany domains help match contacts that have no company set.
ContactContactContacts linked to more than one company use Contacts to Multiple Accounts.
Portal userContact + Experience Cloud userOnly if customers log in to the new help center.
TicketCaseStatus, priority, source and type need their own value mapping. Freshdesk ticket ID stored on every Case.
Public replyEmailMessageKeeps the email thread readable on the Case, in order, with the right direction (incoming or outgoing).
Private noteCase Comment (not published) or Feed postMust stay internal. We test this on every run.
Parent / child ticketParent CaseLoaded in a second pass once all Cases exist.
AttachmentFile (ContentVersion)Linked to the Case or to the exact email it came with.
TagsTopics or a text fieldDepends on whether agents report on them.
Custom ticket fieldsCustom Case fieldsFreshdesk nested (dependent) dropdowns become dependent picklists.
Time entries, satisfaction ratingsCustom objectsOnly if you still report on them.
Canned responsesQuick Text or email templatesPlaceholders need rewriting to Salesforce merge fields.
SLA policies, automationsEntitlements, milestones, assignment and escalation rules, FlowRebuilt, not migrated.

Freshdesk Solutions to Salesforce Knowledge: knowledge base migration mapping

The knowledge base is where most of the clean-up happens. Here's how each part of Freshdesk Solutions lands in Salesforce Knowledge.

Freshdesk SolutionsSalesforce KnowledgeNotes
Solution articleKnowledge article (Knowledge__kav)Title, body, summary and URL name mapped. Author and dates kept where possible.
Category and folderData Category Group and Data CategoriesTwo Freshdesk levels become a category tree. Assignments are loaded as a separate step.
Article type (permanent, workaround)Record Type or picklistOnly if your team uses the distinction.
Draft / published statusDraft / published article versionPublished articles are loaded as drafts, then published through the API.
Folder visibilityChannels (internal, customer, partner, public) and category visibilityAgent-only folders must never land on the public channel.
TranslationsTranslated article versionsEach language has to be enabled in Knowledge settings first in Salesforce.
Inline imagesImages stored in SalesforceDownloaded and re-hosted. Freshdesk image links can't be trusted to keep working.
Embedded videosEmbedded videos in the rich text fieldVideo host added to Salesforce Trusted URLs so the embed isn't stripped.
Article attachmentsFiles linked to the articleKept with the article version.
Links to other articlesLinks to the new Salesforce articlesRewritten in a second pass once every article has a Salesforce URL.
SEO title and descriptionSummary and URL nameKeeps search snippets useful in the new help center.

How to export data from Freshdesk for a Salesforce migration

Freshdesk gives you three ways to get data out. Only two of them carry the full conversation history.

Export methodWhat you getGaps for a migration
Ticket CSV export (from the Tickets list)Ticket fields and propertiesNo conversations, private notes or archived tickets. Fine for a report, not for a migration.
Account export (Admin > Account > Account Details)Tickets with conversations, contacts, companies and Solutions in one export, sent to the account admin's email as XMLOne large file that has to be parsed and reshaped before Salesforce can use it.
Freshdesk REST API (v2)Tickets, conversations, attachments, contacts, companies, Solution categories, folders and articles, in structured JSONRate limited per minute by plan, and older tickets need a date filter to be returned.

We extract through the API because it gives every record in a structured form we can transform and reload in passes. If you're comparing Freshdesk to Salesforce migration tools, ask how each one gets conversations and private notes out, since that's where the CSV route falls short.

Freshdesk to Salesforce migration options compared

There are three common ways to migrate Freshdesk to Salesforce. The right one depends on how much history and Knowledge content you need to keep usable.

ApproachWorks well forWatch out for
Data Loader or Data Import Wizard with Freshdesk CSVsSmall teams moving open tickets and contacts only, with no history to keepThe CSV export leaves out conversations, notes and archived tickets. No handling of images, videos or article links.
Off-the-shelf migration appsStandard Freshdesk setups with few custom fields and a small knowledge baseCheck how they handle private notes, inline images, Data Categories, translations and links between articles before you commit.
Partner-led migration with a custom ETL (our approach)Full ticket history, large knowledge bases, custom fields, multiple languages, a new Experience Cloud help centerMore planning up front: mapping sign-off and a sandbox rehearsal before production.

What we've learned from recent Freshdesk migrations

These are the details that don't show up in a mapping spreadsheet but decide whether the migration is actually usable after go-live.

Links inside articles still point to Freshdesk

Articles link to each other all the time: "see our setup guide", "for billing issues read this". After a plain copy, every one of those links still goes to the old Freshdesk portal.

What we do: load all articles first, build a map of old article ID to new Salesforce URL, then rewrite every internal link in a second pass. Links to articles that weren't migrated get flagged for review instead of silently breaking.

Inline images can stop loading after go-live

Images pasted into Freshdesk articles and ticket replies are stored on Freshdesk's servers. Once the Freshdesk account is closed, those images go with it.

What we do: download every inline image during extraction, store it in Salesforce, and rewrite the image source so nothing depends on Freshdesk afterwards.

Embedded videos get stripped without the right setting

YouTube, Vimeo, Loom and Wistia embeds are iframes. Salesforce removes iframes from rich text unless the video host is trusted.

What we do: list every video host used across your articles, add them to Trusted URLs before loading, and check a sample of articles with video in the sandbox.

Ticket-to-ticket and ticket-to-article links need a second pass

Parent and child tickets, linked tickets, and replies that say "see ticket #4812" or link to a Solution article all reference records that may not exist in Salesforce yet when the ticket loads.

What we do: load Cases first, then set parent links and rewrite article links once everything exists. The original Freshdesk ticket number is stored on every Case, so agents can still search for old references.

Private notes must stay private

Freshdesk mixes public replies and private notes in one conversation list. Map them to the same Salesforce object without the right flag and internal notes can appear to customers in the portal.

What we do: public replies become EmailMessages, private notes become unpublished comments, and we check visibility from a portal user's login before sign-off.

Folder visibility doesn't carry over by itself

Freshdesk folders can be visible to everyone, logged-in users only, agents only, or specific companies. Salesforce controls this through channels and data category visibility.

What we do: map every folder's visibility to a channel and category rule, and confirm no agent-only article is visible on the public channel.

The Freshdesk API rate limit sets the pace

Freshdesk limits API calls per minute across the whole account: 200 on Growth, 400 on Pro and 700 on Enterprise, with lower limits on list endpoints. Every ticket's conversations need their own call. The ticket list also returns only tickets created in the last 30 days unless you ask for older ones with a date filter.

What we do: extract by date range with throttling and retries, so the full history comes across and the run doesn't stall halfway.

A real Freshdesk migration: what the rehearsal caught

One of our Freshdesk migrations involved moving historical support data into Salesforce while retaining the original ticket history and Knowledge content. The project covered around 40,000 tickets and 2,000 Knowledge articles, with more than 20,000 images that had to be moved off Freshdesk. We completed it in two weeks.

The migration required more than moving Cases. We had to transform Freshdesk conversations into the appropriate Salesforce records, preserve private notes separately from customer-facing replies, migrate attachments, and update references inside Knowledge articles.

During testing, we also identified Freshdesk-hosted images that would have broken after the legacy system was retired. Those URLs were identified and replaced as part of the migration process.

Why we rehearse first This is why we recommend completing a full migration rehearsal before the production cutover rather than treating the migration as a single export/import operation.

Planning a Freshdesk to Salesforce migration?

A Freshdesk-to-Salesforce migration should be treated as a data transformation project, not simply a data export and import.

The right approach depends on the Freshdesk configuration, the volume and history of support data, the Salesforce data model, and how much historical content needs to remain usable after migration.

At Tenetizer, we can assess your Freshdesk data, identify the records and relationships that need to be migrated, define the Salesforce mapping, and run a migration rehearsal before production cutover.

If you already have a Salesforce org and want to understand what can be migrated from Freshdesk, we can start with a Freshdesk migration assessment and data-mapping exercise.

How we run a Freshdesk to Salesforce migration, step by step

Migration architecture
Freshdesk to Salesforce migration architecture Data flows from Freshdesk through the Tenetizer migration tool into Salesforce Service Cloud and Knowledge, then moves through sandbox rehearsal, full load with reconciliation, and delta with cutover. Freshdesk Tenetizer migration tool Salesforce Tickets andconversations Contacts andcompanies Solution articlesand translations Attachments,images, videosExtract by daterange, throttled Transform andmap values Download imagesand files Load in passes,then rewrite linksCases andEmailMessages Accounts andContacts Knowledge articleswith categories Files linked toCases and articles 1 Sandbox rehearsalsample with edge cases 2 Full loadand reconciliation 3 Delta and cutoveremail routing switched

Data moves in passes: agents, companies and contacts first, then tickets and articles, then a second pass to rewrite article links and set parent-child Cases. Everything is rehearsed in a sandbox before the production load.

  1. Discovery and mapping. We pull record counts, custom fields, folder structure and video hosts from your Freshdesk account, and agree the mapping with you in writing.
  2. Salesforce setup. Service Cloud, queues, custom fields, Knowledge settings, data categories, languages and Trusted URLs are ready before any data moves.
  3. Sandbox test run. A sample of tickets and articles, including ones with images, videos, attachments, private notes and cross-links, goes into a sandbox for your team to check.
  4. Full migration. Agents, companies and contacts first, then tickets and conversations, then articles, then the second pass for links.
  5. Reconciliation. Record counts compared object by object between Freshdesk and Salesforce, plus spot checks on content.
  6. Delta and cutover. Tickets created or updated since the main run are moved across, email routing switches to Salesforce, and Freshdesk stays read-only for a short period.

We run all of this with our in-house migration tool, built for Freshdesk extraction, transformation and loading into Salesforce. See our Salesforce data migration services for other systems we move.

Freshdesk to Salesforce migration checklist: before the first record loads

  • One Salesforce user with API access for the migration. It can be deactivated afterwards.
  • "Set Audit Fields upon Record Creation" enabled, so tickets and articles keep their original created dates.
  • Automation paused for the migration user, so old tickets don't send emails to customers or trigger assignment rules.
  • Every agent has a Salesforce user, or a default owner is agreed.
  • Knowledge enabled, with languages, data categories, channels and Trusted URLs set up.
  • Salesforce file storage checked against the total attachment and image size.
  • Spam and deleted tickets excluded, and a decision made on how far back history should go.
  • Your Freshdesk plan's API limit known, so the extraction schedule is realistic.
  • Old portal URLs listed, so redirects from Freshdesk article links to the new help center can be set up if you use a custom domain.

Common Freshdesk migration mistakes we see

01
Copying article HTML as-is

Links, images and videos keep pointing at Freshdesk and break once the account closes.

02
Loading replies and notes the same way

Internal notes end up visible to customers, or the email thread loses its order and direction.

03
Leaving automation on during the load

Thousands of old tickets trigger assignment rules and auto-responses to real customers.

04
Recreating the Freshdesk folder tree without a plan

Data categories get built around old folders nobody uses, and search in the new help center suffers.

05
Relying on the ticket CSV export

The history looks complete in a spreadsheet, but conversations and private notes never made it across.

What affects the timeline and cost of a Freshdesk migration

Two migrations with the same ticket count can take very different amounts of work. These are the factors that move the estimate:

  • Ticket and conversation volume. Each ticket's conversations are a separate API call, so long threads add more time than ticket count alone suggests.
  • Attachments and inline images. Every file is downloaded and re-uploaded, and has to fit your Salesforce file storage.
  • Knowledge base size and languages. Each translation is its own article version, and every article needs link and image clean-up.
  • Custom fields and dropdown values. Nested dropdowns and status values each need a mapping you sign off.
  • Your Freshdesk plan. A higher API limit means a faster extraction.
  • Help center scope. Building a new Experience Cloud portal is separate work from moving the data.

As a benchmark, around 10,000 tickets and 1,000 articles take about 3 days to load once mapping is agreed. Our largest Freshdesk project, 40,000 tickets and 2,000 articles, took two weeks end to end.

Integrations and related migrations

If your Freshdesk tickets link to Jira issues, we can bring the Jira issue numbers into a Case field with an extra API call per ticket. Other integrations (chat, telephony, billing) are rebuilt on the Salesforce side as part of the setup work. See our Salesforce integration services.

Moving from another helpdesk or CRM? See our guides to Zendesk to Salesforce migration and HubSpot to Salesforce migration.

Freshdesk to Salesforce migration FAQ

How long does a Freshdesk to Salesforce migration take?

For around 10,000 tickets and 1,000 articles, the migration itself takes about 3 days once the mapping is agreed and Salesforce is set up. Larger volumes, heavy attachments, or a lot of translated content add time, mostly because of Freshdesk's API limits.

How much does a Freshdesk to Salesforce migration cost?

It depends mainly on ticket and conversation volume, attachment size, the number of articles and languages, custom fields, and whether a new help center is in scope. We usually quote a fixed price after a short review of your Freshdesk account and the mapping.

Can we migrate Freshdesk to Salesforce ourselves with Data Loader?

You can load ticket fields with Data Loader from Freshdesk's ticket CSV export, but that export doesn't include conversations, private notes or archived tickets. For full history you need Freshdesk's account export or its API, plus a transformation step before loading into Salesforce.

What is the best way to export data from Freshdesk?

Freshdesk offers a ticket CSV export (fields only), a full account export sent to the account admin, and the REST API. For a migration, the API is the most useful because it returns tickets, conversations, attachments and Solution folders in a structured form, but it is rate limited by plan.

Do we need downtime to move from Freshdesk to Salesforce?

No. Freshdesk stays in use during the main load. Tickets created or updated after that are moved in a delta run at cutover, then email routing switches to Salesforce.

Can we migrate third-party videos embedded in our articles?

Yes. Videos embedded from YouTube, Vimeo, Loom, Wistia and similar hosts come across as embeds in the Salesforce Knowledge article. The video host has to be added to Salesforce's Trusted URLs first, otherwise Salesforce strips the embed. Videos uploaded directly to Freshdesk are downloaded and stored in Salesforce, or moved to your video host if you prefer.

What happens to links between articles?

They're rewritten. We load all articles first, then update every link that points to another Freshdesk article so it points to the new Salesforce article instead. Links to articles you chose not to migrate are flagged for review.

Do linked tickets and parent-child tickets stay connected?

Yes. Parent and child tickets become parent and child Cases, set in a second pass once every Case exists. Every Case also keeps its original Freshdesk ticket number, so references like "see ticket #4812" can still be looked up.

Will inline images still work after we close Freshdesk?

Yes. We download inline images from articles and ticket replies and store them in Salesforce, so nothing depends on Freshdesk once your account is closed.

Is Freshdesk "Solutions" the same as Salesforce Knowledge?

They do the same job. Freshdesk Solutions (categories, folders, articles) maps to Salesforce Knowledge articles organized with Data Categories. The folder structure usually needs some redesign rather than a direct copy.

Will private notes stay private?

Yes. Public replies and private notes are loaded separately, and we check visibility from a customer portal login before sign-off.

Can we keep the original ticket and article dates?

Yes, with the "Set Audit Fields upon Record Creation" permission enabled for the migration user before loading. Without it, every record shows the migration date.

Do we need extra Salesforce licenses for the migration?

Only one Salesforce user with API access, for the duration of the migration. It can be deactivated once we're done.

Do Freshdesk automations and SLAs move across?

No. They're rebuilt in Salesforce as assignment rules, escalation rules, entitlements, milestones and Flows. It's a good moment to drop the ones nobody relies on anymore.

Moving from Freshdesk to Salesforce?

Tell us roughly how many tickets and articles you have, and whether you use embedded videos or translations. We'll send back a mapping outline and a timeline.

Get a migration estimate

Sources