The Chatbot can perform a webservice (API) call to an external system from within a dialogue for retrieving additional data.
If you would like to use this functionality, please contact our support ([email protected]). When the module is activated, an additional field for the URL (endpoint) of the target system appears in the detailed view of a dialogue. Furthermore there will be a field where you can choose the classical REST methods like GET, PUT, POST, DELETE for the call.
In our example, we are performing a request to a weather service for retrieving the current weather. The variable $openweather$ holds the desired place that the user wants to get the weather info for.
This is how the API response looks like:
{ "coord": { "lon": -0.13, "lat": 51.51 }, "weather": [ { "id": 500, "main": "Rain", "description": "light rain", "icon": "10d" } ], "base": "stations", "main": { "temp": 10.68, "pressure": 996, "humidity": 87, "temp_min": 9.44, "temp_max": 11.67 }, "visibility": 10000, "wind": { "speed": 3.1, "deg": 120 }, "clouds": { "all": 75 }, "dt": 1556174048, "sys": { "type": 1, "id": 1414, "message": 0.0109, "country": "GB", "sunrise": 1556167474, "sunset": 1556219532 }, "id": 2643743, "name": "London", "cod": 200 }
You can use JSON-Path for printing the API response to the bot-answer, e.g. $api.main.temp$ for the temperature. $api$ holds the JSON-Object of the response.
This is how the whole thing looks like in action:
You can also use the response in if-else conditions, for example for reacting on errors (e.g. just like in the above example, the text response will be returned only in case of success, $api.cod$ == 200).
Using special syntax you can save values from the API response to variables and make them available for further use: $temperature=($api.main.temp$)$ where $temperature$ is the variable the value should be saved to and $api.main.temp$ is the value of the response.
Note: For debugging purposes you can output the call made by the bot using a variable $api_request$.