API used to get a report of all IVR responses over a given date range.
Use the IVR API to get IVR Respondent data
The IVR Report API is used to get a report of all IVR/SurVo responses over a given date range. There are options available to return call detail records SourceTrak attribution details alongside the IVR responses.
Base URL for IVR Report
Parameter List
Parameter | Required | Accepts | Max Length | Notes | Usage |
---|---|---|---|---|---|
action | Yes | String: report.survo | n/a | Only accepts report.survo for IVR Reporting | Defines the API Call as "IVR Report" type |
access_key | Yes | String | n/a | Access Key from the Key Manager within a DialogTech account | Credentials used for access to the API for a particular DialogTech account |
secret_access_key | Yes | String | n/a | Secret Access Key from the Key Manager within a DialogTech account | Credentials used for access to the API for a particular DialogTech account |
start_date | Yes | Date | 8 | Date format should be YYYYMMDD | Defines the start of the date-range for records to be returned from |
end_date | Yes | Date | 8 | Date format should be YYYYMMDD | Defines the end of the date-range for records to be returned from |
id | Yes | String | n/a | IVR building block ID within the specified date range | Filters the response to only return IVR Respondent data where the IVR Building Block ID matches the id provided. |
format | No | String: xml or csv | 3 | xml - XML format csv - csv format | Determines the output format for the response, as either xml or csv |
include_cdr | No | 0 or 1 | n/a | 0 - Do not include additional columns from the Call Detail Report 1 - Include additional columns from the Call Detail Report | Adds additional columns from the Call Detail Report alongside the IVR Respondent data |
include_st | No | 0 or 1 | n/a | 0 - Do not include additional columns from SourceTrak 1 - Include additional columns from SourceTrak | Adds additional columns from SourceTrak alongside the IVR Respondent data |
Using this API
These code examples are meant to show a basic method of accessing DialogTech's IVR Report API.
<?php
/*
IVR Report EX:
This example will request an IVR report.
It will then create an html table to
display on the page with all available
IVR fields.
*/
// Create cURL resource
$ch = curl_init();
$baseuri = "https://secure.dialogtech.com/ibp_api.php?";
// API Specific Static Parameters
$action = "report.survo";
// Required User Parameters To Request the API
$access_key = "foo";
$secret_access_key = "bar";
$start_date = "20170401";
$end_date = "20170430";
$id = "1105795";
// Parameters that define the fields returned
$include_cdr = "1";
$include_st = "1";
$format = "csv";
// Construct the full URL
$full_url = $baseuri . "&action=" . $action .
"&access_key=" . $access_key .
"&secret_access_key=" . $secret_access_key .
"&start_date=" . $start_date .
"&end_date=" . $end_date .
"&id=" . $id .
"&include_cdr=" . $include_cdr .
"&include_st=" . $include_st .
"&format=" . $format;
// Set the URL
curl_setopt($ch, CURLOPT_URL, $full_url);
// Sets the return options of the cURL to return the actual result from the curl request, and FALSE on failure
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Sets the $output variable to the result of the curl
$output = curl_exec($ch);
// Close curl resource to free up system resources
curl_close($ch);
// Basic CSS for the table formatting
$page_html = "<style>
td
{
border-left:1px solid black;
border-top:1px solid black;
text-align:center;
}
table
{
border-right:1px solid black;
border-bottom:1px solid black;
}
</style>\n\n";
// Create the table
$table = "<table>\n";
$rows = str_getcsv($output, "\n");
foreach($rows as &$row) {
// Add new row
$table .= " <tr>\n";
$cells = str_getcsv($row);
foreach($cells as &$cell) {
// Add a new cell
$table .= " <td>$cell</td>\n";
}
// Complete the new row
$table .= " </tr>\n";
}
// Complete the table
$table .= "</table>";
// Echo the CSS and table on the page
echo $page_html . $table;
?>
curl -X ""
Example Response
<?xml version='1.0' encoding='iso-8859-1'?>
<!DOCTYPE data [
<!ELEMENT data (record+)>
<!ELEMENT record (Respondent_ID,Caller_ID,Completed,Timestamp,SID,Question_One,Talk_Minutes,Intelligent_Minutes,Call_Type,Phone_Label,Recording,Last_Name,First_Name,Street_Address,City,State,Zip_Code,Transfer_To_Number,Call_Transfer_Status,Inbound_Device_Type,URL_Tag,Domain,Search_Term,Activity_Keyword,Custom_Value,Custom_Id,Google_UA_Client_ID,gclid,Campaign,Pool_Name,Location_Name,Keyword,Match_Type,Network,Device,Device_Model,Creative,Placement,Target,Param1,Param2,Random,Ace_Id,Ad_Position,Product_Target_ID,Ad_Type)>
<!ELEMENT Respondent_ID (#PCDATA)>
<!ELEMENT Caller_ID (#PCDATA)>
<!ELEMENT Completed (#PCDATA)>
<!ELEMENT Timestamp (#PCDATA)>
<!ELEMENT SID (#PCDATA)>
<!ELEMENT Question_One (#PCDATA)>
<!ELEMENT Talk_Minutes (#PCDATA)>
<!ELEMENT Intelligent_Minutes (#PCDATA)>
<!ELEMENT Call_Type (#PCDATA)>
<!ELEMENT Phone_Label (#PCDATA)>
<!ELEMENT Recording (#PCDATA)>
<!ELEMENT Last_Name (#PCDATA)>
<!ELEMENT First_Name (#PCDATA)>
<!ELEMENT Street_Address (#PCDATA)>
<!ELEMENT City (#PCDATA)>
<!ELEMENT State (#PCDATA)>
<!ELEMENT Zip_Code (#PCDATA)>
<!ELEMENT Transfer_To_Number (#PCDATA)>
<!ELEMENT Call_Transfer_Status (#PCDATA)>
<!ELEMENT Inbound_Device_Type (#PCDATA)>
<!ELEMENT URL_Tag (#PCDATA)>
<!ELEMENT Domain (#PCDATA)>
<!ELEMENT Search_Term (#PCDATA)>
<!ELEMENT Activity_Keyword (#PCDATA)>
<!ELEMENT Custom_Value (#PCDATA)>
<!ELEMENT Custom_Id (#PCDATA)>
<!ELEMENT Google_UA_Client_ID (#PCDATA)>
<!ELEMENT gclid (#PCDATA)>
<!ELEMENT Campaign (#PCDATA)>
<!ELEMENT Pool_Name (#PCDATA)>
<!ELEMENT Location_Name (#PCDATA)>
<!ELEMENT Keyword (#PCDATA)>
<!ELEMENT Match_Type (#PCDATA)>
<!ELEMENT Network (#PCDATA)>
<!ELEMENT Device (#PCDATA)>
<!ELEMENT Device_Model (#PCDATA)>
<!ELEMENT Creative (#PCDATA)>
<!ELEMENT Placement (#PCDATA)>
<!ELEMENT Target (#PCDATA)>
<!ELEMENT Param1 (#PCDATA)>
<!ELEMENT Param2 (#PCDATA)>
<!ELEMENT Random (#PCDATA)>
<!ELEMENT Ace_Id (#PCDATA)>
<!ELEMENT Ad_Position (#PCDATA)>
<!ELEMENT Product_Target_ID (#PCDATA)>
<!ELEMENT Ad_Type (#PCDATA)>
]>
<data>
<record>
<Respondent_ID>1234567890</Respondent_ID>
<Caller_ID>5554443333</Caller_ID>
<Completed>No</Completed>
<Timestamp>2017-01-01 06:00:00</Timestamp>
<SID>170101aaabbbcccd</SID>
<Question_One>user_recordings/555/55555/survey/4444444/1112223334-A1.wav</Question_One>
<Talk_Minutes>0.5</Talk_Minutes>
<Intelligent_Minutes>0.4</Intelligent_Minutes>
<Call_Type>Inbound</Call_Type>
<Phone_Label>Survey Line</Phone_Label>
<Recording></Recording>
<Last_Name>Simpson</Last_Name>
<First_Name>Homer</First_Name>
<Street_Address>742 Evergreen Terrace</Street_Address>
<City>Springfield</City>
<State></State>
<Zip_Code></Zip_Code>
<Transfer_To_Number>5556667890</Transfer_To_Number>
<Call_Transfer_Status>Answer</Call_Transfer_Status>
<Inbound_Device_Type>Undetected</Inbound_Device_Type>
<URL_Tag></URL_Tag>
<Domain></Domain>
<Search_Term></Search_Term>
<Activity_Keyword></Activity_Keyword>
<Custom_Value></Custom_Value>
<Custom_Id></Custom_Id>
<Google_UA_Client_ID></Google_UA_Client_ID>
<gclid></gclid>
<Campaign></Campaign>
<Pool_Name></Pool_Name>
<Location_Name></Location_Name>
<Keyword></Keyword>
<Match_Type></Match_Type>
<Network></Network>
<Device></Device>
<Device_Model></Device_Model>
<Creative></Creative>
<Placement></Placement>
<Target></Target>
<Param1></Param1>
<Param2></Param2>
<Random></Random>
<Ace_Id></Ace_Id>
<Ad_Position></Ad_Position>
<Product_Target_ID></Product_Target_ID>
<Ad_Type></Ad_Type>
</record>
<record>
<Respondent_ID>0009998887</Respondent_ID>
<Caller_ID>5554443333</Caller_ID>
<Completed>Yes</Completed>
<Timestamp>2017-01-01 06:30:00</Timestamp>
<SID>170101cccdddeeef</SID>
<Question_One>user_recordings/555/55555/survey/4444444/9998887776-A1.wav</Question_One>
<Talk_Minutes>0.7</Talk_Minutes>
<Intelligent_Minutes>0.2</Intelligent_Minutes>
<Call_Type>Inbound</Call_Type>
<Phone_Label>Survey Line</Phone_Label>
<Recording></Recording>
<Last_Name>Simpson</Last_Name>
<First_Name>Homer</First_Name>
<Street_Address>742 Evergreen Terrace</Street_Address>
<City>Springfield</City>
<State></State>
<Zip_Code></Zip_Code>
<Transfer_To_Number>5556667890</Transfer_To_Number>
<Call_Transfer_Status>Answer</Call_Transfer_Status>
<Inbound_Device_Type>Undetected</Inbound_Device_Type>
<URL_Tag></URL_Tag>
<Domain></Domain>
<Search_Term></Search_Term>
<Activity_Keyword></Activity_Keyword>
<Custom_Value></Custom_Value>
<Custom_Id></Custom_Id>
<Google_UA_Client_ID></Google_UA_Client_ID>
<gclid></gclid>
<Campaign></Campaign>
<Pool_Name></Pool_Name>
<Location_Name></Location_Name>
<Keyword></Keyword>
<Match_Type></Match_Type>
<Network></Network>
<Device></Device>
<Device_Model></Device_Model>
<Creative></Creative>
<Placement></Placement>
<Target></Target>
<Param1></Param1>
<Param2></Param2>
<Random></Random>
<Ace_Id></Ace_Id>
<Ad_Position></Ad_Position>
<Product_Target_ID></Product_Target_ID>
<Ad_Type></Ad_Type>
</record>
</data>
"Respondent_ID","Caller_ID","Completed","Timestamp","SID","Question_One","Talk_Minutes","Intelligent_Minutes","Call_Type","Phone_Label","Recording","Last_Name","First_Name","Street_Address","City","State","Zip_Code","Transfer_To_Number","Call_Transfer_Status","Inbound_Device_Type","URL_Tag","Domain","Search_Term","Activity_Keyword","Custom_Value","Custom_Id","Google_UA_Client_ID","gclid","Campaign","Pool_Name","Location_Name","Keyword","Match_Type","Network","Device","Device_Model","Creative","Placement","Target","Param1","Param2","Random","Ace_Id","Ad_Position","Product_Target_ID","Ad_Type"
"1234567890","5554443333","No","2017-01-01 06:00:00","170101aaabbbcccd","user_recordings/555/55555/survey/4444444/1112223334-A1.wav","0.5","0.4","Inbound","Survey Line","","Simpson","Homer","742 Evergreen Terrace","Springfield","","","5556667890","Answer","Undetected","","","","","","","","","","","","","","","","","","","","","","","","","",""
"0009998887","5554443333","Yes","2017-01-01 06:30:00","170101cccdddeeef","user_recordings/555/55555/survey/4444444/9998887776-A1.wav","0.7","0.2","Inbound","Survey Line","","Simpson","Homer","742 Evergreen Terrace","Springfield","","","5556667890","Answer","Undetected","","","","","","","","","","","","","","","","","","","","","","","","","",""
Response Appendix
This is a list of each value returned by the IVR Report API and a simple description of what that value represents.
Parameter | Description |
---|---|
Respondent_ID | A unique ID assigned to the respondent |
Caller_ID | Caller ID of the respondent |
Completed | A Yes/No flag if the IVR was completed normally. No indicates the respondent likely hung up during the IVR |
Timestamp | Response time of the Respondent |
SID | A unique identifier for the call on the DialogTech system |
The include_cdr and include_st parameters
Additional fields are returned when include_cdr
is selected. Those fields are
- Talk_Minutes
- Intelligent_Minutes
- Call_Type
- Phone_Label
- Recording
- Last_Name
- First_Name
- Street_Address
- City
- State
- Zip_Code
- Transfer_To_Number
- Call_Transfer_Status
- Inbound_Device_Type
Additional fields are returned when include_st
is utilized. Those fields are
- URL_Tag
- Domain
- Search_Term
- Activity_Keyword
- Custom_Value
- Custom_Id
- Google_UA_Client_ID
- gclid
- Campaign
- Pool_Name
- Location_Name
- Keyword
- Match_Type
- Network
- Device
- Device_Model
- Creative
- Placement
- Target
- Param1
- Param2
- Random
- Ace_Id
- Ad_Position
- Product_Target_ID
- Ad_Type
The definitions of all these fields can be found within the Call Detail Report API documentation.