curl --request PUT \
--url https://api.messaging.phonovation.com/ccaas/1/bots/{botId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"displayName": "My Whatsapp Bot",
"webhookUrl": "www.webhookurl.com/link1",
"destination": "353861234594",
"channel": "WHATSAPP",
"messagePersistencePolicy": "PERSIST_ALL",
"enabled": true,
"sessionTimeoutInSec": 120
}
'import requests
url = "https://api.messaging.phonovation.com/ccaas/1/bots/{botId}"
payload = {
"displayName": "My Whatsapp Bot",
"webhookUrl": "www.webhookurl.com/link1",
"destination": "353861234594",
"channel": "WHATSAPP",
"messagePersistencePolicy": "PERSIST_ALL",
"enabled": True,
"sessionTimeoutInSec": 120
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.messaging.phonovation.com/ccaas/1/bots/{botId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"displayName\": \"My Whatsapp Bot\",\n \"webhookUrl\": \"www.webhookurl.com/link1\",\n \"destination\": \"353861234594\",\n \"channel\": \"WHATSAPP\",\n \"messagePersistencePolicy\": \"PERSIST_ALL\",\n \"enabled\": true,\n \"sessionTimeoutInSec\": 120\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
HttpResponse<String> response = Unirest.put("https://api.messaging.phonovation.com/ccaas/1/bots/{botId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"displayName\": \"My Whatsapp Bot\",\n \"webhookUrl\": \"www.webhookurl.com/link1\",\n \"destination\": \"353861234594\",\n \"channel\": \"WHATSAPP\",\n \"messagePersistencePolicy\": \"PERSIST_ALL\",\n \"enabled\": true,\n \"sessionTimeoutInSec\": 120\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.messaging.phonovation.com/ccaas/1/bots/{botId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'displayName' => 'My Whatsapp Bot',
'webhookUrl' => 'www.webhookurl.com/link1',
'destination' => '353861234594',
'channel' => 'WHATSAPP',
'messagePersistencePolicy' => 'PERSIST_ALL',
'enabled' => true,
'sessionTimeoutInSec' => 120
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
displayName: 'My Whatsapp Bot',
webhookUrl: 'www.webhookurl.com/link1',
destination: '353861234594',
channel: 'WHATSAPP',
messagePersistencePolicy: 'PERSIST_ALL',
enabled: true,
sessionTimeoutInSec: 120
})
};
fetch('https://api.messaging.phonovation.com/ccaas/1/bots/{botId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "97457D13B1FC79AF3C1A1096AE7E77AB",
"displayName": "New Whatsapp Bot",
"webhookUrl": "www.newwebhookurl.com/newlink",
"destination": "353861234594",
"channel": "WHATSAPP",
"messagePersistencePolicy": "PERSIST_ALL",
"enabled": false,
"sessionTimeoutInSec": 120
}Update bot
Use this method to update a bot. More info
Required scope: Enable one of: conversations:manage.
curl --request PUT \
--url https://api.messaging.phonovation.com/ccaas/1/bots/{botId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"displayName": "My Whatsapp Bot",
"webhookUrl": "www.webhookurl.com/link1",
"destination": "353861234594",
"channel": "WHATSAPP",
"messagePersistencePolicy": "PERSIST_ALL",
"enabled": true,
"sessionTimeoutInSec": 120
}
'import requests
url = "https://api.messaging.phonovation.com/ccaas/1/bots/{botId}"
payload = {
"displayName": "My Whatsapp Bot",
"webhookUrl": "www.webhookurl.com/link1",
"destination": "353861234594",
"channel": "WHATSAPP",
"messagePersistencePolicy": "PERSIST_ALL",
"enabled": True,
"sessionTimeoutInSec": 120
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.messaging.phonovation.com/ccaas/1/bots/{botId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"displayName\": \"My Whatsapp Bot\",\n \"webhookUrl\": \"www.webhookurl.com/link1\",\n \"destination\": \"353861234594\",\n \"channel\": \"WHATSAPP\",\n \"messagePersistencePolicy\": \"PERSIST_ALL\",\n \"enabled\": true,\n \"sessionTimeoutInSec\": 120\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
HttpResponse<String> response = Unirest.put("https://api.messaging.phonovation.com/ccaas/1/bots/{botId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"displayName\": \"My Whatsapp Bot\",\n \"webhookUrl\": \"www.webhookurl.com/link1\",\n \"destination\": \"353861234594\",\n \"channel\": \"WHATSAPP\",\n \"messagePersistencePolicy\": \"PERSIST_ALL\",\n \"enabled\": true,\n \"sessionTimeoutInSec\": 120\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.messaging.phonovation.com/ccaas/1/bots/{botId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'displayName' => 'My Whatsapp Bot',
'webhookUrl' => 'www.webhookurl.com/link1',
'destination' => '353861234594',
'channel' => 'WHATSAPP',
'messagePersistencePolicy' => 'PERSIST_ALL',
'enabled' => true,
'sessionTimeoutInSec' => 120
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
displayName: 'My Whatsapp Bot',
webhookUrl: 'www.webhookurl.com/link1',
destination: '353861234594',
channel: 'WHATSAPP',
messagePersistencePolicy: 'PERSIST_ALL',
enabled: true,
sessionTimeoutInSec: 120
})
};
fetch('https://api.messaging.phonovation.com/ccaas/1/bots/{botId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "97457D13B1FC79AF3C1A1096AE7E77AB",
"displayName": "New Whatsapp Bot",
"webhookUrl": "www.newwebhookurl.com/newlink",
"destination": "353861234594",
"channel": "WHATSAPP",
"messagePersistencePolicy": "PERSIST_ALL",
"enabled": false,
"sessionTimeoutInSec": 120
}Authorizations
This is the most secure authorization type and the one with the most flexibility.
API keys can be generated by calling the dedicated API method. Furthermore, API keys can have a limited scope and cover only some API methods. Lastly, they can be revoked at any time. This range of possibilities makes API keys well suited for separating the API access rights across multiple applications or use cases. Finally, the loss of an API key is easily manageable.
You can manage your API keys from GUI, or programmatically with dedicated API.
API key Authorization header example:
Authorization: App 003026bbc133714df1834b8638bb496e-8f4b3d9a-e931-478d-a994-28a725159ab9
Path Parameters
Id of the Bot being updated.
Body
Bot name to be displayed.
255Bot destination phone number, FB messenger Id or live chat widget Id.
255SMS, VIBER, FACEBOOK_MESSENGER, WHATSAPP, RCS, UNKNOWN, EMAIL, LIVE_CHAT, UNUSED, VOICE, VIDEO, APPLE_BUSINESS_CHAT, LINE, GOOGLE_BUSINESS_MESSAGES, TELEGRAM, CALLS, INTERNAL, VIBER_BOT, FACEBOOK_POST, INSTAGRAM_POST, TWITTER_POST, INSTAGRAM_MESSAGING, GOOGLE_PLAY, KAKAO_SANGDAM, TWITTER_DM, WHATSAPP_CALLS, VIBER_CALLS, OPEN_CHANNEL, TIKTOK, ZALO Webhook url the message will be forwarded to.
2000Bot enable/disable toggle.
Message persistence policy. If set to PERSIST_NONE, messages exchanged between customers and bot will not be persisted to the database nor visible to agents once they take over the conversation.
PERSIST_ALL, PERSIST_NONE Time elapsed from last client message, after which conversation will be closed. If not set, conversation will be closed after 24 hours.
60 <= x <= 86400Show child attributes
Show child attributes
Webhook url on which will be automatically forwarded all events.
2000Show child attributes
Show child attributes
Response
OK
Bot name to be displayed.
255Bot destination phone number, FB messenger ID or live chat widget ID.
255SMS, VIBER, FACEBOOK_MESSENGER, WHATSAPP, RCS, UNKNOWN, EMAIL, LIVE_CHAT, UNUSED, VOICE, VIDEO, APPLE_BUSINESS_CHAT, LINE, GOOGLE_BUSINESS_MESSAGES, TELEGRAM, CALLS, INTERNAL, VIBER_BOT, FACEBOOK_POST, INSTAGRAM_POST, TWITTER_POST, INSTAGRAM_MESSAGING, GOOGLE_PLAY, KAKAO_SANGDAM, TWITTER_DM, WHATSAPP_CALLS, VIBER_CALLS, OPEN_CHANNEL, TIKTOK, ZALO Webhook url the message will be forwarded to.
2000Bot enable/disable toggle.
Message persistence policy. If set to PERSIST_NONE, messages exchanged between customers and bot will not be persisted to the database nor visible to agents once they take over the conversation.
PERSIST_ALL, PERSIST_NONE Time elapsed from last client message, after which conversation will be closed. If not set, conversation will be closed after 24 hours.
60 <= x <= 86400Show child attributes
Show child attributes
2000Show child attributes
Show child attributes