How to build a script of an Agent

icon picker
Creating and types of Slots and Subslots

Slot Types

In each
@Slot
⁠
and
@Subslot
⁠
, the action specified in the
@Slot
⁠
name takes place.
@Script
⁠
s are composed of
@Slot
⁠
s and develop from left to right, from one
@Slot
⁠
to another.
The existing
@Slot
⁠
types are reflected in the table below:

Independent and Complex Slots

⁠
@Slot
⁠
s are divided into two groups based on their independence:
@Standalone Slot
⁠
s and
@Complex Slot
⁠
s.
@Complex Slot
⁠
consist of a single
@Parent Slot
⁠
and multiple
@Child Slot
⁠
s (
@Subslot
⁠
s).
@Complex Slot
⁠
s allow branching the
@Script
⁠
into two or more
@Script Branch
⁠
es depending on the fulfillment of certain conditions.
The division of
@Slot
⁠
s based on their independence is reflected in the table below:

Slot Neighborhood Rules

The placement of
@Slot
⁠
s in the
@Script Tree
⁠
follows certain rules, as not all
@Slot
⁠
can be placed next to each other according to logic, for example:
⁠
@Incoming Request Slot
⁠
and
@Timer
⁠
@Slot
⁠
s can only be placed after the
@Start
⁠
@Slot
⁠
, as they initiate communication between the
@Agent
⁠
and the
@Bot User
⁠
;
⁠
@Child Slot
⁠
s can only be placed after their
@Parent Slot
⁠
s;
Two
@Wait For Reaction
⁠
@Slot
⁠
s cannot be placed next to each other;
And so on.
When adding a
@Slot
⁠
to any part of the
@Script
⁠
, the dropdown list offers only those
@Slot
⁠
s that can be placed in that location according to the
@Slot Neighborhood Rules
⁠
.
The
@Slot Neighborhood Rules
⁠
are reflected in the table below:
Slot types
2
Possible left neighbours
Slot type
Possible right neighbours
Description
Independency of the Slot
The Slot is blocking
Markdown is allowed
Agent training: The Slot can be in the end of the branch
Jump in the Slot is allowed
The Slot can be a savepoint
The Slot can be cloned
1
​
Start
NLU
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
Incoming Request Slot
Timer
Change Chat Mode
Synonym Slot
Notification
The start/root
@Slot
⁠
where the
@Script
⁠
begins. Works similarly to the
@Wait For Reaction
⁠
@Slot
⁠
, accepting messages from the
@Bot User
⁠
.
Independent Slot
No
No
No
No
No
No
2
Start
Incoming Request Slot
NLU
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
Change Chat Mode
Synonym Slot
The
@Incoming Request Slot
⁠
allows the
@Agent
⁠
to write first to the
@Chat
⁠
during closed
@Dialog
⁠
s.
Independent Slot
Yes
No
No
No
No
No
3
Start
Timer
NLU
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
Change Chat Mode
Synonym Slot
The
@Timer
⁠
@Slot
⁠
is designed to launch the
@Agent
⁠
@Script
⁠
after a specified time has elapsed after the occurrence of certain conditions in a specific
@Chat
⁠
.
Independent Slot
No
No
No
No
No
No
4
Text
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Incoming Request Slot
Timer
Synonym Slot
Notification fail
Notification no account
Notification success
NLU
intent
fallback
The
@NLU
⁠
@Slot
⁠
is designed to process messages in natural language in order to determine the expressed intention (
@Intent
⁠
) of the
@Bot User
⁠
and, depending on it, move to the appropriate
@Script Branch
⁠
.
Complex Slot: Parent Slot
No
No
No
Yes
Yes
Yes
5
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Text
Incoming Request Slot
Timer
Notification fail
Notification no account
Notification success
Text
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
The text
@Slot
⁠
allows you to display a text message contained in the TEXT LIST field of this
@Slot
⁠
on the
@Bot User
⁠
’s screen.
Independent Slot
No
Yes
Only with blocking Slots in the Branch
Yes
Yes
Yes
6
Start
Text
Attachment
Memory
External Request
result
condition
button
fallback
intent
Incoming Request Slot
Timer
Synonym Slot
Notification fail
Notification no account
Notification success
Wait For Reaction
Text
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
The
@Wait For Reaction
⁠
@Slot
⁠
puts the
@Agent
⁠
into waiting mode for a message from the
@Bot User
⁠
and stores the received message in the
@client_message
⁠
@Context Variable
⁠
Independent Slot
Yes
No
Yes
Yes
Yes
Yes
7
Incoming Request Slot
Timer
Text
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
result
condition
button
fallback
intent
Start
Synonym Slot
Notification fail
Notification no account
Notification success
Jump
​
The
@Jump
⁠
@Slot
⁠
allows you to move to another
@Slot
⁠
.
Independent Slot
No
No
Only with blocking Slots in the Branch
No
No
Yes
8
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Text
Incoming Request Slot
Timer
Synonym Slot
Notification fail
Notification success
Notification no account
Attachment
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
The
@Attachment
⁠
@Slot
⁠
is intended for sending attachment files of the specified type from the
@Agent
⁠
to the
@Bot User
⁠
. For example, using this
@Slot
⁠
you can send an audio, video or image to an
@Bot User
⁠
, which will be displayed correctly in the messenger with a preview.
Independent Slot
No
Yes
Only with blocking Slots in the Branch
Yes
Yes
Yes
9
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Text
Incoming Request Slot
Timer
Synonym Slot
Notification fail
Notification no account
Notification success
Memory
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
The
@Memory
⁠
@Slot
⁠
allows you to write data to
@User Context Variables
⁠
.
Independent Slot
No
No
Only with blocking Slots in the Branch
Yes
Yes
Yes
10
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Text
Incoming Request Slot
Timer
Synonym Slot
Notification fail
Notification no account
Notification success
Language
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
The
@Language
⁠
@Slot
⁠
allows you to determine the language from the incoming string.
Independent Slot
No
No
Only with blocking Slots in the Branch
Yes
No
Yes
11
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Text
Timer
Incoming Request Slot
Synonym Slot
Notification fail
Notification no account
Notification success
External Request
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
The
@External Request
⁠
@Slot
⁠
is designed to integrate the
@Agent
⁠
with external IT systems via the HTTP protocol. When processing this
@Slot
⁠
in the
@Script
⁠
, an HTTP request to the API of the external system is executed, as well as a response to this request is received and processed.
Independent Slot
No
No
Only with blocking Slots in the Branch
Yes
Yes
Yes
12
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Text
Timer
Incoming Request Slot
Synonym Slot
Notification fail
Notification no account
Notification success
Slot Filling
Text
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
The
@Slot Filling
⁠
@Slot
⁠
allows you to collect the
@Bot User
⁠
's answers to specific questions and store these answers in
@User Context Variables
⁠
. Unlike the “Text - Wait For Reaction - Memory” combination,
@Slot Filling
⁠
allows you to collect several
@Bot User
⁠
answers to several
@Agent
⁠
questions using only one
@Slot
⁠
.
Independent Slot
No
Yes
Only with blocking Slots in the Branch
Yes
Yes
Yes
13
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Text
Timer
Incoming Request Slot
Synonym Slot
Notification fail
Notification no account
Notification success
Button Menu
button
fallback
The
@Button Menu
⁠
@Slot
⁠
declares a block of buttons that are defined after this
@Slot
⁠
.
Complex Slot: Parent Slot
Yes
No
No
Yes
Yes
Yes
14
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Text
Timer
Incoming Request Slot
Synonym Slot
Notification fail
Notification no account
Notification success
Transition Rule
condition
The
@Transition Rule
⁠
@Slot
⁠
allows you to branch the
@Script
⁠
depending on the specified conditions.
Complex Slot: Parent Slot
No
No
No
Yes
Yes
Yes
15
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Start
intent
fallback
button
condition
result
Text
Timer
Incoming Request Slot
Synonym Slot
Notification fail
Notification no account
Notification success
Regular Expression Slot
result
The
@Regular Expression Slot
⁠
allows you to check the message entered by the
@Bot User
⁠
for compliance with the format specified by means of a regular expression, and, depending on the match, move to the appropriate
@Script Branch
⁠
.
Complex Slot: Parent Slot
No
No
No
Yes
Yes
Yes
16
Start
Incoming Request Slot
Text
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
result
condition
button
fallback
intent
Timer
Synonym Slot
Notification fail
Notification no account
Notification success
Change Chat Mode
​
The
@Change Chat Mode
⁠
@Slot
⁠
is designed to transfer the
@Dialog
⁠
to the operator, if the omnichannel platform provides operator software. This ends the
@Dialog
⁠
. For omnichannel platforms that do not provide operator software, only the
@Dialog
⁠
will be closed.
Independent Slot
Yes
No
Yes
Yes
Yes
Yes
17
Regular Expression Slot
result
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
A
@Child Slot
⁠
in the
@Complex Slot
⁠
@Regular Expression Slot
⁠
+
@result
⁠
, into which the
@Agent
⁠
goes if the result of checking the
@Bot User
⁠
's message for a regular expression matches the contents of the
@Subslot
⁠
.
Complex Slot: Child Slot
No
No
No
Yes
No
No
18
Transition Rule
condition
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
A
@Child Slot
⁠
in the
@Complex Slot
⁠
@Transition Rule
⁠
+
@condition
⁠
, which contains a condition, if true, the
@Agent
⁠
will move to the
@Script Branch
⁠
that comes after this
@Subslot
⁠
.
Complex Slot: Child Slot
No
No
No
Yes
No
No
19
Button Menu
button
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
A
@Child Slot
⁠
in the
@Complex Slot
⁠
@Button Menu
⁠
+
@button
⁠
+
@fallback
⁠
, into which the
@Agent
⁠
goes if the
@Bot User
⁠
pressed one of the buttons displayed on the screen.
Complex Slot: Child Slot
No
No
No
Yes
No
No
20
Button Menu
NLU
fallback
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
In
@NLU
⁠
: a
@Child Slot
⁠
in the
@Complex Slot
⁠
@NLU
⁠
+
@intent
⁠
+
@fallback
⁠
, into which the
@Agent
⁠
goes if no
@Intent
⁠
is recognized with sufficient confidence.
In the
@Button Menu
⁠
: a
@Child Slot
⁠
in the
@Complex Slot
⁠
@Button Menu
⁠
+
@button
⁠
+
@fallback
⁠
, into which the
@Agent
⁠
goes if no button was pressed by the
@Bot User
⁠
.
Complex Slot: Child Slot
No
No
No
Yes
No
No
21
NLU
intent
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Change Chat Mode
Synonym Slot
A
@Child Slot
⁠
in the
@Complex Slot
⁠
@NLU
⁠
+
@intent
⁠
+
@fallback
⁠
, into which the
@Agent
⁠
goes if the
@Bot user’s Message
⁠
was assigned (recognized) by the
@NLU
⁠
@Slot
⁠
to its corresponding
@Intent
⁠
.
Complex Slot: Child Slot
No
No
No
Yes
No
No
22
Start
Incoming Request Slot
Timer
Text
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
result
condition
button
fallback
intent
Synonym Slot
Notification fail
Notification no account
Notification success
Synonym Slot
NLU
Text
Wait For Reaction
Jump
Button Menu
External Request
Regular Expression Slot
Memory
Slot Filling
Transition Rule
Synonym Slot
Attachment
Change Chat Mode
The
@Synonym Slot
⁠
allows you to search a table with data - a
@Vocabulary
⁠
- and save the found information in a
@Context Variable
⁠
Independent Slot
No
No
Yes
Yes
Yes
Yes
23
Start
Notification
Notification fail
Notification no account
Notification success
The
@Notification
⁠
@Slot
⁠
is intended for sending mailing. The
@Slot
⁠
allows you to send a message in the case when the
@Chat
⁠
with the Interlocutor has not yet been created or the
@Chat
⁠
has been created, but the
@Agent
⁠
cannot be the first to write to the
@Chat
⁠
after a certain timeout (limitation of some channels). The
@Slot
⁠
allows you to process statuses received in response to a mailing.
Complex Slot: Parent Slot
No
No
No
No
No
Yes
24
Notification
Notification fail
NLU
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
Change Chat Mode
Synonym Slot
The
@Notification fail
⁠
@Subslot
⁠
is intended to continue the
@Script
⁠
if it was not possible to send a mailing to the
@End Channel
⁠
Complex Slot: Child Slot
No
No
No
Yes
No
No
25
Notification
Notification no account
NLU
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
Change Chat Mode
Synonym Slot
The
@Notification no account
⁠
@Subslot
⁠
is intended to continue the
@Script
⁠
after a mailing that was successfully sent to the
@End Channel
⁠
, but the the recipient was not found (for example, the recipient does not have a WhatsApp account when mailing via Whatsapp).
Complex Slot: Child Slot
No
No
No
Yes
No
No
26
Notification
Notification success
NLU
Text
Wait For Reaction
Jump
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
Change Chat Mode
Synonym Slot
The
@Notification success
⁠
@Subslot
⁠
is intended to continue the
@Script
⁠
after a mailing that was successfully sent to the
@End Channel
⁠
and a successful status or response from the
@Bot User
⁠
was received.
Complex Slot: Child Slot
No
No
No
Yes
No
No
27
Start
Incoming Request Slot
Timer
Text
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
result
condition
button
fallback
intent
Synonym Slot
Notification fail
Notification no account
Notification success
Repeat
Repeat Next
Repeat End
Repeat Error
Repeat Limit
The
@Repeat
⁠
@Slot
⁠
starts a loop of N iterations, N is specified in the
@Slot
⁠
settings. Each iteration begins with a transition to the
@Repeat Next
⁠
@Slot
⁠
.
Complex Slot: Parent Slot
No
No
No
Yes
No
​
28
Repeat
Repeat Next
Text
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Synonym Slot
Change Chat Mode
The
@Repeat Next
⁠
@Subslot
⁠
begins the next iteration of the loop, increasing the loop counter by 1
Complex Slot: Child Slot
No
No
No
Yes
No
​
29
Repeat
Repeat End
Text
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Synonym Slot
Change Chat Mode
The
@Repeat End
⁠
@Subslot
⁠
is designed to continue the
@Script
⁠
when the cycle has ended - the set number of iterations has been completed, as well as to exit the cycle if during its execution a message from the
@Bot User
⁠
was received, and the cycle does not have a
@Slot
⁠
that can process it.
Complex Slot: Child Slot
No
No
Yes
Yes
No
​
30
Repeat
Repeat Error
Text
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Synonym Slot
Change Chat Mode
The
@Repeat Error
⁠
@Subslot
⁠
is intended for a loop execution error — a transition from
@Repeat
⁠
when an invalid number of iterations has been set.
Complex Slot: Child Slot
No
No
Yes
Yes
No
​
31
Repeat
Repeat Limit
Text
Wait For Reaction
Attachment
Memory
External Request
Slot Filling
Button Menu
Transition Rule
Regular Expression Slot
NLU
Synonym Slot
Change Chat Mode
The
@Repeat Limit
⁠
@Subslot
⁠
is designed to exit the loop when the
@Limit on the number of iterations of the cycle of one Repeat Slot
⁠
or the
@Limit on the number of iterations of the cycle per minute per Company
⁠
is reached
Complex Slot: Child Slot
No
No
Yes
Yes
No
​
There are no rows in this table
⁠

