Using Attributes in Messages

Attributes can be used in any message to customize the content. For example, the user's name can be added in the welcome message to personalize the experience.

Notation

Attributes are added to messages using curly braces {}.and Inside the curly braces we first add the context name (very often and by default the context is "user"), next we add a period (.) and then the attribute name. For example, the attribute first_name stored in the user context looks like this:

{user.first_name}

If the value of first_name is John, the message will display as "Hello John and welcome back to Prime Brands."

Note - If the attribute has no value or does not exist in the context given, the attribute reference is removed from the final message.

Message editor

To access the Attribute Management feature within the message editor for a given scenario:

  • Go to your workspace overview (Scenarios)

  • Select the scenario you would like to update

  • Select the message section under 'Design' in the left-hand menu

  • Select the message you would like to edit

  • Click within the 'Text' block for your chosen message

  • Activate Attribute Management by inputting an opening curly brace {

For more information around using, creating and finding attributes within the message editor, follow this link to the Attribute Management documentation

Attribute Filters

It may be necessary to filter or modify the value of an attribute before it is used in a message. To help with this, OpenDialog provides a number of built-in filters to use when referencing attributes in the message editor.

Filters are applied to attributes using a pipe (|) and they can be chained together with the result of a filter being passed through into the next filter. For instance:

{ user.age | number_to_words | uppercase_first }

The above takes the value of the age attribute in the user context, converts the number to words and adds an uppercase the first letter. If age was 30, the value placed in the message would be 'Thirty'.

Available Filters

String filters

  • uppercase - uppercases all letters in the string

  • uppercase_words - uppercases the first letter of each word in the string

  • uppercase_first - uppercases only the first letter in the string

  • lowercase - lowercases the entire string

Number Filters

  • speltnumber_to_words - turns a number into its word. eg 1 => 'one'

  • ordinal - returns the ordinal of the number. eg 1 => 1st

  • ordinal_words - returns the ordinal spelt out. eg 1 => 'first'

Collection Filters

  • count - returns the number of items in a collection type attribute

  • where [field] [value] [operation?] - filters out elements based on a field and a value, such as { history.utterances | where participant user } to get all of the user utterances in the conversation history

  • range [start] [number] - returns a subset of the collection, such as {history.intents | range -3 2 }conv to get the second and third from last intent names in the conversation history.

  • last - returns the last element of the collection.

Conversation Object Filters

  • select [field] - selects a name or description from a conversation object, such as { conversation.current_conversation | select name }. These attributes can be found within the Conversation context.

For video lessons and hands-on practice with these concepts, consider signing up for the OpenDialog Academy lessons by emailing academy@opendialog.ai.

Last updated