Routing Overview

Quick links in this article:

Up to this point in your Gnatta setup (if you’ve been working through the articles in order, top to bottom!), you should have achieved the following:

If all of that is done, all that remains is to ‘switch it on’, by hooking your channels to your queues. This article will cover how to do that, at a high-level.

New to using Gnatta Workflow? It might be useful to read this first:

Find or Create an Interaction

In order to get inbound contacts in front of an agent in Gnatta, you must do one of these things:

  • Create an interaction, and assign it to a queue that agent is working on

  • Find an existing interaction, and attach the new message to it before assigning it to a queue

Being able to find an existing interaction and make a decision to connect to it or create a brand new one is what makes Gnatta so powerful, and different from other software. As a contact centre manager, you can decide exactly what defines ‘new’ when it comes to interactions. This definition often varies between businesses. Here’s an example decision flow where a ‘new’ interaction is defined by the length of time that has passed since the last message was received:

  1. Check for an existing interaction

  2. If Gnatta finds one, check if it was Closed within the last 7 days

  3. If it was in the last 7 days, connect the conversation to that interaction

  4. If the existing interaction was older than 7 days, create a new one

Understanding the inherent flexibility over this definition should underpin the design of your routing flows. Whilst Gnatta can (and does!) work without implementing any Find or Create logic in your routing, it’s worthwhile understanding it.

Channel differences

Routing in Gnatta varies between channels. Whilst the fundamentals remain very similar, they each have their own peculiarities and considerations. We’d recommend checking the notes below for each channel you’re setting up routing for.

The below discussion is focused on the differing Events that routing flows should be attached to, via Gnatta’s Workflow interface. For more information, check here:

  • New Message Received - This event is exactly what it says; it will be triggered when you receive a brand new message that is not currently connected to an existing interaction. You might choose to manually connect the message to an existing interaction, with a flow.

  • Response Received - This event will only be triggered when Gnatta considers the new message to be inherently connected to a previous message i.e. an interaction is already in progress. The definition is deliberately narrow, to maximise your control over how and when interactions are split.

Chat

Chats are detected on a Chat Started event - but each sequential message received in that chat will trigger a Response Received event. i.e. Chat Started refers to the moment the chat was initiated, whereas Response Received is all about how you manage a chat live, whilst it’s in progress.

Chatbot flows should always be attached to a Response Received event, with your logic built around understanding where the customer is in their journey so far in order to determine which message to present next.

When the chat is closed, the Chat Ended event will be triggered. If a fallback form is configured on your account, submissions on the fallback form will trigger the Contact Form Received event. If a Post Chat Survey is completed, that’ll trigger the Chat Survey Completed event.

Check out this article for more information on configuring chat routing:

Email

Each new email thread will trigger a New Message Received event. If a customer replies to an email you’ve sent (or follows up to their own email), it’ll trigger the Response Received event. This is because the messages are inherently related.

However, if the customer was to start a new email thread with a new subject line, this would trigger the New Message Received event again - and you’d need to consider using Find or Create logic if you wanted to connect this new email thread to an existing one.

Website Forms

The event triggered will depend on how your forms are integrated - it’ll be External HTTP Request if you’re using our API, or a New Message Received event if you’re forwarding notifications into an email account in Gnatta. If a customer replies to an email you send in response to their form submission, it’ll trigger the Response Received event. This is because the messages are inherently related.

Routing for website forms is a little more involved than other channels, so we’d recommend following this guide:

Form submissions are essentially a conversation with your website! In order to respond to the customer, you need to explicitly create a new conversation and tell Gnatta who to send messages to by selecting the email address field from your form submission.

Telephony

Each new call will trigger a Call Started event. This channel cannot trigger a Response Received event - your IVR routing flows should all be attached to the Call Started event! When the call ends (disconnected by the customer or the agent or workflow), then the Call Ended event will be triggered.

TrustPilot

