Widgets
In this section we will describe API methods for working with widgets.
Table of Contents
- Widgets List
- Getting the widget info by its code
- Installing the widget into the account
- Uninstalling widget
- SalesBot widget block execution confirmation
Widgets List
Method
GET /api/v4/widgets
Description
This method returns an aggregated list of public widgets installed on the account as well as widgets added by the current user.
Limitations
Methos is available for all account users.
GET parameters
Parameter | Data type | Description |
---|---|---|
page | int | Sample page |
limit | int | The number of entities returned in the response of one request (limit – 250) |
Data type header when the request is successful
Content-Type: application/hal+json
Data type header in case of an error
Content-Type: application/problem+json
HTTP response codes.
Response code | Case |
---|---|
200 | Request successful |
401 | User is not authorized |
Response parameters
Method returns a collection of widget models. The properties of the model are listed below.
Parameter | Data type | Description |
---|---|---|
id | int | Widget ID |
code | string | Widget code |
version | string | Widget version |
rating | string|float | Widget rating |
settings_template | array | An array of widget settings fields |
settings_template[0] | object | Widget settings field |
settings_template[0][key] | string | Field value key |
settings_template[0][name] | string | Widget settings field name |
settings_template[0][type] | string | Widget settings field data type (text, pass, custom, users, or users_lp) |
settings_template[0][is_required] | bool | Defines whether a setting is mandatory |
is_lead_source | bool | Defines whether a widget can be set as a lead source |
is_work_with_dp | bool | Defines whether a widget is available in Digital Pipeline |
is_crm_template | bool | Defines whether a widget is a CRM template |
client_uuid | string|null | UUID of the widget’s oAuth integration |
is_active_in_account | bool | Defines whether the widget is installed in the account |
pipeline_id | int | Pipeline ID where a widget is set as a lead source |
Response example
{
"_page": 1,
"_links": {
"self": {
"href": "https://example.kommo.com/api/v4/widgets?limit=2&page=1"
},
"next": {
"href": "https://example.kommo.com/api/v4/widgets?limit=2&page=2"
}
},
"_embedded": {
"widgets": [
{
"id": 742,
"code": "amo_dropbox",
"version": "0.0.13",
"rating": "2,8",
"settings_template": [
{
"key": "conf",
"name": "custom",
"type": "custom",
"is_required": false
}
],
"is_lead_source": false,
"is_work_with_dp": false,
"is_crm_template": false,
"client_uuid": null,
"is_active_in_account": false,
"pipeline_id": null,
"_links": {
"self": {
"href": "https://example.kommo.com/api/v4/widgets/amo_dropbox"
}
}
},
{
"id": 796,
"code": "amo_mailchimp",
"version": "1.1.12",
"rating": "3,4",
"settings_template": [
{
"key": "api",
"name": "custom",
"type": "custom",
"is_required": false
}
],
"is_lead_source": false,
"is_work_with_dp": false,
"is_crm_template": false,
"client_uuid": null,
"is_active_in_account": false,
"pipeline_id": null,
"_links": {
"self": {
"href": "https://example.kommo.com/api/v4/widgets/amo_mailchimp"
}
}
}
]
}
}
Getting the widget info by its code
Method
GET /api/v4/widgets/{widget_code}
Description
This method allows to get the information on a public widget or a private widget uploaded by the current user.
Limitations
Method is available for all account users
Data type header when the request is successful
Content-Type: application/hal+json
Data type header in case of an error
Content-Type: application/problem+json
HTTP response codes.
Response code | Case |
---|---|
200 | Request successful |
404 | Widget isn’t found or is unavailable |
401 | User is not authorized |
Response parameters
Method returns a widget model. The properties of the model are listed below.
Parameter | Data type | Description |
---|---|---|
id | int | Widget ID |
code | string | Widget code |
version | string | Widget version |
rating | string|float | Widget rating |
settings_template | array | An array of widget settings fields |
settings_template[0] | object | Widget settings field |
settings_template[0][key] | string | Field value key |
settings_template[0][name] | string | Widget settings field name |
settings_template[0][type] | string | Widget settings field data type (text, pass, custom, users, or users_lp) |
settings_template[0][is_required] | bool | Defines whether a setting is mandatory |
is_lead_source | bool | Defines whether a widget can be set as a lead source |
is_work_with_dp | bool | Defines whether a widget is available in Digital Pipeline |
is_crm_template | bool | Defines whether a widget is a CRM template |
client_uuid | string|null | UUID of the widget’s oAuth integration |
is_active_in_account | bool | Defines whether the widget is installed in the account |
pipeline_id | int | Pipeline ID where a widget is set as a lead source |
settings | array | Widget settings. The key is returned only when an integration requests its own settings |
Response example
{
"id": 742,
"code": "amo_dropbox",
"version": "0.0.13",
"rating": "2,8",
"settings_template": [
{
"key": "conf",
"name": "custom",
"type": "custom",
"is_required": false
}
],
"is_lead_source": false,
"is_work_with_dp": false,
"is_crm_template": false,
"client_uuid": null,
"is_active_in_account": false,
"pipeline_id": null,
"_links": {
"self": {
"href": "https://example.kommo.com/api/v4/widgets/amo_dropbox"
}
}
}
Installing the widget into the account
Method
POST /api/v4/widgets/{widget_code}
Description
This method allows installing the widget into the account.
Limitations
Method is available for administrator users only.
Request header
Content-Type: application/json
Request parameters
To install a widget, mandatory parameters based on the widget settings should be passed. Available field types and their format are listed below
Parameter | Data type | Description |
---|---|---|
text | string | Value for this type is passed as a regular string |
pass | string | Value for this type is passed as a regular string |
users | object | An object containing user ID as key and his extension number as value |
users_lp | object | An object containing user ID as key and an object with login and password as value |
users_lp[{user_id}][login] | object | User login |
users_lp[{user_id}][password] | object | User password |
An example of the request
In the following example we’ll pass fields required to install the amo_asterisk widget.
Fields “login” and “script_path” have the “text” type.
Field “password” has the “pass” type.
Field “phones” has the “users” type.
{
"login": "example",
"password": "eXaMp1E",
"phones": {
504141: "1039"
},
"script_path": "https://example.com/"
}
Data type header when the request is successful
Content-Type: application/hal+json
Data type header in case of an error
Content-Type: application/problem+json
HTTP response codes.
Response code | Case |
---|---|
200 | Widget has been installed successfully |
404 | Widget was not found |
401 | User is not authorized |
400 | Invalid data given. Details are available in the request response |
Response parameters
Method returns an object of the installed widget and its settings. The properties of the model are similar to properties returned in the widget getting method.
Response example
{
"id": 972,
"code": "amo_asterisk",
"version": "1.1.6",
"rating": "2,7",
"settings_template": [
{
"key": "login",
"name": "Login",
"type": "text",
"is_required": true
},
{
"key": "password",
"name": "Password",
"type": "pass",
"is_required": true
},
{
"key": "phones",
"name": "Phone numbers",
"type": "users",
"is_required": true
},
{
"key": "script_path",
"name": "Script path",
"type": "text",
"is_required": true
}
],
"is_lead_source": false,
"is_work_with_dp": false,
"is_crm_template": false,
"client_uuid": null,
"is_active_in_account": true,
"pipeline_id": null,
"settings": {
"login": "example",
"password": "eXaMp1E",
"phones": {
"504141": "1039"
},
"script_path": "https://example.com/"
},
"_links": {
"self": {
"href": "https://example.kommo.com/api/v4/widgets/amo_asterisk"
}
}
}
Uninstalling widget
Method
DELETE /api/v4/widgets/{widget_code}
Description
This method allows to uninstalli a widget by its code.
Limitations
Method is available for administrator users only.
Request header
Content-Type: application/json
HTTP response codes.
Response code | Case |
---|---|
204 | Widget has been uninstalled successfully |
404 | Widget was not found |
403 | Insufficient rights to call this method |
401 | User is not authorized |
Response parameters
Method does not return a body
SalesBot widget block execution confirmation
Method
POST /api/v4/{salesbot|marketingbot}/{bot_id}/continue/{continue_id}
Description
Method receives data after successful execution of the widget block in SalesBot and continues the Bot workflow.
You can read more about the Salesbot method widget_request here.
Limitations
Method is available for administrator users only.
Request header
Content-Type: application/json
Request parameters
If the widget needs to pass any data, it should be put into the “data” field as an array
Parameter | Data type | Description |
---|---|---|
data | array | Data for widget, can be acquired in the SalesBot code with the key {{json.ARRAY_KEY_NAME}}, where ARRAY_KEY_NAME is the name of the field passed into “data” |
An example of the request
In the following example, we’ll pass a “status” field to the widget. The widget will be able to get the field’s value (“success”) in any block after the widget_request by the {{json.status}} key.
{
"data": {
"status": "success"
}
}
HTTP response codes.
Response code | Case |
---|---|
202 | Widget has been successfully launched |
404 | Record of the widget awaiting the execution result was not found |
401 | User is not authorized |
Response parameters
Method does not return a body