If you are moving from Freshdesk to Chatwoot, you can use Chatwoot's built-in importer to bring your contacts and past tickets into your Chatwoot account. The import runs in the background, so you can continue setting up Chatwoot while it completes.
Availability: The built-in Freshdesk importer is available on Chatwoot paid plans. You must be an account administrator to start and manage an import.
What the Freshdesk import brings over
You can choose to import:
-
Contacts
-
Conversations, which imports Freshdesk tickets, their replies and private notes, and the contacts associated with those tickets
Chatwoot preserves the available source timestamps and source details so the imported records remain useful as historical context.
Imported tickets are added as resolved historical conversations in source-specific Freshdesk import inboxes. These inboxes preserve history; they do not replace the live channels you will configure in Chatwoot.
Before you begin
Make sure that:
-
You have a Chatwoot account on a paid plan. If you are new to Chatwoot, create your account first.
-
You are an administrator in the Chatwoot account.
-
You know your original Freshdesk domain, such as
acme.freshdesk.com. Use the Freshdesk domain, not a custom support-portal domain. -
You have an API key from a verified Freshdesk agent with access to the contacts and tickets you want to migrate. We recommend using an administrator's API key so the import can read the complete available history.
-
You have planned your channel cutover. The import is a one-time migration, not a continuous sync.
Only one Intercom or Freshdesk integration import can run in a Chatwoot account at a time.
Freshdesk ticket limit: Freshdesk's List All Tickets API returns a maximum of 300 pages, or 30,000 tickets. If your account has 30,000 or more tickets, Chatwoot stops the import when the API can no longer confirm that the history is complete. The remaining history requires a Freshdesk Account Export, which the built-in importer does not currently support.
Step 1: Get your Freshdesk domain and API key
Your Freshdesk domain is the hostname you use to open Freshdesk. For example, if you sign in at https://acme.freshdesk.com, enter acme.freshdesk.com in Chatwoot.
To find your API key:
-
Sign in to Freshdesk as the verified agent whose API access you will use.
-
Click your profile picture in the upper-right corner.
-
Select Profile Settings.
-
In the right pane, click View API key.
-
Complete Freshdesk's CAPTCHA verification and copy the API key.
For more information, see Freshdesk's guide to finding your API key.
Treat the API key like a password. Freshdesk lets you reset the key after the migration, but resetting it also disconnects every other app that uses the same key. Check for other integrations before you reset it.

Step 2: Open Data settings in Chatwoot
-
Sign in to Chatwoot.
-
Go to Settings → Data.
-
Open the Import tab.
-
Click Import.

Step 3: Configure and start the import
In the New import dialog:
-
Select Freshdesk as the source.
-
Enter an import name. This helps you identify the migration later.
-
Enter your Freshdesk domain, for example
acme.freshdesk.com. -
Paste your key into Freshdesk API key.
-
Under Data to import, select one or both of the following:
-
Contacts imports contacts from Freshdesk.
-
Conversations imports tickets, their replies and notes, and the contacts required for those tickets.
-
-
Move out of the API-key field and wait for Chatwoot to validate the credentials.
-
When you see Access key validated, click Import.
If validation fails, check the domain, confirm that you copied the complete API key, and verify that the Freshdesk agent's role can read the selected data.

Step 4: Monitor and verify the import
Chatwoot opens the import details page after the import starts. The page updates automatically while the import runs and shows separate progress for contacts, conversations, and messages.
Freshdesk applies API rate limits based on your Freshdesk plan. Chatwoot waits and retries when Freshdesk asks it to slow down, so large imports can take time.
Depending on the outcome, the import can finish as Completed or Completed with errors. Review the following before you cut over:
-
The imported counts for contacts, conversations, and messages
-
A sample of imported contacts and tickets
-
The Errors section for records Chatwoot could not import
-
The Skip logs section for records that were intentionally skipped
You can download error and skip logs as CSV files. If an import becomes stalled, use Retry when the option appears. You can also abandon an active import if you need to stop it.

Step 5: Move your live channels to Chatwoot
The data import brings over historical records. It does not recreate your Freshdesk widget or connect it as a live Chatwoot channel.
To move your website chat:
-
Add the Chatwoot widget code to your website.
-
Remove the Freshdesk widget code as close as possible to the Chatwoot launch to avoid a gap in coverage.
-
Start a test conversation from your website and confirm that it reaches the correct Chatwoot inbox and team.
If you use other Freshdesk channels, set up the corresponding Chatwoot channels and test each one before completing the cutover.
Important behaviour and limitations
-
The import is a one-time historical migration. New changes in Freshdesk are not continuously synced to Chatwoot.
-
Historical imports do not send messages or notifications to your customers.
-
Imported conversations are resolved and stored in source-specific import inboxes. Configure new Chatwoot inboxes for ongoing customer communication.
-
File attachments are not transferred. When a Freshdesk message has attachments, Chatwoot adds a note to the message indicating how many attachments were skipped.
-
Freshdesk agents, groups, assignments, routing rules, automations, apps, SLAs, and widget settings are not recreated in Chatwoot.
-
Deleted and spam tickets are not returned by Freshdesk's List All Tickets API and are not included in the import.
-
Freshdesk limits that API to 300 pages, or 30,000 tickets. The importer cannot currently ingest the separate Freshdesk Account Export required for any remaining history.
-
Some source-specific fields are retained as metadata but may not appear as equivalent Chatwoot fields.
-
Keep access to Freshdesk until you have reviewed the imported counts, sample records, and any error or skip logs.
Make Chatwoot your own
Once the import and channel cutover are complete, these resources will help your team get started:
For anything else, reach out to us through the support chat. Happy chatting!