Puzzel's Agent Application
Puzzel’s agent application (PAA) is our web-based user interface for agents. Agents use PAA to respond to enquiries from all channels (voice, chat, email, and social media), and is easily accessed through https://agent.puzzel.com.
The requirements for the agent application are solely browser based and does not have a .NET framework requirement nor hardware or operating system requirement.
The agent web application should in general function in most updated internet browsers, but we only test and support the versions listed below. Among these we recommend the Chrome browser since it supports our Softphone-related feature of Jabra headset integration.
|Browser||Lowest Version Supported|
|Microsoft Edge (Chromium)||81|
Name Resolution | DNS
The agent application will require name resolution via DNS for the following addresses for access:
The agent application used with Puzzel's agent assist will require name resolution via DNS for the following addresses for access in addition:
When the agent signs in to the agent application, it establishes contact with the trigger-server on port 443 using SignalR over the https-protocol and waits for a response.
The agent application will display screen popup information for incoming calls, chats, e-mails and social media requests. It automatically detects if a firewall terminates the https-connection (for example if the “time to live”-value has expired), and then tries to re-establish the https-connection.
For browsers supporting websockets (e.g. Chrome) in addition to https, wss://trigger.puzzel.com:443 must be opened in the firewall.
The agent application will display a notification for incoming calls, chats, e-mails and social media requests. The notifications are based on the Notifications API and may not be supported in all browsers.
Verifying connection to the trigger server
To verify the trigger server in the agent application, write: https://agent.puzzel.com/
Open the developer tool in the browser (F12) and press the tab Console.
You will typically see an entry like:
[triggerClient-1385652327723] TriggerServer Connected to server, sending Logon.. [triggerClient-1385652327726] onStateChanged([object Object]) - Connected [triggerClient-1385652327728] TriggerServer Connection started 2018-12-17 10:17:35.343 INFO [trigger] Connect app-bundle-ff35dbd746.js:1 2018-12-17 10:17:35.351 INFO [trigger] State changed: connecting app-bundle-ff35dbd746.js:1 2018-12-17 10:17:35.609 INFO [trigger] State changed: connected app-bundle-ff35dbd746.js:1 2018-12-17 10:17:35.610 INFO [trigger] Started
The agent application portal is only available through the https protocol. Most companies allow this traffic through their firewalls, but some customers will only permit https traffic to trusted sites. The trusted site-list is configured on the customer’s site.
As of August 31st, 2020, the agent application is planned to be hosted on Azure. This means that for the agent application to work through the customer-firewall, the customer must permit traffic towards both Puzzel’s data centres and the relevant Azure regions.
Puzzel recommend that customers with a strict firewall policy configure their firewall to allow traffic to the DNS names used by Puzzel. Since Azure is designed for redundancy across multiple regions, the services are not assigned a fixed IP-address. By configuring the firewall to allow traffic to the DNS name, the IP used can be dynamically allowed based on DNS. This mitigates the need to configure a large number of IP-subnets on the firewall.
The minimum requirement for utilizing the agent application is to allow https-traffic (both inbound and outbound) on port 443 towards DNS names https://agent.puzzel.com and https://trigger.puzzel.com. To allow for future service expansions, it is recommended to allow traffic to all sub-domains under puzzel.com: https://*.puzzel.com.
As an alternative to configuring the firewall to allow traffic based on DNS, it is possible to configure firewall rules based on IP address. In this case it is required to configure the firewall to allow https traffic on port 443 to all the relevant IPs for Azure in addition to the public IP address used by Puzzel’s data centres.
The IP ranges used by Azure’s datacenters are available in a machine readable format here: https://www.microsoft.com/en-us/download/details.aspx?id=56519.
The minimum requirement for utilizing the agent application is to allow https-traffic (both inbound and outbound) on port 443 towards IP ranges specified for AzureCloud.WestEurope, AzureCloud.NorthEurope, AzureCloud.NorwayEast and AzureCloud.NorwayWest as well as IP-addresses 126.96.36.199 and 188.8.131.52, which are the IP-addresses used by Puzzel’s on-prem data centres for agent.puzzel.com and trigger.puzzel.com respectively.
For browsers supporting websockets (e.g. Chrome), the URL for this is wss://trigger.puzzel.com:443
A request can be set up to trigger web-based lookups from our platforms event handler. These lookups will be sent from the following public IP-address ranges:
184.108.40.206 – 220.127.116.11
18.104.22.168 – 22.214.171.124
If more specific restrictions are required, the following IP-addresses should be on the allow-list:
A softphone is embedded in the agent application and enables agents to answer calls from the solutions queues using a phone build into the application, instead of using an external phone (usually with a landline or mobile phone). Softphone utilizes WebRTC-technology to transfer the conversations audio using the agent’s internet browser and internet connection as a carrier.
Softphone has a cost and requires a setup by Puzzel. Softphone can be activated on some or all agents, based on your needs. Please contact your key account manager for further information regarding prices and cost.
It is recommended to start testing softphone with only one or two agents to begin with, and eventually extend the number of users. The agent is required to allow the agent application access to use the computers microphone device when answering a Softphone call for the first time, for Softphone to function correctly. This is requested through a popup in the browser but can also be accessed through the content settings in Chrome (chrome://settings/content).
Agents can toggle between logging on with a softphone or an external phone in the agent application, and calls can be answered manually or with auto answer (a setting in the applications menu).
Softphone requires that agents have a sufficient and stable internet access, preferably on a wired connection.
Our WebRTC implementations use G.711 (audio) codecs with the following specifications:
- 8 kHz sampling frequency
- 64 kbit/s bitrate (8 kHz sampling frequency × 8 bits per sample
- Typical algorithmic delay is 0.125 ms, with no look-ahead delay
- G.711 is a waveform speech coder
- G.711 Appendix I defines a packet loss concealment (PLC) algorithm to help hide transmission losses in a packetized network
The customer firewall should allow these traffics for Softphone service:
|Outbound||TCP||443||126.96.36.199 (acwebrtc.puzzel.com)||Application Signaling|
|turn/stun/ice/nat/tcp-udp hole punch|
|Real-Time stream traffic|
There are other factors worth considering when there are problems related to softphone:
- Various firewall-settings
- Pop-up blockers
- Intrusion Detection Systems (IDS)
- Access-filters in routers
The amount of web traffic between the agent application and the Puzzel platform, depends on many factors. Some important factors are:
- Which features in the agent application are most frequently used by the agent
- The number of queues in the customer’s Puzzel-solution
- The periodic queue refresh configuration (how often refresh)
- How often the agent manually refreshes in the agent application
- The number of calls/emails/chats per day to each agent
- The number of status changes per day (Log on/off/pause/back)
- How often the agent uses contact search
|Puzzel Agent Application|
|Description||Amount of data sent/received||Update frequency|
|Status||< 1 KB for status||Updated automatically every 5th sec|
Agent Normally sees the Queue overview in the agent application
|Depends on the number of queues. Approx. 0,4KB per queue + 1KB “overhead”.
Example: 5 queues = 5x0,4KB + 1KB = 3KB
|By default, updated automatically every 10th sec|
|Other Activity||Status change, call commands, < 1KB
Search: depends on result set, typically around 10kB.
|On agent action|
If the available bandwidth for Puzzel is too small, this will of course affect the agent application. Automatic queue updating and actions like log on/off or transfer calls will take relatively longer time.