Overview
If you've perused our articles about SLAs and Escalations, notification, or assignment automation, you'll know that Kayako's automation features offer a lot of flexibility. With so many options, it's useful to approach automation with a clear strategy.
With some careful planning, you can build complex, end-to-end workflows using multiple interdependent automations. Building workflows can help improve your team's productivity, standardize your support processes, and deliver an effortless support experience to your customers.
In this article, we'll cover some tips for developing an automation strategy that suits your team's needs, and then dive into an example of how to set up a set of end-to-end workflow automation.
Information
Planning out your workflows
A good starting point, when planning out your automation strategy, is to take a look at the big picture. Step back from your queue and think about the way your team functions. What are the different types of conversations you handle? What are your processes? What are your customers' needs, and where could your team be serving them better?
Let's look at an example. If you've spent much time in our Help Center, you may have heard of Brewfictus, our favorite, fictional coffee equipment supplier. The Brewfictus support organization is broken into two main teams. The customer service team is their first line for incoming support requests, and the maintenance team specializes in more technical repair requests. We're going to look at how Brewfictus used workflow automation to streamline their maintenance team's process.
When planning their maintenance workflow automation, Brewfictus had a few things they wanted to address:
-
Since their customer service team was spending a lot of time identifying and rerouting maintenance conversations, they wanted to try to automate the assignment for as many maintenance conversations as possible.
-
During busy times, the maintenance team had had some trouble prioritizing their conversations, and some customer requests were falling through the cracks. They needed a way to improve their response times and make sure they were replying to the customers who'd been waiting for the longest.
-
They also wanted to reduce the number manual updates their maintenance agents had to make when replying to conversations.
-
Finally, for conversations that required on-site repair visits, the maintenance team wanted a way to loop their scheduling team in on the conversations, rather than handling it over Slack or email.
The more of these steps they could automate, the smoother their support experience would be for both their team and their customers.
So with these goals in mind, the Brewfictus team sat down and mapped out the conversation flow they wanted. They created a custom 'Outcome' dropdown field for the 'Maintenance' form to track whether the conversation was resolved online or required an on-site visit. They also set up their scheduling department up with their own team and collaborator accounts. And then they worked out where they could fit automation in to help things along.
This is what they came up with:
Creating a flowchart like this allowed Brewfictus to visualize the path that their conversations would take through Kayako, and identify which points in the process could benefit from automation.
When you're planning out automation for your own support organization, we recommend going through a similar process for your conversation flows. Think about the things your team struggles with the most. Map out some of the common paths that your conversations go through. Pinpoint some steps in the process where you could use automation to smooth out some of those rough spots.
If you'd like to see the details on how Brewfictus built out the individual automation mentioned above, read on, for definitions of each automation.
Example set of workflow automation
Below are the workflow automations that Brewfictus used to shepherd its maintenance conversations through their support team. You can refer back up to the workflow flowchart above to see how they all work together or skip right down into the details to start adapting them for your own team's needs.
Remember, if you need help with the basics of building automation, check out our instructions on Creating Automations with Triggers and Monitors and our automation reference guide for conditions and actions.
Auto-assigning conversations from email
Description: This trigger catches conversations that come into the maintenance email queue and automatically routes them to the 'Maintenance' team.
Definition:
- Automation type — Trigger
- Channel — Email
- Condition(s) — 'Mail: Received at', 'equal to', 'maintenance@brewfictus.com' AND 'Conversations Event Update: Conversation Event Update Type', 'equal to', 'New conversation created'
- Actions — 'Conversation: Team', 'change', 'Maintenance'
Auto-assigning conversations from a form.
Description: This trigger catches conversations that come in using the 'Maintenance' form and automatically routes them to the 'Maintenance' team.
Definition:
- Automation type — Trigger
- Channel — Help Center
- Condition(s) — 'Conversations: Form', 'equal to', 'Maintenance' AND 'Conversations Event Update: Conversation Event Update Type', 'equal to', 'New conversation created'
- Actions — 'Conversation: Team', 'change', 'Maintenance'
Setting target response and resolution times for all conversations in a team.
Description: The SLA applies target reply and resolution times to any conversations within the 'Maintenance' team.
Definition:
- Automation type — SLA
- Condition(s) — 'Conversations: Team', 'equal to', 'Maintenance'
- Targets — First reply time (all priorities) = 4 hours, using business hours Next reply time (all priorities) = 8 hours, using business hours Resolution time: 72 hours, using calendar hours
Escalating any conversations that breach their SLA.
Description: This trigger will escalate any conversations that have breached their maintenance SLA targets by increasing their priority and notifying the maintenance team leader.
Definition:
- Automation type — Trigger
- Channel — All
- Condition(s) — 'SLA: SLA', 'equal to', 'Maintenance SLA' AND 'SLA: SLA breached'
- Actions — 'Conversation: Priority', 'increase' AND 'Notification: Email a user', '[name of maintenance team leader]'
Assigning unassigned conversations to the first agent who replies.
Description: This trigger will automatically assign any unassigned maintenance conversation to the first agent who replies to it.
Definition:
- Automation type — Trigger
- Condition(s) — 'Conversations: Team', 'equal to', 'Maintenance' AND 'Conversations: Assignee', 'equal to', '(Unassigned)' AND 'Conversations Event Update: Conversation Event Update Type', 'equal to', 'Existing conversation update' AND 'Conversations Event Update: Current user's role type', 'not equal to', 'Customer' OR 'Conversations Event Update: Current user's role type', 'not equal to', 'Collaborator'
- Actions — 'Conversation: Assignee', 'change', '(Current User)'
Setting status for conversations based on the last reply.
Description: These triggers will control the conversation status, while the agents and the customers are going back and forth. Using two triggers, you can automatically set the conversation to 'Open' after a customer has updated it, and 'Pending' after an agent has replied.
NOTE: You may notice that the 'Pending' trigger has an extra action to remove a tag. This is related to the reminder automation that comes next.
Definitions:
- Automation type — Trigger
- Channel — All
- Condition(s) — 'Post : New post', 'equal to', 'Public' AND 'Conversations Event Update: Current user's role type', 'not equal to', 'Customer' OR 'Conversations Event Update: Current user's role type', 'not equal to', 'Collaborator'
- Actions — 'Conversations: Status', 'change to', 'Pending' AND 'Conversation: Tags', 'remove', 'reminded'
- Automation type — Trigger
- Channel — All
- Condition(s) — 'Post : New post', 'equal to', 'Public' AND 'Conversations Event Update: Current user's role type', 'equal to', 'Customer'
- Actions — 'Conversations: Status', 'change to', 'Open'
Reminding users that we're waiting on a reply.
Description: This monitor will send an email to the user if they've not replied to one of their conversations for more than 48 hours. Adding the 'reminded' tag will make sure the monitor only sends the notification once, rather than every hour.
Definition:
- Automation type — Monitor
- Condition(s) — 'Conversations: Status', 'equal to', 'Pending' AND 'Conversations: Time spent in current status', 'greater than', '48 hours' AND 'Conversations: Tags', 'does not contain (ignore case)', 'reminded'
- Actions — 'Notifications: Email a user', '(Requester)' AND 'Conversation: Tags', 'add', 'reminded'
Notify a team of new conversation assigned to them.
Description: This trigger will send an email to the scheduling team when a new conversation is assigned to them.
Definition:
- Automation type — Trigger
- Channel — All
- Condition(s) — 'Conversations: Team', 'changed to', 'Scheduling'
- Actions — 'Notifications: Email a team', 'Scheduling'
Change team and send notifications when a collaborator leaves a note.
Description: This trigger will change the team back to 'Maintenance' and send a notification anytime a collaborator (like those on the scheduling team) leaves a note.
Definition:
- Automation type — Trigger
- Channel — All
- Condition(s) — 'Post : New post', 'not equal to', 'Public' AND 'Conversations Event Update: Conversation Event Update Type', 'equal to', 'Existing conversation update' AND 'Conversations Event Update: Current user's role type', 'equal to', 'Collaborator'
- Actions — 'Conversation: Team', 'change to', 'Maintenance' AND 'Notifications: Email a team', 'Maintenance'