A device, system and method is provided for monitoring a user's interactions with internet-based programs or documents. Content may be extracted from internet server traffic according to predefined rules. Extracted content may be associated with a user's internet interaction. The user's internet interaction may be stored and indexed. The user's internet interaction may be analyzed to generate a recommendation provided to a contact center agent while the contact center agent is communicating with said user for guiding the user's interaction, for example, in real-time. Traffic other than internet server traffic may also be used.

Patent
   RE47896
Priority
Nov 28 2011
Filed
Jul 30 2018
Issued
Mar 03 2020
Expiry
Nov 28 2031
Assg.orig
Entity
Large
2
42
currently ok
29. A method for monitoring a user's interactions with internet-based programs or documents, the method comprising:
extracting a webpage screen element, by a web analyzer using a processor, from internet server traffic according to predefined rules, the internet server traffic captured by a capture server executed by a processor, the internet server traffic accessed by one or more computers each executing a processor;
from webpage screen elements correlated to a user, associating by the web analyzer the extracted webpage screen element with one of a plurality of a user's internet interaction sessions, the screen elements extracted from a series of internet web pages accessed by users using the computers;
attaching user-related profile data to internet interaction sessions;
storing and indexing the plurality of the user's internet interaction sessions;
automatically analyzing, by the web analyzer using the processor, the plurality of the user's internet interaction sessions to generate a recommendation for guiding the user's internet interactions, the recommendation comprising a path of internet web pages; and
providing the recommendation, which is generated based on said automatically analyzing the user's plurality of internet interaction sessions, on screen to a contact center agent while the contact center agent is communicating with said user during a telephone call initiated by the user between the agent and the user and providing data regarding an internet interaction session identified as being by the user and being relevant to the call.
12. A system for monitoring a user's interactions with internet-based programs or documents, the system comprising:
a web analyzer executed by a processor to extract content from internet server traffic according to predefined rules, the internet server traffic captured by a capture server executed by a processor;
a mapping table storing entries that map interactions, for a plurality of users, to a first user identifier and one or more second user identifiers;
a customer resolver executed by a processor to correlate users to respective content based on the first user identifier and the one or more second user identifiers;
the web analyzer to associate, from the content correlated to a user, the extracted content with one or more of a user's internet interaction sessions, each user's internet interaction session comprising data extracted from a series of internet web pages accessed by the corresponding user;
the web analyzer to attach user-related profile data to internet interaction sessions;
the web analyzer to index the user's internet interaction sessions,;
automatically compare one or more of the user's internet interaction sessions to one or more modeled sessions comprising data relating to internet web pages by executing a web analyzer to generate a recommendation of one or more future session paths from the modeled sessions for guiding the user's internet interactions and to provide the recommendation of the future session paths from the modeled sessions on screen to a contact center agent while the contact center agent is communicating with said user during a telephone call initiated by the user between the agent and the user, each future session path comprising a path of internet web pages;
an automated agent providing to the contact center agent during the telephone call, data regarding an internet interaction session identified as being relevant to the call; and
a storage device to store the one or more of the user's internet interaction sessions.
0. 30. A method for monitoring a user's interactions with internet-based programs or documents, the method comprising:
extracting by a web analyzer executed by a processor of one or more processors content from internet server traffic according to predefined rules, the internet server traffic captured by a capture server executed by a processor, the internet server traffic accessed by one or more computers each executing a processor;
storing a mapping table with entries that map interactions, for a plurality of users, to a first user identifier and one or more second user identifiers;
correlating users to respective content based on the first user identifier and the one or more second user identifiers;
from the content correlated to a user, associating by the web analyzer the extracted content with one or more of a user's internet interaction sessions, each user's internet interaction session comprising data extracted from a series of internet web pages accessed by the corresponding user using the user's computer;
attaching user-related profile data to internet interaction sessions;
storing and indexing the user's internet interaction sessions in a database by the web analyzer;
automatically comparing, by the web analyzer using a processor of the one or more processors, one or more of the user's internet interaction sessions to one or more modeled sessions comprising data relating to internet web pages, the comparison to generate a recommendation of one or more future session paths from the modeled sessions for guiding the user's internet interactions, each future session path comprising a path of internet web pages;
providing by an automated agent the recommendation of the future session paths from the modeled sessions on screen to a contact center agent while the contact center agent is communicating with said user during a telephone call initiated by the user between the contact center agent and the user; and
providing by the automated agent on screen to the contact center agent while the contact center agent is communicating with the user during the telephone call data regarding an internet interaction session ongoing during the telephone call which is identified as being by the user.
1. A method for monitoring a user's interactions with internet-based programs or documents, the method comprising:
extracting by a web analyzer executed by a processor of one or more processors content from internet server traffic according to predefined rules, the internet server traffic captured by a capture server executed by a processor, the internet server traffic accessed by one or more computers each executing a processor;
storing a mapping table with entries that map interactions, for a plurality of users, to a first user identifier and one or more second user identifiers;
correlating users to respective content based on the first user identifier and the one or more second user identifiers;
from the content correlated to a user, associating by the web analyzer the extracted content with one or more of a user's internet interaction sessions, each user's internet interaction session comprising data extracted from a series of internet web pages accessed by the corresponding user using the user's computer;
attaching user-related profile data to internet interaction sessions;
storing and indexing the user's internet interaction sessions in a database by the web analyzer;
automatically comparing, by a the web analyzer using a processor of the one or more processors, one or more of the user's internet interaction sessions to one or more modeled sessions comprising data relating to internet web pages, the comparison to generate a recommendation of one or more future session paths from the modeled sessions for guiding the user's internet interactions, each future session path comprising a path of internet web pages; and
providing by an automated agent the recommendation of the future session paths from the modeled sessions on screen to a contact center agent while the contact center agent is communicating with said user during a telephone call initiated by the user between the contact center agent and the user; and
providing by the automated agent on screen to the contact center agent while the contact center agent is communicating with the user during the telephone call, data regarding an internet interaction session identified as being by the user and being relevant to the call.
2. The method of claim 1 comprising identifying the user by text captured on a screen element of a webpage used in the one or more of the user's internet interaction sessions.
3. The method of claim 1, wherein the predefined rules define content to be extracted according to parameters selected from the group consisting of: a title of webpage(s), date/time webpage(s) created, product(s) viewed, prices offered, product categories (used vs. new, wholesale vs. retail, etc.), customer search words, customer highlighting or selection of products, a type of web object, the presence or frequency of certain key-words, how long ago a webpage was viewed, the amount of time a webpage is viewed, a number of times or which different items are selected on a webpage, and the order in which the webpage was viewed.
4. The method of claim 1 comprising generating a summary of the user's past or current internet interaction sessions and providing said summary to the contact center agent while the contact center agent is communicating with said user for guiding the user's internet interaction.
5. The method of claim 4, wherein the summary comprises data selected from the group consisting of: a description of the user's interaction sessions, product viewed, and prices offered.
6. The method of claim 1 comprising, using a web player, providing the agent with a playback of the user's past or current internet interaction sessions during the telephone call between the agent and the user.
7. The method of claim 1 comprising capturing the internet server traffic using wherein the capture server comprises a passive sniffing device.
8. The method of claim 1, wherein the internet server traffic is captured over one media channel and the agent and user communicate over another media channel.
9. The method of claim 1, wherein the information analyzed in the user's internet interaction sessions includes keywords the user used for searching.
10. The method of claim 1, wherein the recommendation includes information for technical support, selling, “up-selling,” “cross-selling,” or filling in surveys.
11. The method of claim 1, wherein the recommendation is provided to the contact center agent in real-time.
13. The system of claim 12 comprising wherein the capture server comprises a passive sniffing device to capture the internet server traffic.
14. The system of claim 12 comprising a first media channel over which the internet server traffic is captured and a second different media channel over which the agent and user communicate.
15. The system of claim 12 comprising a computer and telephone operated by the user, wherein an internet connection at the a user's computer is monitored for internet server traffic and the telephone call between the contact center agent and the user telephone triggers the processor to send the contact center agent the recommendation.
16. The system of claim 12 comprising a text capturing module, wherein the text capturing module identifies the user by capturing text on a screen element of a webpage used in the one or more of the user's internet interaction sessions.
17. The system of claim 12, wherein the processor generates a summary of the user's past or current internet interaction sessions provided to the contact center agent while the contact center agent is communicating with said user for guiding the user's internet interaction.
18. The system of claim 12 comprising a workstation operated by the contact center agent, the workstation having a display and a web player, wherein the display uses the web player displays a playback of the user's past or current internet interaction sessions during the telephone call between the agent and the user.
0. 19. The system of claim 12 comprising a semi-automated and semi-live contact center agent.
20. The method of claim 1, wherein the one or more modeled sessions are real-life sessions generated by interactions of one or more other users.
21. The method of claim 1, wherein the one or more modeled sessions are generated in a computer-training environment by a trainer.
22. The method of claim 1, wherein the one or more modeled sessions are retrieved from a pool of sessions that most closely matches features used in the user's current internet interaction session.
23. The method of claim 1, wherein the one or more modeled sessions include a fixed linear path of webpages to browse.
24. The method of claim 1, wherein the one or more modeled sessions include a dynamic tree-structure of paths, where each chosen webpage path leads to a different predicted modeled future session path.
25. The method of claim 1, wherein the information analyzed in the user's internet interaction sessions includes product details viewed.
26. The method of claim 1 comprising automatically and passively determining the user identity of the extracted content, by the web analyzer using the processor, by passively sniffing the internet server traffic.
27. The method of claim 1 comprising displaying to the agent, during the telephone call between the agent and the user, a key-value summary of the extracted content associated with one or more of the user's internet interaction sessions.
28. The method of claim 1 comprising receiving, the predefined rules from a user which determines the web elements to be extracted on a web page.
0. 31. The method of claim 30 comprising identifying the user by text captured on a screen element of a webpage used in the one or more of the user's internet interaction sessions.
0. 32. The method of claim 30 wherein the capture server comprises a passive sniffing device.

to a to given session ID. Such a request may be, for example:

Data Structures in the requests may include, for example: CustomerIdentityType Enumeration, which may be defined, for example, as follows:

Reference is made to FIG. 7, which schematically illustrates a system 700 including a web analyzer 718 and a connection server 724 interacting via a connection service interface 722 in accordance with an embodiment of the invention.

Web analyzer 718 (e.g., analysis server 116 of FIG. 1) may include connection service interface 722 to provide an interface for agents to query an interaction database (e.g., interaction database 124 of FIG. 1) for open sessions. Connection service interface 722 may use a communication foundation based service, such as, Windows™ communication foundation (WCF), which may be implemented as a singleton service and may be a transmission control protocol (TCP) service. Connection service interface 722 may retrieve all open sessions (or a subset of open sessions) from a session manager 736, for example, as a SessionsManager object, provided by a sessions structure manager 738. Sessions may be converted, for example, to OpenWebInteractionData objects, and then returned to the client.

Components and processes of FIG. 7 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110 and analysis server 116. Components of FIG. 7 may each be, for example, software executed on one or more processors.

Reference is made to FIG. 8, which schematically illustrates a workflow 800 for retrieving open sessions in accordance with an embodiment of the invention. Workflow 800 may be executed by a connection server 824 (e.g., connection server 724 of FIG. 7), a connection service interface 822 (e.g., connection service interface 722 of FIG. 7), and a sessions structure manager 838 (e.g., sessions structure manager 738 of FIG. 7).

In operation 802, connection server 824 may send a request to connection service interface 822 for customer identifier types currently supported by a web analyzer (e.g., web analyzer 718 of FIG. 7).

