Migration OTRS to Freshdesk PHP Script

  • 26 October 2014
  • 8 replies

Didn't really know where to post this, but since this software uses the API I decided to put it here.

I have been working on Migrating from OTRS to Freshdesk over the weekend and have wrote some command line PHP code that uses the Freshdesk API and a copy of an OTRS database to create tickets and add all ticket interactions as notes on the newly created Freshdesk.

The hardest part was dealing with the 1000 API calls per hour.  I have an OTRS ticket database with ~81,000 items to migrate over.

Feel free to fork, pull, or contribute!


This topic has been closed for comments

8 replies

The limit on our API is defined to ensure fair use of our infrastructure by every customer who uses us. This design ensures that we do not starve majority of our customers of resources due to actions of few. The solution I could suggest would be to work around the limitation of our API by implementing a queue or something similar in your import tool.

And finally: Thanks for sharing this import tool as an OpenSource project. This will be of great help for people looking forward to migrate from OTRS to Freshdesk.

Yeah I worked around it.  The code has a mechanism to handle it.  Just takes a long time is all.  It took me 90 hours to complete my migration (33k tickets plus replies).

For what it's worth, you major competitor allows 200 API calls per minute. I was on the fence choosing between Freshdesk and the other product because of the API limit. 

Glad to help, hope that others will benefit from it and maybe help to make it better.

Hello Brady,

Would you kindly tell me against which version of OTRS your tool works?

Kind regards,

Wim Vanhooff

The version I used to write this eludes me at the moment.  I have since shut down the server so I cannot easily determine the version, the main version was 3.x that I do know.  But!  Since this works on the database schema and it does not use OTRS code it should work for many versions of OTRS including the most recent because they did not make any drastic change to the database schema to my knowledge, except for possibly 4.x.  You can quickly ascertain if it will work though.  The code has the table names in it and the fields it's looking for when processing.  You can also see the table names where we modify the tables to add extra fields.

Note that this does modify the database of OTRS so it's highly recommended that you do this on a copy of the OTRS database, not your production OTRS database.

Hope this helps.  

Alright Brady, thanks a lot for your reply!

I'll go ahead and try it out, and change the script if need be.

Hi Brady,

I tried your migration script, and it works fine, for the most part.

However, separate articles within a single OTRS ticket seem to end up as separate tickets in Freshdesk.

Is that how you intended it to work, or does the script merge the tickets in a later phase?

Kind regards,


All replies to a ticket should be added to the ticket as notes in Freshdesk. Not separate tickets.

The first phase of the script is creating all the tickets. Once that is done it adds any replies to the ticket as notes in the second phase of the script.

Userlevel 2

We are probably a little late with the answer, however, it may be useful for other users interested in migrating from OTRS to Freshdesk.

You can easily import your data using our automated data migration tool. It requires no coding and technical knowledge. To get started, you can set up free demo migration. The whole process is very straightforward and usually takes 10-15 minutes to get the first results.

Our service is also the official Freshworks Partner. Get more information about us here.