JavaScript in a script
Here are a few examples of how JS code can be used in projects:
- The bot can use variables to store certain information, such as client names, to be re-used during conversation.
- The bot can make calculations, check user information saved previously and respond depending on the result. For example, the bot can detect the channel used for the communication and display the UI depending on that channel.
JS code structure in a project
JS code in a project:
Object | Description |
---|---|
if else elseif | Conditional functions used to describe the rules of conditional transitions. |
script | Script inserts for making any calculations and calling external systems. |
init | Initialization scripts are executed only once at script load and are used to create global variables and bind pre/post processes. |
Linked JS files | Files are connected via require . Contains objects and functions available for use in any other scripts. |
Built-in variables | Variables provided by the platform that can be used in a bot script. |
Built-in functions | Special objects and functions provided by the platform. For example, they provide feature to call a match or external services. |
Built-in services | JS-libraries that are automatically loaded with each bot. |
JS files
You can define your logic directly in the .sc
script file. But we recommend moving all your JS code to a separate file. You will need to create a file with the .js
extension in the src
folder, e.g. functions.js
. Add functions to it that can later be called from the script file after the script
tag.
Please note that JS files contain objects and functions that can be used in any other script. Files are linked at the start of the script via the require
tag:
require: scripts/functions.js
Global scope
The global runtime context can be expressly accessed by the $global
similar to the window.document
entity in a browser. The global runtime context stores all the loaded functions and variables directly declared in JS files.
The $global
object can only be modified at the bot initialization stage when JS files are loaded and init
blocks are executed. The $global
object cannot be modified after the initialization is over.