Creating Content Responses

Creating Content Responses

Quick links in this article:

With Gnatta Content Responses, you can build a library of pre-approved content to present to your agents as they’re handling interactions - no more Word Docs, no more notepads. These are dynamic, baked-in response templates for your agents right inside the interaction. In this article, we’ll explore how to create those responses and set up your library.

This article refers to the new Content Responses configuration area - looking for guidance on using the Classic Content editor? Check here: Creating Classic Content

Before Content: Placeholders

Whilst you could dive in straightaway and begin drafting your first content response, we’d recommend first building a few useful placeholders to use in your content responses if you haven’t already. Common examples include Customer Name, Customer Email or Order Number. To get to placeholders, you’ll need to navigate to Configuration > Advanced > Content Responses > Placeholders in the Classic Content editor.

A placeholder will appear as a tag and highlight to the agent that they need to check, edit, or select something before sending the response. More here: Creating Placeholders

get to content.gif
Create placeholders for your content via Configuration > Advanced
placeholder types.gif
Placeholders appear as tags in the content response

Getting started

As you create your library, you’ll likely want to test your responses! Check out this article when you’re ready to start testing: Testing Content Responses

Assuming you’ve created a bank of useful placeholders already, it’s time to create your first content response! For this example, we want to display the following response, but only when the channel is Email AND the reason for contact is Tracking.

Hi there [name],

Thanks so much for getting in touch today. I’m sorry to hear you’re experiencing delays with your order. Before I can investigate, please can you confirm the delivery postcode?

Thanks.

To get started, navigate to Configuration > Content Responses and click Create.

get to content responses.gif
Get to the Create panel for Content Responses

First, you’ll need to give your content a name. We’re going to call ours Confirm Postcode. We’re also going to add a label for ‘Email’ - to help us keep all of our email content responses grouped together.

Whilst you don’t have to use labels, it’ll help keep your content library organised as it grows!

name and label.gif
Give your response a name and a category label, first

Once you’ve added your name and label, you need to decide how and when to display your content response to agents. There are two display settings for content - Always Show and Conditional. For our example, we’re going to select the display setting Conditional.

Always Show Content

Always Show content is as it says - it will always be available to your agents in the content library. This is useful when:

  • You are creating a small content library for your team (less than 30 responses in total) so conditions aren’t necessary

  • The response you’re creating is useful for all teams and channels and queues, such as ‘Thanks for getting in touch.

Conditional Content

Conditional Content will only be displayed in the library when the specific condition you’ve configured is met. Common use cases include:

  • When Conversation.Channel = WebChat - i.e. only display the response if the current channel is chat, so you’re not displaying chat responses like ‘This chat will close in a few moments, please leave feedback for me!' for agents working other channels.

    • Channels are case sensitive. You can currently check for: email, WebChat,TrustPilot, SMS, Voice, Manual, Facebook, Instagram and WhatsApp

 

  • When Interaction.QueueId = [YourQueueID] - only display the response the interaction is in a specific queue. i.e. Create a set of content for your claims team, and only display them when the interaction is in the claims queue.

    • You can find your Queue ID by navigating to it in Configuration menus - it’ll be the GUID in the URL of your browser! For example, in https://example.gnatta.com/Settings/Routing/Queues/063ad8d1-05ae-415e-a0ef-d7e66ebe6c27 the long string of numbers and letters at the end is the ID: 063ad8d1-05ae-415e-a0ef-d7e66ebe6c27

 

  • When Interaction.Data[Reason] = [Tracking query] - display content responses when custom data on the interaction matches, so you can offer query-relevant responses to the agent.

Building a condition

When we select Conditional, we’ll be offered the condition builder. Let’s click into that and start building our display condition! To recap, we want to display our example response only when the Channel is email AND the Reason is Tracking.

Open the condition builder, then click + Add to begin the first condition. Because we want to hinge our decision on contextual data (in this case, the current conversation channel), we need to open the Explore menu to access the contextual data library.

