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}&notes1={Notes1}&notes2={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