Bots
Bots are a collection of workers and configuration that come together to meet a set of customer use cases. These are made up of at least one worker, and at least one way of understanding utterances.
Example Bot Definition
{
"Workers": [],
"State": "RUNNING",
"SecureSession": false,
"QuietTimeEnabled": false,
"NluManagementMode": "ServisBOT",
"Persona": "integration-bot",
"Organization": "steve",
"DisplayName": "langbot",
"Created": 1627553133508,
"Updated": 1627553133508,
"CreatedBy": "stephen.walsh@servisbot.com",
"Name": "langbot",
"Srn": "srn:botnet:eu-private-3:steve:bot:langbot",
"RelatedResources": [{
"ResourceType": "Bot",
"Alias": "langbotSpanish",
"Relationship": "LanguageChild",
"Properties": {
"Language": "es"
}
}]
}
- Created - [System Field] - Records the date when this bot was created.
- CreatedBy - [System Field] - Records user that created this bot.
- DisplayName - [Optional] - Human-readable non-unique name for the bot. Can accept spaces.
- Name - [Required] - Unique ID for the bot.
- NluManagementMode - [Required] - Describes what system is expected to own the updates of this bot’s NLP model. Remote is for “BYO” bot scenarios where training data should not be updated by ServisBOT.
- Organization -[System Field] - Describes what organization bot is a part of
- Persona - [Optional] - Changes what bot icon is used in portal
- QuietTimeEnabled - Deprecated field
- RelatedResources - [Optional] Describes relationships to other bots and services. See available configurations
- SecureSession - [Defaults to false] - Configuration for requiring end users to be authenticated with using the bot.
- Srn - [System Field] - System Resource Name
- State - [Required] - Running, Stopped, Paused states. Paused and Stopped bots cannot accept user input or incur billing charges.
- UpdatedBy - [System Field] - Records user that last updated
- Updated - [System Field] - Records date of last bot update. This refers to the bot object, and not its resources.
- Workers - [Required] - Units of work within a bot that process user input. See available worker types
Workers
The available worker types are:
- Action Flow Worker: Uses flow based programming to carry out a process when triggered through a Botnet Action.
- Creating a Flow Worker >
- Bring Your Own Bot (BYOB): Processes user input using a remote system/ home-grown bot application using ServisBOT BaaS
- Creating a byob >
- Classic Flow Worker: Uses flow based programming to configure the interaction of the bot.
- Creating a Flow Worker >
- Filter Worker: Have the ability to respond to page events and trigger botnet actions.
- Human Handover Workers
- NLP Workers: An integration with non-ServisBOT NLP engines such as Lex, Dialogflow or Watson. They all have different capabilities, strengths and weaknesses. The simplest way to get started with an NLP worker is to use our ServisBOT AI to process user input, this will require no external accounts and no integrations to get started.
Adding Workers to Bots
Workers can be added to a bot either through the Add Resource
button on a bots detail page in portal, or through the CLI manually by updating the definition of the bot.
Limitations/Exceptions
- Action flow workers should not be added to the same bot from which they will be triggered.
- Filter workers should always be added to the top of a bot’s worker array.
- When adding a worker from the CLI, the worker will have to be existing, or created through a previous step.
Language copies of a bot can be referenced in the RelatedResources
property. A bot can have many relationships or none.
A bot with a language copy child will have the following relationship
"RelatedResources": [{
"ResourceType": "Bot",
"Alias": "langbot-es",
"Relationship": "LanguageChild",
"Properties": {
"Language": "es"
}
}]
That child will have a reciprocal relationship with its parent bot.
"RelatedResources": [{
"ResourceType": "Bot",
"Alias": "langbot",
"Relationship": "LanguageParent",
"Properties": {
"Language": "en"
}
}],
Learn more