What are slots?

When building AI agents, you need "slots," or input values, to successfully execute a plugin. These can be collected from the user or they can be data stored in your AI assistant's memory. For example...

  • If you're building a plugin to close a Jira ticket, you might need a ticket slot.
  • If you're building a plugin to rename a Slack channel, you might a channel slot and a new_name slot.
  • If you're building a plugin to submit a Workday PTO request, you might need a num_days slot.

Slots Key Components

Slot Naming and Descriptions

Slot names & descriptions are used by your Copilot to reason about your slots.


Best PracticeGood ExamplesBad Examples
Be as descriptive as possiblename: "ticket_comment"
description: "Collect user's comment for their salesforce ticket. Do NOT summarize the comment. Pass the user input verbatim."
name: "slot1"
description:-
Make slot names semantically uniquename: "comment_for_approval"
description: "Collect user's comment for approving their request."

name: "comment_for_rejection"
description: "Collect user's comment for rejecting their request."
name: "slot1"
description:-

name: "slot2"
description:-

Slot Instructions

Slot descriptions can be used to clarify Copilot slot inference and formatting behavior. Here are examples:

  • Clarify how to format slot before passing it to APIs (e.g. Timestamp should follow ALWAYS the following format: YYYY-MM-DDT23:59:59.")
  • Clarify how to set default slot values (e.g. If the user doesn't specify start_date, set the start_date as the current date & time.)
  • Clarify disclaimers and help text for slot (e.g. Present user a disclaimer that start_date should NOT be in the past)
  • Clarify how slot should be inferred by Copilot (e.g. Do NOT infer the country_code from user's profile. Always ask the user explicitly for it)

Slot Option Policy

Every slot can be made mandatory or optional. Your AI agent may choose not to disclose optional slots to the user based on the conversation.

Slot Validation Policy

Every slot can have validate the value that is collected. For example, if you if you have a slot called due_date, you may only want to collect a date value that is today or later.

Slot Inference Policy

Any slot can strictly enforce that your AI assistant asks the user for their input, instead of inferring from memory.

Slot Data Types

This will determine the data type of the value that is passed into your Plugin.
There are two categories of slot types:

  1. Built-in Data Types
    • string - text
    • integer - valid integers
    • number - floating point numbers
    • boolean - true / false
    • User - another employee in your organization.
      • Uses built in resolver strategy
  2. Custom Data Types

Slot Cardinality

Every slot can either be a list or a single record. You set this when you pick the List[type] vs [type] in the dropdown.

Users can specify lists however they see fit in the conversation.

  • "1 and 2 and 3"
  • "1, 2, 3"
  • "[1, 2, 3]"
  • "all the numbers 1-3"

Resolver Strategies

Resolver strategies instructs your AI assistant on how it should convert the user’s version of the value (e.g. “my blog task”) to a Data Type the system wants (e.g. Asana task object). Read more about our unique Slot Resolver technology.

Any slot can inherit the resolver strategies of its data type or you can create a in-line resolver strategy in your plugin.

How do I configure slots?

Pre-April 2025

Slots are implicitly created from a Compound Action's Input Variables when it is promoted to a Plugin.

⚠️ Note: There is no support for Slot Validation Policies, Slot Inference Policies, or Resolvers Strategies in these editors.

Post-April 2025

Slots will be explicitly defined in the Plugin Lowcode Editor.

Note: Must Request? is a Slot Inference Policy.

How does the AI agent ask for slots?

The AI agent will read your slot configuration and determine the best way to ask the user for the information.