Monitoring agent presence and call acceptance behavior

Christina Dechent
Christina Dechent
  • Updated

For inter-day management, team leads and QA-managers in contact centers often want to know how many calls were not actively accepted by agents. Sometimes, there might also be technical issues at hand. Therefore, good monitoring can be a quick and easy way to help agents getting their workstation fixed.

Moreover, for larger teams that are spread out over different sites or where agents are working remotely, team leads need to have an overview of the agent's presence (are agents actually available to take calls or are they on a break?). 

It's not always easy to keep track of all these different data points, you need to switch between systems and monitors. But we got a solution for. You can have all the data at one glance if you push this information to Geckoboard.

mceclip0.png

What the dashboard shows:

All data on the dashboard shows a daily score. So it will start at 0 the next day.

And that's what each tile shows:

  • Rejected calls - Here you see how many times agents actively declined a call
  • Busy on incoming calls - This tile shows how many times agents were busy to the babelforce platform when it tried to forward a call to them
  • Agent unreachable  - This tile shows how many times agents were busy to the babelforce platform when it tried to forward a call to them
  • Number of not accepted calls - In this tile we show how many times agents didn't accept calls that were forwarded from babelforce to them
  • Agent presence overview - This list gives an overview of the current available statuses (usually referred to as Presence status) of your agents and at which time they switched to this status

If you are not sure what the difference is between "Presence" and "Line-status" or if you want to learn more about "unreachable", "declined" and "busy" we recommend you to read these two articles:

The datasets

We created two datasets for this dashboard.

The first we called agent.status.change and it can be used to send data about presence and line-status. We define four fields:

  • agentname
  • status
  • date
  • time
{
"fields": {
"agentname": {
"type": "string",
"name": "Agent Name",
"optional": false
},
"status": {
"type": "string",
"name": "Agent status",
"optional": false
},
"date": {
"type": "date",
"name": "Date",
"optional": false
},
"time": {
"type": "string",
"name": "Time",
"optional": false
}
}
}

The second dataset, not.accepted.calls, we will use to analyze how many calls were not taken by agents even though the platform tried to reach them.

Here we have three fields:

  • agentname
  • date
  • time
{
"fields": {
"agentname": {
"type": "string",
"name": "Agent Name",
"optional": false
},
"date": {
"type": "date",
"name": "Date",
"optional": false
},
"time": {
"type": "string",
"name": "Time",
"optional": false
}
}
}

Sending data from babelforce to Geckoboard

In babelforce, you will need three Triggers and three Automations.

Triggers

First, you need the "Always" Trigger which is standard to every babelforce template.

Second, you need a Trigger that fires if either of the three agent states apply:

  • busy
  • declined
  • unreachable

Make sure to select the logic type "Match any Trigger"

mceclip0.png

Third, create a Trigger for all incoming calls that are forwarded to an agent. It looks somewhat complex but don't worry. This Trigger will only fire if no agent picked up the phone.

mceclip1.png

Next, let's move on to the Automations we need.

Automations

This Automation always sends the defined data points to Geckoboard as soon as an agent changes their presence.

mceclip2.png

 

This Automation runs and sends the customized data to Geckoboard as soon as the agent line state changes to either busy, declined or unreachable. 

As you can see, we are sending data to the same dataset. Even though the content is different, we can reuse it for multiple purposes.

mceclip3.png

  

The last event sends customized data to the second Geckoboard dataset whenever a call is finished with the trigger "Inbound call not accepted".

 mceclip4.png

 

 

Creating the reports on Geckoboard

Rejected calls Busy, on incoming calls, Agent unreachable  

All three tiles use the the same settings and use the dataset "agent.status.change". The only difference is the filter - make sure to select the correct Agent status filter for each of the tiles. If you want, you can easily switch on a goal as well.

mceclip1.pngNumber of not accepted calls 

This tile uses the not.accepted.calls dashboard and has the same settings as the dashboard above. However, you do not need any filter.mceclip2.pngAgent presence overview 

The last tile uses the agent.status.change dataset again. You create three columns to see the agent's name, status and the time it was changed.

Important is the agent status filter. There is one important thing to keep in mind: if you use the same dataset as for the agent states, you need to avoid using the standard "Busy" presence activated. Best you give the unavailable presences more precise names, as for instance "busy-lunch", "busy-meeting", "busy-training", "finished-shift". Otherwise, agents who have the line-state busy will also appear in this list.

mceclip3.png

Was this article helpful?

/

Comments

0 comments

Please sign in to leave a comment.