In operation 804, connection service interface 822 may send supported customer identifier types retrieved from the web analyzer and may transmit them to connection server 824.

In operation 806, connection server 824 may send a request to connection service interface 822 for current open sessions metadata according to customer identifiers and/or a website ID.

In operation 808, connection service interface 822 may transfer the customer identifiers and/or a website ID to sessions structure manager 838.

In operation 810, sessions structure manager 838 may return current open sessions metadata to connection service interface 822.

In operation 812, connection service interface 822 may transfer the current open sessions metadata to connection server 824.

In operation 814, connection server 824 may send a request to connection service interface 822 for current open sessions according a given session ID.

In operation 816, connection service interface 822 may transfer the session ID to sessions structure manager 838.

In operation 818, sessions structure manager 838 may return current open sessions web interaction data to connection service interface 822.

In operation 820, connection service interface 822 may transfer the current open sessions web interaction data to connection server 824.

Other operations or orders of operations may be used. Components and processes of FIG. 8 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110, analysis server 116, agent device 120, interactions center 124 and their processors 112, 132, 136 and 142. Components of FIG. 8 may be, for example, software executed on one or more processors.

Reference is made to FIG. 9, which schematically illustrates a sessions structure manager 938 in accordance with an embodiment of the invention. Sessions structure manager 938 of FIG. 9 may be the same or different than sessions structure manager 738 of FIG. 7 and/or sessions structure manager 838 of FIG. 8.

Sessions structure manager 938 may manage open sessions 902 in a web analyzer, for example, according to one or more of the following indexes:

Referring again to FIG. 5, web analyzer 518 may include another interface, for example, CAPI 548, for populating the sessions as interactions in interaction database 522. Web analyzer 518 may use a unique library to generate an interaction ID (e.g., a number representing an interaction record in database 522). CAPI 548 may populate interaction database 522 with a contact ID (e.g., a number representing a contact record database 522, which may be identical to, or derived from, the interaction ID), while web analyzer 518 may populate interaction database 522 with interaction content (e.g., interaction page, interaction data, page data, server event IDs (e.g., interaction, contact and/or customer IDs), etc., which may be unique only inside an interaction). In one embodiment, web analyzer 518 may use an “Insert” mode of CAPI 548 and not an “Open, Close” mode, such that, only closed sessions may be documented to interaction database 522. Web analyzer 518 may provide a user or customer ID (e.g., a number representing a user or customer record in database 522), for example, via a configuration file. Web analyzer 518 may create two participants, one for the user (if an identifier was extracted) and one for a virtual agent (e.g., an agent that represents web analyzer 518 that analyzes data that the user creates when they view a website or webpage). A hostname for CAPI 548 may be a local hostname, which may, for example, be hardcoded. A port for CAPI 548 may include a port taken from a plug-in during the web analyzer 518 start-up.

Other or additional system interfaces may be used.

Embodiments of the invention may provide a system and method for web recording and fetching new data. In order to fetch new data, a web analyzer may sample an authentication database and may search for new interactions or events that have not yet been processed. For each event fetched by the web analyzer, the analyzer may, for example:

The process may continue for each fetched event, for example, until the new session is closed (e.g., after a period of inactivity) or after a maximum session size or number of webpages are stored in the new session object.

Embodiments of the invention may provide a system and method for extracting data from new web recordings. In order to extract data, a web analyzer may, for example:

Embodiments of the invention may provide a system and method for session termination and data population for extracted web interactions. A web analyzer may, for example, after a predetermined number of minutes of inactivity, close a current session and pass the associated session object to a perform adapter (e.g., perform adapter 546 of FIG. 5). If the session is “web authenticated” or a flag is raised, e.g., “Insert Web Unauthenticated Sessions,” the web analyzer may insert a new interaction into an interaction database (e.g., interaction database 522 of FIG. 5), for example, using an interface (e.g., CAPI 548 of FIG. 5). In some embodiments, each session may include a single interaction and a single contact ID, while in other embodiments, each session may include multiple interactions and/or multiple contact IDs. Each webpage URL written to the interaction database may be a URL assigned by an authentication database and may be, for example, concatenated with a file ID (e.g., to enable playback). The perform adapter may pass the bulk of the sessions to the CAPI.

Embodiments of the invention may provide a system and method for the configuration of a system monitoring web interactions. The configuration may be loaded during the start up of the web analyzer. The parameters may be set as recording rules in the rule manager, while some parameters may be configured after installation manually, for example:

