Advanced integrations with Freshdesk

With babelforce, it is fairly simple to set up "create ticket" and "lookup enduser" actions, as well as adding notes to an existing ticket in Freshdesk. If you want to refresh your memory on how these events are set up, click here to read one of our helcenter articles on the topic. However, some of the settings might seem to be a bit more tricky, for instance, when it comes to fields like:

mceclip0.png

  •  email_config_id
  • group_id
  • product_id
  • custom_fields

So how do you get these IDs, resp. how do you know how to setup a custom field? Unfortunately, you won't find the necessary information in the Freshdesk online interface.

 

Moreover, when you create a new ticket, you will be asked to fill out three fields:

  • status
  • priority
  • source

For each of these fields you can only select numbers from a drop-down field. But what do these numbers mean?

There is an easy way to find out, however, you do need to be familiar with rest API requests. If you plan on using any of these custom fields and you do not have experience with or the confidence of using software like Postman, we suggest you sign up for a success project with the babelforce team.

However, if you feel confident with using API requests, this will be a piece of cake. First, setup API authentication for your Freshdesk. This article gives you the step-by-step introduction for the Freshdesk integration in babelforce. The table below shows you the URL and explains what each field does.

Field name What it does URL
email_config_id This endpoint returns all email addresses linked to your Freshdesk account. There you also find the email id.

https://{{your_account_domain}}.freshdesk.com/
api/v2/email_configs

 group_id This endpoint returns all the groups setup in your Freshdesk account. There you also find the group id. https://{{your_account_domain}}.freshdesk.com/
api/v2/groups
product_id In case you use multiple products in your Freshdesk, this endpoint will return, among other details,  the product id. https://{{your_account_domain}}.freshdesk.com/
api/v2/product_id
ticket_fields This endpoints returns all ticket fields. You will need the "name". If the field has predefined values you find them there. You will also find the fields "Status", "Priority" and "Source" there.

https://{{your_account_domain}}.freshdesk.com/

api/v2/ticket_fields

Now, request the group endpoint. You would get a result that might look something like this:

{
"id": 22000162687,
"name": "Technical Support",
"description": "",
"escalate_to": null,
"unassigned_for": "30m",
"business_hour_id": null,
"group_type": "support_agent_group",
"created_at": "2018-10-19T07:32:06Z",
"updated_at": "2018-10-19T07:32:06Z",
"auto_ticket_assign": false
}

The first result is the group ID. If you want to add all incoming call tickets to the technical support, you would just need to fill in this ID into the babelforce field, like this:

mceclip1.png

Now let's look at the results we get when returning all available ticket fields:

{
"id": 22000535875,
"name": "ticket_type",
"label": "Type",
"description": "Ticket type",
"position": 4,
"required_for_closure": false,
"required_for_agents": false,
"type": "default_ticket_type",
"default": true,
"customers_can_edit": false,
"label_for_customers": "Type",
"required_for_customers": false,
"displayed_to_customers": false,
"created_at": "2017-01-17T08:47:16Z",
"updated_at": "2018-08-13T07:22:12Z",
"choices": [
"Question",
"Incident",
"Problem",
"Feature Request",
}

As you can see, the first thing you get is the group ID. So if you wanted to add all incoming tickets to the Ticket Type "Questions" by default, you would take the group ID and add it to the field.

We also learn what the ticket fields

  • status
  • priority
  • source

mean when looking at the results we get from the API call:

 "id": 22000535876,
"name": "source",
"label": "Source",
"description": "Ticket source",
"position": 5,
"required_for_closure": false,
"required_for_agents": false,
"type": "default_source",
"default": true,
"customers_can_edit": false,
"label_for_customers": "Source",
"required_for_customers": false,
"displayed_to_customers": false,
"created_at": "2017-01-17T08:47:16Z",
"updated_at": "2018-06-21T13:07:01Z",
"choices": {
"Email": 1,
"Portal": 2,
"Phone": 3,
"Forum": 4,
"Twitter": 5,
"Facebook": 6,
"Chat": 7,
"MobiHelp": 8,
"Feedback Widget": 9,
"Outbound Email": 10

As you can see, now you know what each of the numbers means. I guess for our purpose, the Source "Phone" makes most sense anyway :).

That's it! We got you all introduced to the world of the Freshdesk API and babelforce. Enjoy!

Have more questions? Submit a request