Perform a flexible custom search in Zendesk

Katrin Geske
Katrin Geske
  • Updated

Our Zendesk integration allows you to perform any kind of flexible search. This way you can search for details that might not be directly related to the caller but rather for information that the customer enters via the IVR.

Let's look at a use case to make this easier to understand:

The Zendesk side

All your Zendesk users have a customer id. You added this id to a custom User Field with the friendly name Customer ID, the actual API field name is customer_id. It could look something like this:


When you go to your Zendesk search bar, you can search for data inserted into this field by following a specific syntax. For any field, you just enter API name of this field, add a colon followed by the data you want to find. In our case this would be 


You can also search for tags, organizations, etc. If you want to learn more about the search options, you can browse Zendesk:

The babelforce side

babelforce makes use of the exact same search mechanism. So when you want to use the Action "Perform flexible custom search" you can test it first by using the Zendesk search bar.

To further explain what the action does let's have a look at how to fill out the fields. This is important as the way we configure this Automation determines the variables.

So first of all, before you can configure this, you need to know what you want to get back from Zendesk. Why do you want to perform the search? Let's say you search for the customer id as the customer entered it via the IVR. What you then need to know is the customer's name, the email address, and information from another custom field, let's say the field is called city. So how do you make sure that this information is populated in your custom Zendesk variables?

You take each User field name that you expect to have returned. See our example:


Of course, to make the search more flexible, you should use any dynamic variable, e.g. {apps.inputReader.myInput} in the query field.

Below find an example of all User fields that could be available for you (this might depend on your Zendesk setup).

           "id": 16846846,
           "url": "",
           "name": "My Test",
           "email": "",
           "created_at": "2016-12-19T10:44:12Z",
           "updated_at": "2020-05-28T09:48:38Z",
           "time_zone": "Berlin",
           "iana_time_zone": "Europe/Berlin",
           "phone": 1444888555,
           "shared_phone_number": null,
           "photo": null,
           "locale_id": 8,
           "locale": "de",
           "organization_id": 264684648,
           "role": "end-user",
           "verified": true,
           "external_id": null,
           "tags": [
           "alias": "",
           "active": true,
           "shared": false,
           "shared_agent": false,
           "last_login_at": "",
           "two_factor_auth_enabled": false,
           "signature": null,
           "details": "",
           "notes": "",
           "role_type": null,
           "custom_role_id": null,
           "moderator": false,
           "ticket_restriction": "requested",
           "only_private_comments": false,
           "restricted_agent": true,
           "suspended": false,
           "chat_only": false,
           "default_group_id": null,
           "report_csv": false,
           "user_fields": {
               "customer_id": null,
               "sales_in": false,
               "zone": "emea"


Ticket fields you can find here, in case you are searching for a particular ticket:

So how can you use the values returned from Zendesk? It's quite easy.

Every Zendesk variable starts with

  • integration.zendesk_v2

Next comes the name you defined in "Store as", in our example

  • custom_search

It is completed by the field name, in our example e.g.

  • name

And that's how the variables look in the end: will return the user's name will return the user's email will return the value in the custom field "city"

Was this article helpful?




Please sign in to leave a comment.