-
Notifications
You must be signed in to change notification settings - Fork 0
5. Callers
When a caller decides to use virtualQ, the call center needs to "line up" the caller with virtualQ. For this purpose the phone number and a notification channel should be passed to virtualQ. Once lined up, the caller is registered with virtualQ and will be notified when up.
Method Call
public async Task<Result> LineUpCaller(LineUpCallerParameters attributes)
LineUpCallerParameters
Property | Type | Description |
---|---|---|
LineId |
long |
(Required) The ID of the line to join |
Phone |
string |
(Required) The callers phone number including country code, e.q. +40 171 1111 22 33
|
Channel |
string |
(Required) A string describing if the waiter expects a CallBack or if he will receive a SMS and will CallIn again |
Source |
string |
(Required) A string describing the source where the caller came from, e.q. Widget , Phone
|
Lang |
string |
A two letter language code, used when sending SMS to the caller, e.q. de , en
|
Skills |
IEnumerable<string> |
Array of Skills for caller |
Properties |
ExpandoObject |
Dynamic object that can be extended with additional properties for caller |
Setting up the Properties dynamic object
The Properties dynamic object is an ExpandoObject
class, this means that an instance of this class can be extended with new properties of any type.
dynamic properties = new ExpandoObject();
properties.StringProp = "Value1";
properties.ArrayProp = new[] { 45, 25, 78 };
properties.DateProp = DateTime.Now;
properties.ObjectProp = new { Id = 5, Value = "Value1" };
LineUpCallerParameters attributes = new LineUpCallerParameters
{
LineId = 3042,
Phone = "+17343305027",
Channel = "CallIn",
Source = "Phone",
Language = "en",
Skills = new string[] { "Skill1", "Skill2", "Skill3" },
Properties = properties
};
For more information: ExpandoObject
API Request
A caller who has been notified by SMS will call again and served with the highest priority. However, in order to prevent misuse, the call center should verify with virtualQ if the caller is currently up.
Method Call
public async Task<Result<bool>> VerifyCaller(CallerParameters attributes)
CallerParameters
Parameter | Type | Description |
---|---|---|
LineId |
long |
Line ID |
Phone |
string |
Phone number of caller |
Response
Value | Description |
---|---|
true |
valid call, serve with priority |
false |
in-valid call, transfer to waiting field |
API Request
After verification virtualQ should be notified that the caller has called in. This information will be displayed in interfaces to the caller (e.g. App, Web), and will be stored for reporting.
Method Call
public async Task<Result> NotifyCallerConnected(CallerParameters attributes)
CallerParameters
Parameter | Type | Description |
---|---|---|
LineId |
long |
(required) Line ID |
Phone |
string |
(required) Phone number of caller |
API Request
Notify virtualQ that a caller has been transferred to an agent and is now speaking. This information will be displayed in interfaces to the caller (e.g. App, Web), and will be stored for reporting.
If NotifyCallerConnected
has been called previously, the property WaitTimeWhenUp
will be calculated by virtualQ and does not need to be supplied.
Method Call
public async Task<Result> NotifyCallerTransferred(NotifyCallerTransferredParameters attributes)
NotifyCallerTransferredParameters
Parameter | Type | Description |
---|---|---|
LineId |
long |
(required) Line ID |
Phone |
string |
(required) Phone number of caller |
WaitTimeWhenUp |
Nullable<int> |
Time waited before being transferred to agent |
AgentId |
string |
Agent caller was connected with |
API Request
This method can be used to notify virtualQ about additional information about the caller. For example you can transmit the waiting time the caller has waited before being connected, or the agent id the callers has been transferred to.
Method Call
public async Task<Result> UpdateCallerInformation(UpdateCallerInformationParameters attributes)
UpdateCallerInformationParameters
Parameter | Type | Description |
---|---|---|
LineId |
long |
(required) Line ID |
Phone |
string |
(required) Phone number of caller |
WaitTimeWhenUp |
Nullable<int> |
Time waited before being transferred to agent |
TalkTime |
Nullable<int> |
Time spent talking with agent |
AgentId |
string |
Agent caller was connected with |
API Request
This method can be used to query all callers currently waiting in a call center. Several parameters can be used to filter the result.
Method Call
public async Task<Result> ListCallersWaiting(ListCallersWaitingParameters attributes)
ListCallersWaitingParameters
Parameter | Type | Description |
---|---|---|
CallCenterId |
long |
(required) Call Center ID |
LineId |
long |
Only list callers that are waiting in this line. |
Updated |
boolean |
Only list callers that have been updated since the last request. |
Response
Value | Description |
---|---|
{ ... } |
Array of callers |
API Request
virtualQ GmbH - All rights reserved | Website: http://virtualq.io | Dashboard: https://dashboard.virtualq.io