Skip to content

The Complete Guide to Migrating from Freshdesk to Trengo

Migrate from Freshdesk to Trengo with confidence. Learn how to map Solution Articles, transfer Contacts, and import historical ticket threads using our API guide.

Tejas Mondeeri Tejas Mondeeri · · 11 min read
The Complete Guide to Migrating from Freshdesk to Trengo
TALK TO AN ENGINEER

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

Moving your customer service ecosystem from one platform to another is a critical business decision.

If you are planning to transition your support operations from Freshdesk to Trengo, a successful migration relies heavily on understanding the distinct data models and executing a precise, phased approach.

This guide will walk you through the process, covering every essential object from agents and customers to historical tickets and knowledge base articles.

Define Your Migration Scope

To ensure a smooth transition, we must clearly delineate which data sets can be migrated directly via API, which configurations require manual effort, and what information might need to be left behind.

Objects Migrated via API

The majority of your critical operational and historical data can be moved using available API endpoints, often with a direct 1:1 mapping:

  • User Management: Freshdesk Agents directly translate to Trengo Users. Freshdesk Groups map cleanly to Trengo Teams.
  • Customer Records: Your Freshdesk Contacts (Customers) convert to Trengo Contacts / Profiles. Your associated Freshdesk Companies transition smoothly into Trengo Contact Groups.
  • Customization and Tagging: Custom Fields (Definitions) used in Freshdesk map directly to Trengo Custom Fields. Similarly, Freshdesk Tags correspond to Trengo Labels.
  • Knowledge and Efficiency: Canned Responses convert directly to Quick Replies. The hierarchical knowledge base structure of Freshdesk Solution Categories and Solution Folders maps to Trengo Help Center Categories and Help Center Sections, respectively. The content of your Solution Articles also moves over easily.
  • Core Data: Tickets (Metadata) are migrated using the Trengo Create a ticket endpoint.

Workarounds for Historical Data:

  • Ticket Conversations/Replies (Freshdesk) → Ticket Messages / Imports (Trengo): While Freshdesk treats replies as conversations attached directly to the ticket, Trengo provides dedicated endpoints for importing historical data: Import text message and Import email message. This requires extracting conversation threads from Freshdesk and structuring them into the proper historical import payloads for Trengo.
  • Ticket Notes (Freshdesk) → Contact/Profile Notes (Trengo): Freshdesk allows creating private and public notes on tickets. In Trengo, notes are tied to the customer record, allowing you to add Notes to Contacts or Profiles. You must extract the notes and map them to the corresponding customer record in Trengo.

Data Loss Inventory

Not everything moves cleanly. The table below documents what cannot be fully migrated via API, so you can plan accordingly before you start.

Object Migration Method Data Loss Risk
Agents / Users API Low — direct mapping
Groups → Teams API Low — direct mapping
Contacts / Profiles API Low — duplicates may be silently skipped
Companies → Contact Groups API Low
Custom Fields API Low — must be created before dependent objects
Tags → Labels API Low
Canned Responses → Quick Replies API Low
Knowledge Base Articles API Medium — complex embedded components may require manual cleanup
Tickets (Metadata) API Low
Ticket Conversations / Replies API (import endpoints) Medium — authorship and timestamps require careful payload construction
Ticket Notes Manual remapping to Contact Notes Medium — note context (ticket-level) is lost; only content transfers
Roles / Permissions Manual rebuild High — no API equivalent in Trengo
Time Entries Manual / partial workaround High — no direct API equivalent; phone call logs are an approximation only
Ticket Forms Manual rebuild High — form structure not supported via API
Automations / Rules Manual rebuild High — must be recreated natively in Trengo
SLA Policies Manual rebuild High — must be reconfigured manually
Business Hours Manual rebuild High — must be reconfigured manually

Manual Configuration Required

Certain architectural elements in Freshdesk do not have a corresponding API endpoint in Trengo and must be manually rebuilt within the new platform:

  • Roles: Freshdesk Roles, which define agent permissions, must be manually configured in Trengo as there is no specific API for migrating these permissions.
  • Time Entries: Freshdesk Time Entries record the time agents spend on tickets. Trengo offers logging functions for phone calls, but there is no direct equivalent API for migrating detailed time tracking history, requiring manual handling of this data.
  • Ticket Forms: Custom Ticket Forms used in Freshdesk must be manually configured in Trengo as the API does not support creating the structure of these forms.

Prepare Trengo for Data Import