Embodiments of the invention may include one or more configuration parameters for monitoring web interactions (parameters may be loaded during the start-up of a web analyzer and may be configured manually after the installation. Examples of default parameters are defined in brackets “[ ]”. Configuration parameters may include, for example:

Embodiments of the invention may provide a deployment manager for deploying a web analyzer (e.g., web analyzer 518 of FIG. 5) and a customer entity database, for example, using an interaction center (e.g., interaction center 528 of FIG. 5). The interaction center may handle additional media types other than web media, such as, text or messaging media, telephone call recordings, surveys, etc. The interaction center may handle a new deployment package, which is dependent on the interaction center package, but which may be installed separately therefrom. In embodiments where the web analyzer has no plug-in, some configuration parameters may be entered manually after installation.

Embodiments of the invention may provide a system and method for testing the configuration and deployment of systems monitoring web interactions. For example, system 500 of FIG. 5 may be adapted to include emulators or testing modules configured with temporary or testing parameters and setting. For example, emulators or testing modules may be implemented for data provider 534, CAPI 548 and/or configuration loader 538 to test the operation of system 500. Emulators may be adaptive, for example, modifying parameters or function to optimize testing operation. Parameters correlated with optimal system 500 testing operation may be set after testing for actual system operations.

Testing may be executed separately for different types of websites, e.g., one resembling a banking website and one resembling a different commercial website. Testing may include all (or a subset) of the system devices and functionality (e.g., tested end-to-end), for example, including those involving interaction business applications (IBAs) and real-time interaction or guidance capabilities. Testing may be executed to verify performance criteria according to a usage model defining an average or maximum volume of customer web interactions over time (e.g., up to 1 million (M) or 5M page views per day).

The testing flow may be executed as follows (other or additional steps may also be used):

In some embodiments, configuration parameters and/or rules may be imported into the system from a PO client (e.g., PO client 520 of FIG. 5). The rules may be imported to a rule manager (e.g., rule manager 426 of FIG. 4), for example, as part of the rule manager scheduler rules. The PO client configuration XML may be loaded to an administrator database. The system may support only one site per configuration. Configuration parameters may be loaded using a “Configuration Loader” library (e.g., available for a business analyzer). Deleted Types, Objects, and Screen Elements may be marked as deleted.

Embodiments of the invention may include a customer resolver to identify a customer or user that executes each interaction, for example, so that an agent may access all (or a subset of) customer-specific interactions. The customer resolver may include a dynamic link library (DLL), for example, located in and/or accessed by the interaction center (e.g., customer resolver 432 of FIG. 4) and/or in a connection server (e.g., customer resolver 434 of FIG. 4). When the customer resolver is located in the interaction center, a web analyzer may report web interactions to the interaction center, e.g., via a CAPI, using a customer identifier, identifier type and/or tenant ID. The interaction center may use the customer resolver to resolve the identifier to a customer ID. The interaction center may insert the customer ID into a mapping table (in the interaction center) that holds entries that map interactions in the interactions database to customer records or IDs in the customer database. When the customer resolver is located in the connection server, the connection server may query the web analyzer to receive the identifier types that the web analyzer supports. The connection server may use the customer resolver to translate the identifiers it extracts to identifiers with types that the web analyzer supports. The connection server may query the web analyzer for open sessions according to identifiers received from the customer resolver.

The customer resolver may include an API. The customer resolver API may return a customer ID according a given tenent tenant ID, customer identifier and/or identifier type. The customer resolver API may return customer identifiers for a given customer type of a given customer ID. The customer resolver API may get customer identifiers having the types supported by the web analyzer, for example, based on the tenant ID and the identifier and identifier type extracted by the connection server. A tenant may include service suppliers or intermediaries that supply system capabilities to users.

Reference is made to FIG. 10, which schematically illustrates a path 1000 to locate elements to be extracted from a document in accordance with an embodiment of the invention. Data elements may be extracted at path 1000 location by a data extractor (e.g., data extractor 540 and/or post extractor 542 of FIG. 5) or other devices (e.g., web capture servers 110 of FIG. 1).

The data extractor may use path 1000 to search a web site 1002 for a web page 1004 containing a list of products 1006. The data extractor may retrieve screen elements defined by path 1000 locations. If path 1000 indicates a search for a list of products 1006, the data extractor may extract a list of product screen elements 1008; if the search criteria indicate product names 1010, the data extractor may extract name screen elements 1014; if the search criteria indicate prices 1012, the data extractor may extract price screen elements 1016.

In one example, path 1000 may be an XML path or an Xpath, which may locate screen elements in an HTML or XML document. For example, an Xpath defining a list of products 1006 may be, for example, DIV[2]/DIV[1]/DIV[1]/DIV[4]/FORM[2]/DIV[1]. Every product in the list may be found under the list Xpath in the next DIV, TR tag or other an HTML tag element. For example, the first element may be found under DIV[1], the second element may be found under DIV[2], and so on. In some embodiments, a more complex operation may be used to find the elements. For example, if there are two path variables, x and y, the x index may refer to a start location for extracting elements (e.g., the first element, the second element, etc.) and the y index may refer to a “jump” or difference between consecutive start element location (e.g., extract every second element, every third element, etc.). For example, if x=4 and y=2, the first element may be found under DIV[4], the second element may be found under DIV[6], and so on.

Under every product Xpath, the product details (e.g., name 1010 and price 1012) may be found. For example, the product name 1010 may be found under the Xpath, DIV[3]/DIV[1]/DIV[1]/DIV[1]/H3[1]/A[1], and the product price 1012 may be found under the Xpath, DIV[2]/DIV[1]/H4[1].

The element XML may be divided into different parts, for example, container (the list), language, and product element. In one example to extract a product price 1012 element from a webpage, the Xpath may be: DIV[2]/DIV[1]/DIV[1]/DIV[4]/FORM[2]/DIV[1]/DIV[4,2]/DIV[2]/DIV[1]/H4[1], where the first Xpath part, DIV[2]/DIV[1]/DIV[1]/DIV[4]/FORM[2]/DIV[1], may define the list container, the second Xpath part, DIV[4,2], may define the language and the third Xpath part, DIV[2]/DIV[1]/H4[1], may define the product price. In another example to extract a product name element from a webpage, the Xpath may be: DIV[2]/DIV[1]/DIV[1]/DIV[4]/FORM[2]/DIV[1]/DIV[4,2]/DIV[3]/DIV[1]/DIV[1]/DIV[1]/H3[1]/A[1], where the first Xpath part, DIV[2]/DIV [1]/DIV[1]/DIV[4]/FORM[2]/DIV[1], may define the list container, the second Xpath part, DIV[4,2], may define the language and the third Xpath part, DIV[3]/DIV[1]/DIV[1]/DIV[1]/H3[1]/A[1], may define the product name. The language field of the Xpath may define which elements to extract from the container. The tag name may define relevant tags in the list of elements in the container, the first number may define from which element to start and the second number may define the increment between the elements. For example, for the language defined by the Xpath, DIV[4,2], data extractor 540 may extract every second element starting from the fourth element. It may be appreciated that different webpage document locators may be used other than Xpath and other programming languages may be used other than XML and HTML.

Reference is made to FIG. 11, which schematically illustrates an example of a webpage 1100 with extracted screen elements 1102 and 1104 defined by paths 1014 and 1016, respectively, of FIG. 10 in accordance with an embodiment of the invention. In the example shown in FIG. 11, a product price screen element 1102 and a product name screen element 1104 are extracted from webpage 1100, although alternatively or additionally other types of screen elements may be extracted at other path locations. Webpage 1100 may be provided, for example, by a web server 122 of FIG. 1.

To extract screen elements, a web analyzer (e.g., web analyzer 518 of FIG. 5) may locate all screen elements in webpage 1100 and attempt to extract them from the page. Screen element marked as list may be extracted in three parts, for example:

In some embodiments, path 1000 of FIG. 10 may also define screen elements that are not to be extracted from webpage 1100 of FIG. 11, for example, for privacy purposes.

After face-to-face interactions and telephone calls, the web is the most utilized channel for customers to interact with service organizations. Although the interactions between the customer and the organizational web servers are different in nature than human-human interactions, extremely valuable information may still be extracted from them to later assist the contact center in handling customers.

Web recording systems (e.g., systems 100 and 400 of FIGS. 1 and 4) may allow a capture device (e.g., capture server 110 of FIG. 1 and probe 410 of FIG. 4) to capture web traffic, a web analyzer (e.g., analysis server 116 of FIG. 1 and web analyzer 418 of FIG. 4) to filter or extract requested information from the captured traffic and a database (e.g., interaction database 126 of FIGS. 1 and 422 of FIG. 4) to save relevant extracted information, for example, for later analysis and playback.

Web recording systems may be used to understand cross-channel customer behavior. Many customers use different interaction channels and switch from one channel to another. To optimize channel usage, customer activity may be recorded across different communication channels.

Web recording systems may be used to provide contact center with customers' past web interactions, for example, according to the following steps:

Web recording systems may be used to provide a contact center with customers' current or ongoing web interactions, for example, according to the operations such as the following (other operations may be used):

Web recording systems may be used to evaluate an agent's performance, for example, according to the following steps:

Web recording systems may be used to understand a specific customer's cumulative cross-channel interactions, for example, according to the following steps:

Web recording systems may accommodate different web interaction capture solutions (separately or together, e.g., in parallel). Some web recording systems may use a probe connected to an IPS (e.g., probe 410/IPS 412 of FIG. 4) to capture web interactions by sniffing traffic from a web server (e.g., web server 402 of FIG. 4) and may filter the traffic. In one example, the system may sniff hypertext transfer protocol (HTTP) traffic of web servers and filter the traffic by URL via a web capture server.

Reference is made to FIG. 12, which schematically illustrates a system 1200 for capturing a user's web interactions in accordance with an embodiment of the invention. System 1200 includes a plurality of web servers 1202 (e.g., web servers 122 of FIG. 1), a plurality of web capture servers 1204 (e.g., capture server 110 of FIG. 1 including probe/IPS devices), and a plurality of interaction centers 1206 (e.g., interaction centers 124 of FIG. 1). Each web server 1202 may be monitored by one or more web capture servers 1204 and each web capture server may be processed or filtered at one or more interactions center 1206. In one embodiment, each web capture servers 1204 may monitor a user's web interactions, which may include monitoring traffic from multiple web servers 1202 when the customer is interacting with several web servers simultaneously. System 1200 may recognize such a multi-web server scenario and may automatically associate all the related captured web sessions to the same customer.

One or more web analyzers may be provided, for example, as a system administrator plug-in in interactions center 1206. The web analyzers may be able to construct web sessions or group the filtered traffic into sessions, for example, according to standard session parameters derived from metadata such as cookies. The web analyzers may truncate web sessions to include only relevant web pages, which may be referred to as web interactions, and may extract values from these web pages. Each interactions center 1206 may be connected to a PO client, which may be define relevancy criteria, logic and other configuration parameters for the web analyzer to extract, filter, store and otherwise use the users' web interactions data.

System 1200 may authenticate customer sessions for web sessions by extracting (but not necessarily resolving) a unique account or customer identifier. System 1200 may support multiple mechanisms for authenticating customer sessions, for example, by associating a cookie value to a system-defined unique identifier and/or by associating a value extracted from the web pages to a system-defined unique identifier.

Components of FIG. 12 may each be, for example, software executed on one or more processors.

Reference is made to FIG. 13, which schematically illustrates components of the system of FIG. 12 in accordance with an embodiment of the invention.

A web server 1302 (e.g., web server 1202 of FIG. 12) may provide information, such as, HTML, Capture Asynchronous JavaScript and XML (Ajax), rich internet applications (RIA), web player information, images or other formats of information, which may be hosted on a user computer (e.g., user computer 102 of FIG. 1) via a web browser.

A web capture server 1304 (e.g., web capture server 1204 of FIG. 12) may include a probe server sniffing device or process to capture web traffic, a protocol parsing device to sort the captured traffic based on web protocol (e.g., HTTP traffic, FTP traffic, IM traffic, etc.), a client collector to determine a user or customer ID, and a client capture to collect web events for each customer.

An interactions center 1306 (e.g., interactions center 1206 of FIG. 12) may convert captured web events into web interactions by filtering out relevant web pages that satisfy relevancy criteria and extracting the associated interaction data. Interactions center 1306 may include (or be connected to) a designer or PO client to define data extraction rules, scheduler rules, and/or session rules, a reconstruct module to reconstruct or group interactions into sessions, and a content extraction device to extract web content according to the extraction rules.

An interactions database 1308 (e.g., interactions database 124 of FIG. 1) may store extracted web interactions. Interactions database 1308 may include an index server to index the web interactions for proper storage and retrieval, database metadata including extracted metadata associated with each web interaction, and storage data and images for the interactions.

An insight manager 1310 may categorize the web interactions using a categorization module. A web analyzer 1312 (e.g., analysis server 116 of FIG. 1) may provide applications to an automated or live agent for ad-hoc searching (e.g., of voice and text data) and/or intervening in customer sessions. A web player 1314 (e.g., web player 1710 of FIG. 17) may be used for playing back the web interactions. A reporter module 1316 may perform cross-channel analytics to analyze interactions over multiple communication channels, such as, web, telephone, messaging, etc. Reporter module 1316 may be located in a cross-channel reports block or module (e.g., in agent device 120 or interaction center 124 of FIG. 1). Reporter module 1316 may generate reports of the cross-channel analytics, for example, using a business analyzer (e.g., BA 436 of FIG. 4).

In some embodiments, a system administrator, user or agent may be able to configure web recording rules, for example, as described in reference to FIGS. 14A-14C.

Reference is made to FIGS. 14A-14C, which schematically illustrate interfaces 1400-1404 for configuring a rule scheduler in accordance with an embodiment of the invention. The rule scheduler may define web recording rules, each of which may relate to a specific web analyzer or a group of web analyzers. Interfaces 1400-1404 may be provided, for example, to an agent (e.g., at agent device 120 of FIG. 1), client (PO client 420 of FIG. 4) or product developer (e.g., PO designer 1706 of FIG. 17), to select scheduler rules and configuration parameters.

Web recording rules in the rule scheduler may include, for example, one or more of the following (other or additional scheduler rules may also be used):

An agent may be able to configure the web storage rules in a rules manager (e.g., rule manager 426 of FIG. 4). Rules manager may add a new media type (“Web”) using a Filter→General definitions in the storage rules filter definition dialog, which may render other media types, call direction definitions, evaluation filter definitions and desktop analytics filter definitions disabled. Storage rules may define which interactions to archive by the storage center. Rules manager may change archive web interactions according to account and customer information filters. In addition, the expressions tab in the storage rules filter definition dialog and the file name mask tab in the storage action dialog may be expanded to include a web sites (domain) attribute.

Reference is made to FIGS. 16A-16B, which schematically illustrate playback interfaces 1602-1604 for viewing user web sessions in accordance with an embodiment of the invention. Playback interfaces 1602-1604 may be provided, for example, to an agent at an agent device (e.g., agent device 120 of FIG. 1) to provide customer service to the user.

Playback interface 1602 may provide a simulation of the user's web interactions over one or more sessions, for example, including one or more web page screenshots 1606 browsed by the user, associated web interaction data (e.g., including topic, value of the extracted element, log time/initial browse time, duration/total browse time, and one or more additional variables or criteria), a summary 1610 of the session or web page interaction, and controls 1612, for an agent to operate the session simulation (e.g., to scan or skip forward or backwards through the web pages viewed). Each web page 1606 may include a still image or screenshots of the web page and/or a video of the user interacting with the page, for example, moving a cursor over the page, entering information into data fields, etc. In some embodiments, relevant or target information in the page (e.g., extracted screen elements 1102, 1104 of FIG. 11) may be highlighted or otherwise marked. Web page 1606 may expand from a thumbnail in interface 1602 to a larger, e.g., full-size or mid-size, image or video of the web page in interface 1604.

Web interactions may be provided to a virtual web agent that may represent the organization side of the interaction. In hosted environments, each tenant may have their own web agent for associating web interactions. Tenants (e.g., users providing system capabilities to other users) may only have visibility and access to their own web interactions.

An agent (e.g., at agent device 430 of FIG. 4) may use playback interfaces 1602-1604 to query and play back past web interactions (e.g., from a business analyzer or interactions database). The playback information may be stored in an interaction database (e.g., database 422 of FIG. 4) and/or a capture storage (e.g., storage 414 of FIG. 4 for storing html files). The agent (e.g., agent device 430 of FIG. 4) may use a PO client (e.g., PO client 420 of FIG. 4) to select the specific user session to view. Playback interfaces 1602-1604 may play back past and/or ongoing web interactions, for example, allowing a PO client to send a relevant notification to the agent, including web interaction information. Visibility to ongoing interactions may have a predetermined maximum delay of, for example, 10-30 seconds, from the time the user starts interacting with the website. An agent may be able to play back a past web interaction via a link provided in a real-time guidance message created by the PO client. An agent may able to play back an ongoing web interaction (e.g., by shadow browsing) via a link provided in a real-time guidance message created by the PO client, for example, with a predetermined maximum delay of 5-20 seconds. While playing back ongoing web interactions, the web player may be constantly updated with new user browsing data and may allow showing either all pages browsed by the user or only relevant pages defined in the PO client (e.g., configurable via the web player). An agent may be able to play back a web interaction while browsing the website in real-time to compare system behavior (e.g., by “co-browsing”). The agent may be able to play back multi-website scenarios in one playback window (e.g., by multi-session unified playback).

Other play back interfaces or functionality may be used.

Web interaction capture solutions may include, for example, the following (other or additional solutions may be used):

Some benefits of web recording solutions include, for example, the following (other or additional benefits may be found):

Web recording systems may support up to N (e.g., N=5) multiple channel interactions performing web recording. Each multi-channel interactions center may be targeted to support multiple web capture servers and handle usage models (e.g., a model of the target amount or rate of traffic that may be monitored by the system, such as, 100,000 user sessions per day). Up to N multi-channel interactions centers may be supported in a linked web recording system configuration. In one example, web recording systems may support customers with up to 5 million page views per day and 200,000 web interactions per day using 85 GB of data per day (e.g., without images). The Multi-channel Interactions Center handling web recording may also be able to handle voice and text recording in conjunction with the web recording, for example, by re-appropriating and reducing web recording capacity or by increasing system capacity. A maximum of one (or more) storage center (e.g., interaction database 422 of FIG. 4) may be used to store all web interactions in the web recording system.

For system security, the user may be able to define, for example, in the PO client, specific screen elements that are not to be extracted from web pages or available for playback. Such screen elements may adhere to privacy standards across industries, such as, financial privacy standards, e.g., payment card industry (PCI) standards, medical information privacy standards, technological privacy standards, etc.

Web recording systems may support one or more of the following resiliency mechanisms (other or additional resiliency mechanisms may also be used):

Web recording systems may support any usage scenarios when voice interactions are imported using a platform agnostics solution.

Web recording systems may use “certified server” specifications to support the multi-channel interactions center and/or web capture server. The “certified server” specifications may define hardware (HW)/software (SW) specifications including, for example, one or more of the following (other or additional HW/SW specifications may also be used):

The multi-channel interactions center may also be supported as a virtual machine.

Web recording capabilities may be integrated into or licensed to other systems, for example, using a licensing manager software or plug-in, such as, KeyGen, A “Web Recording” option may be added (e.g., under application server license→rule mngr→scheduler). A “Web Analytics” option may be added (e.g., under application server license→interaction analytics→multichannel). In some embodiments, a system administrator user interface related to web recording may be hidden if the web recording capability is not licensed.

For deployment, a site readiness tool may verify readiness for web capture server installation and the deployment manager may deploy both the multi-channel interactions centers and the web capture servers. For maintenance, both the multi-channel interactions centers and the web capture servers may be monitored by a monitoring tool or sentinel. A log collector may collect log entries of the web analyzer and web capture server.

In alternative or additional embodiments, web recording systems may include features, for example, as follows:

An agent may provide a customer with real-time guidance based on the user's past or current web interactions. The real-time guidance may notify the agent that the user has interacted with a web server in the past or is currently interacting with the web server in the present. The real-time guidance message may offer recommendations for agent to communicate to the user, for example, including up-sell or cross-sell options. The real-time guidance message may also offer to play back past web interactions and/or shadow-browse current web interactions. Real-time recommendations and/or playback may be provided, for example, while the contact center agent is communicating with said user or during or concurrently with the customer interactions or at a small time delay thereafter (e.g., on the order or a few second or milliseconds). The agent may be fully automated (e.g., an automated pre-recorded voice response, web message, SMS message, pop-up window or email system) or semi-automated (e.g., an automated guide prompting a live agent to communicate).

Reference is made to FIG. 17, which schematically illustrates a system 1700 for providing real-time guidance in accordance with an embodiment of the invention. Real-time guidance functionality may be provided, for example, via FIG. 1 using web capture server 110, analysis server 116, agent device 120, and interactions center 124 and/or their processors 112, 132, 136 and 142.

System 1700 includes an agent workstation 1702 (e.g., agent device 120 FIG. 1), a PO client 1704 (e.g., PO client 620 of FIG. 6) and a connection server 1704 (e.g., connection server 624 of FIG. 6). Agent workstation 1702 may use connection server 1704 to connect to PO designer 1706 via a PO client 1708. PO designer 1706 may be operated by an agent, administrator, or product developer (e.g., at agent device 120, analysis server 116 and/or interaction center 124 of FIG. 1). PO client 1708 may transfer data in real-time from user computers to agent workstation 1702. The data may be transferred securely, for example, using license enforcement. Agent workstation 1702 may include a web player 1710 to play images or video of the user's current session. Agent workstation 1702 may include a playback interface (e.g., playback interface 1602-1604 of FIGS. 16A and 16B) to operate web player 1710.

PO designer 1706 may define, for example, one or more of the following parameters (other or additional parameters may also be defined):

PO client 1708 may execute, for example, one or more of the following operations (other or additional operations may also be executed):

Connection server 1704 may return, for example, one or more of the following web session data to PO client 1708 upon request (other or additional session data may also be returned):

Web player 1710 (e.g., launched at agent device 120 of FIG. 1) may display, for example, the following (other or additional elements may also be displayed):

In some embodiments, a system administrator, product designer or company agent (e.g., agent device 120 or administrator at interaction center 124 of FIG. 1) may configure web analytics solutions for a web analyzer (e.g., analysis server 116 of FIG. 1), for example, as described in reference to FIGS. 29A-29X. Web analytics solutions may include projects created by a PO designer to include a web configuration defining parameters for monitoring, capturing and extracting elements from the user's web sessions.

Components in system 1700 may have, for example, the following functionality.

Embodiments of the invention may optimize real-time guidance workflow performance for web analytics. In one embodiment, real-time guidance may provide an agent with information on user's web interactions and advice to recommend to the user in real-time, for example, as the user interacts with the web. A customer resolver may may resolve a customer resolving by using a customer data base to translate a user or customer identifier (e.g., extracted by web analyzer 418 of FIG. 4) into a customer ID. Customer resolving may be executed by a customer resolver (e.g., customer resolver 432 and/or 434 of FIG. 4) using stored procedures, which may be invoked at an agent device or interaction center (e.g., agent device 120 or interaction center 124 of FIG. 1) according to a real-time guidance workflow. The stored procedure may return a customer's web login from the identifier that is retrieved by a PO client. The stored procedure may run or execute on a customer database to support, for example, up to 50 million customers. As with other examples discussed herein, other capacities, numbers of customers, limits, etc. may be used. Customers' ongoing sessions may be retrieved, for example, upon demand or automatically after an agent connects e.g., via a telephone call, to the customer. In some embodiments, the ongoing sessions may be retrieved from a single web analyzer which stores the open sessions in a memory.

The web analyzer may support scale out and may store the open sessions, for example, in a distributed cache and/or interaction center. Scale out may duplicate instances at some servers, for example, to extend the load capabilities of the servers. The connection server may use a DLL provided by web analyzer to access the open sessions repository to retrieve (e.g., and register for events of) specific customer's open sessions.

Customers' past sessions may be retrieved. Customers' past sessions may include connection server queries for the individual customer's web interactions. A business analyzer service may generate the past sessions data for single and/or multi-site queries. In one embodiment, customers' past sessions may be stored in a cache that may hold, for each customer, the web interactions in a predetermined past time interval (e.g., the past N months). The cache may store session data only for customers that have interacted on the web within a predetermined past time interval (e.g., the last M days). The connection server may access the cache in the real-time guidance workflow. The cache may be configured, for example, as a distributed cache, for example, using a distributed cache wrapper infrastructure, or as a local cache or database in each web analyzer.

The connection server may query a long term data storage to search for the customers' past interactions. Using the long term storage to search for the customers past interactions may free the load from business analyzer services. However, using the long term storage may cause complications, for example, due to a possible wide area network (WAN) between the connection server and long term storage and due to the long term storage missing the most recent past interactions (e.g., occurring in the last hour). In order to include the most recent (e.g., last hour) customer interactions, sessions in a distributed cache may not be immediately cleared once they close, but may only be cleared after a predetermined time delay (e.g., one hour).

Embodiments of the invention may support definitions and deployment for multiple file access servers (FASs). For file access server (FAS) scale out, the load balancer may support routing to the different connect server instances, for example, by “sticky” routing. The FAS component may be responsible for streaming extracted data, such as, html files constructed by an IPS. If multiple FAS components are used, for example, in order, to increase processing capabilities, a load balancing mechanism may be implemented between all the FAS instances to evenly distribute the processing load therebetween. “Sticky routing” may provide a system in which once a user connects to a FAS instances, the user may continue to connect with this FAS instance until the end of the user's session.

Embodiments of the invention may scale out connection server to support concurrent requests for customer's web sessions. Such embodiments may have implications on the system and recordings infrastructure, which may use a load balancer to route requests to the different connect server instances.

Some embodiments of the invention may correlate an interaction to an account ID rather than to a customer ID. The web recording rules may allow selection of whether to correlate the web interaction to an account or customer ID.

Privacy standards, such as, PCI standards, may identify protected customer information that should not be extracted from posts. To conform to such standards, the PO designer may use a screen element option to “hide” such sensitive content in the playback. These protected objects may be “negative screen elements,” which may define screen elements to be removed from the web player.

Web recording rules in rule manager may be used to manage many system specifics, such as, inserting authenticated sessions, identifying the user (e.g., whether to identify the user using metadata/cookies or screen elements and/or the column in the customer entity database with which the extracted values are to be associated), etc. When defining a rule, the rule manager may also need to define the customer mapping for each website (or globally for all websites). A rule scheduler may read voice/screen recording rules and may send the recording decisions to a recording manager (RCM) (e.g., in the Interaction center) or alternatively, may not refer to the web rules. The rule may support a hosting environment, i.e., the rule may be attached to a specific tenant. In some embodiments, all services may work with new/modified configurations without restarts.

Embodiments of the invention may support multiple web analyzers operating concurrently or in parallel. A single manager may distribute and divide the work among the multiple web analyzers. Dividing the work may improve the overall scale of the system and also ease the effort of developing the open calls events distribution (e.g., if the distributed cache solution is used).

Embodiments of the invention may optimize the web analyzer-IPS interface. In some embodiments, the interface may include a database and file system interface. However, in order to improve the performance and allow events in open sessions to occur almost immediately, the interface may be replaced by a direct call from the IPS to the web analyzer, where the IPS sends HTML data or each main page event to the web analyzer. In some embodiments, the IPS may have a proprietary implementation of a persistent queue. The queue may be stored in a memory and may point to constructed files. This pointer may provide communication between the IPS and the web analyzer. In other embodiments, the IPS and web analyzer may communicate via a queue based technology style, such as, Microsoft Message Queuing (MSMQ) and/or RabbitMQ.

Reference is made to FIG. 18, which schematically illustrates a system 1800 for recording a user's web interactions in accordance with an embodiment of the invention.

System 1800 may include a web server 1802 (e.g., web server 122 of FIG. 1), a capture server 1804 (e.g., capture server 110 of FIG. 1) including a probe 1806 and an NIC 1808 (e.g., probe 410 and NIC 408 of FIG. 4) connecting web server 1802 and capture server 1804. System 1800 may include an interaction center server 1810 (e.g., interaction center 124 of FIG. 1) including an IPS 1822 (e.g., IPS 412 of FIG. 4) for receiving user web interactions from capture server 1804 and transferring it to storage 1832 (e.g., database 126 of FIG. 1), a call server 1812 (e.g., at interaction center 124 of FIG. 1) having a CAPI host 1814, a database server 1816, a web analyzer 1818 (e.g., analysis server 116 of FIG. 1) including a CAPI 1812 for connecting web analyzer 1818 to call server 1812. System 1800 may include a server 1828, such as a structured query language (SQL) server, connected to a capture database 1824 (e.g., capture database 416 of FIG. 4) storing interaction metadata and a server 1830 connected to an interaction database 1826 storing the interactions content.

System 1800 components may execute the following operations (other or additional operations may also be used):

In operation 1841, probe 1806 may capture web server 1802 traffic via the web server's NIC 1808.

In operation 1842, probe 1806 may send the captured traffic to IPS 1822, for example, in data packets.

In operation 1843, IPS 1822 may analyze the packets by reconstructing the captured web pages and embedding file ID links to external files, saving metadata to capture database 1824 and/or saving the web page files to storage 1832.

In operation 1844, web analyzer 1818 may sample capture database 1824 and search for new events that have not yet been processed.

In operation 1845, for each event identified, web analyzer 1818 may:

In operation 1846, after a predetermined time interval of inactivity (e.g., 15 minutes), web analyzer 1818 may close the current session. Web analyzer 1818 may create CAPI web objects and via CAPI 1820 may request to insert the closed session interactions into interaction database 1826, for example, after adjusting their end time (−15 minutes).

In operation 1847, CAPI Host 1814 may resolve the customers of the interactions based on their web login identifier (e.g., executed as a bulk operation for many interactions).

In operation 1848, CAPI Host 1814 may send a request to database server 1816 to store the interactions in interaction database 1826.

In operation 1849, database server 1816 may store the interactions in interaction database 1826.

Other operations or orders of operations may be used. Components and processes of FIG. 18 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110, analysis server 116, agent device 120, interactions center 124 and their processors 112, 132, 136 and 142. Components of FIG. 18 may be, for example, software executed on one or more processors.

Reference is made to FIG. 19, which schematically illustrates a system 1900 for archiving a user's web interactions in accordance with an embodiment of the invention.

System 1900 may include a database 1902 (e.g., database 126 of FIG. 1) for archiving or storing user's web interactions, a storage center module 1904 (storage centers 118 of FIG. 1) including a storage center (SC) server 1920, streaming server (SS) 1918 and FAS 1916 (for playback storage), each managing the storage of data in database 1902. System 1900 may include a rule engine 1906 to search for a list of web interactions that match a query or satisfy filters, a rule manager 1908 to define storage rule for web interactions and web analyzer 1910 (e.g., analysis server 116 of FIG. 1) to provide information to configure the storage of database 1902. System 1900 may include a local storage 1912 and a long term storage 1914 for storing files (e.g., image files) associated with the web interactions.

In operation 1941, once a web session terminates, web analyzer 1910 may insert new web session recordings into database 1902. Web analyzer 1910 may send a single file including the web pages of the session to database 1902 (e.g., as a single zip file) and may save the file path (e.g., in tblRecording).

In operation 1942, rule manager 1908 may insert storage rules into database 1902 to apply to web interactions. Rule manager 1908 may set the storage destination either to file system storage in the network or to an external storage device.

In operation 1943, rule engine 1906 may retrieve web interactions to which the storage rules apply and may update database 1902 with the retrieved web interactions and may inform storage center 1904 to archive those interactions.

In operation 1944, storage center 1904 may search database 1902 for the relevant web interactions (e.g., inserted by rule engine 1906 according to the rules in rule manager 1908) by the recording path (e.g., as written in tblRecording).

In operation 1945, SC 1920 may send SS 1918 data to locate the relevant web interactions to be archived.

In operation 1947, when a playback request is received, SS 1918 may check if the interactions data is still stored in local storage 1912. If so, a processor or process may proceed to operation 1946; otherwise a processor or process may proceed to operation 1948.

In operation 1946, playback may be performed streaming data from local storage 1912 using FAS 1916.

In operation 1948, playback may be performed using data from long-term storage 1914.

In operation 1949, SC 1920 may update database 1902.

Other operations or orders of operations may be used. Components and processes of FIG. 19 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110, analysis server 116, agent device 120, interactions center 124 and their processors 112, 132, 136 and 142. Components of FIG. 19 may be, for example, software executed on one or more processors.

Playback and storage configurations may be highly coupled since the way in which web page resources are saved may affect the way in which they are played. Playback and storage configurations may include, for example, multipurpose Internet mail extensions (MIME) HTML or MHT files, image files, zipped text, and local files (other or additional playback and/or storage configurations may also be used).

For an MHT file storage configuration, an MHT file may be stored, for example, for each web page. The IPS may generate the web page file as an MHT file (e.g., instead of using the FileID link in the HTML). The MHT file may be identified, for example, by file ID and/or special file type. In one example, the web analyzer may set a file field (e.g., tblRecording) with the file ID of the MHT file for each page. In such cases, the SC may simply copy the MHT files of the pages that are analyzed from local storage 1912 to long term storage 1914. Once the MHT file is copied, the SC may modify tblRecording to point to the MHT page in long term storage 1914. For the playback of MHT files, the web player may use SS 1918 to stream the MHT file. SS 1918 may either put the MHT file on a web browser control (e.g., there are no external links to the file so there is no need to set the proxy) or may transform the MHT file to an image on the client side. SS 1918 may reside in multiple servers and may be load balanced. In this solution, there may be no difference between playback of archived and non-archived calls. Like archived calls, non-archived calls may also be in the MHT format and may be streamed using SS 1918 from the local storage.

For an image storage configuration, an image may be created for each web page in the archiving flow (e.g., not by SC 1920 itself but by a dedicated component, such as, a dynamic-link library (DLL) (code library), that SC 1920 uses to create the image). During the archiving flow, web analyzer 1910 may indicate the storage location of the resources and/or files for each page in the web interaction to SC 1920. The location data may be stored, for example, in the FileEvents/http and File tables, in a database 1902. SC 1920 may receive HTML data from FAS 1916 after setting the proxy. SC 1920 may then generate an image and save the image in long terms storage 1914, thus updating the file ID field entries (e.g., in tblRecording) to point to the image file location in the long term storage. In one embodiment, the generation of the image may only come after the posts have been inserted into the page. In such embodiments, the images may remain uncompressed (compression may be used for textual resources). Transforming the HTML file to an image file may use client side components at the server side. For an image playback configuration, a different flow may be used to playback archived and non-archived calls, for example, as described in reference to FIGS. 20 and 21. Non-archived calls may be played through a player service (e.g., playback streaming) using FAS 1916. FAS 1916 may read the file locations from the capture database and may stream the files from their local storage 1912. If the pages have been through retention, e.g., saving recordings for some time period, then they may not be played. Posts may be built by the playback streaming service before displaying the HTML. In another embodiment, the player flow may be operated directly from the client side to FAS 1916. In contrast, archived calls may be played through SS 1918 from their long term storage 1914. In some embodiments, there may be no need to build the posts as they are part of the image. Using images may be problematic for enabling retroactive analysis of web pages. Once an image is created and the original files go through retention, it may be difficult to support capabilities, such as, retroactive/discovery analysis. To enable retroactive/discovery analysis, both the images and the original files may be saved. However, such embodiments may increase the storage volume and may also depend on configuring FAS 1916 to work with the current system storage and database 1902.

For a compressed (e.g., “zipped”) text storage configuration, SC 1920 may copy all the page resources from their local storage 1912 to long term storage 1914 and may aggregate them to a single folder/zip file. The compression in this case may be useful since the resources include textual files such as CSS, JS, JSON and HTML, of which the size may be significantly decreased by compression. For playback of the zipped text file, a different flow may be used to playback archived and non-archived calls, for example, as described in reference to FIGS. 20 and 21. Non-archived calls may be played through a player service (e.g., playback streaming) using FAS 1916. FAS 1916 may read the file locations from the capture database and may stream the files from their local storage 1912. If the pages have been through retention, then they may not be played. Posts may be built by the playback streaming service before displaying the HTML. In another embodiment, the player flow may be operated directly from the client side to FAS 1916. Archived calls may also be played through playback streaming (or directly from the client) against FAS 1916 from their long term storage. If all the original interaction data (e.g., html files, xml files, image files, etc.) is saved in long term storage 1914, to playback the interaction data, the FAS may transform the separated files into a composed HTML. FAS 1916 may be enhanced in order to find resources according to their location in an interaction database (e.g., instead of a capture database). FAS 1916 may include a map from the old fileID to the location of the file in the long term storage 1914. Since the file might be compressed, FAS 1916 may also be able to uncompress and retrieve the file. Posts may be built by the web player and/or SS 1918 before displaying the HTML. Such embodiments may enable retroactive/discovery analysis of web pages.

For a local file storage configuration, instead of embedding calls to FAS 1916 in the HTML for downloading resources of the page (e.g., where Href=http://FASLocation\FileIDX), a link may locate a file system (Href=localFileLocation:\FileIDX). Accordingly, the IPS may embed the links using a file system pointer. Similar to the zipped text storage configuration, SC 1920 may copy all the page resources from their local storage 1912 to long term storage 1914 and may aggregate them to a single folder/zip file. The compression in this case may be useful since the resources include textual files such as CSS, JS, JSON and HTML, of which the size may be significantly decreased by compression. Playback of the local files may be identical for archived and non-archived calls. The only difference is that the files for archived and non-archived calls may be located in different places (e.g., as defined in tblRecording). The SS 1918 may stream all the page files to the web client player local file system, and the player may load the main HTML page into a web browser control, after it will embed the posts.

To store web media, archiving rules may define rules for archiving web. Rule engine 1906 may collect the interactions that match the archiving filter criteria for storage center 1904. If the archiving of an interaction matches the rule definition, all files generated by the IPS for that session may be stored, for example, using one of the four alternatives formats described above.

Reference is made to FIGS. 20 and 21, which schematically illustrate systems 2000 and 2100 for playback of non-archived and archived web interactions, respectively, in accordance with embodiments of the invention.

Systems 2000 and 2100 may include an interaction center server 2002 (e.g., interaction center 124 of FIG. 1), an agent workstation 2006 (e.g., agent device 120 of FIG. 1) including a client web player 2008 and a PO client 2010, and an interaction database 2014 (e.g., database 126 of FIG. 1) operated by a database server 2016. Interaction center server 2002 in system 2000 may include a web playback client 2018 and a FAS 2004, while interaction center server 2002 in system 2100 may include an SS 2020. System 2000 may include a local storage 2012, while system 2000 may include a long term storage 2022.

In FIG. 20, system 2000 components may execute the following operations to playback non-archived web interactions (other or additional operations may also be used):

In operation 2041, agent workstation 2006 operating a real-time guidance module may select a playback button or functionality, for example, using a PO client 2010. PO client 2010 may request client web player 2008 to play an interaction with some interaction ID.

In operation 2042, client web player 2008 may send the interaction ID to web playback client 2018.

In operation 2043, web playback client 2018 may query interactions database 2014 to retrieve interaction data associated with the interaction ID. Web playback client 2018 may transform the retrieved data from interactions database 2014 to a web object (e.g., UnifiedWebData) and may return the web object to client web player 2008 in operation 2047.

In operation 2044, web playback client 2018 may send HTTP data to FAS 2004 using the web object, for example, for the first page URL from tblWebInteractionPagesXX. Web playback client 2018 may redirect the call to the web proxy, which may load the HTML file from their storage location and may load the linked files from their location. The merged HTML may be returned to the web client.

In operation 2045, FAS 2004 may send local storage 2012 the retrieved interaction data for storage.

In operation 2046, web playback client 2018 may process the interaction data, for example, transforming a webpage for playback into an image and sending the processed data to PO client 2010.

In operation 2047, web playback client 2018 may receive the following data for playback:

In operation 8, client web player 2008 may load the in-memory HTML to a DOM and may search for elements input by the customer. The search may be based on an events table, where, for example, each post event may include an Xpath of the element, the element may be searched on the DOM, and the element may be set to the value in the events table. Client web player 2008 may then create web browser controls and may populate the web browser with the in-memory reconstructed HTML. Client web player 2008 may then display the web browser control and populate a web page summary pane.

FAS 2004 proxy may be responsible for accessing storage 2012 and constructing the HTML page with embedded links. For example, if there is a link to a java script (JS) file in the HTML, FAS 2004 may read the file ID in the link, find its file path in a capture database, load the JS file, embed the JS file into the HTML file, and download the embedded HTML file back to client web player 2008.

In contrast to FIG. 20, in FIG. 21, system 2100 may play archived calls through SS 1918 from their long term storage 2022. In one embodiment in FIG. 21, client web player 2008 may send an interaction ID of the desired web interaction to SS 2020. SS 2020 may load the interaction metadata associated with the interaction ID. Using the retrieved metadata, SS 2020 may load the interaction data associated with the retrieved metadata from long term storage 2022 and may stream the interaction data to client web player 2008 for playback.

Other operations or orders of operations may be used in FIGS. 20 and 21. Components and processes of FIGS. 20 and 21 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110, analysis server 116, agent device 120, interactions center 124 and their processors 112, 132, 136 and 142. Components of FIGS. 20 and 21 may be, for example, software executed on one or more processors.

When using an image file format, SS 2020 may be used to stream the image and display it on an image control instead of a web browser control. Similar adjustments may be used for MHT file formats. In another embodiment, FAS 2004 may fully control the adjustments used for playback when the interaction files are archived and non-archived.

Embodiments of the invention may include, for example, one or more of the following adaptations or improvements (other or additional adaptations or improvements may also be used):

Client web player 2008 may include a user interface, for example, for an agent to view user interactions at agent workstation 2006. The user interface may include enhancements, for example, to change the way the page summary is displayed, such as, to a hierarchy or tree-structured view. In some embodiments, extracted information or values may be displayed in a key-value summary view, and the hierarchy of the elements may be reflected by concatenating the element names. In one example, a web page may include the following objects:

TABLE 1
Web player user interface display
Key Value
Product Name iPhone
Product Price 30
Product Name xBox
Product Price 60
Street Name Broadway
Street City New York

Embodiments of the invention may process open (e.g., ongoing/unresolved) calls according to one or more of the following embodiments (other or additional embodiments may also be used):

To support shadow browsing, events may be registered in one of the following alternative embodiments, or other embodiments:

When shadow browsing, new pages visited by the customer and posts events (posts may only be relevant for the shadow browsing) may be propagated as events to PO client 2010, for example, to re-evaluate rules. In some embodiments, client web player 2008 may include a configuration option to indicate whether or not to shadow browse pages that are not defined in the configuration rules. In some embodiments, a default setting may send all page events to PO client 2010 and may update client web player 2008 accordingly.

Shadow browsing may provide a web page based streaming and playback mechanism. PO client 2010 may receive the current page metadata and may aggregate all the metadata for pages in memory. To shadow browse, HTML data may also be retrieved. When PO client 2010 receives a new event, PO client 2010 may notify client web player 2008. The event may include an open interaction ID, session ID and/or event page ID. Client web player 2008 may invoke SS 2020 requesting the HTML of the page ID of the interaction. SS 2020 may invoke the client web analyzer DLL, which may return a URL and file ID for the page. To increase the speed of HTML retrieval, client web player 2008 may retrieve HTML data directly via FAS 2004 and may avoid generating images for the HTML.

Reference is made to FIG. 22, which schematically illustrates a system 2200 for shadow browsing a user's web interactions in accordance with embodiments of the invention.

System 2200 may include an interaction center server 2002 (e.g., interaction center 124 of FIG. 1) having a web analyzer 2034 (e.g., analysis server 116 of FIG. 1), an agent workstation 2006 (e.g., agent device 120 of FIG. 1) including a client web player 2008 and a PO client 2010, and an application server 2036 (e.g., analysis server 116 of FIG. 1) operating a monitor server 2038 including a CAPI 2040, a playback administrator 2042, a playback streamer 2056, and/or a SS 2020. System 2200 may also include a local storage 2012 (e.g., provided via an IPS 1822) and a long term storage 2022.

System 2200 components may execute the following operations to playback web interactions in real-time, e.g., “shadow-browse” (other or additional operations may also be used):

In operation 2241, agent workstation 2006 operating a real-time guidance module may select a playback button or functionality, for example, using a PO client 2010. The real-time guidance module may launch client web player 2008, for example, by transferring the systemAdminURL and interaction ID to playback administrator 2042 for playback.

In operation 2242, client web player 2008 may initialize and authenticate a user, for example, by using an active directory and/or a login service. The user authentication may provide a valid token.

In operation 2243, client web player 2008 may send monitor server 2038 an interaction ID for the web session, request monitor server 2038 to fill a web object (e.g., ExtendedCallData) with the open web session details, such as, a recording path, pages captured so far, topics, etc.

In operation 2244, monitor server 2038 may call web analyzer 2034, e.g., via CAPI 2040, to fill the web object from its memory based on the interaction ID. Web analyzer 2034 may return the relevant data to monitor server 2038.

In operation 2245, monitor server 2038 may build and return the web object to client web player 2008. The web object may include data for a current (or most recent) page the customer is browsing.

In operation 2246, client web player 2008 may call playback administrator 2042 to receive a play list, for example, including the web object.

In operation 2247, playback administrator 2042 may send a path of the page zip file that holds the page held in the web object to playback streamer 2056. Playback streamer 2056 may return a target URL to where the page may be streamed.

In operation 2248, playback administrator 2042 may return one or more of the following to client web player 2008:

In operation 2249, playback streamer 2056 may call SS 2020 (e.g., asynchronously) to request the file containing the pages (e.g., zipped or otherwise compressed) be transferred from local storage 2012 to a local path, for example, as defined in a virtual directory 2048

In operation 2250, SS 2020 may stream the file containing the pages to the virtual directory 2048 path.

In operation 2251, playback streamer 2056 may uncompress (e.g., “unzip” or use another process) the file if necessary, and may transfer the file contents (e.g., HTML content and images and links in the page) to the URL virtual directory 2048 folder created for this page.

In operation 2252, client web player 2008 may continually try to playback the page, for example, until client web player 2008 receives an indication from playback streamer 2056 that the URL is ready. Client web player 2008 may create a web browser control, e.g., passing it the URL of the current page, and may display the current page. In order to playback the next page, client web player 2008 may repeat operations 1-5 to continue pulling page data via monitor server 2038. If client web player 2008 receives a new page (e.g., in the ExtendedCallData object), client web player 2008 may repeat operations 2246-2252 to playback the new page.

Other operations or orders of operations may be used. Components and processes of FIG. 22 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110, analysis server 116, agent device 120, interactions center 124 and their processors 112, 132, 136 and 142. Components of FIG. 22 may each be, for example, software executed on one or more processors.

In one embodiment, PO client 2010 may initiate shadow-browsing, e.g., as described in reference to FIG. 22, while in other embodiments, web analyzer 2034 may initiate shadow-browsing, for example, by sending real-time events to client web player 2008 through via monitor server 2038.

Client web player 2008 may be launched by real-time guidance or shadow browsing functionality, for example, an agent selecting a playback button in operation 1 of FIG. 22. However, before client web player 2008 actually displays the web pages, the user may be authenticated. Client web player 2008 may authenticate a user, for example, as follows:

Reference is made to FIG. 23, which schematically illustrates a system 2300 for an agent to provide real-time guidance in accordance with embodiments of the invention.

System 2300 may include an agent workstation 2006 (e.g., agent device 120 of FIG. 1) including a PO client 2010, an application server 2036 operating a connection server 2050 and a business analyzer 2052, and an interaction center server 2002 (e.g., interaction center 124 of FIG. 1) having a web analyzer 2034 (e.g., analysis server 116 of FIG. 1) having a customer DDL interface 2054. System 2300 may also include a database 2014 managed by database server 2016.

System 2300 components may execute the following operations for real-time guidance (other or additional operations may also be used):

In operation 2341, a customer may browse or log into a web site. The customer may then call a contact center, reaching an agent operating agent workstation 2006. The agent may write the customer's identifier into a CRM user interface. The customer identifier may be extracted from the CRM user interface and sent to the connection server 2050, for example, as commanded by real-time interaction rules.

In operation 2342, connection server 2050 may call web analyzer 2034 and transfer the customer identifier extracted from CRM to web analyzer 2034. Connection server 2050 may request metadata from web analyzer 2034 associated with this customer's current open session(s) (if any such exist) and/or the customer's customer ID.

In operation 2343, web analyzer 2034 may activate a stored procedure provided by the customer entity, for example, using customers DLL 2054. The customer entity may receive the customer identifier (e.g., tenantID) and identity type (e.g., phone) and may return the customer's web identifier and the customer's customer ID.

In operation 2344, web analyzer 2034 may search for open session for the customer, for example, by searching for the customer's web identifier in the customer's cache.

In operation 2345, web analyzer 2034 may return metadata from the web session of the customer (e.g., if there is a current open session for the customer) and/or the customer's customer ID to connection server 2050.

In operation 2346, connection server 2050 may send business analyzer 2052 the customer ID and may ask for web interactions associated with this customer ID (e.g., only if the real-time interaction rules require metadata for past web interactions).

In operation 2347, business analyzer 2052 may query database server 2016 to find web interactions in web interaction tables in database 2014 that are associated with this customer ID, for example, over a requested or predetermined time period. Database server 2016 may return any matching interactions to agent workstation 2006, for example, from business analyzer 2052 to connection server 2050 and from connection server 2050 to PO client 2010.

In operation 2348, connection server 2050 may return web interactions associated with this customer ID to agent workstation 2006.

Other operations or orders of operations may be used. Components and processes of FIG. 23 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110, analysis server 116, agent device 120, interactions center 124 and their processors 112, 132, 136 and 142. Components of FIG. 23 may each be, for example, software executed on one or more processors.

Web analyzer 2034 may be integrated with a capture server (e.g., capture server 110 of FIG. 1) by pulling data for new web pages from an interaction database 2014, for example, periodically or every (N) seconds. Web analyzer 2034 may be responsible for managing sessions and performing data extraction.

Capture servers may include a probe (e.g., capture server 410 of FIG. 4) and an IPS (e.g., IPS 412 of FIG. 4), which may be configured, for example, as follows (as with other modules discussed herein, other languages, operating systems, and configurations may be used):

Some embodiments of the invention may use a third-party service or server (e.g., such as, the TeaLeaf™ CEM) to provide customer experience management (CEM) functionality instead of using a native system device (e.g., such as, the PO Designer).

Reference is made to FIG. 24, which schematically illustrates a system 2400 integrating a third-party CEM server 2412 in accordance with embodiments of the invention.

System 2400 native components may include an agent workstation 2406 (e.g., agent device 120 of FIG. 1) including a PO client 2410 and a client web player 2408, an application server 2420 operating a connection server 2424 and an insight manager 2422 (e.g., insight manager 1310 of FIG. 13), an interaction center server 2416 (e.g., interaction center 124 of FIG. 1) having a web analyzer 2418 (e.g., analysis server 116 of FIG. 1), and an interactions database 2414 (e.g., database 126 of FIG. 1). System 2400 non-native components may include a web server 2402 (e.g., web server 122 of FIG. 1) used by a customer 2404 (e.g., at user computer 102 of FIG. 1) viewing web server content and a third party CEM server 2412.

CEM server 2412 may be responsible for capturing and extracting web sessions, replaying sessions, and/or archiving sessions. To integrate CEM server 2412, system 2400 may import CEM server 2412 configured (e.g., by a third party HTTP based designer) that is compatible with system 2400. In one embodiment, the division of labor may allow native devices to retrieve the sessions' metadata and perform categorization on top of (OTO) the retrieved sessions. For example, a native PO designer may define web monitoring rules and these rules may be based on the session topics extracted by CEM server 2412. CEM server 2412 may provide an application programming interface (API) for native components of system 2400 to interact with non-native CEM server 2412. For example, a CEM 2412 API may be used to retrieve a list of web site areas and session attributes defined in CEM server 2412. This list may appear, for example, in one or more of the following devices:

Embodiments of the invention may import the configuration from CEM server 2412 into native system 2400 components Importing the CEM server 2412 configuration may, for example, include a definitions project and consumption project, where the definitions project may be correlated to the imported configuration to define rules on the CEM server 2412 configuration scheme.

Web analyzer 2418 may periodically retrieve web sessions from CEM server 2412 and save them to interaction database 2414, for example, via a CAPI (e.g., CAPI 1820 of FIG. 18) and database server (e.g., database server 2016 of FIG. 23). Web analyzer 2418 may include a designated connection server to connect to CEM server 2412 or alternatively, may use an all purpose connection server. This connection server may periodically call the CEM 2412 API for batch retrieval of offline sessions that took place from a time the previous batch was loaded until a current time. The connection server may verify that sessions retrieved from CEM server 2412 are not duplicates. In one example, by the connection server may query CEM server 2412 for interactions (e.g., in the current set only) that have an original session ID column equal to the session ID received from CEM server 2412. If the connection server detects a match in IDS, the associated interaction(s) may be discarded/not inserted.

Components and processes of FIG. 24 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110, analysis server 116, agent device 120, interactions center 124 and their processors 112, 132, 136 and 142. Components of FIG. 24 may each be, for example, software executed on one or more processors.

Reference is made to FIG. 25, which schematically illustrates a system 2500 having an integrated CEM server 2412 retrieving a plurality of offline web sessions in accordance with embodiments of the invention.

System 2500 native components may include an interactions database 2414 (e.g., database 126 of FIG. 1) and an interaction center server 2416 (e.g., interaction center 124 of FIG. 1) including a database server interface 2432, a database server 2426, and a web analyzer 2418 (e.g., analysis server 116 of FIG. 1) having a CAPI 2428 and a plug-in connection server to interact with CEM server 2412. System 2500 non-native components may include a web server 2402 (e.g., web server 122 of FIG. 1), CEM server 2412 and CEM storage 2430 for storing web interactions.

System 2500 components may execute the following operations for retrieving a batch of offline web interactions (other or additional operations may also be used):

In operation 2541, web analyzer's 2418 connection server plug-in may periodically request offline web interactions from CEM server 2412, for example, in batches or groups of web sessions or interactions. The connection server plug-in may send CEM 2412 the time of the last loaded session to avoid duplicate session transmission.

In operation 2542, CEM server 2412 may send web analyzer 2418 web session data from CEM storage 2430, for example, that were captured from a time after the last loaded session to the current time. In one example, only metadata may be imported. However, alternatively or additionally, entire web sessions, links, tags, embedded objects, and/or screen elements from sessions may be imported.

In operation 2543, web analyzer 2418 may use a local CAPI 2428 client API to insert a batch of web interactions in interactions database 2414, for example, by sending the structured web interactions metadata retrieved in operation 2 to database server 2426.

In operation 2544, database server 2426 may insert the web interactions into interactions database 2414.

Other operations or orders of operations may be used. Components and processes of FIG. 25 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110, analysis server 116, agent device 120, interactions center 124 and their processors 112, 132, 136 and 142. Components of FIG. 25 may each be, for example, software executed on one or more processors.

Reference is made to FIG. 26, which schematically illustrates a system 2600 for playback of the offline web interactions retrieved in FIG. 25 in accordance with embodiments of the invention.

System 2600 native components may include an agent workstation 2406 (e.g., agent device 120 of FIG. 1) including a PO client 2410 and a client web player 2408, an application server 2420 operating a playback administrator 2436 and a business analyzer 2438, and an interactions database 2414 (e.g., database 126 of FIG. 1) operated by a database server 2426. System 2600 non-native components may include a CEM server 2412 operating a CEM service 2440.

System 2600 components may execute the following operations for playback of a batch of web interactions retrieved offline (other or additional operations may also be used):

In operation 2641, agent workstation 2006 operating a real-time guidance module may select a playback button or functionality, for example, using a PO client 2010. The real-time guidance module may launch client web player 2008, for example, by transferring the systemAdminURL and interaction ID to playback administrator 2042 for playback.

In operation 2642, client web player 2008 may initialize and authenticates a user, for example, by using an active directory and/or a login service. The user authentication may provide a valid token

In operation 2643, client web player 2008 may send playback administrator 2436 the interaction ID to playback.

In operation 2644, playback administrator 2436 may send a request to business analyzer 2438 to fill a web object (e.g., ExtendedCallData) from database 2414 based on the interaction ID. Business analyzer 2438 may fill the web object with the web interaction metadata, such as, a recording path, pages captured so far, topics, etc.

In operation 2645, business analyzer 2438 may fill the web object from database 2414 based on the interaction ID. Business analyzer 2438 may return the relevant data to playback administrator 2436.

In operation 2646, playback administrator 2436 may return the web object to client web player 2008.

In operation 2647, client web player 2008 may resolve the internal session ID from the data set and may invoke CEM service 2440 for session replay. Client web player 2008 may receive a web response from CEM server 2412, create a web browser control, and load a response to web browser control.

Other operations or orders of operations may be used. Components and processes of FIG. 26 may be executed using devices and processors of FIG. 1, such as, for example, web capture server 110, analysis server 116, agent device 120, interactions center 124 and their processors 112, 132, 136 and 142. Components of FIG. 26 may each be, for example, software executed on one or more processors.

To playback online or ongoing web interactions, embodiments of the invention may use a dedicated CEM 2412 API for real-time or ongoing session replay, which may receive the CEM 2412 internal session ID. The session internal ID may be stored in a native web interactions table.

The online web API may be invoked for playback, for example, when the agent is on a call with a customer. The following provides an example configurations configuration for a system adapted to provide native web playback of online web interactions from a non-native CEM:

To monitor the web analyzer, the web analyzer may report on performance counters. Web analyzer may support component failover and DC failover for system resiliency. During component failover, a standby web analyzer may become active automatically when deployed on a local/geo cluster. A cluster may provide failover and increased availability of applications and a geo cluster may be enhanced to provide resiliency of applications across different data centers. At least until web analyzer supports an active-active resiliency mode, it may work in an active-standby resiliency mode. An active-active resiliency mode may run or execute a service in multiple server instances in order to achieve both higher scale and increased availability. An active-standby resiliency mode may run or execute only one service instance and hold another installed service instance in a standby mode. Such a mode may provide high availability, for example, if the active service becomes unavailable the standby service may become active instead. Such systems may use a high availability manager (HM) and/or a deployment Manager (DM).

System components and features for recording, storage and playback may include, for example, any combination of the following components (other or additional components may be used):

Other or additional devices and features may be used. Each of these devices may be hardware or software executed by devices and processors of FIG. 1.

Web monitoring systems may be designed to monitor and report specific data items of a user's web interactions, for example, as defined by a process optimization module, such as, process optimization module 2708 of FIG. 27.

Reference is made to FIG. 27, which schematically illustrates a system 2700 for defining the specific data items to monitor in a user's web interactions in accordance with embodiments of the invention.

System 2700 may include a PO designer 2702 (e.g., PO designer 1706 of FIG. 17) to generate a web analytics solution 2704 defining data items to monitor, a capture server 2706 (e.g., capture server 110 of FIG. 1) to import information to web analytics solution 2704 for each data item, and a process optimization product 2708 to design which data items to monitor and to manage feedback to the call center agent at real-time.

Process optimization module 2708 may design web analytics solution 2704 to monitor and report data items of a user's web interaction including, for example, session details (e.g., a start time and/or end time for closed sessions), user identity details, a list of webpages viewed during the session, metadata of the webpages viewed during the session, the websites providing the webpages, and/or any other interaction information.

Reference is made to FIGS. 28A and 28B, which schematically illustrates file directories 2800 of code libraries 2802 to access data items monitored in a user's web interaction in accordance with embodiments of the invention. File directories 2800 or code libraries 2802 may be provided directly to an agent computer (e.g., agent device 120 of FIG. 1) for an agent to review raw interaction data or indirectly to the agent, for example, first sent to a web analyzer (e.g., analysis server 116 of FIG. 1) to process the data and then to the agent computer as a consolidated summary report.

File directories 2800 or code libraries 2802 may include, for example, one or more of the following data items (other or additional data items may also be used):

Reference is made to FIGS. 29A-29X, which schematically illustrate interfaces 2900-2962 for configuring web analytics solutions in accordance with an embodiment of the invention. Interfaces 2900-2962 may be provided, for example, via a PO designer (e.g., PO designer 1706 of FIG. 17), which may be operated at agent device 120 or interaction center 124 of FIG. 1. Operations for configuring web analytics solutions may include, for example (other or additional operations may also be used):

In FIG. 29A, interface 2900 may allow an agent or other user to create or select a web analytics solution 2970 (e.g., at the PO designer). The creation of web analytics solution 2970 may be divided into different tasks or projects (e.g., executed at the PO designer), for example, such as:

Web analytics solution 2970 may be created by selecting different solution properties, for example, including a solution version 2972, a target orientation 2974 (e.g., classic or web), a target environment 2976, a target automatic update folder 2978 and/or if multiple solutions share a single instance of a project 2980. The target orientation 2974 may, for example:

Capturing data extraction elements operations may be defined, for example, in the ‘Definition’ project. To initiate the capture operation, the PO Designer (e.g., operated by an operator selecting a capture button) may command a web analyzer (e.g., analysis server 116 of FIG. 1) to capture elements designated for extraction. The capture operation may distinguish between two types of extractions (e.g., which may be selected by the PO designer operator):

FIG. 29B illustrates an interface 2902, which the operator of the PO designer may use to command the web analyzer to initiate capturing web elements, for example, by selecting a capture button 2982.

FIG. 29B illustrates interfaces 2904 and 2906, which the operator of the PO designer may use to mark a ‘Show Hidden Captures’ and ‘Visible’ menu options, for example, to view the captured screen elements. When an agent captures a screen element using a PO designer, in some embodiment, only the captured screen element node is shown without the parents parent's tree (e.g., the page node). The Show Hidden Captures menu option allows the entire tree to be shown. The visible menu option allows only nodes in the elements tree that are marked visible to be shown, e.g., for selection in the business objects tree.

FIG. 29C illustrates interface 2908, which shows a screen elements tree including all elements in the path of the screen element's to be extracted. The web analyzer may retrieve web (e.g., IE) nodes from the screen elements tree. The web nodes include web documents and web elements. In some cases, there may be more than one document in the element's path.

FIG. 29D illustrates interface 2912, which the operator of the PO designer may use to verify that ‘recognition properties’ of the web document are properly configured, for example, to identify all instances of the document. The PO designer may verify this, for example, using wild card values (* or %) for the recognition properties. Recognition properties used to identify a document may include, for example:

By default the PO Designer may mark the minimum set of properties used for unique recognition (e.g., the URL property may be sufficient). The URL may include customer specific data, which the PO Designer may eliminate using the wild card recognition properties. In the example shown in FIG. 29D, the is modified to use the * wildcard: http://www.amazon.com/gp/cart/view.html/*

FIG. 29E illustrates interface 2914, which the operator of the PO designer may use to verify that ‘recognition properties’ of the web element are properly configured, for example, to identify all instances of the element, Recognition properties used to identify an element may include, for example:

FIG. 29F illustrates interface 2916, which the operator of the PO designer may use to define the structure of the site, for example, using Business Entity types. Interface 2916 may define the website structure, for example, by defining one or more of the following properties (other or additional properties may also be defined):

Each page (e.g., IE Document) that is captured may be represented by a Business Entity type. To create a new page type for each captured page, the operator of the PO designer may execute the following steps using interfaces 2918-2922 of FIGS. 29F-29H.

To initiate the process, the operator may create a new type using a ‘New Type’ button and may set the name of the new type.

In interface 2918 of FIG. 29F, the operator of the PO designer may change the base type to a page library type (e.g., using a library objects folder).

In interface 2920 of FIG. 29G, the operator of the PO designer may create one or more new properties or change the properties to primitive types, such as, text, number, date, etc. (e.g., using a library objects folder). The PO designer may repeat this step to define all the primitive properties of the captured page. If the page contains complex data structures (e.g., product data structure in a shopping cart webpage), the PO designer may repeat configurations in interfaces 2920-2922.

In interface 2922 of FIG. 29H, if the property is a list, the operator of the PO designer may choose a property type contained in the list. For example, a shopping cart webpage type may be assigned a ‘List of Products’ property type.

FIG. 29I illustrates an example interface 2924 showing a file directory structure for recording data using a ‘Product’ Business Entity type and two Page Business Entity types (Address Page and Shipping Cart Page) for each captured page, which may be defined, for example, follows:

Product: contains the following properties:

Address Page: contains the following properties:

Shipping Cart Page: contains the following properties:

To create a new website type, the operator of the PO designer may execute the following steps using interfaces 2926-2928 of FIGS. 29J-29K.

To initiate the process, the operator may create a new type using, a ‘New Type’ button and may set the name of the new type.

In interface 2926 of FIG. 29J, the operator of the PO designer may change the base type to a site library type (e.g., using a library objects folder).

In interface 2928 of FIG. 29K, the operator of the PO designer may add a property types for each page defined (e.g., by dragging and dropping the property types into the new site type).

To create a site Business Entity instance and to link its properties to the screen elements, the operator of the PO designer may execute the following steps using interfaces 2930-2946 of FIGS. 29L-29S. (This information may be defined, for example, in the ‘Definition’ project.)

To initiate the process, the operator may create a new instance using a ‘New Instance’ button and may set the name of the new instance. Alternatively, the new instance may be created by selecting the Site Business Entity type and the ‘Create an instance of . . . ’.

In interface 2930 of FIG. 29L, the operator of the PO designer may change the type to a site business entity type.

In interface 2932 of FIG. 29M, the operator of the PO designer may select properties to be ignored (e.g., which are only relevant in the consumption project), such as, start date and end date in the site and page Business Entity types.

In interfaces 2934 and 2936 of FIGS. 29N and 29O, the operator of the PO designer may select the screen element data source representing each primitive property of the pages. The operator may select an ‘Automatically assign from’ data field in interface 2934 and select a screen element property to be extracted by the web in interface 2936.

In interfaces 2938-2942 of FIGS. 29P-29R, the operator of the PO designer may map the corresponding screen element data source to the relevant property within the list's contained object for each list property of the pages. The operator may select an ‘Initial Value’ data field in interface 2938, select a “Map List” function of the library object type in interface 2940, and map each property of the Business Entity type to the relevant screen element (e.g., by opening a new dialog box) in interface 2942.

FIG. 29S illustrates an example interface 2944 showing a file directory structure where the site instance includes, for example, a ‘Customer Identity’ complex property with attributes: ID and Type. If the web analyzer cannot obtain the customer ID from a cookie, the operator of the PO designer may repeat operations using interface 2932 to link the Customer Identity ID property and the corresponding screen capture. If the ID is mapped, then The Customer Identity Type property may also be initialized using the ‘Initial Value’ data field.

FIG. 29S illustrates an example interface 2946 showing a file directory structure where the site instance includes, for example, a ‘Domain’ property that may be initialized, for example, an the ‘Initial Value’ data field. A sample value may be, for example: www.google.com.

FIG. 29T illustrates an example interface 2948 for publishing the project to the web analyzer, where the web analyzer receives the web configuration created by the PO Designer. Once the web configuration is created, a user may select to generate the project in solution properties 2990 (e.g., using a ‘Publish’ button), which may initiate the project validations and creation. The publish operation may create an XML file, which may be uploaded to the database using a rule manger (e.g., rule manager 426 of FIG. 4). The web analyzer may read the web configuration from the database.

FIG. 29U illustrates an example of an interface 2952 of a website and screen elements 2988 monitored and/or extracted. Interface 2952 and screen elements 2988 may be defined by the web analytics configurations defined in interfaces 2900-2950 of FIGS. 29A-29S.

The PO designer definitions for real-time guidance may include, for example, one or more of the following rules (other or additional rules may also be executed):

In interface 2954 of FIG. 29V, the operator of the PO designer may set parameters defining which user web sessions are to be monitored by the web analysis system. Interface 2954 may include fields defining a user's information (e.g., the value of their customer ID) and/or session information (e.g., all sessions, sessions at specific dates or ranges of dates, and/or including any ongoing sessions) to monitor only specified user sessions. Interface 2954 may include a dedicated function editor added by a web analytics package. In different embodiments, web interactions in the specified user sessions may be extracted in their entirety or with metadata only.

FIG. 29W illustrates examples of rule interfaces 2956 and 2958 for evaluating extracted web session information. Rule interface 2956 may define an instruction for web analyzer to evaluate screen elements, for example, associated with products in a shopping cart. Rule interface 2958 may define an instruction for web analyzer to evaluate a session categorization of extracted screen elements. Other or additional rules may be used.

FIG. 29X illustrates an example of interfaces 2960 and 2962 to launch a web player (e.g., web player 1710 of FIG. 17). Interface 2960 may launch the web player with current user sessions for shadow-browsing and interface 2962 may launch the web player with sessions metadata.

It may be appreciated that “real-time” may refer to instantly or, more often, at a small time delay of, for example, between 0.01 and 10 seconds, during, concurrently, or substantially at the same time as. In one example, playing the user's current Internet interactions in a real-time simulation may include playing the user's interaction (or an edited version thereof) on the agent's display (e.g., output device 125 of FIG. 1), for example, at the same time as, at a time delay from, or during the same communication (e.g., telephone and/or web) session as, the user executes the interaction. In another example, sending the agent device recommendations in real-time may include, sending the agent device recommendations, e.g., via agent monitor, while an agent is communicating or conversing with the user e.g., via telephone (or other media communications, such as on-line text chat). The recommendations may be provided in text or as automatically generated speech.

It may be appreciated that although certain devices and functionality are assigned to “users,” “customers,” “agents,” and “operators” these are only example scenarios and such functionality may be implemented by any users. The users may include two or more live users, two or more automated user(s) or a combination of live user(s) and automated user(s).

Different embodiments are disclosed herein. Features of certain embodiments may be combined with features of other embodiments; thus certain embodiments may be combinations of features of multiple embodiments.

Embodiments of the invention may include an article such as a computer or processor readable non-transitory storage medium, such as for example a memory, a disk drive, or a USB flash memory encoding, including or storing instructions, e.g., computer-executable instructions, which when executed by a processor or controller, cause the processor or controller to carry out methods disclosed herein.

The foregoing description of the embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. It should be appreciated by persons skilled in the art that many modifications, variations, substitutions, changes, and equivalents are possible in light of the above teaching. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.

Portman, Leon, Golan, Yosef, Liberman Ben-Ami, Hadas, Marco, Yuval, Haba, Shlomi, Smith, Iftach, Ronen, Yizhar, Etsion, Yohay, Cher, Igor, Frenkel, Assaf, Baruch, Uzi, Damti, Naama

Patent Priority Assignee Title
11695839, May 31 2022 Bank of America Corporation Real-time, intelligent pairing and prioritizing of client and server data queues using ultra-wide band
11882193, May 31 2022 Bank of America Corporation Real-time, intelligent pairing and prioritizing of client and server data queues using ultra-wide band
Patent Priority Assignee Title
5535256, Sep 22 1993 e-talk Corporation Method and system for automatically monitoring the performance quality of call center service representatives
6346952, Dec 01 1999 Genesys Telecommunications Laboratories, Inc Method and apparatus for summarizing previous threads in a communication-center chat session
6721416, Dec 29 1999 International Business Machines Corporation Call centre agent automated assistance
6741697, Mar 31 1998 International Business Machines Corporation Telephone call centre performance evaluation
6748072, Mar 17 2000 Genesys Telecommunications Laboratories, Inc Personal communication center performance display and status alert system
6904143, Mar 05 2001 CX360, INC Apparatus and method for logging events that occur when interacting with an automated call center system
6922466, Mar 05 2001 CX360, INC System and method for assessing a call center
6922689, Dec 01 1999 Alcatel Lucent Method and apparatus for auto-assisting agents in agent-hosted communications sessions
6959078, Jan 24 2000 VERINT AMERICAS INC Apparatus and method for monitoring and adapting to environmental factors within a contact center
6970554, Mar 05 2001 CX360, INC System and method for observing calls to a call center
6981040, Dec 28 1999 PERSONALIZED USER MODEL PUM Automatic, personalized online information and product services
7035926, Nov 30 1999 Adobe Inc Real-time monitoring of web activities
7165105, Jul 16 2001 International Business Machines Corporation System and method for logical view analysis and visualization of user behavior in a distributed computer network
7200614, Nov 27 2002 Accenture Global Services Limited Dual information system for contact center users
7246078, Dec 04 2000 TERADATA US, INC System and methods for graphically representing purchase profiles and sales guidance to a customer service representative
7370004, Nov 15 1999 JPMorgan Chase Bank, National Association Personalized interactive network architecture
7616756, Dec 18 2003 Daedalus Blue LLC Call center first access resolution
7644134, Jul 06 2001 IGNITE ENTERPRISE SOFTWARE SOLUTIONS, LLC System and method for analyzing system visitor activities
7844504, Apr 27 2000 AVAYA LLC Routing based on the contents of a shopping cart
7853800, Jun 30 2006 VERINT AMERICAS INC Systems and methods for a secure recording environment
7949574, Nov 15 1999 JPMorgan Chase Bank, NA Personalized interactive network architecture
7958234, Jun 03 1999 R2 SOLUTIONS LLC System and method for monitoring user interaction with web pages
7962551, Sep 29 2001 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
7962616, Aug 11 2005 JPMORGAN CHASE BANK, N A , AS SUCCESSOR AGENT Real-time activity monitoring and reporting
8271332, Jun 18 2002 VALENTINE COMMUNICATIONS LLC DAS predictive modeling and reporting function
8326694, Nov 15 1999 JPMORGAN CHASE BANK, N.A. Personalized interactive network architecture
8352396, Sep 08 2009 Hewlett-Packard Development Company, L.P.; HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Systems and methods for improving web site user experience
8396834, Oct 10 2006 ACOUSTIC, L P Real time web usage reporter using RAM
8408061, Dec 02 2009 EVIDENT SCIENTIFIC, INC Sequentially fired high dynamic range NDT/NDI inspection device
8676895, Oct 12 2010 Wells Fargo Bank, National Association Interaction using content
20020083167,
20020087385,
20070208682,
20080195665,
20110184905,
20120195422,
20120303598,
20120303621,
20130024405,
20130080358,
20130080377,
20130110750,
/
Executed onAssignorAssigneeConveyanceFrameReelDoc
Jul 30 2018NICE LTD.(assignment on the face of the patent)
Date Maintenance Fee Events
Jul 30 2018BIG: Entity status set to Undiscounted (note the period is included in the code).
Aug 31 2022M1552: Payment of Maintenance Fee, 8th Year, Large Entity.


Date Maintenance Schedule
Mar 03 20234 years fee payment window open
Sep 03 20236 months grace period start (w surcharge)
Mar 03 2024patent expiry (for year 4)
Mar 03 20262 years to revive unintentionally abandoned end. (for year 4)
Mar 03 20278 years fee payment window open
Sep 03 20276 months grace period start (w surcharge)
Mar 03 2028patent expiry (for year 8)
Mar 03 20302 years to revive unintentionally abandoned end. (for year 8)
Mar 03 203112 years fee payment window open
Sep 03 20316 months grace period start (w surcharge)
Mar 03 2032patent expiry (for year 12)
Mar 03 20342 years to revive unintentionally abandoned end. (for year 12)