Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
In SimpleOne, REST Bot Engine allows implementing connectors you to in with third-party services (such as messengers, AI systems, and so on) to solve various business tasks depending on the demand. As an example: when an incident is created, the responsible group receives notification to the specified specific messenger with the specified subject specified.
How to implement integrationTo integrate with the third-party service
, complete the following steps:
- Do Provide the preparations on the other side (register if needed, get an authorization token, check the API documentation).
- Create a bot type record.
- Configure the REST methods used to interact with the third-party service.
- Configure a bot instance.
- Configure Set up the routing parameters.
- Configure Set up the routing rules.
Create a bot type
A bot type is a connecting element for bot methods and bot instances. When created, you can easily specify which bots can use configured methods, and vice versa.
To create a new bot type, please complete the steps below:
- Navigate to Bots API → Bot Types.
- Click New and fill in the form, specify a Name for a bot type.
- Click Save or Save and Exit to apply the changes.
Configure REST bot methods
In this section, you can configure Configure the REST API methods provided by the third-party system to interact with it. Bot methods are bound with to routing rules and routing parameters.
To create and configure a new bot method, please complete the following steps below:
- Navigate to Bots API → Bot Methods.
- Click New and fill in the form.
- Click Save or Save and Exit to apply the changes.
Bot methods form fields
Field | Mandatory | Description | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Name | Y | Specify a method name. | |||||||||||||
URL Suffix | N | Specify a relative path in addition Addition to the request URL. It takes a relative path changing depending on the different methods. Full request URL is concatenated out of the constant part The full request URL consists of the constant part specified in the URL field of the bot instance and of this URL suffix. | |||||||||||||
Request method | N | Request method, for example, GET or POST. To add more request methods, use the Configure field functionality:
| |||||||||||||
Bot type | By specifying a bot type, you can choose which bots can use this method. This field references the Bot Type (sys_bot_type) table. | ||||||||||||||
Specify the request method. Available options:
| |||||||||||||||
Bot type | N | Specify the bot type that can use this method. | |||||||||||||
State parameter | N | Define the parameter that shows whether the request is successful or not. The field | State parameter | In this parameter, you can define whether the request was successful or not. It stores a string the response body must return in order for the request to be considered successful. If not filledleft empty, the request will be is always considered as successful (except for the errors on the instance). For exampleExample:
| |||||||||||
Headers | N | Specify In this field, you can specify the method headers if necessary. Variables usage is acceptable (variables must be angle-bracketed)in the angle brackets are allowed. In the following example below, the token from the bot instance will be is substituted instead of for the variable:
| |||||||||||||
Body | N | The Specify the body of the request. Variables usage is acceptable (variables must be angle-bracketed)in the angle brackets are allowed. In the following example below, the message is sent out to the messenger channel defined by the variable <routingvariable <routing_parameter_0> and routed to the thread in this channel defined by the variable <routingvariable <routing_parameter_1>. The content of this message is defined by the <content> the <content> variable. These variables should be defined in the Bot Routing Rule (will be described further below).
|
Configure a bot instance
Create a bot instance to perform integration further (use bot methods, routing rules).
To create a new bot, please complete the steps below:
- Navigate to Bots API → Bots.
- Click New and fill in the form.
- Click Save or Save and Exit to apply the changes.
Bot form fields
Field | Mandatory | Description |
---|---|---|
Name | Y | Specify a bot name. |
Bot type | Y | By specifying Specify a bot type, you can choose methods . A bot type includes methods that this bot can use. This field references the Bot Type (sys_bot_type) table. |
Token | N | Specify a token if the bot has an authorized access to third-party service. This token should be provided by the API provider. |
URL | Y | An Specify a URL for performing making requests. This part of the URL part is an constant onepermanent, unlike the URL suffixes specified for every each bot methodsmethod. |
Configure routing parameters
Routing The routing parameters are used in the bot's routing rules , they allow to be make them more specific.
The main purpose of this functionality is configuring correlations between to set ip a correlation between a column value upon a when the bot routing rule triggering is triggered, and a column value used in the request body.
To create a routing parameter, please complete the steps below:
- Navigate to Bots API → Routing Parameters.
- Click New and fill in the form.
- Click Save or Save and Exit to apply the changes.
Routing Parameter form fields
Field | Mandatory | Description | ||
---|---|---|---|---|
Bot method | Y | Specify the method related to this routing parameter. | ||
Column value | Y | Specify a column value for the additional routing. | ||
Parameter value | N | Specify the value for the parameter that will be substituted to the request body instead of substitutes the <routing_parameter> variable in the request body for the record having that has the value defined in the Column Value field in Column value in the specified column.
|
Configure bot routing rules
The Bot routing rules table contains conditions and rules to trigger; when conditions are met, the trigger performs executes a request to the external service. The request history can be found is in the Related Lists area for every each record.
To create a new bot routing rule, please complete the steps below:
- Navigate to Bots API → Bot Routing Rules.
- Click New and fill in the form.
- Click Save or Save and Exit to apply the changes.
Field | Mandatory | Description | ||||
---|---|---|---|---|---|---|
Name | Y | Specify a routing rule name. | ||||
Active | N | Select this checkbox to make activate the rule active or inactive. | ||||
Bot | Y | Specify the bot for which you need to configure the routing rule. This field references the Bot (sys_bot) table. | ||||
Bot method | Y | Specify a bot method related to this routing rule. This field references the Bot Method (sys_ bot _ method) table. | ||||
Business rule | N | The After specifying relevant bot and bot method, the relevant business-rule is generated and filled automatically after record saving; it the record is saved. It is based on the parameters defined in these essences; this the Bot and Bot method essences. This business-rule is to trigger on events in triggers events in the system and meeting that meets the rule conditions.
| ||||
Table | Y | Specify the table on which the routing rule will be working works on. | ||||
Routing by Columncolumn | N | Specify the columns that refers The multi-selection field referencing to the routing parameters.
| ||||
Use Response | N | Select this checkbox in case of when the processing of the designated REST response is needed. The When selected, the Use Response tab appears on the form. | ||||
When to Run tab | ||||||
Action Insert | N | Select this checkbox if the routing rule should perform actions when inserting a new record. | ||||
Action Update | N | Select this checkbox if the routing rule should perform actions when updating existing record. | ||||
Action Delete | N | Select this checkbox if the routing rule should perform actions when deleting existing record. | ||||
Order | Y | Specify the routing rule processing order. | ||||
Condition to run | N | Create a condition to meet before the routing rule is triggered. Use the Condition Builder to condition builder to build a filter that fits your you needs. You You can create complex AND and OR filters, more than one condition in one filter.
| ||||
Content tab | ||||||
Advanced content | N | Select this checkbox in case if the content transferred to the <content> variable must be dynamic. When checkedselected, the Content Script field appearsfield appears. | ||||
Content script | N | Specify the dynamic content that should be transferred to the <content> variable. Enter your script there and in the end return the content string value of the content using the return directive. | ||||
Content | ScriptN | Specify | content that should be transferred tothe | <content> variable. The content may bestatic (some text or instruction) | or dynamically generated. To generate content dynamically, select the Advanced content checkbox and enter your script into the Content Script fieldcontent that should be transferred to the <content> variable. | |
Use Response tab | ||||||
Response parameter | Y | Specify a path to the interested neccessary response parameter from the response body. Example: ts.user.id | ||||
Write to Tabletable | Y | Specify a table where to write down the parameter is stored. | ||||
Write to Columncolumn | Y | Specify a table column where to write down the parameter is stored. | ||||
Source Mapping Columnmapping column | Y | Specify the The table column where the routing rule triggers. Specify the Source Mapping Column mapping column and Target Mapping Column mapping column fields in case if the resulting table is another one than the table where the request triggersis triggered. | ||||
Target Mapping Columnmapping column | Y | Specify the The table column to put the request result. How it worksIt works in the following way: The request result is recorded into the Write to Tabletable table record where the values in the Source Mapping Columnmapping column and Target Mapping Columnmapping column columns match. It means that The value in the the Source Mapping Columnmapping column column of the Write to Tabletable table should match the value of the Target Mapping Columnmapping column of the Write to Tabletable table. If the values do not match, then the error is thrown and registered in the Bot Request History table. |
Bot request history
In there, the bot requests history to To check out the history of the requests to the third-party services is stored.To check out the history, please complete the following steps below.:
- Navigate to Bots API → Bot Request History.
- Click on the record you need to inspect.read.
Bot Request History form fields
Third step
Create a routing parameter. For this, create a record in the Routing Parameter (sys_routing_parameter) table. Fill in the field as described below:
Field | Description | ||
---|---|---|---|
Record ID | The record ID on which the request has been was generated. | ||
State | The request state. Available options:
| ||
Bot Routing Rule | Bot The bot routing rule on which the request has been generated. | ||
URL | The URL of the request specified. | ||
Method | Method The method of the request specified. | ||
Headers | Headers The headers of the request specified. | ||
Body | Body The body of the request specified. | ||
Response | This field contains The request response useful . It is used for debug or troubleshooting. In there, you You can find both the errors returned by third-party REST API, and the errors arisen on the server-side when making or sending a request. |
Implementation example
Consider an user case: you need to implement direct notification via messengers.
Input data you have:
First step
Create a notification method. For this, create a record in the Bot Method (sys_bot_method) table as described in this article above. Populate the Body field with the value below:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"channel": "<routing_parameter_0>",
"text": "<content>",
"as_user": "true",
"link_names": "true"
} |
In this example, the "channel": "<routing_parameter_0>" bundle specifies that the channel key will substitute the routing_parameter_0 parameter when the request is sent.
Second step
Create a notification rule. For this, create a record in the Bot Routing Rule (sys_bot_routing_rule) table.
In our user case, the trigger will be the new record creation in the Task table.
Routing parameters are defined in the Routing by Column field of the related Routing Rule record and used for sending messages. You can specify more than one parameter in this field numbered starting from 0 (see example below):
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"channel": "<routing_parameter_0>",
"thread": "<routing_parameter_1>",
"text": "<content>",
"as_user": "true",
"link_names": "true"
} |
To specify method content more precisely, use fields located in the Content tab of the Bot Routing Rule record.
Avoid using double quotes (" ") in bot routing rule content. Also, it is not allowed to put an odd number of backslashes in a row. If content is generated by a script in the Content Script field, then escape quotes and replace single backslashes (for example, by a slash) before returning values.
The code example below contains regular expression implementing necessary substitutions:
- single backslashes are replaced with slashes
- double quotes are escaped with a backslash
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
return `Comment: ${current.additional_comments}`
.replace(/(?<!\\)(?:((\\\\)*)\\)(?![\\/])/g, '\/')
.replace(/"/g, '\\"') |
a request was created or sent. |
Table of Contents | ||||
---|---|---|---|---|
|