Function API documentation

Actioname
Method
API URL
AddTime
POST
https://diabolocom.name/api.php?action=AddTime
Function description
Add minutes to the actual time (now), for example if you want to add 15 minutes to the actual time, use this function.
Allowed timecode values are: days, hours, minutes, seconds
Neccessary JSON request body
{
"start_time": "if empty then now will use as start time",
"timecode" : "days/hours/minutes/seconds",
"timetoadd" : "number to add",
"countrycode": "2 digits countrycode like FR,DE,UK,US",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": 200,
"actualtime": "20/08/2024 20:53:29",
"timetoadd": "1",
"timdecode": "seconds",
"newtime": "20/08/2024 20:53:29",
"dialerformattime": "2024-08-20T20:53:29",
"regular_time": "20-08-2024 20:53",
"single_date": "2024-08-20",
"singletime": "20:53:29",
"singletimeshort": "20:53",
"newtime_en": "08/20/2024 20:53:29",
"15_minutes_interval": "20:45",
"30_minutes_interval": "20:30",
"60_minutes_interval": "20:00",
"regular_date": "20-08-2024",
"Full_Interval_15": "20-08-2024 20:45",
"Full_Interval_30": "20-08-2024 20:30",
"weekday": "Tuesday",
"regular_date_german": "20.08.2024",
"dayname": "Erster Weihnachtstag"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "timetoadd is empty!"}
{"resultcode" => "400", "resultmessage" => "timetoadd is not a number!");}
{"resultcode" => "400", "resultmessage" => "No timecode for adding was provided. Allowed is hours, minutes , seconds or days!"}
{"resultcode" => "400", "resultmessage" => "The given timecode is not valid. Allowed is hours, minutes , seconds or days!");}
SubTime
POST
https://diabolocom.name/api.php?action=SubTime
Function description
Sub minutes to the actual time (now), for example if you want to sub 15 minutes to the actual time, use this function.
Allowed timecode values are: days, hours, minutes, seconds
Neccessary JSON request body
{
"start_time": "if empty then now will use as start time",
"timecode" : "days/hours/minutes/seconds",
"timetosub" : "number to sub",
"countrycode": "2 digits countrycode like FR,DE,UK,US",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": 200,
"actualtime": "20/08/2024 20:55:34",
"timetosub": "1",
"timdecode": "seconds",
"newtime": "20/08/2024 20:55:34",
"dialerformattime": "2024-08-20T20:55:34",
"regular_time": "20-08-2024 20:55",
"single_date": "2024-08-20",
"singletime": "20:55:34",
"singletimeshort": "20:55",
"newtime_en": "08/20/2024 20:55:34",
"15_minutes_interval": "20:45",
"30_minutes_interval": "20:30",
"60_minutes_interval": "20:00",
"regular_date": "20-08-2024",
"Full_Interval_15": "20-08-2024 20:45",
"Full_Interval_30": "20-08-2024 20:30",
"weekday": "Tuesday",
"regular_date_german": "20.08.2024",
"dayname": "Erster Weihnachtstag"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "timetoadd is empty!"}
{"resultcode" => "400", "resultmessage" => "timetoadd is not a number!");}
{"resultcode" => "400", "resultmessage" => "No timecode for adding was provided. Allowed is hours, minutes , seconds or days!"}
{"resultcode" => "400", "resultmessage" => "The given timecode is not valid. Allowed is hours, minutes , seconds or days!");}
Add
POST
https://diabolocom.name/api.php?action=Add
Function description
Add a value to an existing value. For example if you want to do 1+1.
Neccessary JSON request body
{
"actualvalue" : "Number",
"addvalue" : "Number",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"actualvalue":"1",
"addvalue":"1",
"result":2
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "Actual value is not a number!"}
{"resultcode" => "400", "resultmessage" => "Addvalue is not a number!";}
Sub
POST
https://diabolocom.name/api.php?action=Sub
Function description
Subtract a value from a given value. For example 2-1
Neccessary JSON request body
{
"actualvalue" : "Number",
"subtractvalue" : "Number",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"actualvalue":"2",
"subtractvalue":"1",
"result":1
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "Actualvalue is not a number!"}
{"resultcode" => "400", "resultmessage" => "Subtractvalue is not a number!";}
Multiply
POST
https://diabolocom.name/api.php?action=Multiply
Function description
Multiply 2 numbers with each other
Neccessary JSON request body
{
"value_one" : "2",
"value_two" : "2",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"value_one": "2",
"value_two": "2",
"result": 4
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "Value One is not a number!"}
{"resultcode" => "400", "resultmessage" => "Value Two is not a number!"}
Divide
POST
https://diabolocom.name/api.php?action=Divide
Function description
Divide 2 numbers with each other
Neccessary JSON request body
{
"value_one" : "Number",
"value_two" : "Number",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"value_one": "6",
"value_two": "5",
"result": "1.20",
"result_round_up": 2,
"result_rounded_down": 1
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "Value One is not a number!"}
{"resultcode" => "400", "resultmessage" => "Value Two is not a number!"}
Length
POST
https://diabolocom.name/api.php?action=Length
Function description
Get the length of a string
Neccessary JSON request body
{
"string" : "String",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"string": "Test",
"result": 4
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "String value is empty!"}
Remove Characters
POST
https://diabolocom.name/api.php?action=Remove_Characters
Function description
Remove characters out of a string
Neccessary JSON request body
{
"originalstring" : "String",
"removecharacters" : "Character to remove",
"replacecharacters" :"Character that should used for the replacement",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"originalstring": "Test",
"removecharaters": "t",
"replacecharacters": "",
"result": "Tes"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "ORIGINALSTRING value is empty!"}
{"resultcode" => "400", "resultmessage" => "REMOVECHARACTERS is missing!"}
{"resultcode" => "400", "resultmessage" => "REPLACECHARACTERS is missing!"}
Split into digit strings
POST
https://diabolocom.name/api.php?action=Split_into_digit_Strings
Function description
SPlit a string, based on the given length into smaller digit blocks
Neccessary JSON request body
{
"string" : "String",
"blocklength" : "A number that defines, after how many characters the string will be cutted into a new block.",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"string": "12345678",
"digitlength": "3",
"length": 8,
"Overallblocks": 3,
"Digitstring": "123 456 78 ",
"singleblocks": [
{
"block_0": "123 "
},
{
"block_1": "456 "
},
{
"block_2": "78 "
},
{
"block_3": " "
}
]
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "String value is empty!"}
{"resultcode" => "400", "resultmessage" => "Blocklength is empty!"}
Random
POST
https://diabolocom.name/api.php?action=Random
Function description
Respond with a random number between 2 integer values.
Neccessary JSON request body
{
"value_one" : "Number",
"value_two" : "Number",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"value_one": "1",
"value_two": "12",
"result": 11
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "Value_one is empty!"}
{"resultcode" => "400", "resultmessage" => "Value_one is not a number!"}
{"resultcode" => "400", "resultmessage" => "Value_two is empty!"}
{"resultcode" => "400", "resultmessage" => "Value_two is not a number!"}
Time Difference
POST
https://diabolocom.name/api.php?action=Time_Difference
Function description
Provides the time differences between 2 given dates
Neccessary JSON request body
{
"time_value_1" : "Date/Time value 1",
"time_value_2" : "Date/Time value 2",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": 200,
"time_value_1": {
"date": "2023-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"time_value_2": {
"date": "2023-12-15 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"years": 0,
"months": 11,
"days": 348,
"hours": 8352,
"minutes": 501120,
"seconds": 30067200,
"difference_in_hours": 8352,
"difference_in_minutes": 501120,
"difference_in_seconds": 30067200,
"timevalue1frame": "Past",
"timevalue2frame": "FUTURE"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "Time_Value_1 is empty!"}
{"resultcode" => "400", "resultmessage" => "Time_Value_2 is empty!"}
Split String
POST
https://diabolocom.name/api.php?action=Split_String
Function description
Provides the time differences between 2 given dates
Neccessary JSON request body
{
"string" : "STRING",
"split_string_start" : "Startpoint to split",
"split_string_end" : "Endpoint to split",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"string": "Testuser",
"split_string_start": 0,
"split_string_end": "7",
"result": "Testuse"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "Time_Value_1 is empty!"}
{"resultcode" => "400", "resultmessage" => "Time_Value_2 is empty!"}
Date Info
POST
https://diabolocom.name/api.php?action=Date_Info
Function description
Provides all relevant informations about a given date and optional about a given time.
Neccessary JSON request body
{
"date" : "22/12/2021 10:10:10",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Allowed date formats are as well: dd.mm.YYYY or dd-mm-YYYY.
Json result format and content
{
"resultcode": "200",
"originaldate": "22-05-2021 09:52",
"date_only" : "22-12-2021",
"time": "09:52",
"fulltime": "09:52:00",
"year": "2021",
"yearshort": "21",
"month_full": "May",
"month_short": "May",
"month_number": "05",
"day": "Saturday",
"dayshort": "Sat",
"daynumber": "22",
"hour": "09",
"meridiem": "AM",
"minutes": "52",
"seconds": "00",
"timezone": "Europe\/Berlin",
"leapyear": "0",
"calendarweek": "20",
"maxdaysmonth": "31",
"dialerformattime": "2021-05-22T09:52:00",
"date_reverse": "2021-05-22"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "Time_Value_1 is empty!"}
{"resultcode" => "400", "resultmessage" => "Time_Value_2 is empty!"}
Separate String
POST
https://diabolocom.name/api.php?action=separatestring
Function description
Separate a string and put a defined element between each single separation.
Neccessary JSON request body
{
"string" : "String",
"split_after" : "Amount of digits per block",
"split_symbol" : "Symbol to split the blocks with",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"string": "Teststring",
"split_after": "3",
"split_symbol": "-",
"result": "Tes-tst-rin-g-"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "Time_Value_1 is empty!"}
{"resultcode" => "400", "resultmessage" => "Time_Value_2 is empty!"}
Phone Details
POST
https://diabolocom.name/api.php?action=Phone_Details
Function description
Provide different informations about a given phonenumber!
Neccessary JSON request body
{
"phonenumber" : "Phonenumber with leading +",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"phonennumber": "+33176490490",
"region_code": "FR",
"country_code": "33",
"nation_number": "176490490",
"number_type": "FIXED_LINE",
"number_valid": true,
"number_possible": true
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "The given phonenumber is missing the leading + sign!"}
UTC_TIME
POST
https://diabolocom.name/api.php?action=UTC_TIME
Function description
Provides the information about the actual UTC time and the given time difference for a provided timezone. Possible time zone values can be found here: https://www.php.net/manual/en/timezones.php
Neccessary JSON request body
{
"timezone" : "Europe/Berlin",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"UTC_TIME": "25.05.2021 15:57:40",
"Timezone": "Europe\/Berlin",
"Timezone_Time": "25.05.2021 17:57:40",
"TimeDifference_Hour": "2",
"Formatted_Difference": "02:00",
"FullTimeDifference": "+02:00",
"DifferenceSign": "+"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "TimeZone is empty!"}
{"resultcode" => "400", "resultmessage" => "Given timezone is not valid!"}
HTML2Image
POST
https://diabolocom.name/api.php?action=HTML2Image
Function description
Create an image file from given HTML code - could be used to implement additional data into Wallboards. Image format will be JPG.
To create your HTML code with the needed CSS style information, you could use: https://codepen.io
The final HTML and CSS code can after this be minified with the following tool: https://www.willpeavy.com/tools/minifier/
Replacing the " with an ' in the HMTL and CSS code could be easily done with MS Word and the Search and Replace function.
Neccessary JSON request body
{
"html" : "The full html code without linebreaks, doublequotes needs to be escaped with single quotes ' ",
"filename" : "the name of the file - file extension will be automatic set.",
"folder": "folder name, where the image should be stored",
"clientdetails": {
"customer_identifier": "clientname",
"customer_scenario": "clientscenario"
}
}
Json result format and content
{
"filename":"tes2231",
"folder":"test/",
"imageurl":"https://static.diabolocom.de/wallboards/images/test/tes2231.jpg"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "TimeZone is empty!"}
{"resultcode" => "400", "resultmessage" => "Given timezone is not valid!"}
Compare
POST
https://diabolocom.name/api.php?action=Compare
Function description
Compare 2 values with each other.
Neccessary JSON request body
{
"valueone" : "String value 1.",
"valuetwo" : "String value 2.",
"clientdetails": {
"customer_identifier": "clientname",
"customer_scenario": "clientscenario"
}
}
Json result format and content
{
"valueone": "5245",
"valuetwo": "5245",
"result": "VAL_1 (Value 1 is greater) / VAL_2 (Value 2 is greater) / Equal (Both values asre equal)"
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "valueone is empty!"}
{"resultcode" => "400", "resultmessage" => "valuetwo is empty!"}
Send_Mail
POST
https://diabolocom.name/api.php?action=Send_Mail
Function description
Send an eMail via Webservice call (only from Diabolocom Platforms)
Neccessary JSON request body
{
"mailrecipient" : "Reciepient address (multiple recipient should be separated by a ;)",
"mailrecipientcc" : "CC recipients (multiple recipient should be separated by a ;)",
"mailrecipientbcc" : "BCC recipients (multiple recipient should be separated by a ;)",
"mailsubject" : "The subject of the email!",
"mailbody" : "The body of the eMail. All data which are enclosed with a " needs to be masked with a ' !",
"clientdetails": {
"customer_identifier": "clientname",
"customer_scenario": "clientscenario"
}
}
Json result format and content
{
"mailrecipient": "mailrecipient",
"mailrecipientcc": "mailrecipientcc",
"mailrecipientbcc": "mailrecipientbcc",
"mailsubject": "mailsubject",
"mailbody": "mailbody",
"result": "200",
}
Error messages format and content
{"resultcode" => "400", "resultmessage" => "You are not allowed to use this functions api!"} -> Request doesn´t come from a Diabolocom platform!
{"resultcode" => "400", "resultmessage" => "The mailsender eMail address is not valid!"}
{"resultcode" => "400", "resultmessage" => "The mailrecipient eMail address is not valid!"}
{"resultcode" => "400", "resultmessage" => "The mailrecipientCC eMail address is not valid!"}
{"resultcode" => "400", "resultmessage" => "The mailrecipientBCC eMail address is not valid!"}
{"resultcode" => "400", "resultmessage" => "The mailsubject is empty!"}
{"resultcode" => "400", "resultmessage" => "The mailbody is empty!"}
{"resultcode" => "400", "resultmessage" => "Send WebService request headers option is missing!"}
{"resultcode" => "400", "resultmessage" => "Wrong configuration for the Send request headers was provided!"}
{"resultcode" => "400", "resultmessage" => "Customer Identifier is empty!"}
{"resultcode" => "400", "resultmessage" => "Customer Scenario is empty!"}
Contains
POST
https://diabolocom.name/api.php?action=Contains
Function description
Check if a given string contains a given letters, number or symbol
Neccessary JSON request body
{
"string" : "The string that has to be checked for a given value!",
"contain_value" : "The value that shouuld be part of the string.",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": 200,
"String": " {{skill1}}",
"Contain_Value": "{",
"result": "TRUE/FALSE"
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"The given string is not allowed to be empty!"}
{"resultcode":"400","resultmessage":"Contain value is not allowed to be set!"}
SSH_KEY
POST
https://diabolocom.name/api.php?action=SSH_KEY
Function description
Generates a SSH KEY/Value pair for the login to the SFTP with a SSH public key instead of a password.
Neccessary JSON request body
{
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": 200,
"SSH_KEY_IDENTIFIER": "customer name or identifier_3fd63284-f445-45d6-8713-99a5b3491c46",
"SSH_KEY_CREATED_ON": "11-02-2022 19:46:11",
"PublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDLK8SHPToyYkUwdnuHgab17YeFqurVUTP+s+U7SfuixLIhm7W02LsoAv7I2cEXPrcfXpcebuy9pyS4CJkyI5Ylxw/0eAho+XgsXepB3V46MsX4S/CpsvNu9YuY5e93kvPftFpc1GbzKrY9KxKDBjRKrh3oS8ULDOa30kBJLX7FEZPXjMgpNrJyaP36sXzY+XRJjyOvbH5NvrNIFbeu5ia3j+lrTfahdMm4TSAKWom/Px+I9xmbnJfvStR9TuWG022UY+NSw1qHR0BYcNBYg+c7YRKhlqVfqJpez39Numtg1+Mejh/QOb7HdOj7svfr/ak7XXJnDOy1Zh/vL4acfmJoEAx8p5qPkL4EZA9Ol/QciATJ0XXnYp+VXZ6rX4H1h/Ke0mCMJqJLfxZjPOqAubcV+Kz7u69SWpi7K1Q8j2V5oPSuY+CECi0bla5XhS5am1eMfKCTR55zJboVrP/VL07gDA0GnZ5QVwswxUZj8eaLqVtlq/FUh3GWKPY5ld6QN8cHZFG4Rw5lMoQVKJzzonjk+46Gj8BXa1ya6Fhr2pHb8zUOvtg32NAfawaoqTsbQvSb93ACCg8l/zk5nVimwFNn3f0Dti1unK8b2RBvW06wjqymBftHXhkD8pNb2NNHZ7isVEWj/sb1hTJudmUtrNW2+xd+qTdijuhPkJlnChiuHw=="
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"customer_identifier is not allowed to be empty!"}
{"resultcode":"400","resultmessage":"customer_scenario is not allowed to be set!"}
Split string by Symbol
POST
https://diabolocom.name/api.php?action=SPLIT_STRING_BY_SYMBOL
Function description
Split a given string by a symbol like @ etc.
Neccessary JSON request body
{
"string" : "{{String}}",
"split_after_symbol" : "Symbol to split",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": 200,
"string": "mail@test.com",
"split_after_symbol": "@",
"first_element_number": "0",
"last_element_number": 1,
"arraycount": 2,
"result": [
"mail",
"test.com"
]
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"customer_identifier is not allowed to be empty!"}
{"resultcode":"400","resultmessage":"customer_scenario is not allowed to be set!"}
{"resultcode":"400","resultmessage":"String is empty!"}
{"resultcode":"400","resultmessage":"SPLIT_AFTER_SYMBOL is empty!"}
Remove letters from String
POST
https://diabolocom.name/api.php?action=FILTER_NUMBERS_FROM_STRING
Function description
Remove all non number digits from a string
Neccessary JSON request body
{
"input_string" : "{{input_string}}",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": 200,
"input_string": "1A457Zt57",
"result": "145757"
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"Input string cannot be empty!"}
GET_QUEUE_ID_NAME
POST
https://diabolocom.name/api.php?action=GET_QUEUE_ID_NAME
Function description
Get Queue ID from Name
Neccessary JSON request body
{
"queuename" : "{{queuename}}",
"publictoken" : "{{publictoken}}",
"platform" : "{{platform}}",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"QueueName": "FR Laura",
"queueId": "11014734",
"values": {
"queueId": "11014734.00",
"queueName": "FR LAURA",
"activityId": "1043",
"activityName": "Laura",
"numberOfAgentsBusy": 0,
"numberOfCallsDissuaded": 12,
"numberOfAgentsWorking": 0,
"dissuasionRate": "0.40",
"avgHandleTime": "261698.53",
"queueAvgWaitingTimeBeforeDissuasion": "55070.50",
"numberOfContactsTransferredToAgent": 0,
"numberOfAgentsAvailable": 0,
"numberOfContactsTransferredToQueue": 0,
"numberOfContactsTransferredToExtNumber": 0,
"pickupRateLess60s": "1.00",
"numberOfAgentsConnected": 0,
"queueAvgWaitingTimeBeforePickup": "29343.52",
"pickupRateLess30s": "0.94",
"abandonRate": "0.03",
"avgTreatmentTime": "260611.82",
"pickupRateLess20s": "0.88",
"pickupRateLess10s": "0.65",
"numberOfCallsAbandoned": 1,
"avgHoldTime": "0.00",
"avgAfterCallWorkTime": "1170.35",
"numberOfContactsPresented": 30,
"numberOfContactsWaiting": 0,
"pickupRateLess180s": "1.00",
"numberOfContactsHandled": 17,
"maxWaitingTime": "0.00",
"handleRate": "0.57",
"pickupRateLess90s": "1.00",
"queueAvgWaitingTimeBeforeAbandon": "48255.00"
}
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"Queuename cannot be empty!"}
{"resultcode":"400","resultmessage":"Publictoken cannot be empty!"}
{"resultcode":"400","resultmessage":"Platform cannot be empty!"}
{"resultcode":"400","resultmessage":"Invalid Platform was given!"}
{"resultcode":"400","resultmessage":"User unauthorized!"}
GENERATE_BASIC_AUTH_BASE64
POST
https://diabolocom.name/api.php?action=GENERATE_BASIC_AUTH_BASE64
Function description
Generates a BASE64 encoded Header from Username and Passwort for BASIC AUTH
Neccessary JSON request body
{
"username" : "{{username}}",
"password" : "{{password}}",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"result": "BAASE64 encoded AUTH Header"
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"Queuename cannot be empty!"}
{"resultcode":"400","resultmessage":"Publictoken cannot be empty!"}
{"resultcode":"400","resultmessage":"Platform cannot be empty!"}
{"resultcode":"400","resultmessage":"Invalid Platform was given!"}
{"resultcode":"400","resultmessage":"User unauthorized!"}
FILE_TRANSFER sFTP
POST
https://diabolocom.name/api.php?action=FILE_TRANSFER
Function description
TRANSFER a file to sFTP server
Neccessary JSON request body
{
"diabolocom": {
"platform": "{{platform}}",
"public_token": "{{Public API Token}}",
"foldername" : "/sound_files/all_recordings/dates/{{YYYY-MM-DD}}",
"callid": "{{callID}}"
},
"destination" : {
"service" : "sFTP",
"filename" : "If a specific file name should be used!",
"sFTP" : {
"server" : "",
"port" : "",
"folder" : "",
"user" : "",
"password" : "",
"sshkey" : ""
} },
"file": {
"creation" : "YES/NO",
"type" : "File ending of the specific file",
"filename" : "File name of the specific file without file type ending",
"file_content" : "Content of the specific file - always use ' as sign - no doublequotes allowed"
},
"debug" : {
"FAILURES_ONLY" : "0/1/2 = 0 = Never, 1 only when failure, 2 for every transaction in any case",
"debugmail_recipients" : ""
},
"clientdetails": {
"customer_identifier": "{{PLATFORM}}-{{ACCOUNTNUMBER}}",
"customer_scenario": "{{Scenarioname}}"
}
}
Json result format and content
{
"resultcode": "200",
"result": "BAASE64 encoded AUTH Header"
}
Result and error messages format and content
{"resultcode":"200","resultmessage": File filename was transfered!"}
{"resultcode":"400","resultmessage":"File cannot be found yet, will be queued for further procedure!"}
{"resultcode":"400","resultmessage":"User unauthorized!"}
{"resultcode":"400","resultmessage":"Dedicated errormessage"}
FILE_TRANSFER FTP
POST
https://diabolocom.name/api.php?action=FILE_TRANSFER
Function description
TRANSFER a file to a FTP Server
Neccessary JSON request body
{
"diabolocom": {
"platform": "{{platform}}",
"public_token": "{{Public API Token}}",
"foldername" : "/sound_files/all_recordings/dates/{{YYYY-MM-DD}}",
"callid": "{{callID}}"
},
"destination" : {
"service" : "FTP",
"filename" : "If a specific file name should be used!",
"FTP" : {
"server" : "",
"port" : "",
"folder" : "",
"user" : "",
"password" : ""
} },
"file": {
"creation" : "YES/NO",
"type" : "File ending of the specific file",
"filename" : "File name of the specific file without file type ending",
"file_content" : "Content of the specific file - always use ' as sign - no doublequotes allowed"
},
"debug" : {
"FAILURES_ONLY" : "0/1/2 = 0 = Never, 1 only when failure, 2 for every transaction in any case",
"debugmail_recipients" : ""
},
"clientdetails": {
"customer_identifier": "{{PLATFORM}}-{{ACCOUNTNUMBER}}",
"customer_scenario": "{{Scenarioname}}"
}
}
Json result format and content
{
"resultcode": "200",
"result": "BAASE64 encoded AUTH Header"
}
Result and error messages format and content
{"resultcode":"200","resultmessage": File filename was transfered!"}
{"resultcode":"400","resultmessage":"File cannot be found yet, will be queued for further procedure!"}
{"resultcode":"400","resultmessage":"User unauthorized!"}
{"resultcode":"400","resultmessage":"Dedicated errormessage"}
FILE_TRANSFER s3
POST
https://diabolocom.name/api.php?action=FILE_TRANSFER
Function description
TRANSFER a file to an s3 bucket
Neccessary JSON request body
{
"diabolocom": {
"platform": "{{platform}}",
"public_token": "{{Public API Token}}",
"foldername" : "/sound_files/all_recordings/dates/{{YYYY-MM-DD}}",
"callid": "{{callID}}"
},
"destination" : {
"service" : "S3",
"filename" : "If a specific file name should be used!",
"s3" : {
"s3user" : "",
"s3password" : "",
"s3region" : "",
"s3bucket" : "",
"s3endpoint" : "",
"s3ssekmskeyid" : "",
"s3serversideencryption" : "",
"s3acl" : ""
}
},
"file": {
"creation" : "YES/NO",
"type" : "File ending of the specific file",
"filename" : "File name of the specific file without file type ending",
"file_content" : "Content of the specific file - always use ' as sign - no doublequotes allowed"
},
"debug" : {
"FAILURES_ONLY" : "0/1/2 = 0 = Never, 1 only when failure, 2 for every transaction in any case",
"debugmail_recipients" : ""
},
"clientdetails": {
"customer_identifier": "{{PLATFORM}}-{{ACCOUNTNUMBER}}",
"customer_scenario": "{{Scenarioname}}"
}
}
Json result format and content
{
"resultcode": "200",
"result": "BAASE64 encoded AUTH Header"
}
Result and error messages format and content
{"resultcode":"200","resultmessage": File filename was transfered!"}
{"resultcode":"400","resultmessage":"File cannot be found yet, will be queued for further procedure!"}
{"resultcode":"400","resultmessage":"User unauthorized!"}
{"resultcode":"400","resultmessage":"Dedicated errormessage"}
FILE_TRANSFER Mail
POST
https://diabolocom.name/api.php?action=FILE_TRANSFER
Function description
TRANSFER a file via eMail
Neccessary JSON request body
{
"diabolocom": {
"platform": "{{platform}}",
"public_token": "{{Public API Token}}",
"foldername" : "/sound_files/all_recordings/dates/{{YYYY-MM-DD}}",
"callid": "{{callID}}"
},
"destination" : {
"service" : "Mail",
"filename" : "If a specific file name should be used!",
"Mail" : {
"MAIL_RECIEPIENTS" : "",
"MAIL_CC_RECIEPIENTS" : "",
"MAIL_BCC_RECIEPIENTS" : "",
"MAIL_SUBJECT_LINE" : "",
"MAIL_BODY" : ""
}
},
"file": {
"creation" : "YES/NO",
"type" : "File ending of the specific file",
"filename" : "File name of the specific file without file type ending",
"file_content" : "Content of the specific file - always use ' as sign - no doublequotes allowed"
},
"debug" : {
"FAILURES_ONLY" : "0/1/2 = 0 = Never, 1 only when failure, 2 for every transaction in any case",
"debugmail_recipients" : ""
},
"clientdetails": {
"customer_identifier": "{{PLATFORM}}-{{ACCOUNTNUMBER}}",
"customer_scenario": "{{Scenarioname}}"
}
}
Json result format and content
{
"resultcode": "200",
"result": "BAASE64 encoded AUTH Header"
}
Result and error messages format and content
{"resultcode":"200","resultmessage": File filename was transfered!"}
{"resultcode":"400","resultmessage":"File cannot be found yet, will be queued for further procedure!"}
{"resultcode":"400","resultmessage":"User unauthorized!"}
{"resultcode":"400","resultmessage":"Dedicated errormessage"}
FILE_TRANSFER DIAB_AI
POST
https://diabolocom.name/api.php?action=FILE_TRANSFER
Function description
TRANSFER to DIAB_AI and send back to Campaign
Neccessary JSON request body
{
"diabolocom": {
"platform": "de1",
"public_token": "{{publicToken}}",
"foldername": "/sound_files/voice_messages/{{reversedate}}",
"callid": "{{callId}}",
"contact_endpoint": "https://public-{{customerplatform}}.engage.diabolocom.com/api/v2/voice/campaigns/{{aicampaignid}}/contacts/{{contactid}}",
"callscript_integration": "1"
},
"destination": {
"service": "DIAB_AI",
"filename": "",
"ai": {
"task": "transcription",
"endpoint": "https://execute.diabolocom.ai/api/job/tasks",
"token": "{{AI_TOKEN}}",
"llm_present_chain": "",
"vocabulary": "{{CUSTOMER_VOCABULARY}}",
"company_name": "{{CUSTOMER_COMPANY_NAME}}",
"prompt": "{{CUSTOMER_PROMPT}}",
"lang": "de/en/es/fr/it/ etc",
"results_webhook_callback_url": ""
}
},
"clientdetails": {
"customer_identifier": "{{identifier}}",
"customer_scenario": "{{scenario}}"
}
}
Json result format and content
{
"resultcode": "200",
"result": "Files transfered sucessfully"
}
Result and error messages format and content
{"resultcode":"200","resultmessage": File filename was transfered!"}
{"resultcode":"400","resultmessage":"File cannot be found yet, will be queued for further procedure!"}
{"resultcode":"400","resultmessage":"User unauthorized!"}
{"resultcode":"400","resultmessage":"Dedicated errormessage"}
REPLACE
POST
https://diabolocom.name/api.php?action=REPLACE
Function description
Replace values within a string.
Neccessary JSON request body
{
"string" : "This \n is a test-string",
"search" : "\n",
"replace" : " ",
"clientdetails": {
"customer_identifier": "customer name or identifier",
"customer_scenario": "customer scenario"
}

}
Json result format and content
{
"resultcode": "200",
"result": "This
is a test-mail",
"OriginalString": "This is a test-mail",
"Search": "\n",
"Replace": " "
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"The string cannot be empty!"}
{"resultcode":"400","resultmessage":"The value to search for cannot be empty!"}
CONVERT ASR DATE
POST
https://diabolocom.name/api.php?action=CONVERT_ASR_DATE_STRING_TO_DATE
Function description
Converts any date from the ASR block into DD.MM.YYYY
Neccessary JSON request body
{
"date" : "17.February 38",
"localeCode" : "de_DE",
"clientdetails":
{
"customer_identifier": "DE1-100032",
"customer_scenario": "Basic_Scenario"
}
}
Json result format and content
{
"resultcode": "200",
"result": "17.02",
"OriginalString": "17.February 38",
"LocalCode": "de_DE",
"ErrorPart": "YEAR",
"ErrorValue": "38"
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"The string cannot be empty!"}
{"resultcode":"400","resultmessage":"The value to search for cannot be empty!"}
MS TEAMS SYNC
POST
https://diabolocom.name/api.php?action=MS_TEAMS_SYNC
Function description
New endpoint for setup MS Teams Status Sync
Neccessary JSON request body
{
"diabolocom" : {
"diab_platform" : "Customer platform like FR1, DE1, SG1 etc.",
"diab_account_id" : "100152",
"diab_token" : "DIAB TOKEN - needs to have at least permissions for endpoints: /account/users, /account/status-sets, account/users/{{userID}}/status, real-time-stats/agents-list",
"diab_identifier_field" : "email/name"
},
"clientdata" : {
"tenant" : "MS Azure Tenant ID",
"access_config" : "client_id=MS Azure Client ID&username=MS Azure Username&password=MS Azure User password&grant_type=password&client_secret=MS Azure Client APP secret&scope=https://graph.microsoft.com/.default",
"config_expiration" : "Date when this MS Azure configuration will expire - actual maximum 24 months after client secret creation"
},
"configuration" : {
"dedicated_statusname" : "A dedicated Status for MS Teams by Name - needs to match exactly the way it is written in Diabolocom Statussets",
"set_previous_status" : "0/1 - defines if an user, that sets his status in Teams to available should be set in Diabolocom to Available or to the previous status he had in Diabolocom!",
"use_group_id" : "MS Azure Group ID - if not the full company directory should be used for searching the Diabolocom users - a single group ID could be used",
"access_code" : "Required when you want to update a configuration after creation"
},
"communication" : {
"errormessagerecipients" : "Mail reciepients of error messages with this cofniguration - one is required, multiple entries has to be separated by ;",
"debug_mode" : "0/1 - 1 Sends all action results during the configuration and the status syncronization to the given mail address above."
}
}
Json result format and content
{
"resultcode": 200,
"EXPIRATION": "30.06.2025",
"FOUND_DIABOLOCOM_USERS": 19,
"FOUND_DIAB_USERS_IN_AZURE": 14,
"SUBSCRIBED_USERS": 14,
"SUBSCRIPTION_USER_FAILED": "",
"ACCESS_CODE": "FQG-c_eRb62h",
"ACCOUNT_ID": "Diabolocom Account ID",
"PLATFORM": "de1",
"SUBSCRIPTION_FAILED_FOR_USER": [], - List of Users that we where not able to subscripe to - normally inactive users in MS Teams
"USER_FROM_DIABOLOCOM_NOT_FOUND": {- List of Diabolocom Users that we where not able to find my mailaddress or name in the MS Azure directory, or when a group has to be used in the given group }
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"The string cannot be empty!"}
{"resultcode":"400","resultmessage":"The value to search for cannot be empty!"}
Nightly Log Transfer
POST
https://diabolocom.name/api.php?action=NIGHTLY_LOG_TRANSFER
Function description
Transfer all Log files (csv) from a given folder
Neccessary JSON request body
{
"diabolocom" : {
"platform" : "de1",
"public_token" : "{{publictoken}}}}",
"foldername" :"/cross_channel/agent/agent log/",
"account_id" : "100152"
},
"destination" : {
"service" : "ftp/sFTP",
"username" : "{{username}}",
"password" : "{{password}}",
"server" : "{{servername}}",
"port" : "{{port}}",
"folder" : "/{{folder}}/"
},
"debug" : {
"failures_only" : "0/1",
"mail_recipients" : "multiple mail recipients split by ;"
}
}
Json result format and content
{
"resultcode": 200,
"ServiceID": 2,
"Created_for": "de1-100152",
"Created_at": "19-08-2024 09:41:01",
"FILES_TRANSFERED": [
"2024-07-18_agentlog.csv",
"2024-07-18_agentlog_v2.csv",
"2024-07-18_agentlog_v4.3.x.csv",
"2024-07-19_agentlog.csv",
"2024-07-19_agentlog_v2.csv",
"2024-07-19_agentlog_v4.3.x.csv",
"2024-07-20_agentlog.csv",
"2024-07-20_agentlog_v2.csv",
"2024-07-20_agentlog_v4.3.x.csv",
"2024-07-21_agentlog.csv",
"2024-07-21_agentlog_v2.csv",
"2024-07-21_agentlog_v4.3.x.csv",
"2024-07-22_agentlog.csv",
"2024-07-22_agentlog_v2.csv",
"2024-07-22_agentlog_v4.3.x.csv",
"2024-07-23_agentlog.csv",
"2024-07-23_agentlog_v2.csv",
"2024-07-23_agentlog_v4.3.x.csv",
"2024-07-24_agentlog.csv"
] }
Result and error messages format and content
{"resultcode":"400","resultmessage":"The string cannot be empty!"}
{"resultcode":"400","resultmessage":"The value to search for cannot be empty!"}
GET_CAMPAIGN_IDS_BY_NAME
POST
https://diabolocom.name/api.php?action=GET_CAMPAIGN_IDS_BY_NAME
Function description
GET ALL CAMPAIGNS THAT CONTAINS A STRING
Neccessary JSON request body
{
"diabolocom" : {
"customer_identifier" : "{{PLATFORM}}-{{ACCOUNT-ID}}",
"customer_scenario" : "{{ScenarioName}}",
"publictoken" : "{{publicToken}}",
"platform" : "{{platform like FR1, FR8, DE1 etc.}}"
},
"configuration" : {
"campaignname" : "{{STRING THAT SHOULD BE INCLUDED IN THE CAMPAIGN NAME}} - COULD BE EMPTY",
"exclude_campagin_id" : "{{SINGLE CAMPAIGN ID THAT SHOULD BE EXCLUDED IN THE RESPONSE}}",
"filter_by_folder" : "Clark"
}
}
Json result format and content
{
"resultcode": "200",
"RANDOM_SingleCampaignID": 1496,
"FOUND_CAMPAIGN_IDs": [
1496,
1495
],
"FOUND_CAMPAIGN_NAMES": {
"1": "CAMPAIGN_A",
"2": "CAMPAIGN_B"
},
"EXCLUDED_CAMPAIGN_ID": "1497",
"EXCLUDED_CAMPAIGN_NAME": "CAMPAIGN_C",
"COUNT_OF_RELEVANT_CAMPAIGNS": 2
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"The string cannot be empty!"}
{"resultcode":"400","resultmessage":"The value to search for cannot be empty!"}
AGENT_ASSIST_WEBHOOK
POST
https://diabolocom.name/api.php?action=AGENT_ASSIST_WEBHOOK
Function description
Webhook to store agent assist data in campaigns
Neccessary JSON request body
The following Custom Header configurations needs to be done on the agent assist configuration page
CampaignID : CampaignID
Private-Token : Private-Token with minimal required access to
     POST - /v2/voice/campaigns/{{CAMPAIGNID}}/contacts/search
     GET - /v1/voice/campaigns/{{CAMPAIGNID}}
     POST - /v1/voice/campaigns/{{CAMPAIGNID}}/field
     PUT - /v1/voice/campaigns/{{CAMPAIGNID}}/contacts/{{CONTACTID}}
     POST - /v2/voice/campaigns/{{CAMPAIGNID}}/contacts/
Split_Streams : 0/1
     Defines if the agent and the caller stream shoould be stored in different fields of a campaign contact
Client_Platform: DE1/FR2 or similiar
Client_Identifier : Client Platform-AccountID
Json result format and content
{
"resultcode": "200",
"CallID": 5457865787,
"NEXT_ACTION": "CREATE or UPDATE Info"
}
CREATE_ICAL_FILE
POST
https://diabolocom.name/api.php?action=CREATE_ICAL_FILE
Function description
Create an Ical (.ics) file for appointments
Neccessary JSON request body
{
"startdate": "Startdate",
"starttime": "Startdate",
"enddate": "Enddate - could be a fixed value or empty",
"endtime": "If Enddate is set - needs to be set as well",
"add_minutes_to_start": "If enddate and endtime are empty, an timeframe in minutes can be added",
"reminder_minutes" : "Time in minutes, before the reminder message is shown to the user on his device",
"location": "Adress of the appointment",
"company_name" : "Company name who is responsible for the appointment",
"appointment_subject" : "Subject line of the appointment",
"appointment_description": "Description for the appointment",
"config": {
"custom_sub_domain": "If customer wants to use a custom subdomain - this needs to be entered here, starting with https://"
},
"clientdetails": {
"customer_identifier": "{{ClientPlatform}}-{{AccountID}}",
"customer_scenario": "customer scenario"
}
}
Json result format and content
{
"resultcode": "200",
"StartDate": "27.11.2025",
"StartTime": "20:40",
"Enddate": "27.11.2025",
"Endtime": "21:40",
"Location": "Adress, Zip, City",
"ICal_File_URL": "https://URL/ICal/IDENTIFIER1/IDENTIFIER2.ics"
}
Result and error messages format and content
{"resultcode":"400","resultmessage":"The string cannot be empty!"}
{"resultcode":"400","resultmessage":"The value to search for cannot be empty!"}