From Bright Pattern Documentation
Jump to: navigation, search
(Updated via BpDeleteTranslateTags script)
 
(10 intermediate revisions by one other user not shown)
Line 1: Line 1:
<translate>
 
= Agent State =
 
Agent State is used to request an agent's state and interaction information, as well as to change an agent's state. Use either ''getState'' or ''setStatus''.
 
  
== getState ==
+
= getState =
Requests information about an agent's current state and interactions. Note that the agent must be logged in to Agent Desktop in order to use ''getState''.
+
Requests information about an agent's current state and interactions. getState uses a callback function with command GET_STATE to request agent state and interaction data.
  
 +
Note that the agent must be logged in to Agent Desktop in order to use ''getState''. See this specification's [[Embedded-agent-desktop-sdk-specification/UseCases/GetAgentStateInteractionInfo |  Use Cases]] section for ways to use this method.
 +
 +
== Request ==
 
=== Syntax ===
 
=== Syntax ===
 
  window.bpspat.api.getState(callback)
 
  window.bpspat.api.getState(callback)
Line 22: Line 22:
 
|}
 
|}
  
=== Sample Code ===
 
The following is the minimum that you need to paste into your HTML webpage in order to use ''getState''.
 
 
In this sample, the ''getState'' method is attached to a button element that, when clicked, will show agent state data in the logs.
 
 
<script type="text/javascript" src="https://<tenant>.brightpattern.com/agentdesktop/libs/servicepattern-sdk-v1.js"> </script>//JavaScript that calls on your tenant's (contact center's) Agent Desktop and the SDK libraries. In the source, replace "<tenant>" with your actual Agent Desktop web server name.
 
 
<iframe id="repeater" style="position:absolute; right: 8px; width: 200px; height: 200px;" src="https://<tenant>.brightpattern.com/agentdesktop/UniversalRepeater.jsp"></iframe>//The Agent Desktop widget ("repeater") and display properties. In the source, replace "<tenant>" with your actual Agent Desktop web server name.
 
 
<button onclick="bpspat.api.getState(log)">Get State</button>//Button with getState method attached.
 
 
<<nowiki />div id="log">Logs...</div>//Logs section.
 
 
<script type="text/javascript">//Gets agent state data.
 
function log(data) {
 
let div = document.createElement("div");
 
div.innerHTML = JSON.stringify(data);
 
document.getElementById("log").appendChild(div);
 
}
 
</script>
 
 
== How to Use getState ==
 
# Paste the above sample code into the body of your HTML page.<br /><br />
 
# Save and open the page in your web browser.<br /><br />
 
# Make sure the agent is logged in.<br /><br />
 
# Click the '''Get State''' button to initiate the request.<br /><br />
 
# View the response data on the page.<br /><br />
 
  
 
== Response ==
 
== Response ==
=== Example Response ===
 
 
The following is an example of the response you may get when you call ''getState''. Every time the state changes, the logs display the updated agent state:
 
The following is an example of the response you may get when you call ''getState''. Every time the state changes, the logs display the updated agent state:
  
 
  Logs...
 
  Logs...
  {"command":"STATE_CHANGED","data":{"status":"ready","reason":""}}
+
  {"command":"STATE_CHANGED","data":{"agent_id":"jeffery.lozada","status":"ready","reason":""}}
  {"command":"STATE_CHANGED","data":{"status":"not_ready","reason":"Not ready"}}
+
  {"command":"STATE_CHANGED","data":{"agent_id":"jeffery.lozada","status":"not_ready","reason":"Not ready"}}
  {"command":"STATE_CHANGED","data":{"status":"not_ready","reason":"A+ Super Star!!!"}}
+
  {"command":"GET_STATE","data":{"agent_id":"jeffery.lozada","interactions":[{"item_id":"5B07EFE4-0658-45E0-AA6E-23AA042C1F0E","screenpop_data":{}}],"status":"ready","reason":""},"request_id":"2"}
 +
 
  
 
=== Response Fields ===
 
=== Response Fields ===
Line 100: Line 73:
 
| Phone number dialed (either extension number or full number)
 
| Phone number dialed (either extension number or full number)
 
| "1012"
 
| "1012"
 +
|-
 +
| recording_url
 +
| string
 +
| URL of the call recording
 +
| "/msgplayback?tenant_id=1F64161D-C1C4-4A57-8DC4-B6B2ED7412C8&rtp_processor_id=7C0DCA41-F507-42B9-9D40-0E3B9F302B9F&message=recordings/<tenant>.brightpattern.com/2019-02-09/72E82ED8-769D-4267-85D3-EC890D653240&key_id=D811EFBA-5F8A-4AE5-A80C-8F07B7372BEF&CRC=aaadd10b9dbee5e52dcf60fe104982dd"
 +
|-
 +
| request_id
 +
| number
 +
| Indicates how many times you have made the getState request
 +
| "3" (e.g., this is the third time requesting agent status information)
 
|-
 
|-
 
| service
 
| service
Line 113: Line 96:
 
| attached_data
 
| attached_data
 
| object
 
| object
| File attachments
+
| Data attached to a call
 
| -
 
| -
 
|}
 
|}
 
 
== setStatus ==
 
