Regex Slots - Cognigy Documentation

Regex Slots

Regex Slots are user-defined Slots, which apply regular expressions (regex) to match and extract specific patterns from user inputs. Unlike Lexicon Slots, which rely on Keyphrases, Regex Slots are ideal for structured data that follows a predictable format, such as:

You can use this type of Regex Slots only as Slot Fillers.

Recommendations

Working with Regex Slots

To start working with Regex Slots, you can use one of the following options:

To define a regex pattern that runs on all user inputs in the Flow, follow these steps:

  1. In the Flow editor, go to NLU > Slot Fillers.
  2. In the upper-left corner, click + New Slot Filler.
  3. In the New Slot Filler window, fill in the following fields:
    • Name – enter a unique name for the Slot Filler. For example, phone_number.
    • Type – select Regular Expression.
    • Regular Expression – enter a regex pattern. Patterns must start and end with /. Flags like g for global matching aren’t supported.
    • Context Key – enter a Slot name to store the matched data in the Context object. For example, phone_number.

To define a regex pattern that runs after a specific user input in the Flow, follow these steps:

  1. In the Flow editor, add a Regex Slot Filler Node where you want to process the input, for example, after a Question Node.
  2. In the Node editor, configure the following fields:
    • Regular Expression - enter a regex pattern without leading and trailing slashes, for example, ^\d{3}-\d{3}-\d{4}$.
    • Flags – enter flags you want to apply to the regular expression, for example, i for case-insensitive, m for multiline. Note that the g flag should always be specified.
    • Slot Name – enter the Slot name to store the matched data in the slots.<slot-name> Input object. For example, phone_number.

Once a Regex Slot is filled, the extracted data can be used in the conversation logic, for example, for the following purposes:

Example

These examples show how regex patterns fill Slots in the Context object.

Single Match

User Input: My phone number is 555-123-4567

Regex Pattern: /\d{3}-\d{3}-\d{4}/

Slot Name: phone_number

Result: The context.phone_number Slot is filled with 555-123-4567. The AI Agent responds Thanks for providing your phone number: {{context.slots.phone_number}}!

Multiple Matches

When the user input contains multiple values that match the pattern, only the first match is stored.

User Input: The booking codes are 123456 and 789123

Regex Pattern: /\b\d{6}\b/

Slot Name: booking_codes

Result: The context.booking_codes Slot is filled with 123456.

Use Cases

More Information