Gnatta automatically detects a huge range of 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!

[View full list]

This data will then be stored, ready for you to use in your decisions. You can access contextual data via the ‘Explore’ menu. Learn more about contextual data and how it works here:

start condition 1.gif
Add the first condition, and then open the Explore menu to access contextual data

Our first condition is when Channel is email - so we’re going to open the Suggested category and select Channel [Conversation.Channel]. We’re going to set the operation as Equals, and then the value to email.

Because we’re not using the Explore menu for our value (the value we’re looking for is always going to be just email), we can check the ‘Static value’ checkbox.

conversationchannel is email.gif
Set the first condition

And that’s our first condition set! The next condition we wanted was AND the Reason is Tracking. So, let’s go ahead and click + Add to add a second condition in there. We’re going to switch the toggle to AND then head into the Explore menu again.

start second condition.gif
Add the second condition

This time, we want to check the value of a custom data field on the interaction (Reason for Contact) to see if the current value is Tracking. Custom data fields are stored under Interaction Data [Interaction.Data] - so let’s select that. This will open up all of the custom data fields created on your Gnatta domain - scan through to find the right one, and click on it.

As before, we can then set the operation to Equals and then select our value - this time from a list matching the dropdown options in our custom data fields! We’re going to pick Tracking from the list.

With that done, the conditions are complete and we can hit Save on them.

complete second condition.gif
Complete the second condition and hit ‘Save’!

Final steps

Now that the conditions are saved, we can type in our chosen slash command. We’re going to keep it straightforward and use ‘confirm’, because this response is aiming to confirm the delivery postcode. Slash commands should be intuitive to help your agents remember them!

Note that slash commands can only be used when simple placeholders are used. If your content uses Options placeholders, the slash command will not be applied.

We can now add our actual content response to the message editor! Here, we’re going to swap out our [name] for a true placeholder. This will flag to the agent that they need to make an edit before they hit send.

To do that, click Placeholder in the toolbar and select one of your preconfigured placeholder options.

placeholder.gif
Add your message and insert any placeholders

We don’t have any attachments for this response - but if we did, they could be added by clicking the upload icon.

Note that attachment rules for channels still apply - if the content response is used on a channel where the file type is not permitted, it will not be sent. Check here: Permitted File Types

Finally, we can make some extra changes to how and when this content is presented to agents to limit overuse by switching the toggles under Advanced. For example, you may want to toggle on Once Per Conversation to ensure the same response isn’t offered to an agent again if its already been sent. We’re going to leave ours as they are, and hit Save.

image-20250224-114652.png
When you hit save, the content is enabled and ready!

That’s it - the content response is live and ready to use! Note that new content can take up to 10 minutes to appear due to browser caching.

Cache cleared but your content is not displaying on an interaction?

The content library is only available when interactions are recent, and assigned to you - and content is only refreshed when the state changes to Assigned. Try sending a new test interaction and assigning it to yourself!

Check out Testing Content Responses for more guidance.

try out a response.gif
Try out your new content on an interaction.

Importing your library

If you’re importing content responses from another system, or would like to bulk create them, you’ll need to set up a CSV file - just like this one:

All content imported will be set to Always Show, but disabled. You’ll need to further configure each piece of content as required once it’s imported.

To import a CSV, click the three-dot menu in your content library, and select Import. In the modal, toggle the extra columns as required, and then add your file. Be sure to label headings as shown if you’re choosing to include headers.

import CSV.gif
Import your content library with a CSV file

Once the file is imported, your responses will be in your library and ready to look at - all content responses imported will be disabled by default. You’ll need to enable them once you’ve checked them over and added any relevant conditions.

Each import will be tagged with a label matching the current data - select it from the Labels filter to view associated content.

imported items filtering.gif
Newly imported content must be enabled when you’re ready to use it