Before commencing data transfer, you must establish the underlying structure in Trengo to ensure related data maps correctly. This foundational work must be executed in a specific sequence due to dependencies.

  1. Custom Fields: First, define all necessary Custom Fields to capture unique data points associated with contacts, profiles, and tickets that were utilized in Freshdesk.
  2. Users (Agents): Next, Create Users who will serve as your support agents in Trengo. These user IDs are crucial for subsequent object associations.
  3. Teams (Groups): With users in place, proceed to Create Teams (equivalent to Freshdesk Groups) and assign the newly created users to their respective teams.
  4. Labels (Tags): Create Labels (equivalent to Freshdesk Tags) to ensure that ticket classification systems are ready.
  5. Efficiency Tools (Quick Replies): Populate your new system with Quick Replies (Canned Responses).
  6. Help Center Structure (Knowledge Base): Build out the hierarchical structure of your knowledge base:
  • Create a help center container.
  • Create Categories (Solution Categories).
  • Create Sections (Solution Folders) nested within those categories.

Migrate Objects

The migration of the actual data must follow a sequence dictated by object dependencies. If a ticket relies on a contact, the contact must exist first.

Transferring Customer Data (Companies and Contacts)

The logical starting point for migrating customer data is setting up the corporate structures. Freshdesk Companies typically translate to Contact Groups in Trengo. Utilize the Create a contact group operation to establish these organizational units.

Next, migrate individual Contacts from Freshdesk into Trengo's Contacts. If a contact already exists with the given identifier, the Trengo system may simply return the existing details instead of creating a duplicate.

After the contact records are established, associate any existing Contact Custom Field Values from Freshdesk by setting the custom data fields on the contact level.

Field-Level Mapping: Tickets

Object-level mapping tells you which entities correspond between platforms. Field-level mapping tells you exactly how individual attributes translate — including value conversions that will break your import if you get them wrong.

Freshdesk Field Freshdesk Type Trengo Field Trengo Type Notes
ticket.subject String ticket.subject String Direct copy
ticket.description HTML string First message body HTML string Use Import email message endpoint
ticket.status Integer (2=Open, 3=Pending, 4=Resolved, 5=Closed) ticket.status String (open, pending, closed) Map integer → string; Freshdesk resolved and closed both map to Trengo closed
ticket.priority Integer (1=Low, 2=Medium, 3=High, 4=Urgent) Not a native field Store in a Trengo custom field if priority tracking is required
ticket.tags Array of strings ticket.labels Array of label IDs Labels must be pre-created; map tag name → label ID
ticket.requester_id Integer (Freshdesk contact ID) ticket.contact_id Integer (Trengo contact ID) Requires a local ID mapping table built during contact migration
ticket.responder_id Integer (Freshdesk agent ID) ticket.assigned_to Integer (Trengo user ID) Requires a local ID mapping table built during agent migration
ticket.created_at ISO 8601 datetime ticket.created_at ISO 8601 datetime Pass through exactly; Trengo enforces strict format validation
ticket.due_by ISO 8601 datetime Not a native field Store in a custom field or recalculate from SLA policy
Custom field values Varies Custom field values Varies Field must exist in Trengo before import; dropdown options must match exactly
Warning

Freshdesk resolved vs closed: Freshdesk treats these as two distinct statuses (integer 4 and 5). Trengo collapses them into a single closed state. If your reporting or SLA calculations depend on distinguishing resolved from closed tickets, you will need to store the original Freshdesk status value in a Trengo custom field before import.

Migrating Knowledge Base Content (Articles)

Once the structure (Categories and Sections) is ready, the content itself can be imported.

Migrate your Freshdesk Solution Articles into Trengo Help Center Articles. If your articles use complex embedded components, note that some elements may need to be organized into Blocks during creation.

Importing Tickets and Conversations

This is the most intricate phase, as it involves transactional history and unstructured message bodies.

  • Tickets (Metadata): Begin by creating the core Tickets in Trengo. This establishes the basic container, including metadata and headers, based on the Freshdesk records.

During this process, be sure to set the Ticket Status for resolved or closed cases.

After creation, associate Ticket Labels (from Freshdesk Tags), and apply Ticket Custom Field Values (custom data).

  • Conversations and Attachments: Historical message content, whether public replies or private Conversations/Notes from Freshdesk, requires specialized handling in Trengo to ensure accurate time stamping and authorship.

Rather than using standard message posting APIs, use the dedicated message import tools, specifically Import text message or Import email message.

If your communications included Attachments, these files must first be uploaded and then referenced and linked during the message import/creation steps.

Post Migration Configuration

After all data has been moved, the focus shifts to restoring the operational automation layers.

Business Logic and Rules

Any complex behavioral logic that existed in Freshdesk, such as Automations (e.g., rules based on ticket creation or updates), must be manually rebuilt natively within Trengo's system. Similarly, reconfigure your Service Level Agreements (SLAs), making sure your Freshdesk SLA Policies are accurately translated into the required response and resolution targets within Trengo.

Time Configuration

