Conditional Data Fields
Quick links in this article:
In this article we’ll explore the use of conditional data fields in the Update panel, so you can conditionally display additional fields for your agents as they fill in data during an interaction.
The Update panel is where custom data fields are displayed next to an interaction, as your agents are handling them. More information here: https://gnatta.atlassian.net/wiki/spaces/HELP/pages/2421948473
Contact centre use cases
A typical use case for conditional fields in a contact centre is to capture ‘wrap’ data - that is, a deeper understanding of the reason for contact in order to capture actionable business insights. For example:
Reason
Refund
> Refund Reason
Product damaged
> > Refund Decision
Approved
In this example, Refund Reason
would only display to the agent if ‘Refund’ has been selected under Reason
. Then Refund Decision
would only display when (any) value has been provided for Refund Reason
to ensure the agent provides all the information you need.
The reasons for doing this include:
Process adherence - you could choose not to display the
Status
field (which allows agents to Close interactions) until the agent has first selected aReason
.Agent focus - instead of overwhelming agents with dozens of fields to fill in, not all of which might be necessary, allow them to narrow down on just the fields they need with a tiered system. For example, only display
Refund Reason
if they’ve selected ‘Refund’ as theReason
.Security - avoid displaying fields unless specific criteria has been met on an interaction, to protect customer data and critical processes.
Reporting - capture a greater depth of information about your customers, without creating excessive work for the agent.
Getting started
First, go to Configuration > Advanced > Dynamic Data > Your field name > Display Conditions
.
In our example, we want to conditionally display an extra field called Refund Reason
when the Reason
‘Refund’ has been selected. So we’re going to go to the Refund Reason
field.
To avoid human error confusing your conditions, it’s recommended to use Single Select (dropdown) field types instead of String Editors (open text) for display conditions.
More on creating data fields here: Defining Custom Data
From here, you need to create the condition(s) that will tell Gnatta when to show that field. Conditions are created in Components - create one with the + button on the right. In the component, you need to provide three critical pieces of information in order to write a valid condition:
Left: The source data where you want Gnatta to check for a particular value i.e. our Reason
field.
Operation: Equals
, Contains
, Has Value
, More Than
etc. In our case, we’ll need Equals
.
Right: The value you’re looking for - Refund, in our example.
All custom fields in Gnatta are stored under Interaction.Data
in the condition builder - if you begin typing that into the Left branch of your condition, Gnatta will display all of your fields so you can select the relevant one. Alternatively, if you know your data field ID, you can paste it in directly, in this format:
Interaction.Data<Data Name>[Data ID]
In our example, that looks like the following (note that the ID is unique!):
Interaction.Data<Reason>[4b7b8a6b-d6ff-458b-afab-c22a14d3ff2f]
When you’re happy with your condition, you can collapse it and fill in the expression.
The expression is the written equivalent of a decision tree - this is where you tell Gnatta how you want it to check your conditions, if you have multiple. For example, the expression 1|2
would mean: IF component 1 OR 2 is true, then display the field
. Alternatively, the expression 1&2
would mean: IF components 1 AND 2 are true, then display the field
.
And that’s it! The field Refund Reason
will now only display to the agent if the Reason
equals Refund.
Constant vs Context values
What is Context?
Gnatta automatically detects a huge range of potential data around every event that occurs in your domain. For example, if a new message is received, Gnatta won’t just collect the message body, it’ll also check for a:
Timestamp
Sender
Recipient
Channel
Attachments
Subject Line (if it’s an email)
etc!
This data will then be stored, ready for you to use in your Workflows or in this use case, a condition on your custom data field.
What is Constant?
A “constant” simply means a fixed value or a value that does not change. A constant has a known value. For example, if you’re checking a custom dropdown field has been filled with a particular value, you’ll need to select ‘Constant’ to select one of the available dropdown options.
Which one do I need?
In the components editor, you can select a ‘Constant’ or a ‘Context’ value for either side of your condition. This is because you can dynamically select a value for your condition based on all of the contextual data stored in Gnatta (the actual value for which will vary depending on the interaction at hand!), or a static ‘constant’ value.
In the example earlier in this article, we’re using Context to fill in the Left side of our condition because we’re checking the custom field ‘Reason’, which is stored in Contextual Data.
However, the value we’re checking it for is Constant - because it’s specific! We’re not looking for just any value, we’re looking for specifically ‘Refund’. So for the Right side of our condition we’re using a Constant value and selecting one of the options from the dropdown to fill the condition.