Slots and slot types overview

Slots are the specific pieces of information from an utterance to help understand the customer’s intent. For example, consider the utterance, “I want to book two rooms.” This utterance allows the bot to identify a specific piece of information or slot: rooms needed.

After the bot identifies a slot, it maps the slot to a slot type. A slot type defines how the bot processes the information available in the identified slot. Make sure that you map each slot to a slot type. Slot types help the bot define the information that the bot looks for when trying to find a slot in the utterance. A slot type must include at least one value.

In the previous utterance, the slot is “rooms needed,” and the slot maps to a number slot type. While this article relates to Genesys Dialog Engine Bot Flows and Genesys Digital Bot Flows, this video describes how slots and slot types work in Genesys Dialog Engine Bot Flows:

Global slot availability

Administrators and contact center managers can access any slot from any intent. Because slots are not bound to specific intents, they are accessible to multiple intents. This enhancement improves efficiency and reduces the effort to build bot flows. 

You can access any slot from any intent. Slots are not bound to specific intents. The ability to access slots from multiple intents improves efficiency and reduces the effort needed to build bot flows. For example, previously if you wanted to reference a customer’s account number from the Check Account and Close Account intents, you had to create an Account slot within each Intent. You can also use slots without an intent. This feature is useful when you must perform identification and verification in self-service bots. For example, you can ask for the customer’s account number and PIN up front, before asking for their intent.

Also, if you created slots before the global slot availability, existing slots that share names merge, making them unique and easier to reference.

Slot types

Architect bots support two slot types: built-in slots and custom slots.

Slot type supportability

When you work with slot types, consider the following supported capabilities:

  • Slot types: Up to 500 per flow
  • Slots (entities) associated with a single slot type: Up to 10 per flow
  • List slot type: Up to 50 per flow
  • Regex slot type: Up to 20 per flow

Built-in slot types

You can create slots with built-in slot types when you create a slot from the Natural Language Understanding menu.

Architect includes the following built-in slot types by default:

NLU slot type Architect data type User input examples Resolved format examples Notes
builtin:amountOfMoney Currency “$30.23” or “forty dollars”

30.23|USD
40.00|USD

  • Converts words that indicate currency into a numeric amount of money.
builtin:date Date “June 15” or “next Tuesday”

2021-06-15

  • When passing date values into or out of a bot flow, make sure that you pass the value as a string in extended ISO-8601 format. For example, 2021-02-16.
builtin:number Decimal “23” or “three point five”

23.0

3.5
  • Converts numeric words ("five") into digits (such as "5").
  • This feature does not currently support ordinal numbers (first, second, etc.).
builtin:time Time “3 p.m.” or “three-thirty p.m.”

15:00:00.000

15:30:00.000

  • Converts words that indicate time ("four in the morning", "two p m") into a time value ("04:00", "14:00").
builtin:any String "Stratocaster"

Stratocaster

  • Captures as a slot value any user input that does not match a specific regex pattern.
  • Used only with Ask for Slot actions. Does not fill slots during Ask for Intent actions.
  • Cannot be used to detect intents or utterance mapping. Does not provide a NO_HINT syntax to customer.
  • Ensures that numbers and single letters are accurately identified (the "o" in "Stratocaster" is a letter and not a zero).

For more information, see Use built-in slot types in a bot flow.

Custom slot types

A custom slot type allows you to define slot types and use them to map slots. For example, you can create a location slot to denote cities for your travel bot. You can define a custom slot type and use that location slot to map locations in your utterances.

Architect supports four custom slot types:

  • an AI-powered type with Virtual Agent
  • a list type
  • a dynamic list type
  • a regular expression (regex) type
Note: If you use natural language understanding (NLU) with regular expressions, then the NLU configuration may impact your results.

If you enable Virtual Agent, you can create generative, AI-powered slot types for Virtual Agent when you create a slot from the Natural Language Understanding menu. The large language model (LLM) helps Virtual Agent administrators and flow authors to capture and collect multiple slots in any order, capture slots over multiple turns, and make it easier for the bot to understand when customers perform tasks that are more complex for the bot, such as spell out their name. 

With Virtual Agent, you can use numeric, alphanumeric, or free-form AI-powered slots and slot types to improve conversational bot behavior. Free-form slots allow you to add synonyms and examples to help the bot recognize multiple words and phrases for the same slot. These AI-powered options allow you to configure your bot so that conversations between the bot and participant more closely align with human conversations. For more information, see About Genesys Virtual Agent.

For more information about AI-powered slots and slot types, including best practices and limitations, see  Virtual Agent slot authoring recommendations and limitations.

If your custom slot type data is a set of predefined words in the utterance, say like location names, use the list slot type. List slot types help you define the set of words that the bot must recognize to capture a slot. 

You can also add synonyms for a slot type so that Architect can recognize multiple words and phrases for the same slot. For example, a slot type value of New York can have the synonyms: Big Apple or NYC. These synonyms allow the bot to understand that when the user says NYC, it maps to New York.

For more information, see Use custom list slot types in a bot flow.

If you do not know the allowed slot values when you create the bot flow, configure a dynamic list in your bot flow. Then use a data action or another source to retrieve the values during the bot conversation and store them in a string collection variable.  

Dynamic lists are helpful if your bot contains many values for a slot type and you do not want to configure them manually and individually within Genesys Dialog Engine Bot Flows or Genesys Digital Bot Flows. These dynamic lists are also useful in cases where slot values are dynamic for each user.

