Managed Bots

Managed Bots

This feature will allow you to take advantage of EDDI's automatic management of bots, it is possible to avoid creating conversations and managing them manually, but let them be managed by EDDI.

This will act as a shortcut to start directly a conversation with a bot that covers a specific intent.

But first you will have to set up a BotTrigger.

BotTrigger

The request model

{
"intent": "string",
"botDeployments": [
{
"environment": "restricted",
"botId": "string",
"initialContext": {
"additionalProp1": {
"type": "string",
"value": {}
},
"additionalProp2": {
"type": "string",
"value": {}
},
"additionalProp3": {
"type": "string",
"value": {}
}
}
}
]
}

Description of the request model

Element

Description

intent

(String) keyword or phrase (camel case or with '-') that will be used in managed bots to trigger the bots defined in this model

botDeployments

(Array:<BotDeployment>) array of BotDeployment. If multiple botDeployments are defined, one will be picked randomly.

environment

(String) the environment that you would like

botId

(String) the id of the bot that you want to create the botTrigger for it.

initialContext

(Array <Object> ) As context can be handed over on each request to the bot, initialContext allows the definition of context the bot should get at the very first conversation step when a conversation with the bot is started (only way to get context to the bot in the first conversation step)

BotTrigger API endpoints

HTTP Method

API Endpoint

Request Body

Response

DELETE

/bottriggerstore/bottriggers/{intent}

N/A

N/A

GET

/bottriggerstore/bottriggers/{intent}

N/A

Bot Triggers-model

PUT

/bottriggerstore/bottriggers/{intent}

Bot Triggers-model

N/A

POST

/bottriggerstore/bottriggers

Bot Triggers-model

N/A

Triggering a ManagedBot

To trigger a managed bot you will have to call the following API endpoints.

API Methods

HTTP Method

API Endpoint

Request Body

Response

GET

/managedbots​/{intent}​/{userId}

N/A

Conversation model

POST

/managedbots​/{intent}​/{userId}

Input model

N/A

POST

/managedbots​/{intent}​/{userId}​/endConversation

Input model

N/A

Description API endpoint required path parameters

Element

Description

{intent}​

(String) the label/keyword used originally to point to this BotTrigger

{userId}​

(String) used to specify the user who triggered the conversation

Example :

1/Create a BotTrigger

Request URL:

POST http://localhost:7070//bottriggerstore/bottriggers

Request Body

{
"intent": "weather_trigger",
"botDeployments": [
{
"environment": "unrestricted",
"botId": "5bf5418c46e0fb000b7636d0",
"initialContext": {}
}
]
}

Response Body

no content

Response Code

200

Response Headers

access-control-allow-headers: authorization, Content-Type
access-control-allow-methods: GET, PUT, POST, DELETE, PATCH, OPTIONS
access-control-allow-origin: *
access-control-expose-headers: location
connection: Keep-Alive
content-length: 0
date: Mon, 18 Mar 2019 00:31:07 GMT
keep-alive: timeout=5, max=100
server: Apache/2.4.29 (Ubuntu)

2/Trigger the ManagedBot

Request URL:

POST http://localhost:7070/managedbots/weather_trigger/myUserId

Request Body

{
"input": "Hello managed bot!",
"context": {}
}

Response Body

{
"botId": "5bf5418c46e0fb000b7636d0",
"botVersion": 10,
"userId": "myUserId",
"environment": "unrestricted",
"conversationState": "READY",
"redoCacheSize": 0,
"conversationOutputs": [
{
"input": "Hello managed bot!",
"expressions": "unknown(Hello), unknown(managed), unknown(bot!)",
"intents": [
"unknown",
"unknown",
"unknown"
]
}
],
"conversationProperties": {},
"conversationSteps": [
{
"conversationStep": [
{
"key": "input:initial",
"value": "Hello managed bot!"
}
],
"timestamp": 1552869578596
}
]
}

Response Code

200

Response Headers

access-control-allow-headers: authorization, Content-Type
access-control-allow-methods: GET, PUT, POST, DELETE, PATCH, OPTIONS
access-control-allow-origin: *
access-control-expose-headers: location
connection: Keep-Alive
content-length: 0
date: Mon, 18 Mar 2019 00:31:07 GMT
keep-alive: timeout=5, max=100
server: Apache/2.4.29 (Ubuntu)