Requests an agent routing state change (with or without a reason code).
 
 
=== Syntax ===
 
window.bpspat.api.setStatus(status, reason_code="")
 
 
For example:
 
window.bpspat.api.setStatus('READY')
 
 
=== Parameters ===
 
{|border="1" style="border-collapse:collapse" cellpadding="5"
 
| '''Parameter'''
 
| '''Data Type'''
 
| '''Required/Optional'''
 
| '''Description'''
 
|-
 
| status
 
| string
 
| required
 
| Specifies the agent state to be set
 
|-
 
| reason_code
 
| number
 
| optional
 
| Specifies the reason for agent state change
 
|}
 
 
=== Sample Code ===
 
The following is the minimum that you need to paste into your HTML webpage in order to use ''setStatus''.
 
 
<script type="text/javascript" src="https://<tenant>.brightpattern.com/agentdesktop/libs/servicepattern-sdk-v1.js"> </script>
 
//JavaScript that calls on your tenant's (contact center's) Agent Desktop and the SDK libraries. In the source, replace "<tenant>" with your actual Agent Desktop web server name.
 
 
<iframe id="repeater" style="position:absolute; right: 8px; width: 200px; height: 200px;" src="https://<tenant>.brightpattern.com/agentdesktop/UniversalRepeater.jsp"></iframe>//The Agent Desktop widget ("repeater") and display properties. In the source, replace "<tenant>" with your actual Agent Desktop web server name.
 
   
 
<button onclick="bpspat.api.setStatus('READY')">Set Status</button>
 
//HTML element with setStatus method  attached to set agent state to Ready.
 
 
  <<nowiki />div id="log">Logs...</div>//Logs section.
 
 
<script type="text/javascript">
 
            //initiate script with origin of Agent Desktop embedded on the page
 
            window.bpspat.api.init(window.location.href.substring(0, window.location.href.indexOf("/agentdesktop/AgentDesktopSdkTest.jsp")));//remove suffix, pass origin
 
 
            document.getElementById("repeater").src = window.location.href.replace("AgentDesktopSdkTest", "UniversalRepeater");
 
 
            function log(data) {
 
                let div = document.createElement("div");
 
                div.innerHTML = JSON.stringify(data);
 
                document.getElementById("log").appendChild(div);
 
            }
 
 
            window.bpspat.api.addStatusChangeHandler(log);
 
</script>
 
 
== How to Use setStatus ==
 
# Paste the above sample code onto your page.<br /><br />
 
# Save and open the page in your web browser.<br /><br />
 
# Make sure the agent is logged in.<br /><br />
 
# Click the '''Set Status''' button to initiate the request.<br /><br />
 
# View the response data on the page.<br /><br />
 
 
 
 
</translate>
 

Latest revision as of 04:02, 29 May 2024

• 5.19 • 5.3 • 5.8


getState

Requests information about an agent's current state and interactions. getState uses a callback function with command GET_STATE to request agent state and interaction data.

Note that the agent must be logged in to Agent Desktop in order to use getState. See this specification's Use Cases section for ways to use this method.

Request

Syntax

window.bpspat.api.getState(callback)
callback = function(data) {
}

Parameters

Parameter Type Description
callback function JavaScript method executed when API method request is completed


Response

The following is an example of the response you may get when you call getState. Every time the state changes, the logs display the updated agent state:

Logs...
{"command":"STATE_CHANGED","data":{"agent_id":"jeffery.lozada","status":"ready","reason":""}}
{"command":"STATE_CHANGED","data":{"agent_id":"jeffery.lozada","status":"not_ready","reason":"Not ready"}}
{"command":"GET_STATE","data":{"agent_id":"jeffery.lozada","interactions":[{"item_id":"5B07EFE4-0658-45E0-AA6E-23AA042C1F0E","screenpop_data":{}}],"status":"ready","reason":""},"request_id":"2"}


Response Fields

Name Data Type Description Example
agent_id string agent username "john.smith"
status string agent state "Not ready"
reason string Not Ready reason "Lunch"
interactions array List of interaction data, including data items below "item_id":"5B07EFE4-0658-45E0-AA6E-23AA042C1F0E","screenpop_data":{}
item.id string Interaction ID "5B07EFE4-0658-45E0-AA6E-23AA042C1F0E"
global_id string Global interaction ID (GIID) "0CB4F48D-C4D8-4C9F-94F5-770AD5002C40"
phone_number string Phone number dialed (either extension number or full number) "1012"
recording_url string URL of the call recording "/msgplayback?tenant_id=1F64161D-C1C4-4A57-8DC4-B6B2ED7412C8&rtp_processor_id=7C0DCA41-F507-42B9-9D40-0E3B9F302B9F&message=recordings/<tenant>.brightpattern.com/2019-02-09/72E82ED8-769D-4267-85D3-EC890D653240&key_id=D811EFBA-5F8A-4AE5-A80C-8F07B7372BEF&CRC=aaadd10b9dbee5e52dcf60fe104982dd"
request_id number Indicates how many times you have made the getState request "3" (e.g., this is the third time requesting agent status information)
service string Name of the service handling the interaction "Maintenance Renewal"
screenpop_data string Information shown on screen-pop -
attached_data object Data attached to a call -
< Previous | Next >