An Action is a single ability or a task that the bot performs when you give an instruction as a part of your conversation.
For example, you can ask the bot to fetch your appointments for the day or ask it to schedule a meeting to your calendar.
Note that, to complete an action, the bot can prompt a few questions that are necessary to fulfill the action.
For example, the conversation of a typical schedule meeting action may go like below.
You : Schedule a meeting to discuss about the Zylker deal by 11 AM tomorrow.
Zia : Sure, when would the meeting get over?
You : By 12 PM.
Zia : Where is the meeting happening?
You : At the headquarters.
Zia : Okay, I have added the meeting to your calendar.
Hence an action is NOT a single message exchange between the user and the bot. It
can have multiple messages exchanged between the user and the bot to achieve a single task.
Types of Actions
Based on the intention, actions can be classified in to three different types.
1) Directly answering a question
These actions give a direct static answer to a static question asked without any business logic. Such actions will be universal - their answers would be the same across users, timezones, regions or any parameters. These actions typically would get over with a single conversational exchange.
Example:
“What is Zia?"
The answer to this question would be straightforward and universal to any user asking the question,
without involving any business logic.
2) Constructing an answer by fetching data
These actions will instruct the bot to dynamically construct the answer for the user input by fetching relevant data from the specified data sources.
This involves business logic specific to the action and the answer may vary based on the data and the business logic. The conversation may also extend to multiple messages depending on the business logic.
Example:
“What is in my schedule today?”
To answer this question, the bot would fetch data from your calendar and would construct its answer depending on the fetched data.
These actions will make the bot perform the specified operation -
typically to add/modify/delete some data into the specified data source. Obviously, this would also involve business logic to fulfill the intended operation and may span multiple messages.
Example:
"Schedule a meeting."
To schedule a meeting, the bot would prompt and get the relevant input data from the user and would create the event into your calendar.