Slots
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 anew_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 Practice | Good Examples | Bad Examples |
---|---|---|
Be as descriptive as possible | name: "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 unique | name: "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:
- Built-in Data Types
string
- textinteger
- valid integersnumber
- floating point numbersboolean
- true / falseUser
- another employee in your organization.- Uses built in resolver strategy
- 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.
Updated 15 days ago