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 required.

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 required,” and the slot maps to a number slot type. While this article pertains 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 no longer tied 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 tied to specific intents. The ability to access slots from multiple intents improves efficiency and reduces the effort required 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 need to 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.

Additionally, if you created slots before the global slot availability, existing slots that share the same name are merged, making them unique and easier to reference.

Slot types

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

Built-in slots

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 slots

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

Architect supports three custom slot types:

  • a list type
  • a dynamic list type
  • a regular expression (regex) type

List slot type

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.

Dynamic List slot type

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 a large number of values for a slot type and you do not want to manually configure them 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.

    Regular expression (regex or regexp) slot type

    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.

    Add a slot to your bot flow from the Slots menu

    To add a slot to your bot flow, follow these steps:

    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 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 List, New RegEx, or New Dynamic, enter a slot type name. 
    7. Click Save.

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

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

    1. Under Natural Language Understanding, click Slots.
    2. Click Add Slot.
    3. Name the slot Automobile.
    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 ‘Automobile” 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.

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

    Click the image to enlarge.

    Add slot type values

    Now you can map the slots to utterances. 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 Automobile.

    The slot is successfully mapped to the utterance.