Skip to main content

Bots

Overview​

A bot is an automation that can be triggered either through a survey or slash command in the channel workspace. Once triggered, a bot runs a routine based on the stages or steps that were programmed.

additional resources

These are just some of the most basic API requests. For a complete list of endpoints, consult our API documentation on Swagger.

Get All Bots​

Returns all the bots that exist within the company.

GET /bots

Endpoint URL​

https://www.cotalker.com/api/v1/bots

Headers​

HeaderDescriptionRequiredValues
AuthorizationSends your access token to make an API request.
Click here to see how to obtain an access token.
RequiredBearer $ACCESS_TOKEN

Request Sample​

curl --location --request GET 'https://www.cotalker.com/api/v1/bots' \
--header 'Authorization: Bearer $ACCESS_TOKEN'

Response Sample​

Responses follow the COTBots data model.


Get Bot by Id​

Returns the bot indicated by its Id.

GET /bots/{id}

Endpoint URL​

https://www.cotalker.com/api/v1/bots/{id}

Path Parameters​

ParameterDescriptionTypeRequiredNotes
idThe ObjectId of the bot that is to be returned.ObjectId<COTBot>Required

Headers​

HeaderDescriptionRequiredValues
AuthorizationSends your access token to make an API request.
Click here to see how to obtain an access token.
RequiredBearer $ACCESS_TOKEN

Request Sample​

curl --location --request GET 'https://www.cotalker.com/api/v1/bots/618a69512c7cae88b3aa2fe3' \
--header 'Authorization: Bearer ACCESS_TOKEN'

Response Sample​

The response follows the COTBot data model.


Create a New Bot​

Creates a new bot within the company.

POST /bots

Endpoint URL​

https://www.cotalker.com/api/v1/bots

Headers​

HeaderDescriptionRequiredValues
AuthorizationSends your access token to make an API request.
Click here to see how to obtain an access token.
RequiredBearer $ACCESS_TOKEN
Content-TypeIndicates the body's format.Requiredapplication/json

Request Body​

Only required fields are listed below. For a complete schema description, please go to the COTBot data model. Unrequired fields that are not submitted are either filled in automatically or left blank.

ElementDescriptionTypeRequiredNotes
nameThe bot's name.stringRequired

Request Sample​

Bot created with the minimum required fields.

curl --location --request POST 'https://www.cotalker.com/api/v1/bots' \
--header 'Authorization: Bearer $ACCESS_TOKEN' \
--data-raw '{
"name": "test bot"
}'

Response Sample​

Go to COTBot for a complete description of the response.

{
"parametrizedBot": {
"default": {
"stages": []
},
"stages": []
},
"version": 0,
"process": "none",
"isActive": true,
"global": false,
"extraData": [],
"_id": "61adff87cc298ff6f5050283",
"name": "test bot",
"company": "6136968b580aaf2b0e49d844",
"createdAt": "2021-12-06T12:14:17.323Z",
"commands": [],
"__v": 0
}

Update State Machine​

Updates or edits the indicated bot.

PATCH /bots/{id}

Endpoint URL​

https://www.cotalker.com/api/v1/bots/{id}

Path Parameters​

ParameterDescriptionTypeRequiredNotes
idThe ObjectId of the bot that is to be modified.ObjectId<COTBot>Required

Headers​

HeaderDescriptionRequiredValues
AuthorizationSends your access token to make an API request.
Click here to see how to obtain an access token.
RequiredBearer $ACCESS_TOKEN
Content-TypeSets the body's format.Requiredapplication/json

Request Body​

Only the fields that are being updated or added are required to be put into the body. For a complete schema description, please go to the COTBot data model.

Request Sample​

This request adds the way the bot is summoned and the routine it follows.

curl --location --request PATCH 'https://www.cotalker.com/api/v1/bots/61adff87cc298ff6f5050283' \
--header 'Authorization: Bearer $ACCESS_BOT' \
--header 'Content-Type: application/json' \
--data-raw '{
"commands": [
{
"surveyIds": [],
"isActive": true,
"showHelp": true,
"_id": "61ae063c2a3aad0d189d5f27",
"description": "",
"slashCmd": "sendemail",
"isSlash": true,
"isSurvey": false,
"arguments": []
}
],
"parametrizedBot": {
"start": "email",
"maxIterations": 2,
"stages": [
{
"_id": "61ae064f3ed2961e152dcddc",
"key": "email",
"name": "PBEmail",
"version": null,
"data": {
"subject": "Hey! We need to talk to you",
"content": {
"recipientName": "",
"recipientEmail": "",
"companyName": "ACME",
"title": [
"Your team is looking for you."
],
"action": "",
"code": "",
"messageA": "$JOIN# #Your presence is requested in the #($VALUE#channel|nameDisplay)# channel.",
"messageB": ""
},
"targets": [
"$VALUE#cmdArgs"
],
"cc": []
},
"next": {
"DEFAULT": "message"
},
"customNetworkRequest": []
},
{
"_id": "61ae067aa58401211950b7f3",
"key": "message",
"name": "PBMessage",
"data": {
"content": "📩 Email sent ✅",
"contentType": "text/system",
"sentBy": "$VALUE#user|_id",
"channelIds": "$VALUE#channel|_id"
},
"next": {},
"customNetworkRequest": []
}
],
"version": "v3"
}
}'

Response Sample​

Go to COTBot for a complete description of the response.

{
"parametrizedBot": {
"start": "email",
"maxIterations": 2,
"stages": [
{
"_id": "61ae064f3ed2961e152dcddc",
"key": "email",
"name": "PBEmail",
"version": null,
"data": {
"subject": "Hey! We need to talk to you",
"content": {
"recipientName": "",
"recipientEmail": "",
"companyName": "ACME",
"title": [
"Your team is looking for you."
],
"action": "",
"code": "",
"messageA": "$JOIN# #Your presence is requested in the #($VALUE#channel|nameDisplay)# channel.",
"messageB": ""
},
"targets": [
"$VALUE#cmdArgs"
],
"cc": []
},
"next": {
"DEFAULT": "message"
},
"customNetworkRequest": []
},
{
"_id": "609c1d542f0eac0008ee17ce",
"key": "message",
"name": "PBMessage",
"data": {
"content": "📩 Email sent ✅",
"contentType": "text/system",
"sentBy": "$VALUE#user|_id",
"channelIds": "$VALUE#channel|_id"
},
"next": {},
"customNetworkRequest": []
}
],
"version": "v3"
},
"version": 0,
"process": "none",
"isActive": true,
"global": false,
"extraData": [],
"_id": "61adff87cc298ff6f5050283",
"name": "test bot",
"company": "618a696218446b289ab7b847",
"createdAt": "2021-12-06T12:14:17.323Z",
"commands": [
{
"surveyIds": [],
"isActive": true,
"showHelp": true,
"_id": "61ae063c2a3aad0d189d5f27",
"description": "",
"slashCmd": "sendemail",
"isSlash": true,
"isSurvey": false,
"arguments": []
}
],
"__v": 1
}