Answer Linking for the Zendesk Bot
As a first big release for the Zendesk Bot this year, Zendesk is introducing Answer Linking, which can turn answers into reusable blocks!
Over the last year Zendesk has been investing heavily in their Zendesk Bot both from an Intent Mapping and from a Flow Builder standpoint.
At the end of last year they introduced Dynamic Bot experiences which allow more powerful API integrations with support for variables, arrays and dynamic carousels. This release removed some big ticket items from my feature wish list.
This week, as the first big release for 2024, they are introducing Answer Linking as a way to make big complex bot flows more easy to manage.
Answers
When Zendesk introduced the Zendesk Bot – or Answer Bot as it was called then – they relied almost entirely on Flow Builder to build the bot with steps, flows and conditions. You can add comments, offer options and buttons, and have conditional flows to route customers to articles, external pages or, if needed, agents.
With the arrival of Zendesk AI they changed their approach to the bot and made it intent based. Now, out of the box, the bot will read a customers' comment and propose up to three Help Center articles, either as direct links with snippets, or as generated replies via Zendesk AI.
For more complex flows where we need more information from the customer like an order number, or want to route the customer to a series of questions to detect the right solution for their problem, Zendesk still offers these custom build flows under the section Answers. These answers can be triggered with specific keywords or intents and allow you to build more complex purpose-built flows for your customers.
This way, your self service approach can scale from very broad to very specific within the same bot.
Ideally you deflect the most requested (and easy) questions via Help Center articles and generated replies to those questions. Then, for more complex flows, you can build an Answer with steps and options to guide the customer to an answer, or to pull in external information. And for the most complex and unique questions that require a human touch, you still have your agents.
"How do I reset my password?", can be answered with an article. "Where is my order?" might require an Answer flow with an API call. "My hamster escaped on the plane" needs a real agent to assist. And hopefully we can move more and more customer questions from Agent towards automated articles or Answers.
Custom Flows
When building custom flows to assist your customers you quickly run into the scenario where multiple answers require the same steps. Each question about a malfuncting smartphone requires a software update or reset. Each complex scenario you didn't account for requires an escalation to an agent. Each customer who needs to access your system might need the steps to reset a password or remember their account.
Until now there were two approaches to handle these repeated scenarios. You can copy-paste all the required steps across all the custom answers you build. Or you could end each flow with a "did this help? ⟶ "No" and ask them to rephrase the question, or tell the customer to ask for "how to reset my password"
However you turn it, it's not ideal. A change in the password reset flow requires you to update every answer that references it, and good luck remembering all of them.
Linked Answers
This week Zendesk released a new Step Type for Flow Builder. This new type allows you to link to another Answer within another flow. This means we can take the flow above, that has repeated Agent Escalations steps and split it into two.
One flow contains the "Talk to an agent" steps, including a check for Business Hours, and an Ask for Details step to ask for name and email.
And the original complex flow replaces the entire Transfer to Agent flow with a new Linked Answer step that links to the new "Talk to an agent" flow.
And similarly, we can use this same "Talk to an Agent" step and use it in another flow
Best Practices
Now that we can reuse flows and link to them, it might become best practice to go over your existing flows and identify any flows you re-use. Good candidates are escalation flows or lookups via API.
You can then pick one of these recurring flows and copy the steps to a new Answer. I like to prefix mine with [BLOCK] so I know this is a block I use a lot. Then go over all your flows once again and replace these recurring flows with your new blocks.
Similarly, if you have very big flows you can now break them up into smaller chunks and create one flow that handles the routing (e.g. question about iPhone, iPad, MacBook) and then link to the answer flows that handle these three types. Your flow builder trees become a lot smaller per Answer, and a lot more more handy to navigate.
Caveats
There's a few caveats with this new step type:
- The Transfer to Agent steps allow you to add a
tag
to the escalation. Naturally, all answers that link to a transfer step with a tag will contain the same tag now. - Any Ask for Details requested in previous steps are forwarded to the ticket if you escalate to an agent (e.g. Order Number). However, if you create a variable, those are not usable across Answers. So if you get the Order Status in your "Order Status" flow via API, you can't use that status as a variable in steps of a linked answer.
"Currently, variables and tags can’t be carried across linked answers. However, we are already working on supporting this with our next release scheduled for early Q2."
- If you asked for data via Ask for Details, and the next flow references that same Field in its own Ask for Details field, it will already be prefilled with the previous data.
- You can't currently link an Answer to itself (luckily). You can however create a loop by linking Answer A to Answer B, Answer B to Answer C, and Answer C back to Answer A. So be careful not create a loop.
Conclusion
This step type is a welcome addition to the bot building flow that will make many complex flows a lot smaller and easier maintainable.
Are there things I'd like to see? Sure, I'd like to put an Answer in the middle of a flow and have it process input (e.g. an API call to get order status might be used in the middle of multiple flows for different purposes). But even without that, I'll welcome this new Linked Step type with open arms!