TABLE OF CONTENTS
Usage
This API is designed as an Agent Remote Control. The API commands will control an already existing agent that is currently logged into the system
Authentication
An authentication token is required to access this API. A token can be requested from the token service using the Lead Management API (refer to lead management documentation same guide and sample code).
A token key must be passed to each API endpoint along with the request.
Responses
The API by default will return an XML response, but a Content-Type header of application/json can be supplied in your requests if desired.
CallActionResponse
All methods will return a CallActionResponse object. The “data” property will be a different type dependent on the method used.
{
Success: Bool,
Data: This type is dependant on the method used, entities are described below
ResponseCode: Int,
ResponseDetail: String
}
Entities
Call
Returned by /dial, and an array of these is returned by /getcalls, this represents an active call.
{
CallId:int,
CallStartTime:dateTime,
CallState:int,
CallStatus:int,
CustomerName:string,
CustomerName2:string,
PhoneNumber:string,
RecordingState:int
}
Agent Name ID Pair
An array of these is returned by /users
{
FullName: string,
ID:int
}
Lead Phone
This object is returned by /leadphones
{
LeadId:int,
PhoneNumber:string,
RecordType:string,
RecordTypeId:int
}
Campaign
Returned by /campaigns
{
Active:boolean
AlwaysRun:boolean
AutoRecord:boolean
BlackoutDates:string
BlackoutDateses:array
CalculatedLines:int
CallerID:string
CallsPlacedThisMinute:int
CampaignID:int
CampaignIcon:string
CampaignName:string
Cps:int
DefaultListID:int
DefaultPhoneType:int
Description:string
DropQueue:array
EndLine:int
EstimatedRecordCount:int
FirstCreated:string
InitialPacing:int
IvrSessions:array
LastFetch:string
LastModified:string
LastPacingAdjust:string
Leads:object
Leads:object
LeadsInProgress:array
LinesToReturn:int
Lists: array
ListsForStats:array
LiveStats:object
LiveStatsTemp:object
MOTD:string
MaxCallCap:int
NumToCall:int
Pacing:int
PlacedPredictiveCallsLock:object
PlacingInterval:int
PreviewQueue:array
ReadyUsers: array
ResultSessions: array
Schedule:string
SchedulePlanID:int
Schedules: array
SchedulesUI: array
SessionID:int
SessionStats:object
SoftCap:int
StartLine:int
Status:int
TargetDropPercent:int
TeleParamPlanID:int
TenantID:int
Type:int
UncalledLeads: array
UseAutoPacing:boolean
UseGlobalBlackoutDates:boolean
UserAddress:string
UserName:string
ZipTone:int
ZipToneBeep:int
ZipToneWav:object
}
ACD (Skill) Queue
An array of this type is returned by /acdqueues
{
AbandonThreshold:int
AcceptableQueueTime:int
AcdIcon:string
AcdName:string
Active:boolean
DefaultTimeout:int
DefaultTimeoutIvr:int
ID:int
SessionStats:object
SkipIndex:int
SnapshotStats:object
TenMinuteOffers:object
TenMinuteOffersVirtualQueue:object
UserAddress:string
UserName:string
ZipTone:int
ZipToneBeep:int
ZipToneWav:object
}
Result Code
An array of this type is returned by /resultcodes
{
Code:string
Description:string
IsAgentViewable:boolean
IsCallAgain:boolean
IsCallback:boolean
IsSuccess:boolean
IsSystemResultCode:boolean
IsTransfer:boolean
ResultCodeID:int
Sales:int
StatusID:int
SuccessType:int
}
Methods
Get Calls
Returns the current active calls for the specified user.
GET
/webservices/services/telephony/getcalls/user/{UserID}
Params:
UserID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Go Ready
Puts the specified user into the ready status for the campaign they are logged into.
GET
/webservices/services/telephony/goready/user/{UserID}
Params:
UserID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Dial
Initiates a manual dial for the specified user to the given phone number. A lead ID can optionally be specified however by default the number will be matched to the newest lead. If there is no match, a new lead will be created.
GET
/webservices/services/telephony/dial/user/{UserID}/phone/{PhoneNum}?leadid={LeadID}
Params:
UserID: int
LeadID: long
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Hangup
Hangs up the specified call and places the agent in the wrapping status
GET
/webservices/services/telephony/hangup/user/{UserID}/call/{CallID}
Params:
UserID: int
CallID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Dispose
This method will disposition the specified call with a chosen result code. The call will also be hung up if it has not already.
GET
/webservices/services/telephony/dispose/user/{UserID}/call/{CallID}?resultcode={ResultCode}
Params:
UserID: int
CallID: int
ResultCode: string
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Hold
Places the specified call on hold.
GET
/webservices/services/telephony/hold/user/{UserID}/call/{CallID}
Params:
UserID: int
CallID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Retrieve
Retrieves the specified call on hold.
GET
/webservices/services/telephony/retrieve/user/{UserID}/call/{CallID}
Params:
UserID: int
CallID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Stop Recording
This method will stop the recording of the specified call. This is useful for preventing any sensitive information such as bank details being recorded.
GET
/webservices/services/telephony/stoprecord/user/{UserID}/call/{CallID}
Params:
UserID: int
CallID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
NOTE: when sending this API request, the stop/start recording button on the web agent does not change to show the recording has stopped but it will actually stop the recording. |
Start Recording
This method will start or continue the recording for the specified call.
GET
/webservices/services/telephony/startrecord/user/{UserID}/call/{CallID}
Params:
UserID: int
CallID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
NOTE: when sending this API request, the stop/start recording button on the web agent does not change to show the recording has stopped but it will actually start the recording. |
Campaigns
Gets an object containing all the campaigns in the system
GET
/webservices/services/telephony/campaigns/user/{UserID}
Params:
UserID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Users
Gets an object containing all users
GET
/webservices/services/telephony/campaigns/user/{UserID}
/webservices/services/telephony/users/user/{UserID}
Params:
UserID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Result Codes
Gets an object containing all available result codes
GET
/webservices/services/telephony/resultcodes/user/{UserID}
Params:
UserID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
ACD Queues
Returns a list of ACD queues in the system. These are also known as skill queues.
GET
/webservices/services/telephony/acdqueues/user/{UserID}
Params:
UserID: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Lead Phones
Given a lead ID, this method will return the lead phones associated to the lead ID specified.
GET
/webservices/services/telephony/leadphones/user/{UserID}/lead/{LeadID}
Params:
UserID: int
LeadID: long
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Change Lead Phone
This method will change the lead of a call that is in progress. A lead phone ID is specified, and the call will be associated to the lead phone’s corresponding lead.
GET
/webservices/services/telephony/changelead/user/{UserID}/call/{CallID}/leadphone/{LeadPhoneID}
Params:
UserID: int
CallID: int
LeadPhoneID: long
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Create New Lead
This method will create a new lead with the phone number specified, then assign the new lead to the call specified.
GET
/webservices/services/telephony/createnewlead/user/{UserID}/call/{CallID}/phone/{PhoneNum}
Params:
UserID: int
CallID: int
PhoneNum: string
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work
Connect Calls
This method allows two calls that are currently in progress to be bridged together. This is useful to perform a warm transfer to a 3rd party or external DDI. You can also specify a success count and any notes relating to the call. The result codes and call id’s are required, however the notes and number of successes are optional parameters.
GET
/webservices/services/telephony/connectcalls/user/{UserID}?call1={Call1ID}&call2={Call2ID}&resultcode1={ResultCode1}&resultcode2={ResultCode2}¬es1={Notes1}¬es2={Notes2}&numsales1={NumSales1}&numsales2={NumSales2}
Params Required:
UserID: int
Call1ID: int
Call2ID: int
ResultCode1: string
ResultCode2: string
Params Optional:
Notes1: string
Notes2: string
NumSales1: int
NumSales2: int
‘Headers’ has to have ‘Cookie’ then ‘TokenKey=’ for the API request to work