For more information, see Use custom dynamic list slot types in a bot flow.

You can use regular expressions (regex or regexp) to identify patterns within utterances that match to a specific sequence of characters. If your bot has to identify a complex content in the utterance, a regex pattern is more useful in defining the slot type. For example, if you want to match flight codes for your travel bot, you must know the flight number for handling any cancellations. The regex pattern, ^[A-Z]{2}\d{3,4}$ matches any phrase in the utterance that matches this pattern as a flight number. For more information, see Use custom regular expression slot types in a bot flow and Regular expression language quick reference.

Note: If you use natural language understanding (NLU) with regular expressions, then the NLU configuration may impact your results.

    Add a slot type to your bot flow from the Slot Types menu

    1. Under Natural Language Understanding, click Slot Types.
    2. Click Slot Type. The Add Slot Type dialog box opens.
    3. Provide a meaningful name for the slot type and then click Save.
    4. Under Slot Type, to create a slot and slot type in parallel, select one of the available slot types:
      • List. List slot types match items in a list.
      • Dynamic List. Dynamic slot types are configurable.
      • Regular Expression. RexEx slot types match a sequence of characters.
      • AI Powered. AI powered slot types, when you enable Virtual Agent, leverage AI to understand and categorize input.
    5. If you chose List, then under Slot Type Value enter a value and click Add. Repeat this step to add more values.
    6. If you chose Dynamic List, follow these steps and create collection values:
      1. Click Edit Collections “>. 
      2. In the dialog box that appears, click String.
      3. Under Values, enter a string value to associate with the slot type.
      4. Complete the remaining fields by associating synonyms and labels, as necessary.
    7. If you chose Regular Expression, enter an expression and click Add. Repeat this step to add more expressions, which Architect evaluates from top to bottom.
    8. If you enable Virtual Agent and chose AI Powered, then under Format, follow one of these steps:
      1. Choose Free-form. This type indicates to the bot to expect a long answer, rather than set digits.
        1. Under Description, provide a detailed prompt of the information you want to collect. For example, “The capital cities of Europe,” or “A person’s first and last name.”
        2. Click Example.
        3. Under Example Utterance, provide a potential utterance that the bot might expect. For example, “I once visited Paris,” or “My name is John Doe.”
        4. Under Expected Value, enter the value that the bot should recognize. For example, “Paris,” or “John Doe.”
      2. Choose Letter-number combination and under Length, set the expected character length of the slot. For example, the number of numbers and characters in your membership ID.
      3. Choose Numeric sequence and under Length, set the expected character length of the slot. For example, a 4-digit PIN number.
    9. Click Save.

    Add a slot to your bot flow from the Slots menu

    1. Under Natural Language Understanding, click Slots.
    2. Click Add Slot.
    3. Provide a meaningful name for the slot.
    4. Under Slot Type, to create a slot and slot type in parallel, select one of the available slot types:
      • Existing. Includes existing custom slot types or built-in slot types.
      • New AI Powered. When you enable Virtual Agent, AI Powered slots use artificial intelligence to understand and categorize input.
      • New List. List slot types match items in a list.
      • New RegEx. RexEx slot types match a sequence of characters.
      • New Dynamic. Dynamic slot types are configurable.
    5. If you chose Existing, click Select and choose an existing custom slot type or a built-in slot type.
    6. If you chose New AI Powered, New List, New RegEx, New Dynamic, or AI Powered, enter a slot type name. 
    7. Click Save.

    Architect returns a message to confirm that the new slot was created and, for New AI Powered, New List, New RegEx, and New Dynamic, that the slot type was created.

    Add values to your slot types

    To add values to your slot types, see the following article according to your slot type:

    Parallel slot and slot types example

    In this example, the bot author wants to add slots and slot types for drum kit manufacturers.

    1. Under Natural Language Understanding, click Slots.
    2. Click Add Slot.
    3. Name the slot DrumKit.
    4. Under Slot Type, select New List.
    5. Name the slot type Manufacturer
    6. Click Save.

    Click the image to enlarge.

    Add a parallel slot

    Architect creates the slot and slot type and returns a message, indicating that the Slot ‘DrumKit” and Slot Type ‘Manufacturer’ were created.

    Click the image to enlarge.

    Parallel slot and slot type created

    Now you can add slot type values to the slot type.

    Note: For information about how to add slot types for supported languages, see Add slot types and utterances to intents for supported languages in a flow.

    1. Under Natural Language Understanding, click Slot Types.
    2. Click the Manufacturer slot type.
    3. Under Slot Type Value here, type Yamaha and press Enter.
    4. Repeat step 4 for each additional drum kit manufacturer that you want to add.

    Click the image to enlarge.

    Slot types

    Now you can map the slots to utterances. 

    Note: For information about how to add utterances for supported languages, see Add slot types and utterances to intents for supported languages in a flow.

    To map slots to utterances, follow these steps:

    1. Under Natural Language Understanding, click Intents.
    2. From the Intents page, add an intent called, “Buy a Volvo.”
    3. Click the new intent. The Utterance page opens.
    4. Under Utterances, click the term, “Volvo.” The Select Slot list appears.
    5. From the Select Slot list, choose Drums.

    The slot is successfully mapped to the utterance.

    Map utterances