Creating a Slot

Select the
@Script Branch
⁠
in which you want to create a
@Slot
⁠
.
Click + to add a
@Slot
⁠
— this button is displayed wherever it is possible to add a
@Slot
⁠
. ​
image.png
⁠
⁠
Select the appropriate
@Slot
⁠
type from the drop-down list. The drop-down list offers only those
@Slot
⁠
s that can be located in a given location in the
@Script
⁠
according to the
@Slot Neighborhood Rules
⁠
. ​
image.png
⁠
⁠

Deleting Slots

Deleting an individual Slot

To delete an individual
@Slot
⁠
, right-click on the desired
@Slot
⁠
and select the "Remove slot" function from the dropdown menu. ​
image.png
⁠
⁠
After clicking the button, a modal window will appear to confirm the action. ​
image.png
⁠
⁠
Click the "OK” button to confirm the deletion, or the “Cancel" button to cancel the deletion.
If the
@Slot
⁠
being deleted is referenced by a
@Jump
⁠
@Slot
⁠
, a modal window will appear: ​
image.png
⁠
⁠
In this case, you will need to find the
@Jump
⁠
@Slot
⁠
s that refer to the deleted
@Slot
⁠
and modify the Destination field in those
@Slot
⁠
s, or delete the
@Jump
⁠
@Slot
⁠
s themselves. The modal window contains a "SHOW THESE JUMPS" button, which, when clicked, performs an for the
@Slot
⁠
s listed in the modal window.
Some
@Slot
⁠
s cannot be deleted. In the dropdown menus of such
@Slot
⁠
s, the "Remove slot" button is not clickable. The following cannot be deleted separately:
⁠
@Slot
⁠
s located between
@Slot
⁠
s that cannot be adjacent according to the
@Slot Neighborhood Rules
⁠
;
⁠
@Complex Slot
⁠
s: both
@Parent Slot
⁠
s and
@Child Slot
⁠
s.

