System and method for tracking web interactions with real time analytics
RE049486 · 2023-04-04
Assignee
Inventors
- Hadas Liberman Ben-Ami (Kadima, IL)
- Leon Portman (Rishon Lezion, IL)
- Yuval Marco (Kadima, IL)
- Yosef Golan (Askhelon, IL)
- Shlomi Haba (Petah Tiqva, IL)
- Iftach Smith (Hod Hasharon, IL)
- Yizhar Ronen (Hod HaSharon, IL)
- Yohay Etsion (Tel Aviv, IL)
- Igor Cher (Rehovot, IL)
- Naama Damti (Zichron-Yackov, IL)
- Assaf Frenkel (Ramat HaSharon, IL)
- Uzi Baruch (Maale Adumim, IL)
Cpc classification
International classification
Abstract
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.
Claims
.[.1. A method for monitoring a user's interactions with Internet-based programs or documents, the method comprising: extracting content from Internet server traffic according to predefined rules; associating the extracted content with one or more of a user's Internet interaction sessions; storing and indexing the user's Internet interaction sessions; automatically comparing, by a web analyzer using a processor, one or more of the user's Internet interaction sessions to one or more modeled sessions to generate a recommendation of one or more future session paths from the modeled sessions for guiding the user's Internet interactions; and providing 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..].
.[.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 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 key-words 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..].
.[.12. A system for monitoring a user's interactions with Internet-based programs or documents, the system comprising: a processor to extract content from Internet server traffic according to predefined rules, associate the extracted content with one or more of a user's Internet interaction sessions, 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 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; and a storage device to store the one or more of the user's Internet interaction sessions..].
.[.13. The system of claim 12 comprising 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 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..].
.[.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..].
.[.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; associating the extracted webpage screen element with one of a plurality of a user's 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; 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..].
.Iadd.30. A method for monitoring a user's interactions with Internet-based programs or documents, the method comprising: extracting content from Internet server traffic according to predefined rules; associating the extracted content with one or more of a user's Internet interaction sessions; storing and indexing the user's Internet interaction sessions; storing an association between a user's Internet interaction session and an identification of the user; automatically comparing, by a web analyzer using a processor, 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 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..Iaddend.
.Iadd.31. 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..Iaddend.
.Iadd.32. 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..Iaddend.
.Iadd.33. 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..Iaddend.
.Iadd.34. 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..Iaddend.
.Iadd.35. 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..Iaddend.
.Iadd.36. The method of claim 1 comprising capturing the Internet server traffic using a passive sniffing device..Iaddend.
.Iadd.37. 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..Iaddend.
.Iadd.38. The method of claim 1, wherein the information analyzed in the user's Internet interaction sessions includes key-words the user used for searching..Iaddend.
.Iadd.39. The method of claim 1, wherein the recommendation includes information for technical support, selling, “up-selling,” “cross-selling,” or filling in surveys..Iaddend.
.Iadd.40. The method of claim 1, wherein the recommendation is provided to the contact center agent in real-time..Iaddend.
.Iadd.41. A system for monitoring a user's interactions with Internet-based programs or documents, the system comprising: a processor to extract content from Internet server traffic according to predefined rules, associate the extracted content with one or more of a user's Internet interaction sessions, index the user's Internet interaction sessions, store an association between a user's Internet interaction session and an identification of the user, 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; and a storage device to store the one or more of the user's Internet interaction sessions..Iaddend.
.Iadd.42. The system of claim 12 comprising a passive sniffing device to capture the Internet server traffic..Iaddend.
.Iadd.43. 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..Iaddend.
.Iadd.44. The system of claim 12 comprising a computer and telephone operated by the user, wherein an Internet connection at the 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..Iaddend.
.Iadd.45. 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..Iaddend.
.Iadd.46. 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..Iaddend.
.Iadd.47. 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..Iaddend.
.Iadd.48. 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..Iaddend.
.Iadd.49. The method of claim 1, wherein the one or more modeled sessions are generated in a computer-training environment by a trainer..Iaddend.
.Iadd.50. 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..Iaddend.
.Iadd.51. The method of claim 1, wherein the one or more modeled sessions include a fixed linear path of webpages to browse..Iaddend.
.Iadd.52. 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..Iaddend.
.Iadd.53. The method of claim 1, wherein the information analyzed in the user's Internet interaction sessions includes product details viewed..Iaddend.
.Iadd.54. 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..Iaddend.
.Iadd.55. 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..Iaddend.
.Iadd.56. 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..Iaddend.
.Iadd.57. 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; associating the extracted webpage screen element with one of a plurality of a user's Internet interaction sessions; storing an association between a user's Internet interaction session and an identification of the user; 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..Iaddend.
.Iadd.58. The method of claim 1, comprising indexing interactions across multiple different channels of communication to create a uniform database of interactions..Iaddend.
.Iadd.59. The system of claim 12, wherein the processor is to index interactions across multiple different channels of communication to create a uniform database of interactions..Iaddend.
.Iadd.60. The method of claim 1, comprising identifying a probable cause of a user switching from one communication channel to another..Iaddend.
.Iadd.61. The system of claim 12, wherein the processor is to identify a probable cause of a user switching from one communication channel to another..Iaddend.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31) It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
DETAILED DESCRIPTION OF THE INVENTION
(32) In the following description, various aspects of the present invention will be described. For purposes of explanation, specific configurations and details are set forth in order to provide a thorough understanding of the present invention. However, it will also be apparent to one skilled in the art that the present invention may be practiced without the specific details presented herein. Furthermore, well known features may be omitted or simplified in order not to obscure the present invention.
(33) Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulates and/or transforms data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices.
(34) When used herein, a telephone call may include devices and networks beyond the “plain old telephone system” (POTS), such as VOIP telephone calls using personal computers. “Calling” in the context of a person taking action may including using a traditional telephone or other device such as a VOIP telephone, cellular telephone, or other device, to speak with another person. Further, embodiments of the invention may allow for a user to contact an agent via other methods, such as on-line chat. “Calling” in the context of a process or processor taking action may mean, for example, executing a software process, requesting a software process perform some function or return some result, etc.
Overview
(35) Embodiments of the invention provide a system and method for tracking and analyzing interactions of each customer over the World Wide Web (“web”) including the Internet and/or an Intranet (when used herein, the web may be used interchangeably with the Internet and/or Intranet, as web is a system of interlinked hypertext documents accessed via the Internet and/or Intranet). For example, each time a user or customer interacts with the web or Internet, for example, selecting a search term, “browsing” or accessing a webpage, viewing a product description via the Internet, etc., such interactions may be recorded. Data may be extracted from each web interaction, for example, according to, matching or corresponding to a set of predefined parameters, features or rules for tracking web interactions, such as, the amount of time a webpage was viewed, a number of times or which different items are selected on a webpage, the order in which the webpage was viewed, the number of repeated viewings over a time span, the presence or frequency of certain key-words, etc. The predefined extracted features may be fixed or designed by a company support team or process optimization (PO) designer and may be adapted on a session-by-session basis. Capturing and extracting web content features may be executed using a passive or server-side web browser sniffer or capture device. A user's interaction with the web or with the Internet may include remote access of web documents, interaction with remote programs via the Internet, interaction with other users or institutions via interaction with remote programs via the Internet, etc.
(36) Embodiments of the invention may analyze interactions and extract web content for each customer or user to build one or more session summaries. A session may include a series of interactions executed by a customer, for example, ending when the customer logs off, closes the browser used for viewing, completes a transaction, or finishes viewing a document. A session may end, for example, after a predetermined session duration of time, after customer inactivity for a predetermined time, or after a maximum number of interactions. Embodiments of the invention provide a session summary which may include, for example, a description of the customer's interactions including title of webpage(s), webpage universal resource locator (URL), 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, etc.
(37) Customer interactions may be tracked using “cross-channel” analysis, e.g., across multiple channels of communication. For example, a web summary of a user's online (e.g., Internet or web) session may be retrieved upon receipt of an incoming call from the same user or when initiating a call session to the same user. Similarly, a call summary of a user's call center session may be retrieved upon the user initiating an online customer service session. In general, an agent providing support to a user may retrieve summaries for all sessions across all communication channels or a subset of a session, for example, within a specified time period, conducted over specific communication channels (such as, only web interactions or only call center interactions), relevant to the current session topic (such as, including key-words in the extracted data that match key-words of the current session), etc. Web browsing on a user's private computer may be captured or recorded by using passive sniffing devices, probes or other capturing modules. The capturing modules may be initiated automatically or after gaining permission from the user. The agent or the support program designer may select which session summaries to review. In some embodiments, a list of session summaries may be provided for selection to an agent that may be ordered according to session relevance, for example, based on the frequency and/or number of matching key-words in the session compared to the current session.
(38) In some embodiments, each live agent may be provided with an automated agent, for example, to prompt the live agent with dialogue, strategies to resolve issues, and other instructions or recommendations for interacting with a user. The automated agent recommendations may be based on the user's cumulative single-channel or cross-channel web and/or call center history. Such embodiments may provide a semi-live/semi-automated agent by providing the live agent with automated tasks. The automated information may include, not only the current customer's history, but also one or more corresponding ideal session histories or summaries for comparison, for example, to predict optimal future session paths to recommend to the customer. The ideal histories may be based on real-life session summaries generated by other satisfied customers or may be modeled sessions generated in a computer-training environment by a computer programmer or trainer. The ideal session histories may be retrieved from a pool of session histories that most closely matches the topics, key-works and/or other features used in the current customer's session. The ideal session histories may be fixed, e.g., including a linear path of webpages to browse, or dynamic, e.g., including tree-structured or matrix paths, where each chosen webpage path leads to different options, and thus different outcomes.
(39) Customer interactions may be tracked in real-time, for example, while the contact center agent is communicating with the 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).
(40) Agents may include real-life interactive personnel, automated computer agents, avatars, voice or text prompts, etc., or a combination semi-live/semi-automated agent. In one embodiment, an automated agent may track a user's session in real-time and/or provide recommendations, for example, from a recommendations database, that may be linked to conditions detected in the user's session. The recommendations may be sent to the agent in real-time or while the contact center agent is communicating with the user, for example, using a telephone, Internet or other user-agent connection. In another embodiment, an automated agent may use one or more ideal session histories, where for each customer webpage interaction, the automated agent may recommend or re-direct (upon user verification) the customer to the next optimal predicted webpage or interaction defined by the ideal session histories.
(41) Embodiments of the invention provides systems and methods for “recording” or tracking customer-specific and/or session-specific web activity, for example, by capturing Hypertext Markup Language (HTML) web traffic data (e.g., representing user interactions across the Internet with remote documents or programs), extracting information from the data, and filtering, extracting or saving relevant information for analysis and playback. The data may describe the cross-channel customer behavior of the customer and may be used to discern the behavior of customer groups across the different channels in order to optimize channel usage. The analyzed data for a customer may be provided to an agent serving or communicating with the customer. The agent may be connected to the customer via for example a telephone call center (which may include a telephone call via a computer) and may receive the customer's web session data. In some embodiments, the customer's web session data may define the customer's past web interactions. The agent may receive a real-time guidance message (e.g., generated by a PO Client), notifying the agent that the customer has interacted with the web server in the past. The real-time guidance message may offer up-sell or cross-sell options, for example, according to the analysis of the web interaction and business rules in a recommendations database. The real-time guidance message may also offer to play back past web interaction. In some embodiments, the customer's web session data may define the customer's current or ongoing web interactions. For example, a customer interacting with an agent may have been or may begin interacting with a web server, for example, with or without the agent's knowledge or according to the agent's instructions. The agent may receive a real-time guidance message (e.g., generated by the PO Client), notifying the agent that the customer is interacting with the web server. The real-time guidance message may offer to “shadow browse” the customer, for example, simulating the customer's web session for the agent to view. Embodiments of the invention may be used for technical support, selling, “up-selling” or “cross-selling,” filling in surveys, etc., although other applications may be used.
System Configuration
(42) Reference is made to
(43) System 100 may include one or more user computers 102 for interacting over the web (e.g. via the Internet), one or more web servers 122 for hosting or distributing information over the web (e.g. via the Internet), one or more web capture servers 110, analysis servers 116 and/or storage centers 118 for monitoring user's interactions with Internet-based programs or documents. System 100 may also include one or more additional user devices 108, such as telephone, SMS message or text enabled devices, for the user to interact over another network, such as, a telephone or messaging network. User computers 102 may include for example web browsing software to enable a user to access remote websites via the Internet.
(44) User computer 102, e.g., controlled by a user, may access documents, websites and web pages provided by web servers 122 via a network 140, such as the web or Internet. Web servers 122 may include applications for retrieving and viewing web content on user computer 102. In one embodiment, the user may be a customer browsing webpages, which are supported by web servers 122. Web capture servers 110 may record, copy, or capture user traffic on web servers 122, for example, using a passive sniffing device or other device (e.g., probe 410 of
(45) A client installed on agent device 120 (e.g., PO client 420 of
(46) The client at agent device 120 may request the interesting information, for example, including information from closed (past) web sessions from database 126 (e.g., via server 424 of
(47) Analysis server 116 may extract metadata, embedded tags, URLs or other information attached to recorded, copied, or captured webpages or websites for ongoing or current web sessions. Analysis server 116 may identify which user executed those interactions and may attach user profile data, user identification codes or other user-related data to the extracted or saved interaction content or documents. In this manner or other manners content or interactions may be associated with or linked to a user or customer. Analysis server 116 may compile or assemble each user's associated content to generate a summary of the user's web-interaction history, for example, which may be sent in real-time to the agent client. Analysis server 116 may analyze, edit, and index the extracted or saved interaction content, for example, to create an organized and uniform repository of user histories, e.g., in database 126, that may be easily accessed by customer service agents. In some embodiments, analysis server 116 may assign indicators or categories to interactions, for example, such as, the user that executes the interaction, topics or key-words in the interaction (e.g., product X, service Y, financial/billing issues, etc.), the channel of communication for the interaction (e.g., web, telephone, messaging, in person, etc.) and/or the time of the interaction (e.g., the exact time of the interaction, if the interaction occurred in the past hour/day/month/year, the time difference since the previous interaction for the same topic, etc.). Analysis server 116 may determine which user interactions are relevant to the current issue by matching their identifiers to relevancy criteria received from the agent client. For example, analysis server 116 may retrieve all interactions for a specific user, on a specific topic, in any communication channel within the past hour. The relevancy criterion for selecting interactions may be predefined, statistically computed to generate a predetermined number of interactions or “hits,” or selected by the agent.
(48) Users may be connected via user computers 102 (for web connections) and/or user devices 108 (for other network connections) with live or automated agents at agent devices 120. Agents may provide users with customer support, conduct transactions for purchasing products or services, fill out surveys, or provide other products or services. Agent devices 120 may be connected to database 126 storing information related to users' interaction histories over the web and/or other networks. When an agent is connected to a user, the agent may automatically or, after sending a request, gain access to the user's interaction history. Database 126 may also store recommendations for users. Agent devices 120 may automatically retrieve the recommendations from database 126 having a predefined correlation with the user with which the agent is currently communicating. The recommendations may be communicated automatically while the agent is communicating with the user, for example, via an automated agent or to prompt a live agent to manually communicate the recommendations to the user. Agents may be guided through user interactions and prompted with recommendations or scripts, for example, to standardize and optimize agent support.
(49) In some embodiments, agent devices 120 may “shadow-browse” a user computer, for example, providing agent devices 120 with real-time playback of user computer 102 interactions so that the agent may monitor or guide user interactions in real time. The playback may include a simulated screen-shot of user computer 102, a table or control panel listing interaction details, such as, URLs, product descriptions, user commands, etc., and/or a user interaction summary. In some embodiments, analysis server 116 may provide “channel containment” analysis, for example, describing the reasons that users switch from one communication channel (e.g., Internet) to another (e.g., telephone). Channel containment analysis may allow a company to use the identified problems in each channel to improve customer support (e.g., by re-designing web pages, providing more information on each channel) to keep more customers in their original channel (e.g., Internet). Analysis server 116 and/or interactions center 124 may track end-to-end first contact resolution, for example, to determine if a user's problem or issue is resolved completely (from end-to-end) within a first contact with an agent device 120, or if the user does not resolve their issue or is transferred or re-connected multiple times to one or more support channels to resolve their issue. Analysis server 116 may provide “chum prediction,” for example, where by analyzing one or more (e.g., Internet or cellular telephone) interactions, the center may predict whether or not a company or service provider is at risk of losing its customer.
(50) User computer 102 and agent device 120 may be personal computers, desktop computers, mobile computers, laptop computers, and notebook computers or any other suitable device such as a cellular telephone, personal digital assistant (PDA), video game console, etc., and may include wired or wireless connections or modems. Although user computer 102 and agent device 120 are described to be computer devices with a web connection, they may alternatively be telephone or messaging devices or a combination of telephone, messaging and/or computer, for example, so that the agent and user may interact via multiple communication networks. User computer 102 and agent device 120 may include one or more input devices, for receiving input from a user or agent (e.g., via a pointing device, click-wheel or mouse, keys, touch screen, recorder/microphone, other input components) and output devices 105 and 125 (e.g., a monitor or screen) for displaying data to a user and agent, respectively.
(51) User computer 102, web capture server 110, analysis server 116, agent device 120 web servers 122 and interactions center 124, may each include one or more controller(s) or processor(s) 106, 112, 132, 136, 128, and 142, respectively, for executing operations and one or more memory unit(s) 104, 114, 134, 138, 130 and 144, respectively, for storing data and/or instructions (e.g., software) executable by a processor. Processor(s) 106, 112, 132, 128, 136 and 142 may include, for example, a central processing unit (CPU), a digital signal processor (DSP), a microprocessor, a controller, a chip, a microchip, an integrated circuit (IC), or any other suitable multi-purpose or specific processor or controller. Memory unit(s) 104, 114, 134, 138, 130 and 144 may include, for example, a random access memory (RAM), a dynamic RAM (DRAM), a flash memory, a volatile memory, a non-volatile memory, a cache memory, a buffer, a short term memory unit, a long term memory unit, or other suitable memory units or storage units.
(52) Web capture server 110, analysis server 116, storage centers 118, agent device 120, and interactions center 124, may each be, for example, software executed on one or more processors, and while this software may be in one processing device or server, it is not necessarily executed by the same processor or within the same computing device.
Agent Interface
(53) Reference is made to
(54) Interface 200 may be a prompt or an “automated agent” provided to a live agent via a device (e.g., agent device 120
(55) Interface 200 may be displayed to an agent, for example, as a dedicated window, an embedded window (e.g., using a customer relationship management (CRM) system), a pop-up window, a webpage, an application page, and/or any combination or variation thereof.
Cross-Channel Workflow
(56) Reference is made to
(57) Cross-channel sequencing 302 may sequence or index customer cross-channel interactions, for example, according to topics, key-words, communication channel, time, etc., to create an organized and uniform database of customer interactions that may be easily searched to detect relevant interactions.
(58) Trend analysis 304 may include generating sequence distribution reports, sequence trend analysis, segment analysis, channel deflection analysis, key performance indicators (KPIs) and/or alerts.
(59) Root cause analysis 306 may identify a probable root cause of channel-deflection, in which the user switches from one communication channel to another, for example, calling a contact center after viewing the company web site. Root cause analysis 306 may also include agent comparison analysis and/or customer segment analysis.
(60) Impact reporting 308 may include automatically generating marketing, business or technology reports, coaching agents by providing immediate automated tips or by providing follow-up training sessions specifically targeted to improve the agent's areas of weakness, and real-time guidance by providing a real-time prompt or recommendations to agents while they serve or communicate with a customer (e.g., via interface 200 of
(61) Trend analysis 304, root cause analysis 306, and impact reporting 308 may each be, for example, software executed on one or more processors, which may or may not be located in the same computing device.
System Components
(62) Reference is made to
(63) System 400 may include a web server 402 (e.g., web server 122 of
(64) A web analyzer 418 (e.g., analysis server 116 of
(65) User computers 406 interactions with web servers 402 may be recorded as data, such as, URLs of accessed web pages, metadata of accessed web pages, links selected, etc. PO client 420 may determine the rules for identifying or extracting information, such as, screen elements, metadata or other web objects, from the interaction data. Web analyzer 418 may store or save identified, filtered or extracted interaction data (e.g., which match or correspond to rules) in an interactions database 422 (e.g., database 126 of
(66) A customer resolver 432 and/or 434 may be provided to identify which interactions belong to which customers or users, for example, by matching customer identifiers or extracted data to data in a customer database. Each matched interaction may be assigned a customer identification (ID) defining the associated customer in a mapping table, which may store the interaction ID, customer ID, associated key-words, associated identifiers, etc. Accordingly, when the interaction center connects an agent to a customer, the agent may easily access interactions linked to the customer via the customer ID. The agent may refine a search to access only a subset of the customer's relevant interactions, for example, by specifying interaction criteria or rules, such as, interaction topics, key-words, communication channel, time, etc. For example, a rule may be to access “all sessions in the past week for a specific customer” or “all sessions that include a product X.” Customer resolver 432 may be connected to or disposed in interaction center 428 and alternatively or additionally, customer resolver 434 may be connected to or disposed in connection server 424.
(67) A business analyzer (BA) 436 (e.g., analysis server 116 of
(68) Interaction center 428 may include a customer resolver module interfacing with agent device 430 to provide agents with relevant user interactions from interactions database 422. Agent device 430 may query BA 436 via connection server 424 for closed sessions and web analyzer 418 for open sessions. BA 436 and web analyzer 418 may supply agent device 430 with a list of closed and open sessions, respectively, for a specified user upon request. In some embodiments, interactions database 422 may store additional non-web interactions, such as telephone, email or messaging interactions, which may be provided to the agent device for additional cross-channel analysis to improve customer service. Agent device 430 may be provided with interaction details, including, for example, a history of the user's past web interactions, a summary of those interactions, a playback module to view simulations of those interactions and a guide listing recommendations to optimize those interactions. Interaction details may be provided to agent device 430 via an interface (e.g., via interface 200 of
(69) Some embodiments of the invention may allow agent device 430 to track open session interactions on user computer 406 in real-time using PO client 420 (installed on agent device 430). PO client 420 may transfer or make data available in real-time from open or current sessions (e.g., as well as past sessions). PO client 420 may transfer the data from each user computer 406 to one or more agent device 430, for example, which are assigned to provide the user support. Agent device 430 may view a user's past session data as a history of relevant interactions, as a summary report of those interactions, or as a playback simulation of the interactions. In addition or alternatively, agent device 430 may view the user's current session data as a history or summary report updated in real-time or as a real-time interaction simulation in a shadow browsing interface. Agent device 430 may also be provided with a guide updated in real-time with recommendations targeted to the user's real-time interactions. By extracting user data via PO client 420 installed in a user computer 406, the user profile may be automatically known and transmitted to agent device 430, for example, without the user defining their identity, which may enhance both security and privacy issues in system 400.
(70) In one example, a user browses a website for a product or service X (e.g., X=a financial loan) and then calls (e.g. places a telephone call to) a provider of product or service X (e.g., a bank) at a later time. The user may be connected to an agent and the agent's device 430 may automatically (or after sending a request) access a summary of the web interaction, a link to shadow browse the user to view the user's current or real-time interactions and/or guidance tools to make recommendations, for example, for the agent to sell the user a product or service that is the same, similar or related to X.
(71) Switch 404, NIC 408, probe 410, IPS 412, web analyzer 418, PO client 420, interactions database 422, connection server 424, rule manager 426, interaction center 428, agent device 430, customer resolvers 432,434 and business analyzer (BA) 436 may each be, for example, software executed on one or more processors, and while this software may be in one processing device or server, it is not necessarily executed by the same processor or within the same computing device.
Web Analyzer
(72) A web analyzer (e.g., web analyzer 418 of
(73) Reference is made to
(74) System 500 may include a web analyzer 518 (e.g., web analyzer 418 of
(75) Data provider 534 may retrieve web interaction events, for example, including page data (e.g., main pages, forms, etc.) from capture database 516 and post data (e.g., webpage metadata, content entered into fields, such as, a user name in a text box, etc.) from capture storage 514, and may provide the events to session manager 536. Session manager 536 may retrieve a list of open sessions from open (current) session database 538 and may define one or more closed (past) sessions for each user. Once the sessions are defined, data extractor 540 and/or post extractor 542 may selectively identify, filter, save or extract web interactions according to rules via configuration loader 544. Data extractor 540 may analyze the page data and post extractor 542 may analyze the post data. Data extractor 540 and post extractor 542 may divide the extracted content into sessions, for example, as defined by session manager 536. Session manager 536 may provide the session details to perform adapter 546, which may transmit the details to interaction center 528, for example, via CAPI 548, to organize the interactions database 422 into sessions or retrieve data based on the sessions.
(76) Data extractor 540 and/or post extractor 542 may extract a list of elements from each web page, for example, as described in reference to
(77) Components and processes of
Web Analyzer Interfaces
(78) Web analyzer 518 may include a database interface to access capture database 516 and/or database tables and a file storage interface to access capture storage 514 and/or file systems. Web analyzer 518 may poll capture database 516 for new events and then analyze the corresponding files from the file system in capture storage 514.
(79) The database interface may be deployed on the same server as interactions database 522 (or on a different server). The interface may use an authentication platform, or such as, SQL Server authentication or Windows NT authentication, to validate the authenticity of transferred data. During system 500 installation, a new script may create a stored procedure, view and table that may be used by web analyzer 518. The view may aggregate relevant data from various authentication tables. The stored procedure may return new events data based on the view. The table may keep track of what web analyzer 518 has fetched from capture database 516.
(80) The file storage interface may access shared folder on an IPS device. The file storage interface may store HTML pages (e.g., main pages events), for example, as .htm files. The file storage interface may store posts (e.g., form events), for example, as extensible markup language (XML) files. In addition, the file storage interface may store other web resources (e.g., images, java scripts, etc.), for example, as is, to be accessed directly by a document object model (DOM). Other or additional programming languages may be used.
(81) Web analyzer 518 may include an interface with connection server 524 to supply users' current open sessions to connection server 524, for example, as described in reference to
(82) Reference is made to
(83) In one embodiment, user computer 602 (e.g., user computer 406 of
(84) Once user identifier 626 is obtained, connection server 624 may send web analyzer 618 a request for open session data 628 associated with user identifier 626. Web analyzer 618 may return current open session data 628 to connection server 624 associated with user identifier 626 and/or identifier type 612.
(85) Examples of requests for open session data 628 sent from connection server 624 to web analyzer 618 may include one or more of the following: 1. Get Current Supported Customer Identifier Types—web analyzer 618 may return current configured customer identifiers in the configuration of web analyzer 618. Such a request may be, for example: void GetCurrentSupportedCustomerIdentifierTypes(out CustomerIdentifierType cookieCustomerIdentifierType, out CustomerIdentifierType pageCustomerIdentifierType. 2. Get Open Sessions Metadata For Customer Identifiers—web analyzer 618 may return current open sessions metadata (e.g., session ID and/or start time and date) according to customer identifiers (e.g., including a list of web identifiers and a list of cookie identifiers) and a website or web server ID. Such a request may be, for example: List<OpenWebInteractionMetaData> GetOpenSessionsMetaDataForCustomerIdentifiers (List<string> cookieCustomerIdentifiers, List<string>pageCustomerIdentifiers, int siteID). 3. Get Open Sessions With Session ID—web analyzer interface 610 may return the current open sessions (e.g., complete data) according .Iadd.to .Iaddend.a .[.to.]. given session ID. Such a request may be, for example: List<OpenWebInteractionData>GetOpenSessionsWithSessionID (List<string>sessionIDs).
(86) Data Structures in the requests may include, for example:
(87) CustomerIdentityType Enumeration, which may be defined, for example, as follows:
(88) Unknown=0, IDCardNumber=1, PhoneNumber=2, EmailAddress=4, ChatAccount=8, WebLogin=16,
OpenWebInteractionMetaData object. Metadata from the web interaction may be used to describe one session identify data with properties defined, for example, as follows: String—Session ID DateTime—Start Date
PrimitiveData object, which may be defined, for example, as follows: String—Key String—Value
CompositeData object, which may be defined, for example, as follows: PrimitiveData[ ]—PrimitiveDataArray CompositeData[ ]—ChildCompositeDataArray String—Key String—Name
PageData object, which may be defined, for example, as follows: PrimitiveData[ ]—PrimitiveDataArray CompositeData[ ]—ChildCompositeDataArray DateTime—StartDate DateTime—EndDate string—Title string—Key string—Name
OpenWebInteractionData object, which may be defined, for example, as follows: OpenWebInteractionMetaData—WebInteractionMetaData PageData[ ]—Pages
Other or additional data structures may be used in the requests.
(89) Reference is made to
(90) Web analyzer 718 (e.g., analysis server 116 of
(91) Components and processes of
(92) Reference is made to
(93) 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
(94) 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.
(95) 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.
(96) In operation 808, connection service interface 822 may transfer the customer identifiers and/or a website ID to sessions structure manager 838.
(97) In operation 810, sessions structure manager 838 may return current open sessions metadata to connection service interface 822.
(98) In operation 812, connection service interface 822 may transfer the current open sessions metadata to connection server 824.
(99) In operation 814, connection server 824 may send a request to connection service interface 822 for current open sessions according a given session ID.
(100) In operation 816, connection service interface 822 may transfer the session ID to sessions structure manager 838.
(101) In operation 818, sessions structure manager 838 may return current open sessions web interaction data to connection service interface 822.
(102) In operation 820, connection service interface 822 may transfer the current open sessions web interaction data to connection server 824.
(103) Other operations or orders of operations may be used. Components and processes of
(104) Reference is made to
(105) Sessions structure manager 938 may manage open sessions 902 in a web analyzer, for example, according to one or more of the following indexes: Site ID 904. Open session data type, e.g., page 906 or cookie 908. User Identifier 910, e.g., the extracted identity from the web page or the cookie.
Other or additional indices may be used.
(106) Referring again to
(107) Other or additional system interfaces may be used.
System Operation and Configuration
(108) 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: Identify whether the event belongs to a new session or not (e.g., the session ID may be extracted from the associated cookie). If the event belongs to a new session: create a new session object and add each subsequent webpage to the new session object; and attempt to extract the customer identifier from the cookie associated with the webpage. Locate the configuration for each webpage, for example, using one or more of the following event objects (other or additional event objects may also be used): a URL for the webpage; a title of the webpage; and/or screen elements identified in the webpage (estimated from 10% of all pages). If the webpage configuration is not found, the analyzer may not save the webpage to the new session object.
(109) 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.
(110) 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: Load the recorded webpage html to a DOM. Search webpage for screen elements according to a predetermined criteria stored in a table, for example, “tblWAScreenElementProperty,” which may store web configuration details defining screen elements for web analyzer 518 to extract from the webpage. The screen elements may be defined and searched for, for example, using one or more of the following types of criteria (other or additional criteria may also be used): ID, such as, an element ID; Name, such as, an element name; and/or Xpath, such as, “DIV[1]\DIV[2]\TABLE[1]\ . . . ” Each element found in the recorded webpage may have its data extracted, for example, based on screen element value or column (e.g., nvcValueProperty) in the property table (tblWAScreenElementProperty). If more than one element is found for a screen element definition (e.g., repetitive or non-unique elements), data may be extracted from only the first detected one of such elements. Alternatively, data may be extracted from each of the multiple elements. If a customer identifier is not extracted from the webpage cookie, but a “Customer ID” screen element type is detected in the webpage, the data for such a screen element may be extracted and the session customer identification may be updated based thereon.
(111) 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
(112) 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: User IDs Defined in the user admin as mail users. Inserted into the database by the interaction center, as is. Testing User ID. Operational User ID. Capture database hostname File access server (FAS) proxy location (URL). The FAS may be a server used for web session playback. A web player may connect to the FAS to play the user sessions from recorded session files in storage. For optimal performance, the FAS may be installed in the same device as the web analyzer, although the FAS may also be installed in other devices.
(113) 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: Insert “Web Unauthenticated” sessions [False]—inserts session sessions (e.g., into an open sessions database 538 of
Other or additional configuration parameters may be used.
(114) Embodiments of the invention may provide a deployment manager for deploying a web analyzer (e.g., web analyzer 518 of
(115) 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
(116) 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).
(117) The testing flow may be executed as follows (other or additional steps may also be used): Record a session (session may include all or a subset of session web pages). Send PO client configuration XML file to tester. Run or execute tester on recorded session. Tester may display web pages and data extraction.
(118) In some embodiments, configuration parameters and/or rules may be imported into the system from a PO client (e.g., PO client 520 of
(119) 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
(120) The customer resolver may include an API. The customer resolver API may return a customer ID according a given .[.tenent.]. .Iadd.tenant .Iaddend.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.
Data Extraction
(121) Reference is made to
(122) 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.
(123) 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.
(124) 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].
(125) 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.
(126) Reference is made to
(127) To extract screen elements, a web analyzer (e.g., web analyzer 518 of
(128) In some embodiments, path 1000 of
System Usage for Web Recording
(129) 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.
(130) Web recording systems (e.g., systems 100 and 400 of
(131) 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.
(132) Web recording systems may be used to provide contact center with customers' past web interactions, for example, according to the following steps: A customer may interact with a web server (e.g., web server 122 of
(133) 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): A customer may interact with an agent. The customer may start interacting with the web server, either without the agent's knowledge or according to the agent's instructions. The agent may receive a real-time guidance message generated by the PO Client, for example, notifying them that the customer is interacting with the web server. The real-time guidance message may offer to “shadow browse” the customer, showing the agent each relevant browsing decision the customer makes.
(134) Web recording systems may be used to evaluate an agent's performance, for example, according to the following steps: A customer may interact with an organization's web site before or after their interaction with an agent. A supervisor for the agent may play back and evaluate the agent/customer interaction The supervisor may also play back the customer's related web interactions (as part of a sequence or as a complete interaction), for example, in order to fully understand the context or the outcome of the agent-customer interaction before finalizing the evaluation.
(135) Web recording systems may be used to understand a specific customer's cumulative cross-channel interactions, for example, according to the following steps: A supervisor may investigate a specific customer case by querying the customer's interaction history and playing back the customer's past web interactions.
(136) 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
(137) Reference is made to
(138) 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.
(139) 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.
(140) Components of
(141) Reference is made to
(142) A web server 1302 (e.g., web server 1202 of
(143) A web capture server 1304 (e.g., web capture server 1204 of
(144) An interactions center 1306 (e.g., interactions center 1206 of
(145) An interactions database 1308 (e.g., interactions database 124 of
(146) An insight manager 1310 may categorize the web interactions using a categorization module. A web analyzer 1312 (e.g., analysis server 116 of
(147) In some embodiments, a system administrator, user or agent may be able to configure web recording rules, for example, as described in reference to
(148) Reference is made to
(149) 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): Web sites (domains) to be identified and recorded, for example, by the web analyzer. Web agents to be associated with the interactions (e.g., tenant specific). These may be identified, for example, by the interaction center. Web analyzer definition files created by the PO Client. Whether or not to create web interactions from web sessions that are not customer-authenticated. Whether or not the web interactions include only web pages defined by the PO client or all captured web pages. A customer-authentication method 1504 (e.g., cookie or web element) and an associated customer identifier 1506, such as, a unique account ID, customer ID, telephone number, mobile phone number, general number, email, chat ID, web customer ID, account information, etc. Customer-authentication method 1504 and customer identifier 1506 may be set at interface 1502 of
(150) An agent may be able to configure the web storage rules in a rules manager (e.g., rule manager 426 of
Web Interaction Playback
(151) Reference is made to
(152) 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
(153) 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.
(154) An agent (e.g., at agent device 430 of
(155) Other play back interfaces or functionality may be used.
System Specifications
(156) Web interaction capture solutions may include, for example, the following (other or additional solutions may be used): Automatically alerting a user of web recording on web sites. Identifying channel containment for analyzing the reasons that users switch from one communication channel (e.g., the web) to another (e.g., telephone). Giving real-time guidance to agents based on current and past web interactions of the same customer. Allowing agents to view a customer's session.
(157) Some benefits of web recording solutions include, for example, the following (other or additional benefits may be found): Non-intrusive server side capture as opposed to the most of the vendors, which perform direct integration and require changes to be done in the web server implementation. Generic solution, e.g., not oriented to certain vertical or horizontal web sites. Provides customer resolving and cross channel correlation, which many vendors cannot offer, as they do not have access to the customer repository or to the customer's multi channel interactions.
(158) 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
(159) 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.
(160) Web recording systems may support one or more of the following resiliency mechanisms (other or additional resiliency mechanisms may also be used): Multi-channel interactions center cluster. Multi-channel interactions center geo-cluster. Storage center redundancy. Virtualization for multi-channel interactions center. NIC teaming for the multi-channel interactions center.
(161) Web recording systems may support any usage scenarios when voice interactions are imported using a platform agnostics solution.
(162) 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): HP G6 server or equivalent. 2 Quad Core Nehalem 2.26 GHz processors. 4 GB DDR-3 RAM. 2x4p1GBps NIC.
(163) The multi-channel interactions center may also be supported as a virtual machine.
(164) 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.fwdarw.rule mngr.fwdarw.scheduler). A “Web Analytics” option may be added (e.g., under application server license.fwdarw.interaction analytics.fwdarw.multichannel). In some embodiments, a system administrator user interface related to web recording may be hidden if the web recording capability is not licensed.
(165) 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.
(166) In alternative or additional embodiments, web recording systems may include features, for example, as follows: Capture web interactions via client-side tagging. Provide HTTP secure (HTTPS) decrypt devices, which may be deployed on the customer websites, capture HTTPS packets, decrypt them using private keys and send the decrypted packets to web capture servers. Configure the IPS/Probe solution via a system administrator and not locally. Capture Ajax based controls and relate them to associated web interactions. Encrypt web interactions as part of the system-wide media encryption process. Redundancy solution in which multiple probes capture the same or overlapping web traffic yet only one web interaction is created to reduce redundancy.
Real-Time Guidance
(167) 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).
(168) Reference is made to
(169) System 1700 includes an agent workstation 1702 (e.g., agent device 120
(170) PO designer 1706 may define, for example, one or more of the following parameters (other or additional parameters may also be defined): Website elements for analyzing: Website Web pages for data extraction. Web business entities. Web screen elements. Customer identifier. Real-time guidance rules.
(171) PO client 1708 may execute, for example, one or more of the following operations (other or additional operations may also be executed): Use web analyzer data extraction in real-time, for example, to issue real time guidance messages to agent workstation 1702. Evaluate real-time guidance rules based on the web analyzer data extraction. Launch web player 1710.
(172) 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 sessions includes: Ongoing session of the customer. Past sessions of the customer. Web session data includes: Session dates, duration, categories Pages and their extracted values
(173) Web player 1710 (e.g., launched at agent device 120 of
(174) In some embodiments, a system administrator, product designer or company agent (e.g., agent device 120 or administrator at interaction center 124 of
(175) Components in system 1700 may have, for example, the following functionality. PO Client 1708 may consume web session data for real-time guidance rules. PO Client 1708 may utilize connection server 1704 service upon demand. Web analytics licenses may be enforced. Synchronous and asynchronous functionality may be available. ‘Data Loaded’ event may be exposed to the user (e.g., with asynchronous functionality). PO Client 1708 may launch web player 1710 upon demand with an interaction ID. PO Designer 1706 may include, for example: A new ‘web analytics’ package. A new solution orientation target, including: A validation of web analytics configuration project. XML generation. New function editors, including: A map of HTML table elements to Business Entity lists. Consume web sessions data. PO Client 1708 may include, for example: New library objects to: Extend connection server 1704 service functionality. Launch web player 1710. Setups may include, for example: A web connector, such as, an Internet Explorer (IE) connector, to define the screen connectivity, for example, between the GUI controls of a desktop application. The screen connectivity layer in PO Client 1708 may include a set of connectors, for example, each responsible to communicate with a specific technology to uniquely identify a specific screen element within a given application screen. The web connector may be responsible for the communication with the Internet provider application. Web connector may be a code layer installed in one or more device in system 1700 for example, in PO Designer 1706 and/or PO Client 1708. Web connector may be setup in a default setup. Deployment of web player 1710 dynamic link library (DLL) as part of a connection server 1704 upgrade.
System Optimization
(176) 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
(177) 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.
(178) 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.
(179) 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).
(180) 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.
(181) 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.
(182) 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.
(183) 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.
(184) 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.
(185) 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).
(186) 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.
Recording, Storage and Playback
(187) Reference is made to
(188) System 1800 may include a web server 1802 (e.g., web server 122 of
(189) System 1800 components may execute the following operations (other or additional operations may also be used):
(190) In operation 1841, probe 1806 may capture web server 1802 traffic via the web server's NIC 1808.
(191) In operation 1842, probe 1806 may send the captured traffic to IPS 1822, for example, in data packets.
(192) 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.
(193) In operation 1844, web analyzer 1818 may sample capture database 1824 and search for new events that have not yet been processed.
(194) In operation 1845, for each event identified, web analyzer 1818 may: Identify whether the new events are associated with a new session or not, for example, by searching for the session ID of the event in the memory cache objects of web analyzer 1818. If the new events are associated with a new session, web analyzer 1818 may: Create the relevant session object and add all pages of this session as references to that object once the new pages are received. Extract the customer identifier from the web cookie. Each new page identified in capture database 1824 may be sent to web analyzer 1818 for analysis, for example, as follows: For the first page of the session: Find the web site project that this page is part of, e.g., based on the domain part of the page URL. Check if this page should be extracted—e.g., if the page's URL/title/url+title is defined in the web site project pages. If the page is defined: Locate where the page is saved in storage 1832 as indicated in capture database 1824. Load the HTML file from storage 1832 to a DOM. Search for elements that are defined as screen elements for this page: each screen element may be defined with a set of properties, for example, in tblWASEProperty. Properties may include, for example: FindByID—some_id FindByName—some_name FindByXPath—DIV[1]\DIV[2]\TABLE[1]\ . . . . If a screen element is defined by all or multiple of these properties, then a matching screen element in the HTML may match all or multiple of these properties. Each screen element found in the web page may have data extracted, for example, based on the nvcValuePopperty in tblWAScreenElement. If a customer identifier is not extracted from the cookie and there is a screen element in the page that is of type customer ID, the screen element may be extracted as described above. If this page is specified to be saved to interaction database 1826 (e.g., indicated in the configuration scheme or a flag turned on that determines recording all pages), the page metadata (and extracted data) may be saved in the cache memory referenced to the associated session object. Update the page's URL: concatenate the URL of the page as retrieved from capture database 1824 with the fileID, for example, to enable playback from FAS proxy.
(195) 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).
(196) 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).
(197) In operation 1848, CAPI Host 1814 may send a request to database server 1816 to store the interactions in interaction database 1826.
(198) In operation 1849, database server 1816 may store the interactions in interaction database 1826.
(199) Other operations or orders of operations may be used. Components and processes of
(200) Reference is made to
(201) System 1900 may include a database 1902 (e.g., database 126 of
(202) 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).
(203) 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.
(204) 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.
(205) 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).
(206) In operation 1945, SC 1920 may send SS 1918 data to locate the relevant web interactions to be archived.
(207) 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.
(208) In operation 1946, playback may be performed streaming data from local storage 1912 using FAS 1916.
(209) In operation 1948, playback may be performed using data from long-term storage 1914.
(210) In operation 1949, SC 1920 may update database 1902.
(211) Other operations or orders of operations may be used. Components and processes of
(212) 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).
(213) 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.
(214) 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
(215) 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
(216) 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.
(217) 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.
(218) Reference is made to
(219) Systems 2000 and 2100 may include an interaction center server 2002 (e.g., interaction center 124 of
(220) In
(221) 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.
(222) In operation 2042, client web player 2008 may send the interaction ID to web playback client 2018.
(223) 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.
(224) 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.
(225) In operation 2045, FAS 2004 may send local storage 2012 the retrieved interaction data for storage.
(226) 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.
(227) In operation 2047, web playback client 2018 may receive the following data for playback: Customer name. Web interaction metadata, including: 1. Time of the interaction. 2. List of pages and their data extraction. For each page: a URL, e.g., as saved in tblWebInteractionPagesXX. This URL may include the web file ID from capture database, which may be requested by FAS 2004.
(228) 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.
(229) 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.
(230) In contrast to
(231) Other operations or orders of operations may be used in
(232) 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.
(233) 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): IPS enhancements to support MHT/local files. FAS 2004 adjustments to support working with storage 2012, 2022 and database 2014. Player enhancements to support image/MHT/local files. SC archiving. SC transformation of HTML to image files in the server side, for example, using non-client side components. FAS 2004 scale improvements (since FAS 2004 may be accessed more frequently in some embodiments) and scale out. SS 2020 scale out.
(234) 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: Product Name Price Street Name City
The web player user interface may display the objects, for example, as shown in Table 1:
(235) TABLE-US-00001 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
(236) 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): 1. Open calls may be managed, for example, in a distributed cache. The web analyzer may populate the distributed cache with open sessions and may remove sessions from distributed cache when the session ends. The web analyzer may use a distributed cache wrapper component. The web analyzer may also provide in-process DLL for the registering new pages/posts. In such embodiments, interactions may be stored in database 2014, which may be managed by the database server 2016 (e.g., instead of a call server 1812 of
(237) To support shadow browsing, events may be registered in one of the following alternative embodiments, or other embodiments: 1. A connection server (e.g., connection server 424 of
(238) 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.
(239) 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.
(240) Reference is made to
(241) System 2200 may include an interaction center server 2002 (e.g., interaction center 124 of
(242) 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):
(243) 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.
(244) 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.
(245) 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.
(246) 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.
(247) 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.
(248) In operation 2246, client web player 2008 may call playback administrator 2042 to receive a play list, for example, including the web object.
(249) 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.
(250) In operation 2248, playback administrator 2042 may return one or more of the following to client web player 2008: Open session metadata (e.g., customer name, date, etc.). Requested pages with file names. Page metadata (e.g., topic, data extraction, etc.). URL of a folder in a virtual directory 2048 that playback streamer 2056 creates for this page.
(251) 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
(252) In operation 2250, SS 2020 may stream the file containing the pages to the virtual directory 2048 path.
(253) 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.
(254) 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.
(255) Other operations or orders of operations may be used. Components and processes of
(256) In one embodiment, PO client 2010 may initiate shadow-browsing, e.g., as described in reference to
(257) 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
(258) Reference is made to
(259) System 2300 may include an agent workstation 2006 (e.g., agent device 120 of
(260) System 2300 components may execute the following operations for real-time guidance (other or additional operations may also be used):
(261) 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.
(262) 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.
(263) 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.
(264) 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.
(265) 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.
(266) 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).
(267) 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.
(268) In operation 2348, connection server 2050 may return web interactions associated with this customer ID to agent workstation 2006.
(269) Other operations or orders of operations may be used. Components and processes of
(270) Web analyzer 2034 may be integrated with a capture server (e.g., capture server 110 of
(271) Capture servers may include a probe (e.g., capture server 410 of
Integration of Third Party Customer Experience Management (CEM)
(272) 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).
(273) Reference is made to
(274) System 2400 native components may include an agent workstation 2406 (e.g., agent device 120 of
(275) 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: 1. Insight manager 2422 web filters, for example, when defining a category. 2. Business analyzer web filters, for example, when defining a query. 3. PO designer, for example, when defining a rule for real-time guidance based on web events.
For example, if CEM server 2412 is extracting “products purchased” screen elements, then “products purchased” may be a filter in the above 3 applications.
(276) 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.
(277) 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
(278) Components and processes of
(279) Reference is made to
(280) System 2500 native components may include an interactions database 2414 (e.g., database 126 of
(281) System 2500 components may execute the following operations for retrieving a batch of offline web interactions (other or additional operations may also be used):
(282) 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.
(283) 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.
(284) 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.
(285) In operation 2544, database server 2426 may insert the web interactions into interactions database 2414.
(286) Other operations or orders of operations may be used. Components and processes of
(287) Reference is made to
(288) System 2600 native components may include an agent workstation 2406 (e.g., agent device 120 of
(289) 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):
(290) 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.
(291) 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
(292) In operation 2643, client web player 2008 may send playback administrator 2436 the interaction ID to playback.
(293) 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.
(294) 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.
(295) In operation 2646, playback administrator 2436 may return the web object to client web player 2008.
(296) 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.
(297) Other operations or orders of operations may be used. Components and processes of
(298) 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.
(299) 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.]. .Iadd.configuration .Iaddend.for a system adapted to provide native web playback of online web interactions from a non-native CEM: 1. Non-native configurations may be integrated in a native interaction center, for example, via an application or plug-in. The plug-in may map relevant configuration options and move them to manageable locations. 2. After configuration changes, the system, in one embodiment, should not be re-started. 3. Configuration file parameters may be moved to a database. 4. Capture components may be defined (e.g., such as the FAS and storage manager) as part of the plug-in, for example, so that they may be routed and monitored via a native monitoring device or sentinel.
(300) 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).
(301) 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): 1.1. IPS (e.g., IPS 412 of
(302) Other or additional devices and features may be used. Each of these devices may be hardware or software executed by devices and processors of
System Design
(303) 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
(304) Reference is made to
(305) System 2700 may include a PO designer 2702 (e.g., PO designer 1706 of
(306) 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.
(307) Reference is made to
(308) 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): WebSessionID 2804 may include an abstract class that provides an interface that describes a way which uniquely identifies a web session. WebSessionID 2804 properties may include, for example: ID—an integer that uniquely identifies the web session. OpenWebSessionID 2808 may represent a class derived from WebSessionID 2804 class. OpenWebSessionID 2808 may represent the ID of an open web session. In one example, an open web session may be identified by its interaction ID, as opposed to a closed session which may be identified by its session ID. ClosedWebSessionID 2806 may represent a class derived from WebSessionID 2804 class. ClosedWebSessionID 2806 may represent the ID of a closed web session (e.g., the actually session ID). ClosedWebSessionID 2806 properties may include, for example: ServerID—an integer that uniquely identifies the server. SiteID—an integer that uniquely identifies the site. WebCategoryData 2810 may represent a class that describes a category of data. WebCategoryData 2810 properties may include, for example: ID—an integer that uniquely identifies the category. Name—a name of the category. .[.CustmoerIdentity.]. .Iadd.CustomerIdentity .Iaddend.2812 may represent a class that describes the identity of a customer entering the web site. .[.CustmoerIdentity.]. .Iadd.CustomerIdentity .Iaddend.2812 properties may include, for example: ID—an integer that uniquely identifies the customer. Commonly the value of the ID is taken from .[.the.]. an HTML screen element. Type—an integer representing the enum value (e.g., a code type which includes several values) of a customer identity type WebPageMetaData 2814 may represent a class that is a container of the metadata of a web page and may, for example, include the following properties: EndDate—the date the page was left. StartDate—the date the page was entered. Title—the title of the page. Webpage 2816 may define a class that represents a web page in the site that a customer enters. A user operating a PO Designer may divide this class into subclasses and create a custom web page. Webpage 2816 object may have multiple instances. These instances may be formed if there are repeated visits to the web page and may be stored internally in a list of webpage 2816 objects. Webpage 2816 properties may include, for example: Instances—a list of webpage 2816 instances. PageSessions—a collection of WebPageMetaData 2814 sessions. WebPageMetaData 2814—the web page metadata of the currently loaded webpage 2816.
(309) Webpage 2816 functionality may include, for example: Clear—Clears webpage 2816 data structures, such as, the webpage 2816 instances list and WebPageMetaData 2814 page sessions collection. Arguments (parameters that the functions or functionality may receive as input): None. Return value (parameters that the functions or functionality provide as output): None. FindWebPage—Retrieves webpage 2816 by searching the instances list for a webpage that matches the specified WebPageMetaData 2814. Arguments: metadata, e.g., WebPageMetaData 2814 of the desired webpage 2816. Return value: webpage 2816 object, or null if no match is found. LoadPage—Loads webpage 2816 object with the object stored in the internal webpage 2816 objects at the passed index argument. Arguments: pagelndx—an integer representing the index in the internal list of the webpage object to be loaded into webpage 2816. Return value: true if the appropriate webpage 2816 object from the internal list is successfully loaded, false otherwise. WebSessionMetaData 2818 may represent a class that is a container of the metadata of a web session. WebSessionMetaData 2818 may, for example, include the following properties: Active—specifies whether the session is active. CategoriesData—a collection of WebCategoryData 2810 objects. EndDate—The date the session ended. StartDate—The date the session started. WebSessionID—an object that provides the path to the web session ID. Website 2820 may define a class that represents a website that the customer enters for performing some activities. A customer may enter the site several times. Each of these times may define a distinct session in the website and may be stored in an internal list of website 2820 objects. This class may be an abstract class and may be inherited by the user of the PO Designer to make a custom website that best suites the solution being developed. Website 2820 properties may include, for example: Domain—The domain of the web site (e.g. www.amazon.com) Manager—The direct framework manager. MessageQueue—The direct MessageQueue. MetaData—a WebSessionMetaData 2812 object that represents the current session metadata. Sessions—A list of metadata about sessions accessing a specific website. WebsiteKey—The direct fully qualified name (FQN) of the website 2820 object.
(310) Website 2820 functionality may include, for example: AsyncLoadCustomerSessionsDataCompleted—An asynchronous callback operation, for example, executed upon completion of a DoWorkOfLoadCustomerSessionsDataAsync operation. AsyncLoadCustomerSessionsDataCompleted may trigger the customer sessions data asynchronous results to be retrieved and the webpage to be loaded. Upon load completion, AsyncLoadCustomerSessionsDataCompleted may send a DataLoaded event. Arguments: asyncResult—defines the status of the asynchronous DoWorkOfLoadCustomerSessionsDataAsync operation. Return value: None. AsyncLoadRecentCustomerSessionsDataCompleted—An asynchronous callback operation, for example, executed upon completion of the DoWorkOfLoadRecentCustomerSessionsDataAsync operation. AsyncLoadRecentCustomerSessionsDataCompleted may trigger the recent customer sessions data asynchronous results to be retrieved and the webpage to be loaded. Upon load completion, AsyncLoadRecentCustomerSessionsDataCompleted may send a DataLoaded event. Arguments: asyncResult—The status of the asynchronous DoWorkOfLoadRecentCustomerSessionsDataAsync operation. Return value: None. Clear—Clears website 2820 data structures, e.g., including website 2820 instances list and WebSessionMetaData web sessions collection. Arguments: None. Return value: None. CreateWebInteractionRequest—Creates an instance of a WebInteractionRequest to be sent to a connection server (e.g., connection server 424 of
(311) Website 2820 events may include, for example: DataLoaded—an event that is executed when the data is successfully loaded into the website 2820 object. Event parameters may include the status of the data load status (e.g., succeeded or failed). MetaDataLoaded—an event that is executed when the metadata is successfully loaded into the website 2820 object. Event parameters may include the status of the metadata load status (e.g., succeeded or failed).
Design Interfaces
(312) Reference is made to
(313) In
(314) 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: Control the solution generation and distribution methods. Define the functionality that is exposed to the operator of the PO designer. Be operational or in-use when working on the ‘Definition’ project. New solution orientation(s) may be added by the web analytics package. The solution orientation may be the target output of the solution, for example, one or more of the following: PO Client Thin Client Web Analytics
Each solution orientation may have a different output during the generation process (.NET Assembly, javascript files or xml for web analytics).
In the example shown in
(315) 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
When the PO designer operator designates a “multiple instances” element extraction for the web analyzer to extract all instances of the element (e.g., all products in an online shopping cart) the operator may modify ‘Recognition Properties’ of the element accordingly.
(316)
(317)
(318)
(319)
(320) 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
(321)
By default the PO Designer may mark the minimum set of properties used for unique recognition. However, the values captured by the PO designer may be insufficient in some cases and the PO designer may verify that the recognition satisfies all cases. The priority of the ‘recognition properties’ may be for example: ID Name XPATH
(322)
(This information may be defined, for example, in the ‘Shared BE Types’ project using Business Entity types.) In the example in
(323) 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
(324) 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.
(325) In interface 2918 of
(326) In interface 2920 of
(327) In interface 2922 of
(328)
(329) Product: contains the following properties: Name (Text) Quantity (Number) Price (Text) Gift (Boolean)
(330) Address Page: contains the following properties: Address 1 (Text) Address 2 (Text) Full Name (Text) City (Text) State (Text) ZIP (Number)
(331) Shipping Cart Page: contains the following properties: Customer Name (Text) SubTotal (Text)
(332) To create a new website type, the operator of the PO designer may execute the following steps using interfaces 2926-2928 of
(333) 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.
(334) In interface 2926 of
(335) In interface 2928 of
(336) 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
(337) 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 . . . ’.
(338) In interface 2930 of
(339) In interface 2932 of
(340) In interfaces 2934 and 2936 of
(341) In interfaces 2938-2942 of
(342)
(343)
(344)
(345)
(346) 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): Create a new project and add project reference to the ‘Shared BE Types’ project. Create a website Business Entity instance. Create logic to handle one or more of the following: Web sessions data consumption (e.g., metadata and/or web site data). Rules for web session data identification, filtering or extraction. Launching the web player.
(This information may be defined, for example, in the ‘Consumption’ project.)
(347) In interface 2954 of
(348)
(349)
(350) 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
(351) 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).
(352) 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.
(353) 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.
(354) 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.