The Complete Guide to Migrating from Kustomer to Freshdesk
Learn how to migrate from Kustomer to Freshdesk. Our guide covers API mapping, ticket history transfers, and preserving customer context with zero data loss
Planning a migration?
Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.
Schedule a free call- 1,500+ migrations completed
- Zero downtime guaranteed
- Transparent, fixed pricing
- Project success responsibility
- Post-migration support included
Switching your support operations to a new platform requires careful planning — especially when the source and destination have fundamentally different data models.
While Kustomer and Freshdesk both offer robust tools for managing customer relationships, their underlying data models differ in ways that require a thoughtful approach to migration.
This guide walks you through the process of moving your data from Kustomer to Freshdesk, covering scoping, object mapping, migration sequencing, post-migration configuration, data validation, and the technical gotchas that trip up most teams.
Define Your Migration Scope
Before you begin moving data, you need to categorize every piece of information in your current Kustomer instance.
What to Migrate via the API
The bulk of your core data should be moved using the API to ensure accuracy and maintain complex relationships.
This includes standard objects like customers (known as contacts in Freshdesk), companies, and conversations (which become tickets).
You should also use the API to move your knowledge base, including categories, internal categories, and articles, as well as your historical messages, notes, and attachments.
Custom data stored in KObjects can be migrated into Freshdesk Custom Objects, provided you have defined the schema first.
Freshdesk Custom Objects are only available on certain plan tiers. Verify that your Freshdesk plan supports Custom Objects before planning your KObject migration — otherwise you'll need to flatten that data into custom ticket or contact fields.
What to Configure Manually
Some elements are more about logic than data points and are best rebuilt by hand to ensure they function correctly in the new system.
Business schedules and the specific logic within your Kustomer queues should be configured manually in Freshdesk under business hours and group routing.
Your satisfaction survey structures and the specific triggers for your workflows need manual setup because the automation engines in each platform operate on different logic.
What to Archive
Not everything needs to make the jump to your live Freshdesk instance. Kustomer search data is often limited to objects updated within the last two years (see Kustomer's search API documentation for current limits), so older records are effectively archived within Kustomer already.
You may want to perform a specific archive search to identify very old custom objects or messages that can be stored in a separate data warehouse rather than imported into your new active helpdesk.
Prepare Freshdesk for Data Import
Setting up the destination is just as important as extracting the source data. You must have the structure ready to receive the information.
- Create Custom Fields: Map your Kustomer custom attributes to Freshdesk ticket and contact fields so there is a place for that data to land.
- Define Agent Roles and Groups: Recreate your team structures as groups in Freshdesk and assign appropriate roles to maintain security.
- Establish Custom Object Schemas: If you are moving KObjects, you must create the corresponding custom object schemas in Freshdesk before you can import any records.
- Set Up Knowledge Base Hierarchy: Build out your solution categories and folders so that articles can be associated with them immediately upon import.
- Configure Canned Response Folders: Prepare the folder structure for your shortcuts and snippets, which will be housed as canned responses.
- Verify Plan-Tier Feature Availability: Confirm that your Freshdesk plan supports every feature you plan to use — Custom Objects, multiple mailboxes, satisfaction surveys, and advanced automations may require higher-tier plans.
Migrate Objects
Mapping Table:
| Kustomer Object | Freshdesk Object |
|---|---|
| Users | Agents |
| Teams | Groups |
| Companies | Companies |
| Customers | Contacts |
| Conversations | Tickets |
| Messages | Replies |
| Notes | Notes |
| Attachments | Attachments |
| KB Categories | Solution Categories |
| KB Internal Categories | Folders |
| KB Articles | Solution Articles |
| KObjects | Custom Objects |
| Shortcuts / Snippets | Canned Responses |
| Tags | Tags |
| Satisfaction | Satisfaction Ratings |
| Snoozes | Ticket Status |
| Business Schedules | Business Hours |
| Queues | Groups / Dispatch'r Rules |
| Workflows | Automations |
Understanding the Queues → Groups / Dispatch'r Rules Mapping
Kustomer queues combine routing logic, filtering criteria, and prioritization into a single object. Freshdesk distributes this functionality across multiple features:
- Groups handle the team assignment aspect — which agents can receive the ticket.
- Dispatch'r rules handle the automatic routing logic — which tickets go to which group based on conditions like source, subject, or custom fields.
- Omniroute (if enabled) handles load balancing and round-robin distribution within groups.
When migrating, you'll need to decompose each Kustomer queue into its constituent parts: create the Group, then build the corresponding Dispatch'r rule(s) that replicate the queue's filtering and assignment logic.
Migration Sequence
The actual movement of data must follow a strict logical sequence to ensure that every object can find its parent or associated record. In the Freshdesk model, a ticket cannot exist without a contact, and a contact is often tied to a company.
First, you must migrate your users and teams. Kustomer users will become agents in Freshdesk, and teams will become groups.
This is essential because these agents will own the tickets and knowledge base articles you are about to move. Once the team is in place, move your knowledge base structure.
Categories and internal categories from Kustomer map to solution categories and folders in Freshdesk. This creates the digital library where your articles will eventually live.
Next, you move to the customer level. Kustomer companies and customers are moved into Freshdesk companies and contacts. With the people and organizations established, you can finally bring over conversations as tickets.
Each message within a Kustomer conversation is added as a reply or a note in the Freshdesk ticket timeline. Attachments must be handled during this phase, as they are associated directly with the message or note being created.
Rate Limits on Both Sides
Both platforms enforce API rate limits that will directly affect your migration speed:
- Kustomer: A single user can only update a specific resource (like a conversation or company) 50 times every 10 minutes. See Kustomer's API rate limiting documentation for the full rate limit structure.
- Freshdesk: Freshdesk also enforces API rate limits that vary by plan tier. Check Freshdesk's API documentation for current limits on your specific plan.
Your migration scripts need to respect both sets of limits. Build in backoff logic that watches for 429 responses from either API and adjusts throughput accordingly.
Error Handling and Recovery
Migrations fail mid-batch. Plan for it.
- Design for idempotency: Every migration script should be safe to re-run. Use external ID mappings (Kustomer ID → Freshdesk ID) so that re-running a step skips already-migrated records instead of creating duplicates.
- Log everything: For each record, log the source ID, destination ID, and status (success/failure/skipped). When a batch fails at record 4,382 of 50,000, you need to know exactly where to resume.
- Isolate steps: Keep each migration phase (users, companies, contacts, tickets) independently re-runnable. A failure in ticket migration shouldn't require you to re-migrate contacts.
Data Validation and Reconciliation
After the data import, you need to verify that what landed in Freshdesk matches what left Kustomer.
- Record count comparison: For each object type, compare the total count in Kustomer against the total successfully created in Freshdesk. Any discrepancy needs investigation.
- Spot-check critical records: Pull a sample of tickets (especially ones with attachments, multiple replies, and custom field data) and manually compare them side-by-side between Kustomer and Freshdesk.
- Verify relationship integrity: Confirm that tickets are associated with the correct contacts, contacts are linked to the correct companies, and replies appear in the right order within ticket timelines.
- Validate custom field data: Custom fields are where data most commonly gets dropped or mangled. Verify that field values — especially dropdowns, dates, and multi-select fields — transferred correctly.
- Check attachment accessibility: Open a sample of migrated attachments to confirm they are downloadable and not corrupted.
Post Migration Configuration
Once the data import is finished, you still have some fine tuning to do before your team can start answering tickets.
- Rebuild Automations: Take the logic from your Kustomer workflows and recreate it using Freshdesk's automation rules for ticket creation and updates.
- Verify SLA Policies: Ensure your service level agreements are correctly applied to the different customer tiers you have imported.
- Set Up Satisfaction Surveys: Enable your satisfaction surveys so that new ratings can be collected on your fresh tickets.
- Finalize Routing Rules: Connect your groups to the appropriate email mailboxes and chat channels to ensure tickets reach the right agents.
- Configure Email Channels: Set up mailbox forwarding, update SPF/DKIM records, and complete domain verification in Freshdesk so that email-based tickets route correctly from day one.
Cutover Planning
The cutover itself needs a plan. Key decisions to make before migration day:
- Parallel operation vs. hard cutover: Will you run both platforms simultaneously for a period, or switch all traffic to Freshdesk at once? Parallel operation is safer but requires monitoring two systems.
- In-flight ticket handling: Decide what happens to tickets that are actively being worked in Kustomer during migration. Do you freeze Kustomer, migrate everything, then resume in Freshdesk? Or do you run a final delta sync to catch changes made during the migration window?
- Team communication: Give your agents advance notice of the cutover timeline. They need to know when to stop working in Kustomer and when to start working in Freshdesk.
Insider Secrets
- Watch the Rate Limits Closely: Kustomer has very specific object rate limits. A single user can only update a specific resource like a conversation or company 50 times every 10 minutes (refer to Kustomer's API docs for the full rate limit structure). If you try to push updates too fast during the final sync, the API will throttle you.
- Handle Snoozes via Status: Kustomer handles snoozes as a distinct action, but Freshdesk uses ticket statuses. The best workaround is to create a custom Pending status in Freshdesk to represent snoozed tickets and set a due date for when they should be revisited.
- The Hidden Multi-Part Requirement: When you are migrating attachments, remember that Freshdesk requires these requests to be sent as multi-part form data. If you try to send them as a standard JSON body, the import will fail even if the rest of the ticket data is correct.
- Preserve Historical Timestamps: To keep your reporting accurate, make sure you are using an admin token that has the authority to set the creation and modification timestamps manually. Without this, all your migrated tickets will look like they were created on the day of the migration.
- Dealing with Redactions: If you have sensitive data that was redacted in Kustomer, those messages still exist in the API but carry a redacted flag. Ensure your migration script checks for this flag so you do not accidentally import blank or placeholder data into your new tickets.
Summary
Migrating from Kustomer to Freshdesk is a structured process that rewards careful planning. By following the dependency-driven migration sequence, validating your data post-import, and accounting for the technical nuances on both platforms, you can avoid the most common failure modes.
The manual configuration of workflows, business hours, and email channels is what will truly make the new system operational for your agents. Pay attention to rate limits on both sides, plan your error handling before you start, and build in time for data validation.



