A full guide to handling agent availability in Zendesk Messaging
This article will show you how to handle agent availability in the Zendesk Messaging Widget.
When customers interact with your customer care team via a traditional channel like email of webforms the concept of availability and online are almost irrelevant. Customers expect a first reply time of hours (or maybe days..) and the conversation is asynchronous where a customer and an agent reply with minutes, days or hours in between interactions.
Traditional web chat is the opposite. Customers who interact with a chat widget expect immediate availability, and they expect a resolution of their issue within that single conversation since the moment they close that chat window all context to that conversation is gone.
Zendesk Messaging is a new take on these interactions that creates a hybrid between these two models that takes elements from Social Messaging and combines it with traditional chat and email support.
Asynchronous and continuous
Zendesk Messaging is a so-called asynchronous and continuous channel.
Asynchronous, in the sense that the tool does not expect both agent and customers to interact and resolve the conversation within one short time span. Just like with email and agent can reply to the customer, and the response will show up in the web widget, WhatsApp conversation or Facebook Messenger inbox.
The customer can reply immediately, or later that night to continue the conversation, just like you would drop a message to a friend, and you might get a response later that day, or the day after.
Conversations are also continuous, in the sense that, if the customer starts the conversation in a web widget and then closes their browser, Zendesk will know this and will send the customer the customer response via email, giving the customer the choice to continue that conversation back in the web widget, or switch to email entirely.
Or similar, a conversation started in the web widget, can be moved to WhatsApp via the contextual dropdown.
But what's important is that it's one conversation that's continuous until the issue is resolved, across channels and only replied too when the customer or agent has time (or attention) to handle the conversation.
Availability
Even with a channel like Messaging that's build around async, it is important to let the customer know when and if someone is available to handle their question. If they have an urgent question about a flight cancellation, the fact that an agent is, or is not, available right now will influence the way they'll handle their inquirey And similar, even though your Chatbot will probably allow the customer to self-serve most questions, the customer should know that, if their issue needs a human agent, there is someone right now who will handle it, or if they can safely send their message and move on to something else until an agent becomes available to handle the ticket.
Within Zendesk Messaging and the Zendesk Bot there's a couple of scenario's we can handle with regard to agent escalations:
- Is the agent escalation within or outside of business hours
- If it's within business hours, are there agents available?
And similar, what happens when an agent goes offline during a conversation for a break or due to a technical issue?
This article will show you how to handle these scenario's in the Zendesk Bot.
Setup
Basics
This article starts from the idea that we will build one escalate to agent answer that you can use across all your answer flows via the new Linking Feature. It's a complex flow with a few moving parts, so it's best to build this once and re-use it. But if you want you can build and copy this flow across all your answers too.
Business Hours
Within the Admin Center you can setup Business Hours for your company under the Business Rules section. If you've set these up, you can then add a Business Hours step to your bot. This step will allow you to show different messages to your customers depending on the time they contact you.
When selecting the 'Business Hours' step you can pick one of your schedules, and the bot will show a split flow handling two scenario's:
- Within business hours we know that agents might be available. We just need to check if there are any.
- Outside of business hours you can let them know you're closed and you'll reopen at 9AM, but that they can leave a message and an agent will come back to them with an answer via email. You can do this by asking for name and email via an 'Ask for Details' step, and a 'Transfer' step.
More info here.
Checking for agent availability
Within business hours we know that agents might be available, but sometimes – because of a lunch break, or agents reaching their limits set in their Capacity Rules – agents might not be online as expected.
By leveraging the Zendesk Chat API we can check for agent availability and let the customer know if any agents are available right know to handle their inquiry.
If the API returns a 200
success status we know at least one agent is available, or in case of a 404
error, we know no one is available for the customer at the moment.
We can then use a combination of 'Send Message' and 'Transfer' steps to let the customer know what's up.
If you're interested in setting up this availability API, please check out this article:
Agent goes offline
We've now setup a nice Bot Flow that can let the customer know if someone is available, and can reply with very specific comments to handle questions outside of business hours, or when no agents are online during business hours.
In the latter two scenarios a ticket will be created in Zendesk, and when an agent replies the customer will get an email with the reply, or, if the reply arrives within 10 minutes, will also get an alert in their active browser tab.
When the customer reads the email they can then choose between replying via email, or continuing the conversation in the web widget.
This leaves us with the final scenario where an agent goes offline during the conversation. Scenario's could be
- A customer starts a ticket just before lunch, the agent replies and put the ticket on pending and the agent goes on break before the customer replies to the final comment
- An agents' internet connection goes offline during a conversation
- ...
Our bot has already passed control to Zendesk so we can't handle this one within a bot Answer Flow. Luckily, buried in the Classic Chat portal there's a section called Chat Triggers that allows you to send automated messages over the web widget. (the feature is also available under Chat Triggers in the Business Rules section of the Admin Center).
To let the customer know an agent has gone offline, create a new trigger with the following conditions and rules:
- Channel: Messaging
- Run trigger: When a chat message is sent
- Check Conditions: All
- Account status equals offline
- Perform the following actions:
- Send message to visitor: "The agent you were talking to seems to have gone offline"
- Request email (continuous conversations)
Give your trigger a name, and make sure to enable Each visitor will receive this message only once to prevent repeat alerts during a single conversation.
If you already ask for an email address in your Bot flow, you can omit the "request email" step in the trigger
Once enabled a customer who replies to a conversation while the agent has gone offline, will get the following experience.
Conclusion
So, there you have it, a few configurations you can add to your Zendesk environment that will inform your customers on agent availability.