Re-establish all Business Hours and business calendars manually within Trengo, ensuring they align with the rules established in the replicated SLA policies. If you chose the manual workaround for historical Time Entries, approximate logs can be manually recorded using the Log a phone call action for high-level approximations, but this is best managed through internal logging practices outside of bulk data API imports.

Post-Migration Validation

Do not assume the migration succeeded because the import scripts completed without errors. Silent API failures — where a call returns HTTP 200 but writes incomplete data — are common when payloads contain unexpected field types or missing required associations.

Run the following checks before decommissioning Freshdesk:

  1. Record count reconciliation: Pull total counts for each object from Freshdesk (agents, contacts, companies, tickets, articles) and compare against Trengo. A mismatch of more than a fraction of a percent warrants investigation before go-live.
  2. Spot-check ticket integrity: Select a random sample of tickets across status types (open, pending, closed). For each, verify: subject, status value, assigned agent, contact association, label set, and message thread completeness.
  3. Validate status mapping: Confirm that Freshdesk resolved (status 4) and closed (status 5) tickets both appear as closed in Trengo, or as your chosen custom field value if you preserved the distinction.
  4. Check timestamp accuracy: On imported messages, verify that created_at values in Trengo match the original Freshdesk conversation timestamps. Timezone offsets are a common source of silent corruption.
  5. Attachment reachability: Open a sample of tickets that contained attachments in Freshdesk and confirm the files are accessible in Trengo. Attachment upload failures do not always surface as API errors.
  6. Contact note remapping: For a sample of contacts with ticket notes in Freshdesk, confirm the note content appears at the contact/profile level in Trengo.
  7. Knowledge base rendering: Open a sample of migrated articles in Trengo's Help Center and verify that embedded components rendered correctly and no content blocks are missing.

Rollback Strategy

Define your rollback threshold before migration begins, not after something goes wrong.

The safest approach is to run Freshdesk in read-only mode during the migration window rather than decommissioning it immediately. This gives you a live fallback if critical data is found to be missing or corrupted in Trengo post-validation.

If a partial migration failure occurs:

  • Identify the last successfully migrated object ID for the affected type (ticket, contact, etc.).
  • Re-run the import script from that checkpoint rather than from the beginning, to avoid creating duplicate records.
  • For objects where Trengo returns existing details rather than an error on duplicate creation (contacts, in particular), a partial re-run is lower risk — but verify with record counts before and after.
  • If the ticket import is corrupted, delete the affected Trengo tickets and re-import from Freshdesk source data. Do not attempt to patch individual fields via API without a full audit of what was written.

Keep your Freshdesk export files (raw API responses or CSVs) intact until you have completed post-migration validation and operated Trengo in production for a minimum stabilization period.

Tips

Navigating a platform migration reveals nuanced challenges that standard documentation overlooks. Here are a few things worth knowing before you start:

  1. Date and Time Format is Everything: Pay extremely close attention to date formatting when pushing historical data. Trengo APIs often require specific ISO 8601 encoded formats. Even small discrepancies here can cause API calls to fail silently or result in inaccurate reporting metrics for your historical data.
  2. Rate Limiting is Absolute: Freshdesk enforces strict rate limits on data extraction, often calculated per minute, which can vary greatly depending on your plan tier and the specific endpoint used. To avoid costly delays, implement client-side throttling or queuing to ensure you respect these limits while exporting data, particularly when dealing with high-volume entities like tickets and conversations.
  3. Authentication and Permissions: Ensure the API credentials used for bulk operations possess the absolute highest level of permission necessary. Creating fundamental objects like agents, teams, and custom fields almost always requires administrative privileges in Freshdesk during export and elevated permissions within Trengo during import.
  4. Build a local ID mapping table: Freshdesk and Trengo use independent integer IDs for every object. As you migrate agents, contacts, and teams, maintain a local lookup table that maps each Freshdesk ID to its newly created Trengo ID. Without this, you cannot correctly set assigned_to, contact_id, or team associations on tickets — and the failure will often be silent rather than an API error.

Summary

Migrating from Freshdesk to Trengo requires a staged approach, prioritizing the foundational structure before migrating dependent data.

By systematically transferring core configuration elements (Users, Teams, Custom Fields, Labels, Help Center structure), followed by core customer data (Contacts and Contact Groups), and finally importing the complex transactional records (Tickets and historical Messages/Attachments), you can ensure comprehensive data continuity.

The key to a smooth migration lies not just in executing API calls, but in meticulous preparation, diligent management of dependencies, field-level value mapping, and post-migration validation before you decommission your Freshdesk instance.

If you'd rather focus on your revenue instead of wrestling with mapping sheets and pagination loops, ClonePartner can handle the full migration for you. Every project gets a dedicated engineer who understands the nuances of both APIs and ensures zero downtime.

Further reading

More from our Blog