Deleting a Scenario Branch

To delete an entire
@Script Branch
⁠
following a specific
@Slot
⁠
, right-click on that
@Slot
⁠
and select the “Remove branch” function from the dropdown menu. ​
image.png
⁠
⁠
After clicking the button, a modal window will appear to confirm the action. ​
image.png
⁠
⁠
Click the "OK” button to confirm the deletion, or the “Cancel" button to cancel the deletion.
The “Remove branch” button is always clickable, but deleting a
@Script Branch
⁠
is only possible in the following cases:
It is possible to delete a
@Script Branch
⁠
following any
@Standalone Slot
⁠
s and any
@Parent Slot
⁠
s;
It is possible to delete a
@Script Branch
⁠
following manually created
@result
⁠
@Subslot
⁠
s (see the article " ");
It is possible to delete a
@Script Branch
⁠
following any
@button
⁠
@Subslot
⁠
s, provided that after deletion, at least one
@button
⁠
@Subslot
⁠
remains in the
@Button Menu
⁠
(see the article “");
It is possible to delete a
@Script Branch
⁠
following any
@condition
⁠
@Subslot
⁠
s, except for the
@Subslot
⁠
with a value of true, provided that after deletion, the
@Transition Rule
⁠
has at least two
@condition
⁠
@Subslot
⁠
s remaining (see the article "");
It is possible to delete a
@Script Branch
⁠
following any
@intent
⁠
@Subslot
⁠
s, provided that after deletion,
@NLU
⁠
has at least two
@intent
⁠
@Subslot
⁠
s remaining (see the article “");
It is possible to delete a
@Script Branch
⁠
if none of the
@Slot
⁠
s in it are referenced by a
@Jump
⁠
@Slot
⁠
. Otherwise, a modal window will appear after clicking the button: ​
image.png
⁠
⁠
In this case, you will need to find the
@Jump
⁠
@Slot
⁠
s that refer to the deleted
@Slot
⁠
and modify the Destination field in those
@Slot
⁠
s, or delete the
@Jump
⁠
@Slot
⁠
s themselves. The modal window contains a "SHOW THESE JUMPS" button, which, when clicked, performs an for the
@Slot
⁠
s listed in the modal window.
In cases other than those listed above, an error message will appear at the bottom center: ​
image.png
⁠
⁠
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.