Each new review will trigger a New Message Received event. If the customer edits their review, this will trigger a Response Received event.

All other channels

Each individual message received via these channels can trigger a New Message Received event.

A Response Received event will only ever be triggered if the interaction is set to an Open status at the time an additional message is received, automatically appending the new message to the one that is currently Open. As soon as the interaction has been set to Closed (by an agent, or workflow), the Response Received event will no longer be triggered and additional messages will trigger a New Message Received event.

For example, if a customer sent the following messages in quick succession, but the agent set the interaction to a Closed status in-between, it would generate three different interactions:

  • 10:22: Hi

  • 10:22: Please can you help me

  • [agent replies and closes the interaction]

  • 10:23: My name is joe bloggs

  • [agent replies and closes the interaction]

  • 10:24: My email is joe.bloggs@gmail.com

  • [agent replies and closes the interaction]

To tell Gnatta you want it to connect these messages into a single interaction, you’ll need to implement Find or Create routing logic. This will group individual messages sent within a short span of time into a single interaction - otherwise, you might find each new message from a customer is generating a new interaction, instead of connecting to the previous one, which might make it hard for an agent to understand what is happening.

How it works

Routing in Gnatta is controlled within the Workflow engine. In the briefest terms, you’ll need to do the following for each media account you’ve connected to Gnatta:

  • Define a New Message Received Event - this tells Gnatta which media account it needs to be listening to

  • Add a routing Flow - to create an interaction in the right queue, based on specific routing criteria

To get started, navigate to Workflow as follows:

get to workflow.gif
Get to Workflow via the cog in the top right of your screen

Create an event

First, you’ll need to create a New Message Received event for the media account in question. We’re going to use an Email in our example. The setup stepper may ask for a ‘Rule’ - this is the same as the ‘streams' on the media account, such as the inbox, outbox, or public comments.

create a new message received event.gif
Create (or identify an existing) New Message Received event

The stepper will offer you an opportunity to add flows - but as we haven’t created them yet, save your new event. It’ll appear in the list on the left at the bottom, or you can search and filter the list to locate it.

Add a routing flow

Now that you’ve created your event, you need to attach some Flows. Flows tell Gnatta what to do when that event occurs. The first flow is going to be a routing flow.

You can build your routing flow from scratch, but we’d recommend using a template. Refer to your routing plan to identify the template that is most relevant for your needs.

Next, you’ll need to configure the template to match your needs. In our example, we would need to edit the Decision logic to match the email addresses we’re filtering for.

Then we’ll want to go into each Create Interaction action, and make sure that we’re creating our interaction into the right queues (the queues we’ve already created earlier in setup!).

You could, if you wanted to, preset a data field at this set with something relevant - such as the email address discovered by the filter!

Finally, we’re going to use the Update Interaction action to set the data group for all of these interactions - this makes sure the data group is displayed by default in the Update panel for your agents. If you don’t assign a data group, the data will still exist but it won’t be visible on the interaction unless the agent goes out of their way to open it.

Once you’ve given your Flow a name (click on ‘Untitled’ in the header bar), you can use File>Save and File>Publish to publish your flow.

You can now return to the Events tab in Workflow, find your New Message Received event, and attach your new routing flow.

And that’s it! You’re all done. This is what will happen:

  • Gnatta will listen for new messages on the account and stream defined by your event

  • Your routing flow will be triggered, creating interactions into relevant queues

  • Gnatta will assign the interaction to any available workers for the team connected to the queue

What’s next?

If you’ve followed all of the knowledgebase setup articles in order, you should now have a functioning contact centre - conversations are coming into Gnatta and being created into interactions, then they’re being assigned to queues and routed to agents. Completely handsfree.

But - don’t stop here! Gnatta is full of cool customisation options that can take your contact centre to the next level.

https://gnatta.atlassian.net/wiki/spaces/HELP/pages/2463006730

Â