Creating inbound service level reports with Zendesk and Gooddata

This guide will take you through the necessary steps to create basic inbound service level reports with babelforce, Zendesk, and Zendesk's embedded BI tool Gooddata. Here we will take the 'service level' to mean calls bridged to an agent as a percentage of all inbound calls in a certain period of time.


We will get the raw data from Zendesk tickets created and updated by Automations on the babelforce platform. Tickets created for each inbound call will be assigned the tag "call_inbound". Then, if the call is bridged to an agent, the tag "call_taken" is added. 

Calls which are taken by an agent will be a subset of all inbound calls, and this percentage is what we want to display in our report. Once the ticket creation and tagging updates have been configured on babelforce, we only need to test that they are working properly in Zendesk before moving on to Gooddata to arrange the data into a report.

1.  The babelforce side

The setup here will be very simple. If you use a Zendesk integration with babelforce, it is likely that you will be creating tickets for inbound calls already. If this is the case and in fact you already have tags configured for the following two Automations, use these tags and skip to part 2.

In our example case we have configured a standard Automation (Integrated processes > Global automations) to create a Zendesk ticket for every inbound call received and add the tag "call_inbound". This is what the Automation looks like:


Note that we have used an 'Always' Trigger to ensure that a ticket is created every time an inbound call is received. Your own use case might vary, in which case the trigger should contain different conditions.

Now we should configure an Automation to update the ticket and assign it the tag "call_taken" if the call is bridged with an agent. As before, you already have an update ticket Event. But we must make sure here that this Event is specific to our example case, i.e. when an inbound call is bridged with an agent. This means that the 'Event' drop-down menu inside the Event settings must be 'Call bridged' and that the trigger must test to check whether the call type is inbound:


The Trigger 'Call is inbound' should look like this:


Again, before you proceed, make sure to check that these Automations do not conflict with others of the same type. For example, if you already have another Automation assigning a different tag when inbound call tickets are updated, you will need to check that the correct one is displayed in Zendesk. 

2. Zendesk and Gooddata

Returning to our example case, we have chosen "call_inbound" and "call_taken" as our relevant tags. This means that for an inbound call which was taken by an agent, the resulting ticket in Zendesk displays our tags in the 'Tags' section in the left hand ticket information pane:


And of course if it had not been taken by an agent, only the "call_inbound" tag would appear. This gives us our raw data. Now it is time to see what we can do with it in Gooddata.

Find Gooddata in Zendesk by clicking on the 'Reporting' icon in the bottom left corner of the window (just above the 'Settings' cogwheel). Then in the top menu of tabs select 'Insights' (furthest right), and finally look for the link to 'Gooddata' to the right of the window:


This should open Gooddata in a new tab. Click on the 'Reports' tab in the top menu, then the green 'Create report' button to the right of the window. 

At this point we need to select the 'What', i.e. the data which we would like to take as the main content of the report. As the metric for this report is a percentage based on custom tag values, we need to create a custom metric. Select the black 'What' tab and then find the link marked '(advanced)' next to the 'Add New Metric' link:


In the resulting pane select the blue 'Custom metric' option. Give your metric a suitable name and store it in a relevant folder. In the box below we have to create the formula which will produce the service level as a percentage. If you were asked to make a mathematical formula to get there, you might come up with something like this:

100 * (tickets tagged "call_taken") / (tickets tagged "call_inbound")

This is very similar to what Gooddata will use to produce the metric. However, instead of typing in the entire formula, we can make use of menus and options to speed this up. The following screenshots show the first part of the formula (simply typed in) and then the way to select our first metric type, '# Tickets':



Now we need to specify the tickets by their tag. Note that the formula text in black is typed straight into the box.




Then we enter the value for the tag:





This process can then be repeated for the "call_inbound" tag to complete the formula:


Click 'Add' to add it to your list of metrics, and when it returns to the 'What' pane it should already be selected for you as your main metric. Click 'Done' and something like the following should appear:


This is the report as we have configured it so far: it has calculated the service level percentage for all calls which have ever been tagged with these tags in your Zendesk account. If this is the first time you ever configured your Events to add these tags in babelforce, then there will not be very much data to display here. 

With our example there happens to be years' worth of data. So it would be good if we could break it down over specific periods of time. The one we will go for here is a monthly report. To do this, we click on the black 'How' tab and in the Attributes column search for 'Month/Year (Ticket Updated)'. But we don't want to show data from every year – only 2016. So after having selected this Attribute, we click 'Filter this Attribute' in the 'Detail' column and select the months of 2016 we would like to display:



Clicking 'Done' will produce a table of figures for the time period you have selected. Finally, select the bar chart option from the list of graph options to bring up a graphical representation of your report:




Have more questions? Submit a request