Intents are the basic building block for a user’s turn in the conversation. They can be interpreted as actions that represent user requests, thus posing potential tasks for the assistant to complete.
Utterances are the example wordings which users use to invoke intents. For Alexa Assistants and Google Assistants’ user intents, user utterances (or training phrases) are used to help improve the assistant’s nlu. Note that Alexa Assistants also have a substantial amount of requirements for the utterances that are provided, which are detailed here.
Google Assistants’ system intents serve as an exception to the use of utterances.
Slots are variables that can be filled with values from user input that are then passed to the application. For example, "Alexa, ask CarFinder to find a 2015 Honda Civic". In this statement, "2015 Honda Civic" can be stored as a value for the custom slot “Car Type”.
For Alexa Assistants, slots can take multiple values, wherein the app is sent an array of the values. Additionally, Amazon Alexa also has the concept of slot types, which categorize slots and can perform actions on the data stored in the slots. For example, the slot type AMAZON.DATE converts slot values like “tomorrow” into date format as 2020-11-30.