curl --request POST \
--url https://api.eu.volubile.ai/v1/campaigns \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"name": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2024-07-30",
"timeSlots": [
{
"startTime": "10:30",
"endTime": "12:30"
}
],
"batchSize": 500,
"days": [],
"retry": {
"max": 1,
"delay": 123,
"retryOn": [
"<string>"
]
},
"recipients": [
{
"phone": "+33612345678",
"context": {
"firstName": "firstname",
"lastName": "lastname",
"orderNumber": "5HZ99FRT"
}
}
],
"timezone": "Europe/Paris"
}
'import requests
url = "https://api.eu.volubile.ai/v1/campaigns"
payload = {
"name": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2024-07-30",
"timeSlots": [
{
"startTime": "10:30",
"endTime": "12:30"
}
],
"batchSize": 500,
"days": [],
"retry": {
"max": 1,
"delay": 123,
"retryOn": ["<string>"]
},
"recipients": [
{
"phone": "+33612345678",
"context": {
"firstName": "firstname",
"lastName": "lastname",
"orderNumber": "5HZ99FRT"
}
}
],
"timezone": "Europe/Paris"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
agentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
startDate: '2024-07-30',
timeSlots: [{startTime: '10:30', endTime: '12:30'}],
batchSize: 500,
days: [],
retry: {max: 1, delay: 123, retryOn: ['<string>']},
recipients: [
{
phone: '+33612345678',
context: {firstName: 'firstname', lastName: 'lastname', orderNumber: '5HZ99FRT'}
}
],
timezone: 'Europe/Paris'
})
};
fetch('https://api.eu.volubile.ai/v1/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eu.volubile.ai/v1/campaigns",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'agentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'startDate' => '2024-07-30',
'timeSlots' => [
[
'startTime' => '10:30',
'endTime' => '12:30'
]
],
'batchSize' => 500,
'days' => [
],
'retry' => [
'max' => 1,
'delay' => 123,
'retryOn' => [
'<string>'
]
],
'recipients' => [
[
'phone' => '+33612345678',
'context' => [
'firstName' => 'firstname',
'lastName' => 'lastname',
'orderNumber' => '5HZ99FRT'
]
]
],
'timezone' => 'Europe/Paris'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eu.volubile.ai/v1/campaigns"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2024-07-30\",\n \"timeSlots\": [\n {\n \"startTime\": \"10:30\",\n \"endTime\": \"12:30\"\n }\n ],\n \"batchSize\": 500,\n \"days\": [],\n \"retry\": {\n \"max\": 1,\n \"delay\": 123,\n \"retryOn\": [\n \"<string>\"\n ]\n },\n \"recipients\": [\n {\n \"phone\": \"+33612345678\",\n \"context\": {\n \"firstName\": \"firstname\",\n \"lastName\": \"lastname\",\n \"orderNumber\": \"5HZ99FRT\"\n }\n }\n ],\n \"timezone\": \"Europe/Paris\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.eu.volubile.ai/v1/campaigns")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2024-07-30\",\n \"timeSlots\": [\n {\n \"startTime\": \"10:30\",\n \"endTime\": \"12:30\"\n }\n ],\n \"batchSize\": 500,\n \"days\": [],\n \"retry\": {\n \"max\": 1,\n \"delay\": 123,\n \"retryOn\": [\n \"<string>\"\n ]\n },\n \"recipients\": [\n {\n \"phone\": \"+33612345678\",\n \"context\": {\n \"firstName\": \"firstname\",\n \"lastName\": \"lastname\",\n \"orderNumber\": \"5HZ99FRT\"\n }\n }\n ],\n \"timezone\": \"Europe/Paris\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.volubile.ai/v1/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2024-07-30\",\n \"timeSlots\": [\n {\n \"startTime\": \"10:30\",\n \"endTime\": \"12:30\"\n }\n ],\n \"batchSize\": 500,\n \"days\": [],\n \"retry\": {\n \"max\": 1,\n \"delay\": 123,\n \"retryOn\": [\n \"<string>\"\n ]\n },\n \"recipients\": [\n {\n \"phone\": \"+33612345678\",\n \"context\": {\n \"firstName\": \"firstname\",\n \"lastName\": \"lastname\",\n \"orderNumber\": \"5HZ99FRT\"\n }\n }\n ],\n \"timezone\": \"Europe/Paris\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2024-07-30",
"timeSlots": [
{
"startTime": "10:30",
"endTime": "12:30"
}
],
"batchSize": 123,
"retry": {
"max": 1,
"delay": 123,
"retryOn": [
"<string>"
]
},
"days": [],
"timezone": "Europe/Paris"
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"message": "<string>",
"errors": [
{
"field": "<string>",
"rejectedValue": {},
"message": "<string>"
}
]
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"message": "<string>",
"errors": [
{
"field": "<string>",
"rejectedValue": {},
"message": "<string>"
}
]
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"message": "<string>",
"errors": [
{
"field": "<string>",
"rejectedValue": {},
"message": "<string>"
}
]
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"message": "<string>",
"errors": [
{
"field": "<string>",
"rejectedValue": {},
"message": "<string>"
}
]
}Create a campaign
curl --request POST \
--url https://api.eu.volubile.ai/v1/campaigns \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"name": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2024-07-30",
"timeSlots": [
{
"startTime": "10:30",
"endTime": "12:30"
}
],
"batchSize": 500,
"days": [],
"retry": {
"max": 1,
"delay": 123,
"retryOn": [
"<string>"
]
},
"recipients": [
{
"phone": "+33612345678",
"context": {
"firstName": "firstname",
"lastName": "lastname",
"orderNumber": "5HZ99FRT"
}
}
],
"timezone": "Europe/Paris"
}
'import requests
url = "https://api.eu.volubile.ai/v1/campaigns"
payload = {
"name": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2024-07-30",
"timeSlots": [
{
"startTime": "10:30",
"endTime": "12:30"
}
],
"batchSize": 500,
"days": [],
"retry": {
"max": 1,
"delay": 123,
"retryOn": ["<string>"]
},
"recipients": [
{
"phone": "+33612345678",
"context": {
"firstName": "firstname",
"lastName": "lastname",
"orderNumber": "5HZ99FRT"
}
}
],
"timezone": "Europe/Paris"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
agentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
startDate: '2024-07-30',
timeSlots: [{startTime: '10:30', endTime: '12:30'}],
batchSize: 500,
days: [],
retry: {max: 1, delay: 123, retryOn: ['<string>']},
recipients: [
{
phone: '+33612345678',
context: {firstName: 'firstname', lastName: 'lastname', orderNumber: '5HZ99FRT'}
}
],
timezone: 'Europe/Paris'
})
};
fetch('https://api.eu.volubile.ai/v1/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eu.volubile.ai/v1/campaigns",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'agentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'startDate' => '2024-07-30',
'timeSlots' => [
[
'startTime' => '10:30',
'endTime' => '12:30'
]
],
'batchSize' => 500,
'days' => [
],
'retry' => [
'max' => 1,
'delay' => 123,
'retryOn' => [
'<string>'
]
],
'recipients' => [
[
'phone' => '+33612345678',
'context' => [
'firstName' => 'firstname',
'lastName' => 'lastname',
'orderNumber' => '5HZ99FRT'
]
]
],
'timezone' => 'Europe/Paris'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eu.volubile.ai/v1/campaigns"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2024-07-30\",\n \"timeSlots\": [\n {\n \"startTime\": \"10:30\",\n \"endTime\": \"12:30\"\n }\n ],\n \"batchSize\": 500,\n \"days\": [],\n \"retry\": {\n \"max\": 1,\n \"delay\": 123,\n \"retryOn\": [\n \"<string>\"\n ]\n },\n \"recipients\": [\n {\n \"phone\": \"+33612345678\",\n \"context\": {\n \"firstName\": \"firstname\",\n \"lastName\": \"lastname\",\n \"orderNumber\": \"5HZ99FRT\"\n }\n }\n ],\n \"timezone\": \"Europe/Paris\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.eu.volubile.ai/v1/campaigns")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2024-07-30\",\n \"timeSlots\": [\n {\n \"startTime\": \"10:30\",\n \"endTime\": \"12:30\"\n }\n ],\n \"batchSize\": 500,\n \"days\": [],\n \"retry\": {\n \"max\": 1,\n \"delay\": 123,\n \"retryOn\": [\n \"<string>\"\n ]\n },\n \"recipients\": [\n {\n \"phone\": \"+33612345678\",\n \"context\": {\n \"firstName\": \"firstname\",\n \"lastName\": \"lastname\",\n \"orderNumber\": \"5HZ99FRT\"\n }\n }\n ],\n \"timezone\": \"Europe/Paris\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.volubile.ai/v1/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"startDate\": \"2024-07-30\",\n \"timeSlots\": [\n {\n \"startTime\": \"10:30\",\n \"endTime\": \"12:30\"\n }\n ],\n \"batchSize\": 500,\n \"days\": [],\n \"retry\": {\n \"max\": 1,\n \"delay\": 123,\n \"retryOn\": [\n \"<string>\"\n ]\n },\n \"recipients\": [\n {\n \"phone\": \"+33612345678\",\n \"context\": {\n \"firstName\": \"firstname\",\n \"lastName\": \"lastname\",\n \"orderNumber\": \"5HZ99FRT\"\n }\n }\n ],\n \"timezone\": \"Europe/Paris\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startDate": "2024-07-30",
"timeSlots": [
{
"startTime": "10:30",
"endTime": "12:30"
}
],
"batchSize": 123,
"retry": {
"max": 1,
"delay": 123,
"retryOn": [
"<string>"
]
},
"days": [],
"timezone": "Europe/Paris"
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"message": "<string>",
"errors": [
{
"field": "<string>",
"rejectedValue": {},
"message": "<string>"
}
]
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"message": "<string>",
"errors": [
{
"field": "<string>",
"rejectedValue": {},
"message": "<string>"
}
]
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"message": "<string>",
"errors": [
{
"field": "<string>",
"rejectedValue": {},
"message": "<string>"
}
]
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"message": "<string>",
"errors": [
{
"field": "<string>",
"rejectedValue": {},
"message": "<string>"
}
]
}Authorizations
Your API key.
Body
Name of the campaign
Unique identifier of the OUTBOUND agent to perform the campaign with
Start date of the campaign
"2024-07-30"
Calls will only be performed during the allowed time slots: 10:00-13:00 and 14:00-20:00. If the specified time slots overlap partially with these intervals, only the overlapping portion will be used. For example: if "11:00-15:00" is provided, calls will occur from 11:00 to 13:00 and 14:00 to 15:00. Maximum of 2 time slots are allowed
Show child attributes
Show child attributes
The number of calls per day, minimum 1, maximum 1000
1 <= x <= 1000Days of the campaign
Days of the campaign
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY Retry parameters when the contact cannot be reached
Show child attributes
Show child attributes
List of recipients to call, minimum 1, maximum 1000
Show child attributes
Show child attributes
The timezone of the campaign
"Europe/Paris"
Response
Created
Unique identifier of the campaign
Name of the campaign
Unique identifier of the agent to perform the campaign with
Start date of the campaign
"2024-07-30"
Timeslots of the campaign (when the calls will be performed during the day). Max 2 timeslots
Show child attributes
Show child attributes
The number of calls per...
Retry parameters when the contact cannot be reached
Show child attributes
Show child attributes
Days of the campaign
Days of the campaign
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY Status of the campaign
ACTIVE, PAUSED, CANCELLED The timezone of the campaign
"Europe/Paris"