US20160294952A1 - Method and apparatus for facilitating stateless representation of interaction flow states - Google Patents
Method and apparatus for facilitating stateless representation of interaction flow states Download PDFInfo
- Publication number
- US20160294952A1 US20160294952A1 US15/083,240 US201615083240A US2016294952A1 US 20160294952 A1 US20160294952 A1 US 20160294952A1 US 201615083240 A US201615083240 A US 201615083240A US 2016294952 A1 US2016294952 A1 US 2016294952A1
- Authority
- US
- United States
- Prior art keywords
- customer
- url
- interaction
- state machine
- textual input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/01—Customer relationship services
- G06Q30/015—Providing customer assistance, e.g. assisting a customer within a business location or via helpdesk
- G06Q30/016—After-sales
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
Definitions
- the invention generally relates to customer interaction management and more particularly to a method and apparatus for facilitating stateless representation of interaction flow states associated with online customer interactions.
- Customers provide dedicated customer sales and service support to existing/potential customers (hereinafter referred to as ‘customers’) in order to improve chances of sale and/or improve customer interaction experience.
- the provisioning of sales and service support to the customers may be facilitated through various resources, such as for example applications, which are configured to maintain interaction flow information associated with customer interactions in order to provide seamless support to the customers.
- a persistent connection between a client (for example, a customer) and a server (associated with the enterprise) has to be maintained for every interaction session in order to track interaction flow information and provide seamless support to the customer.
- Persistent connections are also referred to herein as stateful connections.
- a computer-implemented method for facilitating stateless representation of interaction flow states associated with online customer interactions effects generation of a first uniform resource locator (URL) indicative of a textual input received from a customer during an online interaction.
- the first URL is configured to identify a state machine and a state within the state machine for facilitating processing of the textual input.
- the method predicts an intention of the customer from the first URL using the state machine and the state within the state machine.
- the method determines at least one next action based on the predicted intention of the customer.
- the method generates a second URL including a response to the textual input.
- the response to the textual input is determined based on the at least one next action.
- the second URL is configured to identify a next interaction state for the online interaction.
- the method effects a provisioning of the response to the customer during the online interaction.
- an apparatus for facilitating stateless representation of interaction flow states associated with online customer interactions includes at least one processor and a memory.
- the memory stores machine executable instructions therein, that when executed by the at least one processor, causes the apparatus to effect generation of a first uniform resource locator (URL) indicative of a textual input received from a customer during an online interaction.
- the first URL is configured to identify a state machine and a state within the state machine for facilitating processing of the textual input.
- the apparatus predicts an intention of the customer from the first URL using the state machine and the state within the state machine.
- the apparatus determines at least one next action based on the predicted intention of the customer.
- the apparatus generates a second URL including a response to the textual input.
- the response to the textual input is determined based on the at least one next action.
- the second URL is configured to identify a next interaction state for the online interaction.
- the apparatus effects a provisioning of the response to the customer during the online interaction.
- a computer-implemented method for facilitating stateless representation of interaction flow states associated with online customer interactions displays, by a chat client, a user interface (UI) on a device associated with a customer for facilitating a chat interaction between the customer and an agent.
- the method receives, by the chat client, a textual input provided by the customer within the UI.
- the method generates, by the chat client, a first uniform resource locator (URL) indicative of the textual input.
- the first URL is configured to identify a state machine and a state within the state machine related to the textual input.
- the method provisions, by the chat client, the first URL to an apparatus including the state machine for processing of the textual input.
- FIG. 1 is a schematic diagram showing an online visitor visiting a website associated with an enterprise, in accordance with an example scenario
- FIG. 2 is a block diagram of an apparatus configured to facilitate stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention
- FIGS. 3A-3D show screenshots of a UI of a chat console displaying portions of example interactions between customers and an agent, in accordance with an example scenario
- FIG. 4 shows a screenshot of a UI of a chat console displaying an ongoing interaction between a customer and a virtual agent, in accordance with another example scenario
- FIG. 5 shows a schematic diagram for illustrating an example process flow for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention
- FIG. 6 is a flow diagram of an example method for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention.
- FIG. 7 is a flow diagram of an example method for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with another embodiment of the invention.
- FIG. 1 is a schematic diagram 100 showing an online visitor 102 (hereinafter referred to as customer 102 ) visiting a website 104 associated with an enterprise, in accordance with an example scenario.
- the term ‘enterprise’ as used herein may refer to a corporation, an institution, a small/medium sized company or even a brick and mortar entity.
- the enterprise may be a banking enterprise, an educational institution, a financial trading enterprise, an aviation company, a retail outlet or any such public or private sector enterprise. It is understood that many users may use products, services and/or information offered by the enterprise.
- the existing and/or potential users of the enterprise offerings are referred to herein as customers of the enterprise.
- the customers of the enterprise may not be limited to individuals. Indeed, in many example scenarios, groups of individuals or other enterprise entities may also be customers of the enterprise. It is understood that the enterprise may be associated with many such customers, such as the customer 102 .
- the schematic diagram 100 depicts the customer 102 accessing the website 104 using a web browser application 106 installed on the customer's desktop computer 108 .
- the website 104 may be embodied as an e-commerce portal and configured to offer enterprise products/services to existing/potential customers.
- the website 104 may not be limited to an e-commerce portal and some other non-limiting examples of the website 104 may include a financial/banking portal, a passenger travel website, a social networking website, news aggregator portal, a gaming or sports content related website, an educational portal and the like.
- the website 104 may be hosted on a remote web server and the web browser application 106 may be configured to retrieve one or more web pages associated with the website 104 over a network 110 .
- the network 110 may include wired networks, wireless networks or a combination thereof.
- wired networks may include Ethernet, local area networks (LANs), fiber-optic cable networks and the like.
- wireless network may include cellular networks like GSM/3G/4G/CDMA networks, wireless LANs, blue-tooth or Zigbee networks and the like.
- Examples of combination of wired and wireless networks may include the Internet.
- the enterprise may provide dedicated customer sales and service support to customers in order to improve chances of sale and/or improve customer interaction experience.
- the provisioning of sales and service support to the customers may be facilitated through various resources, such as for example applications, which are configured to maintain interaction flow information associated with customer interactions in order to provide seamless support to the customers.
- stateful connections are often difficult to maintain. This is further illustrated with reference to the following example.
- the customer 102 may be interested in purchasing a product displayed on the website 104 . Further, the customer 102 may wish to seek assistance in making the said purchase. For example, the customer 102 may need assistance in performing an online transaction for purchasing the product.
- a clickable widget may be provisioned on the website 104 , which may display a message, such as for example, ‘How may I help you today?’ or ‘Speak with our representative’.
- the customer 102 may be directed to a UI, such as for example, a chat client interface, for facilitating interaction of the customer 102 with a virtual agent, such as a virtual agent 112 depicted in FIG. 1 .
- a virtual agent such as a virtual agent 112 depicted in FIG. 1 .
- an electronic device or similar intelligent machine may embody the virtual agent 112 as depicted in FIG. 1 .
- the customer 102 may input a message ‘I need help in making a purchase with my credit card’ in the chat client interface.
- the virtual agent 112 may be configured to decipher the customer's query and serve a best-matched answer to the customer 102 from a database associated with the enterprise to assist the customer 102 in making the purchase.
- an interaction flow associated with a customer interaction is represented either by using a state machine or by using rules or conditions, which are explicitly coded for such purposes.
- a stateful connection between the customer 102 and a server associated with the enterprise
- Maintaining a persistent stateful connection may be useful in many cases.
- One such example case follows: In some cases, the virtual agent 112 may be incapable of addressing customer's concern adequately.
- the customer 102 may need to be directed to a live agent (i.e. a human agent) in order to provide appropriate assistance to the customer 102 .
- a live agent i.e. a human agent
- the virtual agent 112 has to hand-off the interaction to a correct chat queue (or the server) and also pass context associated with the interaction between the customer 102 and the virtual agent 112 until the hand-off occurred, so that the live agent doesn't start the interaction from the very beginning.
- Maintaining a stateful session or a persistent connection enables smooth hand-off of the customer 102 from the virtual agent domain to the live agent.
- a method and apparatus disclosed herein suggest techniques for representing customer textual inputs and interaction flow information associated with customer interactions using uniform resource locators (URLs).
- the URLs are capable of invoking appropriate state machines and further identifying appropriate states within the state machines for enabling processing of customer textual inputs. Maintaining interaction flow information in such a manner precludes the need to maintain persistent or stateful connections as the URLs can be used to invoke the state machines even if there is a turn in connection or the connection is disengaged.
- FIG. 2 is a block diagram of an apparatus 200 configured to facilitate stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention.
- the term ‘customers’ as used herein may refer to both existing and potential users of products, services or information offered by an enterprise. Moreover, the term ‘customers’ of the enterprise may include individuals, groups of individuals, other organizational entities etc. As explained with reference to FIG. 1 , the term ‘enterprise’ may refer to a corporation, an institution, a small/medium sized company or even a brick and mortar entity. For example, the enterprise may be a banking enterprise, an educational institution, a financial trading enterprise, an aviation company, a consumer goods enterprise or any such public or private sector enterprise.
- the apparatus 200 includes at least one processor, such as a processor 202 and a memory 204 . It is noted that although the apparatus 200 is depicted to include only one processor, the apparatus 200 may include a greater number of processors therein.
- the memory 204 is capable of storing machine executable instructions.
- the processor 202 is capable of executing the stored machine executable instructions.
- the processor 202 may be embodied as a multi-core processor, a single core processor, or a combination of one or more multi-core processors and one or more single core processors.
- the processor 202 may be embodied as one or more of various processing devices, such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing circuitry with or without an accompanying DSP, or various other processing devices including integrated circuits such as, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like.
- the processor 202 may be configured to execute hard-coded functionality.
- the processor 202 is embodied as an executor of software instructions, wherein the instructions may specifically configure the processor 202 to perform the algorithms and/or operations described herein when the instructions are executed.
- the memory 204 may be embodied as one or more volatile memory devices, one or more non-volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices.
- the memory 204 may be embodied as magnetic storage devices (such as hard disk drives, floppy disks, magnetic tapes, etc.), optical magnetic storage devices (e.g.
- magneto-optical disks CD-ROM (compact disc read only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), DVD (Digital Versatile Disc), BD (Blu-ray® Disc), and semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash ROM, RAM (random access memory), etc.).
- CD-ROM compact disc read only memory
- CD-R compact disc recordable
- CD-R/W compact disc rewritable
- DVD Digital Versatile Disc
- BD Blu-ray® Disc
- semiconductor memories such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash ROM, RAM (random access memory), etc.
- the memory 204 is configured to store a plurality of state machines capable of being invoked using uniform resource locators (URLs) as will be explained later.
- the memory 204 is further configured to maintain a database, such as the database 212 , for storing a plurality of answers corresponding to a plurality of possible intentions of the plurality of customers of the enterprise.
- each possible customer intention and its corresponding answer are stored as an ‘intent-answer’ key value pair in the database 212 .
- the memory 204 is further configured to store a plurality of natural language processing (NLP) models configured to facilitate natural language processing of the textual inputs received from the plurality of customers.
- NLP natural language processing
- the apparatus 200 also includes an input/output module 206 (hereinafter referred to as ‘I/O module 206 ’) for providing an output and/or receiving an input.
- the I/O module 206 is configured to be in communication with the processor 202 and the memory 204 .
- Examples of the I/O module 206 include, but are not limited to, an input interface and/or an output interface.
- Examples of the input interface may include, but are not limited to, a keyboard, a mouse, a joystick, a keypad, a touch screen, soft keys, a microphone, and the like.
- Examples of the output interface may include, but are not limited to, a display such as a light emitting diode display, a thin-film transistor (TFT) display, a liquid crystal display, an active-matrix organic light-emitting diode (AMOLED) display, a microphone, a speaker, a ringer, a vibrator, and the like.
- the processor 202 may include I/O circuitry configured to control at least some functions of one or more elements of the I/O module 206 , such as, for example, a speaker, a microphone, a display, and/or the like.
- the processor 202 and/or the I/O circuitry may be configured to control one or more functions of the one or more elements of the I/O module 206 through computer program instructions, for example, software and/or firmware, stored on a memory, for example, the memory 204 , and/or the like, accessible to the processor 202 .
- the I/O module 206 may be configured to provide a user interface (UI) configured to enable enterprises to utilize the apparatus 200 for facilitating stateless representation of interaction flow states associated with the online customer interactions. Furthermore, the I/O module 206 may be integrated with a monitoring mechanism configured to provide the enterprises with real-time updates/alerts (for example, email notifications, SMS alerts, etc.) of changes to be made to the apparatus 200 for facilitating stateless representation of interaction flow states associated with customer interactions.
- UI user interface
- the I/O module 206 may be integrated with a monitoring mechanism configured to provide the enterprises with real-time updates/alerts (for example, email notifications, SMS alerts, etc.) of changes to be made to the apparatus 200 for facilitating stateless representation of interaction flow states associated with customer interactions.
- the I/O module 206 may further be configured to effect display of various user interfaces on remote devices.
- the remote devices may be customer-owned or customer-associated devices.
- the I/O module 206 may be configured to be in communication with an interaction client, such as an interaction client 208 , including device application programming interfaces (APIs) capable of pushing content such as chat console UIs on customer devices for facilitating online interaction between a customer and an agent of the enterprise
- APIs device application programming interfaces
- the I/O module 206 may be configured to facilitate downloading of an instance of a local application (for example, an application such as a chat client or even a voice assistant) by a customer on his or her electronic device.
- a local application for example, an application such as a chat client or even a voice assistant
- Such an application, now deployed in the customer's electronic device may serve as the interaction client 208 .
- the interaction client 208 may be configured to enable online interaction, such as for example, a chat interaction or SMS/email interaction, between the customer and an agent associated with the enterprise for assisting a customer with his or her requirements.
- the I/O module 206 may be configured to deploy an instance of a local application in a remote web server hosting web pages of an enterprise website.
- the instance of the application disposed in the web server may serve as the interaction client 208 .
- the interaction client 208 may be configured to display a widget on several web pages of the enterprise website.
- the widget upon being hovered over or selected by the customer, may be configured to display a UI, such as a chat window to enable chat interaction between the customer and an agent associated with the enterprise.
- the I/O module 206 may be configured to be in constant communication with the interaction client 208 for facilitating substantially real-time communication between the customer and the agent.
- various components of the apparatus 200 are configured to communicate with each other via or through a centralized circuit system 210 .
- the centralized circuit system 210 may be various devices configured to, among other things, provide or enable communication between the components ( 202 - 206 ) of the apparatus 200 .
- the centralized circuit system 210 may be a central printed circuit board (PCB) such as a motherboard, a main board, a system board, or a logic board.
- PCB central printed circuit board
- the centralized circuit system 210 may also, or alternatively, include other printed circuit assemblies (PCAs) or communication channel media.
- the apparatus 200 may include fewer or more components than those depicted in FIG. 2 .
- the apparatus 200 may be implemented as a platform including a mix of existing open systems, proprietary systems and third party systems.
- the apparatus 200 may be implemented completely as a platform including a set of software layers on top of existing hardware systems.
- one or more components of the apparatus 200 may be deployed in a web server.
- the apparatus 200 may be a standalone component in a remote machine connected to a communication network (such as the network 110 explained with reference to FIG.
- the apparatus 200 may be implemented as a centralized system, or, alternatively, the various components of the apparatus 200 may be deployed in a distributed manner while being operatively coupled to each other.
- functionalities of the apparatus 200 may also be embodied as a client within devices, such as customers' devices.
- the apparatus 200 may be a central system that is shared by or accessible to each of such devices.
- a customer may access an enterprise website and click on a ‘Help’ icon or an ‘Online Customer Support’ button displayed on the enterprise website to initiate an interaction with an agent.
- a floating widget may also be displayed on each web page of the enterprise website requesting the customer to click on a widget if they wish to interact with an agent of the enterprise for desired assistance. It is understood that the customers of the enterprise may seek assistance from the enterprise for various reasons, such as for example to enquire about billing or payment, to configure a product or troubleshoot an issue related to a product, to enquire about upgrades, to enquire about shipping of a product, to register a complaint etc.
- an interaction between a customer and an agent may be represented using state machine involving a plurality of interaction flow states and several transitions amongst the interaction flow states.
- the interaction flow states associated with online customer interaction is further explained using an illustrative example in FIGS. 3A to 3D
- FIG. 3A a screenshot of a UI 302 of a chat console 300 displaying a portion of an example interaction between a customer and an agent is shown, in accordance with an example scenario.
- the chat console 300 may be displayed in a minimized form on an enterprise website, for example, by the apparatus 200 using an interaction client, such as the interaction client 208 explained with reference to FIG. 2 .
- the customer may access the enterprise website using his or her electronic device.
- the electronic device may include a personal computer, a laptop, a Smartphone, a mobile phone, a tablet computer, a wearable device and a personal digital assistant.
- the chat console 300 may be configured to assume a regular form displaying the UI 302 upon receiving a customer input, such as a click on the minimized form of the chat console 300 indicative of the customer's desire to seek assistance from an agent associated with the enterprise. It is noted that FIG. 3A depicts a representation of the chat console 300 for illustration purposes and that the chat console 300 may not be limited to the illustration depicted in FIG. 3A . Indeed, many example text-based interaction platforms, such as instant messengers, relay chats, etc. may be used for facilitating chat interaction between the customer and the agent.
- the chat console 300 is depicted to include a chat icon 304 indicative of an ongoing chat, an end chat option 306 capable of terminating the chat interaction and a text entry section 308 capable of receiving textual input from the customer.
- the text entry section 308 is further associated with a send button 312 indicative of customer confirmation of completion of text entry into the text entry section 308 .
- the chat console 300 further displays a banner section 314 , which may be configured to display a name and/or photo of an agent along with identifiers such as enterprise logo and the like.
- the UI 302 is depicted to display the ongoing interaction 310 between a customer (exemplarily depicted to be ‘John’) and a virtual customer service representative (exemplarily depicted to be ‘Agent’).
- the interaction 310 depicts the agent requesting an account number and a four-digit verification personal identification number (PIN) to authenticate John.
- PIN personal identification number
- John is depicted to have provided his account number as well as his four-digit verification PIN to the agent.
- the account number and the four-digit verification PIN match previously recorded information for John. John's credentials may then be authenticated and the interaction may be continued to enable John to seek desired assistance.
- FIG. 3A depicts a scenario whereby a customer is authenticated at the first attempt itself.
- the customer authentication may involve several attempts.
- the four-digit verification PIN provided by a customer may not match with his/her previously recorded account/PIN information and as such the authentication of customer's credentials may result in a failure.
- FIG. 3B shows a screenshot of the UI 302 of the chat console 300 displaying a portion of an example interaction 320 between a customer and the agent is shown, in accordance with another example scenario. More specifically, the UI 302 displays an ongoing interaction 320 between a customer ‘Julia’ and the virtual agent.
- the interaction 320 depicts the agent requesting an account number and a four-digit verification PIN to authenticate Julia.
- Julia is depicted to have provided her account number as well as her four-digit verification PIN to the agent.
- the four-digit verification PIN may not match previously recorded information for Julia.
- Julia may be asked to provide the verification PIN again.
- Julia's subsequent provision of the four-digit verification PIN may be matched with the previously recorded information for Julia and upon successful match of the four-digit verification PIN, Julia's credentials may be authenticated.
- FIG. 3C shows a screenshot of the UI 302 of the chat console 300 displaying a portion of an example interaction 330 between a customer and the agent, in accordance with another example scenario. More specifically, the UI 302 displays an ongoing interaction 330 between a customer ‘Rob’ and the virtual agent. The interaction 330 depicts the agent requesting an account number and a four-digit verification PIN to authenticate Rob. In response, Rob is depicted to have provided his account number as well as his four-digit verification PIN to the agent. In an example scenario, the four-digit verification PIN may not match previously recorded information for Rob. In such a scenario, Rob may be asked to provide the verification PIN again. Rob's subsequent provision of the four-digit verification PIN may be matched with the previously recorded information for Rob and upon unsuccessful match of the four-digit verification PIN, Rob may be provided with an authentication failure message.
- FIG. 3D shows a screenshot of the UI 302 of the chat console 300 displaying a portion of an example interaction 340 between a customer and the agent, in accordance with yet another example scenario.
- the UI 302 displays an ongoing interaction 340 between a customer ‘Joe’ and the virtual agent.
- the interaction 340 depicts the agent requesting an account number from Joe.
- Joe is depicted to have provided a response indicating that he doesn't remember his account number.
- the agent may ask Joe for other information, such as his birth date, full name, zip code etc. to identify Joe's account number and thereafter request Joe to provide his four-digit verification PIN to the agent.
- Joe may be authenticated and the interaction may be continued to enable Joe to seek desired assistance.
- interaction flow also referred to herein as conversational flow
- the apparatus 200 explained with reference to FIG. 2 is configured to represent interaction flow states in a stateless manner as will be explained hereinafter.
- stateless representation refers to a representation of interaction flow states associated with online customer interactions in a manner that precludes persistent connection between a customer and a server facilitating online interaction between a customer and the agent.
- agent refers to virtual or an automated/machine agent engaged in customer support and service related activities unless the context suggests otherwise.
- interaction flow states associated with customer online interactions is explained hereinafter with reference to one customer seeking assistance from customer support offered by an enterprise. It is understood that interaction flow states associated with interactions of several customers may similarly be represented in a stateless manner.
- a customer may wish to seek assistance from an agent associated with the enterprise.
- the customer may wish to seek an online interaction, such as a chat interaction with the agent.
- the customer may either click on a customer support widget displayed on the enterprise website or seek chat interaction through a chat client loaded in the customer's electronic device.
- a UI of a chat console may accordingly be displayed on the customer's electronic device as exemplarily depicted in FIG. 4 .
- FIG. 4 a screenshot of a UI 402 of a chat console 400 displaying an ongoing interaction between a customer and a virtual agent is shown, in accordance with another example scenario.
- the chat console 400 is similar in all aspects to the chat console 300 explained with reference to FIGS. 3A to 3D and is not explained again herein.
- the UI 402 depicts an ongoing chat interaction 404 between a virtual agent (exemplarily depicted in FIG. 4 as ‘Agent’) and a customer (exemplarily depicted in FIG. 4 as ‘Customer’).
- the chat interaction 404 depicts the agent to have welcomed the customer and requested him to explain his requirement using the following text ‘Welcome to Air XYZ. How may we help you today?’
- the customer is depicted to have provided a textual input 406 including the text ‘I want to postpone my flight travel from January 26 to January 29’.
- the chat client associated with the web server hosting the web pages of the website or the chat client installed on the customer's electronic device may be controlled using Rest application programming interface (APIs) by the apparatus 200 to push communication from the virtual agent to the customer and receive textual input, such as the textual input 406 , from the customer.
- APIs Rest application programming interface
- the textual input received from the customer is provisioned by the chat client in a prescribed format to the I/O module 206 of the apparatus 200 explained with reference to FIG. 2 .
- the prescribed format for provisioning customer textual inputs to the I/O module 206 of the apparatus 200 is further explained with reference to FIG. 2 .
- the processor 202 is configured to, with the content of the memory 204 , cause the apparatus 200 to effect generation of a first uniform resource locator (URL) indicative of a textual input received from a customer during an online interaction.
- a first URL may be generated which is indicative of customer textual input, such as the textual input 406 stating ‘I want to postpone my flight travel from January 26 to January 29’.
- the first URL is also configured to identify a state machine and a state within the state machine for facilitating processing of the textual input.
- a state machine may be associated with interaction flow associated with changes to booked flight reservations (such as for example, cancellations, delays, rescheduled bookings etc.).
- a state within such a state machine may be associated with rescheduling of flight itineraries. Accordingly, the apparatus 200 may be caused to effect generation of a URL, i.e. the first URL, such that the textual input along with the state machine and a state within the state machine related to the textual input are captured within the contents of the URL.
- a URL i.e. the first URL
- An example first URL that may be generated by the apparatus 200 using the interaction client, such as the chat client, identifying the state machine is depicted below:
- the first URL is configured to facilitate authentication of the customer.
- requisite API keys authenticating the customer may also be included within the first URL.
- the I/O module 206 may be configured to receive the first URL including the API keys and perform authentication of the customer. For example:
- API keys are mentioned herein for example purposes and that the customer authentication may be performed using various other known techniques, such as for example, open authentication (OAuth), OAuth 2.0, password based authentication or shared key based authentication.
- the customer may be identified from among the plurality of customers of the enterprise during the customer authentication.
- the identification of the customer may enable retrieval of customer related data stored in a customer relationship management (CRM) database in the memory 204 of the apparatus 200 .
- CRM customer relationship management
- Some non-limiting examples of the customer related data stored in the CRM database may include information, such as age/gender of the customer, browsing history of the customer, past interactions of the customer with agents, and the like.
- the first URL is further configured to identify the state machine as well as the state within the state machine.
- the different states in the interaction may correspond to static representation of the states, such as for example states in a Finite State Machine (FSM).
- FSM Finite State Machine
- the identified state machine is a Markov-model based state machine, where what happens next only depends on the current state, not on how the current state was reached at or other stateful data.
- the semantics of the states of the state machine are represented using state chart XML or SCXML.
- the processor 202 is configured to include a state chart extensible markup language (SCXML) interpreter capable of invoking an appropriate state machine from among a plurality of state machines stored in the memory 204 using the first URL to facilitate prediction of the intention of the customer.
- SCXML state chart extensible markup language
- the SCXML interpreter in addition to including the ability to load a state machine via URL, may include the following functionality: (a) the ability to identify state in the state machine to interact with, which differs from conventional SCXML implementations, where the interaction is always started with an initial state which is hardcoded in the state machine; (3) the ability for the state machine when restarted this way to re-initialize a data model, thereby enabling the data model to contain constant strings; (4) include an event to fire into the state machine when the state machine is re-initialized, which allows the state machine author to interact with this process and set an appropriate data values; (5) include a scheme to enable the SCXML application author to signal time to return the result of the state machine to the requester; and (6) include code to automatically report the state machine URL and the state name in question.
- the SCXML interpreter is configured to select a natural language processing (NLP) model from among a plurality of NLP models stored in the memory 204 based on the identified state within the state machine in the first URL to facilitate prediction of an intention of the customer. More specifically, the textual input included in the first URL and the identified state within the state machine may be utilized by the SCXML interpreter to determine which NLP model to use for natural language processing of the textual input.
- NLP natural language processing
- textual input within the first URL may be processed using the selected NLP model by the processor 202 to understand the intention behind the textual input.
- the NLP model may be configured to perform natural language processing of the textual input.
- the NLP model may be configured to extract feature vectors by parsing and analyzing the free-form textual input.
- the extraction of feature vectors (also referred to herein as ‘features’) is performed using statistical techniques.
- the processor 202 is configured to extract one or more features from the textual input and associate intents with the extracted features.
- An example of a feature is:
- the processor 202 may be caused to compute a probability score for each intention.
- the processor 202 is configured to identify the customer during customer authentication and retrieve information related to the customer, such as for example, information like age/gender of the customer, browsing history, past interaction information etc. from the CRM database.
- the retrieved information may be used to compute a probability score for each intention.
- the processor 202 is configured to use machine-learning algorithms, such as Hidden Markov's Model (HMM) or Conditional Random Fields (CRF), to compute the probability of intention based on the customer historical behavior.
- HMM Hidden Markov's Model
- CRF Conditional Random Fields
- the processor 202 is configured to rank the intents in the order of the probability scores and thereafter compare the probability score of the maximum scoring intent with a pre-defined threshold value (for example, a ‘0.9’ value indicative of a 90% probability of occurrence of an event).
- a pre-defined threshold value for example, a ‘0.9’ value indicative of a 90% probability of occurrence of an event.
- the various NLP models may be structured as API services, such that a provisioning of textual input to a NLP model may return a list of best-matched intentions with confidence scores for the given textual input.
- the processor is configured to learn the customer intention behind provisioning the textual input based on the list on best-matched intentions and decide on one or more next actions and the next interaction flow state. For example, based on the natural language processing of the textual input 406 stating ‘I want to postpone my flight travel from January 26 to January 29’, the processor 202 may learn that the customer intends to postpone his upcoming flight journey. Accordingly, the processor 202 may determine one or more next actions, based on information stored related to the corresponding state in the state machine.
- a next action may involve rescheduling the flight journey to the requested date based on availability and previously recorded customer preferences (such as morning travel, seat preference etc.).
- a next action determined by the processor 202 may involve proposing another date if rescheduling the flight as per customer's requirement is not possible.
- a next action determined by the processor 202 may involve suggestions for airport transfers and hotel stay in addition to rescheduling of the upcoming flight journey as per the customer's requirement.
- the processor 202 is further configured to determine a next interaction state for the online interaction based on the current state within the state machine and predicted intention of the customer. For example, a next interaction state may relate to confirmation of the traveler details for the revised itinerary and generating of e-tickets for the customer. In an embodiment, the processor 202 is configured to provision the determined one or more next actions and the next interaction state to the I/O module 206 .
- the processor 202 is configured to, with the content of the memory 204 , cause the apparatus 200 to generate a second URL including the response to the textual input. More specifically, the I/O module 206 may generate the second URL including the response to the textual input. In at least one example embodiment, the I/O module 206 may be configured to determine the response to the textual input based on the next action(s). For example, based on the determined one or more next actions for the textual input 406 stating ‘I want to postpone my flight travel from January 26 to January 29’, the apparatus 200 may be caused to determine an appropriate response. In one illustrative example, an appropriate response may be to provide a confirmation of the request and suggest a revised itinerary to the customer. In another illustrative example, the response may be to transfer the interaction to a live agent (i.e. a human agent) to assist the customer in rescheduling the flight journey.
- a live agent i.e. a human agent
- the I/O module 206 is caused to determine if the next action(s) comprises an instruction to fetch an answer from a database. If the response includes an instruction to fetch answers from the database 212 , then the I/O module 206 is configured to send a request to the memory 204 to fetch answers in text format (or other similar media types) that are available for a given customer intent.
- the database 212 includes a repository of key-value pairs of intentions to answers for textual inputs related to a plurality of possible intentions of the customer. More specifically, for a given customer intention, the database 212 includes an answer best suited to address the intention.
- the apparatus 200 is caused to compare the intention predicted for the customer with the plurality of possible intentions for a match and retrieve the answer corresponding to the matching intention from the database 212 .
- the I/O module 206 may further be configured to embed the retrieved answer within the second URL as the response to the textual input.
- an example response included in the second URL may be ‘Ok, our agent will contact you with possible flight options on the requested date within next four hours’.
- the apparatus 200 may be unable to adequately address a customer's inquiry. Such instances may occur on account of variety of reasons, such as for example, the database 212 may not cover the topic being addressed in the customer's inquiry, the customer's input isn't relevant to the application on the enterprise website or if the customer's inquiry isn't complete or very vague to decipher context from the input.
- the next action(s) may not include an instruction to fetch an answer from the database 212 .
- the I/O module 206 may be configured to include a standard response within the second URL.
- the response may be indicative of a transfer of the online interaction from the virtual agent to a live agent.
- the response included within the second URL may be ‘Ok, Agent John will now assist you with requested rescheduling of your flight itinerary’.
- the response provided to the interaction client 208 may suggest directing the conversation to a live (or human) agent.
- the I/O module 206 may include parameters, such as for example, API Key, next interaction state, logging correlators and the like in the response.
- the second URL is further configured to identify the next interaction state for the online interaction.
- the processor 202 may determine the next interaction state for the online interaction and provision such information to the I/O module 206 .
- the I/O module 206 may further be configured to include such information in the second URL.
- the identification of the next interaction state within the second URL may be structured as a reference to a generic Markov style state machine and a specific state inside that state machine.
- An example second URL that may be generated by the I/O module 206 of the apparatus 200 , identifying the state machine is depicted below:
- the processor 202 is configured to, with the content of the memory 204 , cause the apparatus 200 to effect a provisioning of the response to the customer during the online interaction.
- the I/O module 206 is configured to provision the generated second URL including the response to the interaction client 208 .
- the apparatus 200 may thereafter effect a provisioning of the response to the customer during the chat interaction using the interaction client 208 .
- the interaction client 208 may strip the response from the second URL and provision the response as textual entry to be displayed (for example, within the chat console UI) on a device associated with the customer to provide assistance to the customer.
- the apparatus 200 is caused to effect generation of a URL for each subsequent textual input received from the customer during the chat interaction.
- the URL corresponding to the each subsequent textual input is configured to identify a respective state machine for facilitating processing of corresponding textual input.
- the first URL and the URL for the each subsequent textual input is configured to identify a respective Markov-model based state machine.
- URLs corresponding to at least one pair of successive textual inputs during the chat interaction are configured to identify a same state machine.
- successive textual inputs provided by the customer may be directed to the same state machine (i.e. a Markov state machine capable of processing textual inputs related to rescheduling of booked flight journeys) disposed in the memory 204 of the apparatus 200 .
- URLs corresponding to at least one pair of successive textual inputs during the chat interaction are configured to identify different state machines for facilitating transitioning of the online interaction from one business context to another business context.
- a customer may wish to pay a credit card bill and also redeem accrued reward points.
- subsequent textual inputs related to the redeeming accrued reward points may be directed to a different state machine (i.e. a different Markov-model based state machine capable of processing textual inputs related to consumer benefits tied to usage of banking cards).
- a time duration between successive textual inputs may be long drawn out and extend over several hours or days.
- some online interactions such as short message service (SMS) interactions or email interactions may involve a gap of several hours or even days.
- SMS short message service
- the URLs may be used to invoke state machines as and when textual inputs are received.
- the interaction flow may be deemed as stateless as no persistent or stateful connection to a server is required.
- An interaction session on a state machine of an enterprise server can stop and disappear at the point it returns a response to the interaction client 208 .
- the interaction client 208 then can access any state machine (or instance of state machine on a different server) with the next request and jump into the state machine at that point.
- An example process flow for facilitating stateless representation of interaction flow states associated with online customer interactions is further explained with reference to FIG. 5 .
- FIG. 5 shows a schematic diagram for illustrating an example process flow 500 for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention.
- the interaction client 208 is configured to provision a UI, for example a UI associated with a chat console, to receive customer's textual input.
- the customer may provide textual input, such as for example “How to improve my credit score?”
- the interaction client 208 may be caused by the apparatus 200 to effect generation of a first URL indicative of the textual input.
- the first URL may be further be configured to identify a state machine and a state within the state machine for facilitating processing of the textual input.
- a first URL such as:
- the interaction client 208 is configured to send the first URL to the I/O module 206 .
- the I/O module 206 is configured to check for correct API keys and perform authentication of the customer. Upon successful authentication, the I/O module 206 is configured to provision the information related to the textual input as well as the identified state machine and the state within the state machine to the processor 202 at 504 .
- the processor includes a SCXML interpreter, such as an SCXML interpreter 550 , which is configured to invoke the state machine identified in the first URL.
- the SCXML interpreter 550 may utilize the textual input and the identified state machine to determine an appropriate NLP model for natural language processing of the textual input.
- the SCXML interpreter 550 is configured to provide the NLP model (retrieved from the memory 204 ) along with the textual input to a NLP module 560 (for example, a software program loaded from the memory 204 into the processor 202 ) to perform natural language processing of the textual input to predict the intention of the customer.
- a NLP module 560 for example, a software program loaded from the memory 204 into the processor 202
- the NLP module 560 is configured to predict the intention of the customer, i.e. to improve her credit score.
- the NLP module 560 is also configured to determine a confidence score for the predicted intention (for example, a confidence score of 90 may be indicative of the fact that the predicted customer's intention is associated with a 90% level of certainty).
- the NLP module 560 is configured to provide the predicted intention along with the associated confidence score to the SCXML interpreter 550 .
- the SCXML interpreter 550 within the processor 202 may be configured to determine one or more next actions and the next interaction state based on the predicted intention received from the NLP module 560 .
- the processor 202 is further configured to provide the determined one or more next actions and the next interaction state to the I/O module 206 at 510 .
- the SCXML interpreter 550 may determine that the customer should be advised to keep her outstanding bill amount low by making timely payments.
- the next state within the state machine and the action to be performed (for example, the advice to keep her outstanding bill amount low by making timely payments) may be provided to the I/O module 206 .
- the I/O module 206 is configured to receive the information provided by the processor 202 and further check if one or more next action(s) include instructions to fetch answers from the database 212 . If a next action includes an instruction to fetch an answer from the database 212 , then the I/O module 206 is configured to send a request, at 512 , to fetch the answer from the database 212 . For example, the exact textual answer to be provided to the customer for the identified intention of improving credit score may be stored in the database 212 as an intent-answer pair.
- the database 212 may provide the selected answer as an object to the I/O module 206 at 514 .
- the I/O module 206 is configured to generate a second URL and embed the answer object as the response within a second URL.
- the second URL is also configured to include information related to the next interaction state (for example, identify a generic Markov style state machine and a specific state inside that state machine.
- An example, second URL generated by the I/O module 206 may be:
- the I/O module 206 is configured to provision the second URL to the interaction client 208 at 516 .
- the interaction client 208 may strip the response to be provided to the customer from the second URL and provide the response to the customer.
- the interaction client 208 may configure further textual inputs of the customer in form of URLs identifying generic Markov style state machine and specific states inside that state machine. The interaction client 208 may then access any state machine with the next request and jump into the state machine at that point. Accordingly, as explained above, the customer-agent conversations are handled using Markov state machine and Restful APIs, which utilize hyperlinks to represent interaction flow in a manner that doesn't require stateful sessions or persistent connections. A method for facilitating stateless representation of interaction flow states associated with online customer interactions is explained with reference to FIG. 6 .
- FIG. 6 is a flow diagram of an example method 600 for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention.
- the method 600 depicted in the flow diagram may be executed by, for example, the apparatus 200 explained with reference to FIGS. 2 to 5 .
- Operations of the flowchart, and combinations of operation in the flowchart may be implemented by, for example, hardware, firmware, a processor, circuitry and/or a different device associated with the execution of software that includes one or more computer program instructions.
- the operations of the method 600 are described herein with help of the apparatus 200 . It is noted that, the operations of the method 600 can be described and/or practiced by using a system other than the apparatus 200 .
- the method 600 starts at operation 602 .
- a first uniform resource locator indicative of a textual input received from a customer during an online interaction.
- customers may engage in online interactions, such as chat interactions or SMS/email interactions or in some cases even fill-up online questionnaires/web forms in order to seek assistance from the agents of the enterprise, who are entrusted with providing sales and service support to the customers.
- the textual input may be provided on a UI, such as the UI 302 or the UI 402 , explained with reference to FIGS. 3A to 3D or FIG. 4 , respectively.
- the first URL may be generated which is indicative of the textual input.
- the first URL is further configured to identify a state machine and a state within the state machine for facilitating processing of the textual input as explained with reference to FIG. 1 .
- an intention of the customer is predicted from the first URL using the state machine and the state within the state machine. More specifically, information related to the textual input and the identified state machine along with the state within the state machine included in the first URL may be utilized to select an appropriate NLP model for processing of the textual input. The NLP model may then be utilized to perform natural language processing of the textual input so as to interpret the textual input and accordingly predict an intention of the customer based on the interpreted textual input.
- At operation 606 of the method 600 at least one next action is determined based on the predicted intention of the customer.
- the predicted intention of the customer may be utilized by the state machine to determine the current state of the interaction and accordingly determine one or more next actions for the customer.
- a next action may be to display a final answer to a customer's query, or alternatively, a next action may be to display a clarifying question or prompt the customer to move the interaction along to disambiguate the previous response.
- a next action may be to suggest changing the interaction channel of the interaction (for example, transitioning the interaction to a human assisted chat) or it may involve providing a response to redirect the customer to a different URL or a different web site.
- the next action may be to just acknowledging the input (like “Ok” or “Your welcome”) or it may involve stating something like ‘You are outside of business hours so we can't redirect you to a human agent’ and the like.
- a second URL including a response to the textual input is generated. More specifically, based on the one or more next actions, an appropriate response may be determined. A second URL including the response may be generated. Moreover, the second URL is configured to identify a next interaction state for the online interaction.
- the response may include an instruction to fetch an answer from a database and embedding the answer as the response in the second URL. The fetching of the answer from the database and the generation of the second URL may be performed as explained with reference to FIGS. 2 and 5 and is not explained again herein.
- a provisioning of the response to the customer is effected during the online interaction. More specifically, the response may be displayed within the UI as a reply to the textual input. Another method for facilitating stateless representation of interaction flow states associated with customer interactions is explained with reference to FIG. 7 .
- FIG. 7 is a flow diagram of an example method 700 for facilitating stateless representation of interaction flow states associated with customer interactions, in accordance with an embodiment of the invention.
- the method 700 depicted in the flow diagram may be executed by, for example, the apparatus 200 explained with reference to FIGS. 2 to 5 .
- Operations of the flowchart, and combinations of operation in the flowchart may be implemented by, for example, hardware, firmware, a processor, circuitry and/or a different device associated with the execution of software that includes one or more computer program instructions.
- the method 700 starts at operation 702 .
- a user interface is displayed by a chat client on a device associated with a customer for facilitating a chat interaction between the customer and an agent.
- a UI such as the UI 302 or the UI 402 , explained with reference to FIGS. 3A to 3D or FIG. 4 , respectively may be displayed to the chat client on the device associated with the customer.
- the device associated with the customer may include a personal computer, a laptop, a Smartphone, a mobile phone, a tablet computer, a wearable device, a personal digital assistant and the like.
- a textual input provided by the customer within the UI is received by the chat client.
- a first uniform resource locator (URL) indicative of the textual input is generated by the chat client.
- the first URL is configured to identify a state machine and a state within the state machine related to the textual input.
- the generation of the first URL may be performed as explained with reference to operation 602 of the method 600 in FIG. 6 and is not explained herein.
- the first URL is provisioned to an apparatus, such as the apparatus 200 , comprising the state machine by the chat client for processing of the textual input. Further, the processing of textual input to generate a reply to the textual input may be performed as explained with reference to FIGS. 2 to 5 and is not explained herein.
- a customer may be directed to any state machine or any server at any point during an on-going interaction without having to maintain a persistent connection with the customer.
- a uniform resource locator URL
- a uniform resource locator may be directed to a different state machine in order to transition a customer session from one state machine (for example, a state machine that contains the conversation flow for a particular business domain) to a different state machine (for example, a state machine that contains the conversation flow for a different domain of that business), thereby supporting topic changes in a clean and efficient manner.
- the customer may continue the interaction even after coming back after hours or days, since there is no persistent connection required and no server side state is needed for supporting the interaction.
- techniques disclosed herein facilitate long running conversations between the virtual agents and the customers.
- a “computer-readable medium” may be any media or means that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, as described and depicted in FIGS. 1 and/or 2 .
- a computer-readable medium may comprise a computer-readable storage medium that may be any media or means that can contain or store the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer.
- CMOS complementary metal oxide semiconductor
- ASIC application specific integrated circuit
- DSP Digital Signal Processor
- the apparatus 200 , the processor 202 , the memory 204 and the I/O module 206 may be enabled using software and/or using transistors, logic gates, and electrical circuits (for example, integrated circuit circuitry such as ASIC circuitry).
- Various embodiments of the present technology may include one or more computer programs stored or otherwise embodied on a computer-readable medium, wherein the computer programs are configured to cause a processor or computer to perform one or more operations (for example, operations explained herein with reference to FIGS. 6 and 7 ).
- a computer-readable medium storing, embodying, or encoded with a computer program, or similar language may be embodied as a tangible data storage device storing one or more software programs that are configured to cause a processor or computer to perform one or more operations.
- Non-transitory computer readable media include any type of tangible storage media. Examples of non-transitory computer readable media include magnetic storage media (such as floppy disks, magnetic tapes, hard disk drives, etc.), optical magnetic storage media (e.g.
- a tangible data storage device may be embodied as one or more volatile memory devices, one or more non-volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices.
- the computer programs may be provided to a computer using any type of transitory computer readable media.
- Examples of transitory computer readable media include electric signals, optical signals, and electromagnetic waves.
- Transitory computer readable media can provide the program to a computer via a wired communication line (e.g. electric wires, and optical fibers) or a wireless communication line.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Finance (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- This application claims priority to U.S. provisional patent application Ser. No. 62/139,939, filed Mar. 30, 2015, which is incorporated herein in its entirety by this reference thereto.
- The invention generally relates to customer interaction management and more particularly to a method and apparatus for facilitating stateless representation of interaction flow states associated with online customer interactions.
- Enterprises, nowadays, provide dedicated customer sales and service support to existing/potential customers (hereinafter referred to as ‘customers’) in order to improve chances of sale and/or improve customer interaction experience.
- The provisioning of sales and service support to the customers may be facilitated through various resources, such as for example applications, which are configured to maintain interaction flow information associated with customer interactions in order to provide seamless support to the customers.
- Typically, conventional applications use either a state machine or explicit rules or conditions for representing interaction flow information associated with customer interactions.
- In case of usage of state machines for representing interaction flow information, a persistent connection between a client (for example, a customer) and a server (associated with the enterprise) has to be maintained for every interaction session in order to track interaction flow information and provide seamless support to the customer. Persistent connections are also referred to herein as stateful connections.
- It is often difficult to maintain and provide stateful connections or to reconnect the customer to the same server if there occurs a turn in the connection or if the connection is disengaged. Restarting the interaction with the customer may ruin an interaction experience for the customer, as the customer may have to first wait in a queue to get connected to a server and thereafter repeat his or her concern to a customer support representative. In many example scenarios, the customer may exit the interaction, perhaps never to return.
- Accordingly, there is a need to provide assistance to the customer in an efficient and seamless manner. Further, there is a need to maintain interaction flow information associated with online customer interactions while precluding the need to maintain persistent or stateful connections. Furthermore, there is a need to provide support for long running customer interactions, which are currently difficult to support on account of challenges in maintaining stateful connections.
- In an embodiment of the invention, a computer-implemented method for facilitating stateless representation of interaction flow states associated with online customer interactions is disclosed. The method effects generation of a first uniform resource locator (URL) indicative of a textual input received from a customer during an online interaction. The first URL is configured to identify a state machine and a state within the state machine for facilitating processing of the textual input. The method predicts an intention of the customer from the first URL using the state machine and the state within the state machine. The method determines at least one next action based on the predicted intention of the customer. The method generates a second URL including a response to the textual input. The response to the textual input is determined based on the at least one next action. The second URL is configured to identify a next interaction state for the online interaction. The method effects a provisioning of the response to the customer during the online interaction.
- In another embodiment of the invention, an apparatus for facilitating stateless representation of interaction flow states associated with online customer interactions includes at least one processor and a memory. The memory stores machine executable instructions therein, that when executed by the at least one processor, causes the apparatus to effect generation of a first uniform resource locator (URL) indicative of a textual input received from a customer during an online interaction. The first URL is configured to identify a state machine and a state within the state machine for facilitating processing of the textual input. The apparatus predicts an intention of the customer from the first URL using the state machine and the state within the state machine. The apparatus determines at least one next action based on the predicted intention of the customer. The apparatus generates a second URL including a response to the textual input. The response to the textual input is determined based on the at least one next action. The second URL is configured to identify a next interaction state for the online interaction. The apparatus effects a provisioning of the response to the customer during the online interaction.
- In another embodiment of the invention, a computer-implemented method for facilitating stateless representation of interaction flow states associated with online customer interactions is disclosed. The method displays, by a chat client, a user interface (UI) on a device associated with a customer for facilitating a chat interaction between the customer and an agent. The method receives, by the chat client, a textual input provided by the customer within the UI. The method generates, by the chat client, a first uniform resource locator (URL) indicative of the textual input. The first URL is configured to identify a state machine and a state within the state machine related to the textual input. The method provisions, by the chat client, the first URL to an apparatus including the state machine for processing of the textual input.
-
FIG. 1 is a schematic diagram showing an online visitor visiting a website associated with an enterprise, in accordance with an example scenario; -
FIG. 2 is a block diagram of an apparatus configured to facilitate stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention; -
FIGS. 3A-3D show screenshots of a UI of a chat console displaying portions of example interactions between customers and an agent, in accordance with an example scenario; -
FIG. 4 shows a screenshot of a UI of a chat console displaying an ongoing interaction between a customer and a virtual agent, in accordance with another example scenario; -
FIG. 5 shows a schematic diagram for illustrating an example process flow for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention; -
FIG. 6 is a flow diagram of an example method for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention; and -
FIG. 7 is a flow diagram of an example method for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with another embodiment of the invention. - The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. However, the same or equivalent functions and sequences may be accomplished by different examples.
-
FIG. 1 is a schematic diagram 100 showing an online visitor 102 (hereinafter referred to as customer 102) visiting awebsite 104 associated with an enterprise, in accordance with an example scenario. The term ‘enterprise’ as used herein may refer to a corporation, an institution, a small/medium sized company or even a brick and mortar entity. For example, the enterprise may be a banking enterprise, an educational institution, a financial trading enterprise, an aviation company, a retail outlet or any such public or private sector enterprise. It is understood that many users may use products, services and/or information offered by the enterprise. The existing and/or potential users of the enterprise offerings are referred to herein as customers of the enterprise. It is also noted that the customers of the enterprise may not be limited to individuals. Indeed, in many example scenarios, groups of individuals or other enterprise entities may also be customers of the enterprise. It is understood that the enterprise may be associated with many such customers, such as thecustomer 102. - In
FIG. 1 , the schematic diagram 100 depicts thecustomer 102 accessing thewebsite 104 using aweb browser application 106 installed on the customer'sdesktop computer 108. In an example scenario, thewebsite 104 may be embodied as an e-commerce portal and configured to offer enterprise products/services to existing/potential customers. However, thewebsite 104 may not be limited to an e-commerce portal and some other non-limiting examples of thewebsite 104 may include a financial/banking portal, a passenger travel website, a social networking website, news aggregator portal, a gaming or sports content related website, an educational portal and the like. Moreover, thewebsite 104 may be hosted on a remote web server and theweb browser application 106 may be configured to retrieve one or more web pages associated with thewebsite 104 over anetwork 110. Examples of thenetwork 110 may include wired networks, wireless networks or a combination thereof. Examples of wired networks may include Ethernet, local area networks (LANs), fiber-optic cable networks and the like. Examples of wireless network may include cellular networks like GSM/3G/4G/CDMA networks, wireless LANs, blue-tooth or Zigbee networks and the like. Examples of combination of wired and wireless networks may include the Internet. - In an example scenario, the enterprise may provide dedicated customer sales and service support to customers in order to improve chances of sale and/or improve customer interaction experience. The provisioning of sales and service support to the customers may be facilitated through various resources, such as for example applications, which are configured to maintain interaction flow information associated with customer interactions in order to provide seamless support to the customers.
- Conventional mechanisms require persistent connections (also referred to herein as ‘stateful connections’) in order to maintain such interaction flow information. However, stateful connections are often difficult to maintain. This is further illustrated with reference to the following example. In an example scenario, the
customer 102 may be interested in purchasing a product displayed on thewebsite 104. Further, thecustomer 102 may wish to seek assistance in making the said purchase. For example, thecustomer 102 may need assistance in performing an online transaction for purchasing the product. In an example scenario, a clickable widget may be provisioned on thewebsite 104, which may display a message, such as for example, ‘How may I help you today?’ or ‘Speak with our representative’. Upon customer access of the widget (such as for example, by clicking on the widget), thecustomer 102 may be directed to a UI, such as for example, a chat client interface, for facilitating interaction of thecustomer 102 with a virtual agent, such as avirtual agent 112 depicted inFIG. 1 . It is understood that an electronic device (or similar intelligent machine) may embody thevirtual agent 112 as depicted inFIG. 1 . In an example scenario, thecustomer 102 may input a message ‘I need help in making a purchase with my credit card’ in the chat client interface. In an example scenario, thevirtual agent 112 may be configured to decipher the customer's query and serve a best-matched answer to thecustomer 102 from a database associated with the enterprise to assist thecustomer 102 in making the purchase. - Typically, in order to assist a virtual agent, such as the
virtual agent 112, to serve the best-matched answer to thecustomer 102, an interaction flow associated with a customer interaction is represented either by using a state machine or by using rules or conditions, which are explicitly coded for such purposes. In case of usage of state machines for representing interaction flow, a stateful connection between thecustomer 102 and a server (associated with the enterprise) has to be maintained for every interaction session. Maintaining a persistent stateful connection may be useful in many cases. One such example case follows: In some cases, thevirtual agent 112 may be incapable of addressing customer's concern adequately. For example, if thecustomer 102 has submitted a query such as ‘I need help in making a purchase with my card’, and thevirtual agent 112 is not able to process what ‘card’ thecustomer 102 is referring to in the query, then in such cases, thecustomer 102 may need to be directed to a live agent (i.e. a human agent) in order to provide appropriate assistance to thecustomer 102. In such cases, thevirtual agent 112 has to hand-off the interaction to a correct chat queue (or the server) and also pass context associated with the interaction between thecustomer 102 and thevirtual agent 112 until the hand-off occurred, so that the live agent doesn't start the interaction from the very beginning. Maintaining a stateful session or a persistent connection enables smooth hand-off of thecustomer 102 from the virtual agent domain to the live agent. However, it is often difficult to maintain such hand-offs and provide stateful connection to the server or reconnect thecustomer 102 to the same server if there occurs a turn in the connection or if the connection is disengaged. - Also, in some cases, it is not feasible to have long running conversations with the customers on a stateful connection as it requires a connection to a single server to be maintained over a long period of time. Maintaining a connection to a single server for a long period of time may operationally be a challenge, as typically servers need to be restarted, upgraded, taken out of service or in some cases, the servers may also experience crash events. Furthermore, standard http/https connections are request/response based connections and, as such, are not structured to be maintained for a long period of time. In many cases, a customer involved in the interaction may have spotty connectivity (for example, on account of use of Wi-Fi or mobile internet connection, which may be interrupted at regular intervals). As a result, providing support for long running conversations is often a challenge on account of maintaining stateful connections for an elongated period of time.
- Various embodiments of the present technology disclose techniques that are capable of overcoming these and other obstacles and providing additional benefits. More specifically, a method and apparatus disclosed herein suggest techniques for representing customer textual inputs and interaction flow information associated with customer interactions using uniform resource locators (URLs). The URLs are capable of invoking appropriate state machines and further identifying appropriate states within the state machines for enabling processing of customer textual inputs. Maintaining interaction flow information in such a manner precludes the need to maintain persistent or stateful connections as the URLs can be used to invoke the state machines even if there is a turn in connection or the connection is disengaged. Moreover, such URL representation of interaction flow information also lends itself to support long running interactions, such as for example email or short message service (SMS) related conversations between customers and agents, which is currently not feasible using conventional techniques requiring persistent or stateful connections. An example apparatus for facilitating representation of interaction flow states in a stateless manner is explained with reference to
FIG. 2 . -
FIG. 2 is a block diagram of anapparatus 200 configured to facilitate stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention. The term ‘customers’ as used herein may refer to both existing and potential users of products, services or information offered by an enterprise. Moreover, the term ‘customers’ of the enterprise may include individuals, groups of individuals, other organizational entities etc. As explained with reference toFIG. 1 , the term ‘enterprise’ may refer to a corporation, an institution, a small/medium sized company or even a brick and mortar entity. For example, the enterprise may be a banking enterprise, an educational institution, a financial trading enterprise, an aviation company, a consumer goods enterprise or any such public or private sector enterprise. - The
apparatus 200 includes at least one processor, such as aprocessor 202 and amemory 204. It is noted that although theapparatus 200 is depicted to include only one processor, theapparatus 200 may include a greater number of processors therein. In an embodiment, thememory 204 is capable of storing machine executable instructions. Further, theprocessor 202 is capable of executing the stored machine executable instructions. In an embodiment, theprocessor 202 may be embodied as a multi-core processor, a single core processor, or a combination of one or more multi-core processors and one or more single core processors. For example, theprocessor 202 may be embodied as one or more of various processing devices, such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing circuitry with or without an accompanying DSP, or various other processing devices including integrated circuits such as, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. In an embodiment, theprocessor 202 may be configured to execute hard-coded functionality. In an embodiment, theprocessor 202 is embodied as an executor of software instructions, wherein the instructions may specifically configure theprocessor 202 to perform the algorithms and/or operations described herein when the instructions are executed. - The
memory 204 may be embodied as one or more volatile memory devices, one or more non-volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices. For example, thememory 204 may be embodied as magnetic storage devices (such as hard disk drives, floppy disks, magnetic tapes, etc.), optical magnetic storage devices (e.g. magneto-optical disks), CD-ROM (compact disc read only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), DVD (Digital Versatile Disc), BD (Blu-ray® Disc), and semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash ROM, RAM (random access memory), etc.). - In at least one example embodiment, the
memory 204 is configured to store a plurality of state machines capable of being invoked using uniform resource locators (URLs) as will be explained later. Thememory 204 is further configured to maintain a database, such as thedatabase 212, for storing a plurality of answers corresponding to a plurality of possible intentions of the plurality of customers of the enterprise. In at least one example embodiment, each possible customer intention and its corresponding answer are stored as an ‘intent-answer’ key value pair in thedatabase 212. In at least one example embodiment, thememory 204 is further configured to store a plurality of natural language processing (NLP) models configured to facilitate natural language processing of the textual inputs received from the plurality of customers. - The
apparatus 200 also includes an input/output module 206 (hereinafter referred to as ‘I/O module 206’) for providing an output and/or receiving an input. The I/O module 206 is configured to be in communication with theprocessor 202 and thememory 204. Examples of the I/O module 206 include, but are not limited to, an input interface and/or an output interface. Examples of the input interface may include, but are not limited to, a keyboard, a mouse, a joystick, a keypad, a touch screen, soft keys, a microphone, and the like. Examples of the output interface may include, but are not limited to, a display such as a light emitting diode display, a thin-film transistor (TFT) display, a liquid crystal display, an active-matrix organic light-emitting diode (AMOLED) display, a microphone, a speaker, a ringer, a vibrator, and the like. In an example embodiment, theprocessor 202 may include I/O circuitry configured to control at least some functions of one or more elements of the I/O module 206, such as, for example, a speaker, a microphone, a display, and/or the like. Theprocessor 202 and/or the I/O circuitry may be configured to control one or more functions of the one or more elements of the I/O module 206 through computer program instructions, for example, software and/or firmware, stored on a memory, for example, thememory 204, and/or the like, accessible to theprocessor 202. - In an embodiment, the I/
O module 206 may be configured to provide a user interface (UI) configured to enable enterprises to utilize theapparatus 200 for facilitating stateless representation of interaction flow states associated with the online customer interactions. Furthermore, the I/O module 206 may be integrated with a monitoring mechanism configured to provide the enterprises with real-time updates/alerts (for example, email notifications, SMS alerts, etc.) of changes to be made to theapparatus 200 for facilitating stateless representation of interaction flow states associated with customer interactions. - The I/
O module 206 may further be configured to effect display of various user interfaces on remote devices. The remote devices may be customer-owned or customer-associated devices. In at least one example embodiment, the I/O module 206 may be configured to be in communication with an interaction client, such as aninteraction client 208, including device application programming interfaces (APIs) capable of pushing content such as chat console UIs on customer devices for facilitating online interaction between a customer and an agent of the enterprise - In an illustrative example, the I/
O module 206 may be configured to facilitate downloading of an instance of a local application (for example, an application such as a chat client or even a voice assistant) by a customer on his or her electronic device. Such an application, now deployed in the customer's electronic device may serve as theinteraction client 208. Theinteraction client 208 may be configured to enable online interaction, such as for example, a chat interaction or SMS/email interaction, between the customer and an agent associated with the enterprise for assisting a customer with his or her requirements. - In another illustrative example, the I/
O module 206 may be configured to deploy an instance of a local application in a remote web server hosting web pages of an enterprise website. In such a scenario, the instance of the application disposed in the web server may serve as theinteraction client 208. Theinteraction client 208 may be configured to display a widget on several web pages of the enterprise website. The widget, upon being hovered over or selected by the customer, may be configured to display a UI, such as a chat window to enable chat interaction between the customer and an agent associated with the enterprise. - In at least one example embodiment, the I/
O module 206 may be configured to be in constant communication with theinteraction client 208 for facilitating substantially real-time communication between the customer and the agent. - In an embodiment, various components of the
apparatus 200, such as theprocessor 202, thememory 204 and the I/O module 206 are configured to communicate with each other via or through acentralized circuit system 210. Thecentralized circuit system 210 may be various devices configured to, among other things, provide or enable communication between the components (202-206) of theapparatus 200. In certain embodiments, thecentralized circuit system 210 may be a central printed circuit board (PCB) such as a motherboard, a main board, a system board, or a logic board. Thecentralized circuit system 210 may also, or alternatively, include other printed circuit assemblies (PCAs) or communication channel media. - It is understood that the
apparatus 200 as illustrated and hereinafter described is merely illustrative of a system that could benefit from embodiments of the invention and, therefore, should not be taken to limit the scope of the invention. It is noted that theapparatus 200 may include fewer or more components than those depicted inFIG. 2 . In an embodiment, theapparatus 200 may be implemented as a platform including a mix of existing open systems, proprietary systems and third party systems. In another embodiment, theapparatus 200 may be implemented completely as a platform including a set of software layers on top of existing hardware systems. In an embodiment, one or more components of theapparatus 200 may be deployed in a web server. In another embodiment, theapparatus 200 may be a standalone component in a remote machine connected to a communication network (such as thenetwork 110 explained with reference toFIG. 1 ) and capable of executing a set of instructions (sequential and/or otherwise) so as to facilitate stateless representation of interaction flow states associated with online customer interactions. Moreover, theapparatus 200 may be implemented as a centralized system, or, alternatively, the various components of theapparatus 200 may be deployed in a distributed manner while being operatively coupled to each other. In an embodiment, functionalities of theapparatus 200 may also be embodied as a client within devices, such as customers' devices. In another embodiment, theapparatus 200 may be a central system that is shared by or accessible to each of such devices. - In an example scenario, a customer may access an enterprise website and click on a ‘Help’ icon or an ‘Online Customer Support’ button displayed on the enterprise website to initiate an interaction with an agent. In some scenarios, a floating widget may also be displayed on each web page of the enterprise website requesting the customer to click on a widget if they wish to interact with an agent of the enterprise for desired assistance. It is understood that the customers of the enterprise may seek assistance from the enterprise for various reasons, such as for example to enquire about billing or payment, to configure a product or troubleshoot an issue related to a product, to enquire about upgrades, to enquire about shipping of a product, to register a complaint etc.
- In at least one example embodiment, an interaction between a customer and an agent may be represented using state machine involving a plurality of interaction flow states and several transitions amongst the interaction flow states. The interaction flow states associated with online customer interaction is further explained using an illustrative example in
FIGS. 3A to 3D - Referring to
FIG. 3A , a screenshot of aUI 302 of achat console 300 displaying a portion of an example interaction between a customer and an agent is shown, in accordance with an example scenario. In an illustrative scenario, thechat console 300 may be displayed in a minimized form on an enterprise website, for example, by theapparatus 200 using an interaction client, such as theinteraction client 208 explained with reference toFIG. 2 . It is understood that the customer may access the enterprise website using his or her electronic device. Some non-limiting examples of the electronic device may include a personal computer, a laptop, a Smartphone, a mobile phone, a tablet computer, a wearable device and a personal digital assistant. Thechat console 300 may be configured to assume a regular form displaying theUI 302 upon receiving a customer input, such as a click on the minimized form of thechat console 300 indicative of the customer's desire to seek assistance from an agent associated with the enterprise. It is noted thatFIG. 3A depicts a representation of thechat console 300 for illustration purposes and that thechat console 300 may not be limited to the illustration depicted inFIG. 3A . Indeed, many example text-based interaction platforms, such as instant messengers, relay chats, etc. may be used for facilitating chat interaction between the customer and the agent. - The
chat console 300 is depicted to include achat icon 304 indicative of an ongoing chat, anend chat option 306 capable of terminating the chat interaction and atext entry section 308 capable of receiving textual input from the customer. Thetext entry section 308 is further associated with asend button 312 indicative of customer confirmation of completion of text entry into thetext entry section 308. In an example embodiment, thechat console 300 further displays abanner section 314, which may be configured to display a name and/or photo of an agent along with identifiers such as enterprise logo and the like. - The
UI 302 is depicted to display theongoing interaction 310 between a customer (exemplarily depicted to be ‘John’) and a virtual customer service representative (exemplarily depicted to be ‘Agent’). Theinteraction 310 depicts the agent requesting an account number and a four-digit verification personal identification number (PIN) to authenticate John. In response, John is depicted to have provided his account number as well as his four-digit verification PIN to the agent. In an example scenario, the account number and the four-digit verification PIN match previously recorded information for John. John's credentials may then be authenticated and the interaction may be continued to enable John to seek desired assistance. -
FIG. 3A depicts a scenario whereby a customer is authenticated at the first attempt itself. However, in some example scenarios, the customer authentication may involve several attempts. For example, the four-digit verification PIN provided by a customer may not match with his/her previously recorded account/PIN information and as such the authentication of customer's credentials may result in a failure. Such a scenario is depicted inFIG. 3B . More specifically,FIG. 3B shows a screenshot of theUI 302 of thechat console 300 displaying a portion of anexample interaction 320 between a customer and the agent is shown, in accordance with another example scenario. More specifically, theUI 302 displays anongoing interaction 320 between a customer ‘Julia’ and the virtual agent. Theinteraction 320 depicts the agent requesting an account number and a four-digit verification PIN to authenticate Julia. In response, Julia is depicted to have provided her account number as well as her four-digit verification PIN to the agent. In an example scenario, the four-digit verification PIN may not match previously recorded information for Julia. In such a scenario, Julia may be asked to provide the verification PIN again. Julia's subsequent provision of the four-digit verification PIN may be matched with the previously recorded information for Julia and upon successful match of the four-digit verification PIN, Julia's credentials may be authenticated. -
FIG. 3C shows a screenshot of theUI 302 of thechat console 300 displaying a portion of anexample interaction 330 between a customer and the agent, in accordance with another example scenario. More specifically, theUI 302 displays anongoing interaction 330 between a customer ‘Rob’ and the virtual agent. Theinteraction 330 depicts the agent requesting an account number and a four-digit verification PIN to authenticate Rob. In response, Rob is depicted to have provided his account number as well as his four-digit verification PIN to the agent. In an example scenario, the four-digit verification PIN may not match previously recorded information for Rob. In such a scenario, Rob may be asked to provide the verification PIN again. Rob's subsequent provision of the four-digit verification PIN may be matched with the previously recorded information for Rob and upon unsuccessful match of the four-digit verification PIN, Rob may be provided with an authentication failure message. -
FIG. 3D shows a screenshot of theUI 302 of thechat console 300 displaying a portion of anexample interaction 340 between a customer and the agent, in accordance with yet another example scenario. More specifically, theUI 302 displays anongoing interaction 340 between a customer ‘Joe’ and the virtual agent. Theinteraction 340 depicts the agent requesting an account number from Joe. In response, Joe is depicted to have provided a response indicating that he doesn't remember his account number. In such a scenario, the agent may ask Joe for other information, such as his birth date, full name, zip code etc. to identify Joe's account number and thereafter request Joe to provide his four-digit verification PIN to the agent. Upon successful match of the answers with Joe's previously recorded information, Joe may be authenticated and the interaction may be continued to enable Joe to seek desired assistance. - As can be seen from
interactions FIGS. 3A, 3B, 3C and 3D , respectively, a simple interaction between a customer and an agent, where a customer is asked to provide his account number and four-digit verification PIN by an agent may assume various forms or states. In at least one example embodiment, interaction flow (also referred to herein as conversational flow) associated with an interaction between a customers and an agent is represented using a state machine with a plurality of nodes configuring the various states within the state machine. In at least one example embodiment, theapparatus 200 explained with reference toFIG. 2 is configured to represent interaction flow states in a stateless manner as will be explained hereinafter. The term ‘stateless representation’ as used herein refers to a representation of interaction flow states associated with online customer interactions in a manner that precludes persistent connection between a customer and a server facilitating online interaction between a customer and the agent. Moreover, the term ‘agent’ as used hereinafter refers to virtual or an automated/machine agent engaged in customer support and service related activities unless the context suggests otherwise. - The stateless representation of interaction flow states associated with customer online interactions is explained hereinafter with reference to one customer seeking assistance from customer support offered by an enterprise. It is understood that interaction flow states associated with interactions of several customers may similarly be represented in a stateless manner.
- In an illustrative example, a customer may wish to seek assistance from an agent associated with the enterprise. In an example scenario, the customer may wish to seek an online interaction, such as a chat interaction with the agent. Accordingly, the customer may either click on a customer support widget displayed on the enterprise website or seek chat interaction through a chat client loaded in the customer's electronic device. A UI of a chat console may accordingly be displayed on the customer's electronic device as exemplarily depicted in
FIG. 4 . - Referring now to
FIG. 4 , a screenshot of aUI 402 of achat console 400 displaying an ongoing interaction between a customer and a virtual agent is shown, in accordance with another example scenario. Thechat console 400 is similar in all aspects to thechat console 300 explained with reference toFIGS. 3A to 3D and is not explained again herein. TheUI 402 depicts anongoing chat interaction 404 between a virtual agent (exemplarily depicted inFIG. 4 as ‘Agent’) and a customer (exemplarily depicted inFIG. 4 as ‘Customer’). Thechat interaction 404 depicts the agent to have welcomed the customer and requested him to explain his requirement using the following text ‘Welcome to Air XYZ. How may we help you today?’ The customer is depicted to have provided atextual input 406 including the text ‘I want to postpone my flight travel from January 26 to January 29’. - In at least one example embodiment, the chat client associated with the web server hosting the web pages of the website or the chat client installed on the customer's electronic device may be controlled using Rest application programming interface (APIs) by the
apparatus 200 to push communication from the virtual agent to the customer and receive textual input, such as thetextual input 406, from the customer. Moreover, the textual input received from the customer is provisioned by the chat client in a prescribed format to the I/O module 206 of theapparatus 200 explained with reference toFIG. 2 . The prescribed format for provisioning customer textual inputs to the I/O module 206 of theapparatus 200 is further explained with reference toFIG. 2 . - Referring back to
FIG. 2 , in at least one example embodiment, theprocessor 202 is configured to, with the content of thememory 204, cause theapparatus 200 to effect generation of a first uniform resource locator (URL) indicative of a textual input received from a customer during an online interaction. For example, a first URL may be generated which is indicative of customer textual input, such as thetextual input 406 stating ‘I want to postpone my flight travel from January 26 to January 29’. Furthermore, the first URL is also configured to identify a state machine and a state within the state machine for facilitating processing of the textual input. For example, a state machine may be associated with interaction flow associated with changes to booked flight reservations (such as for example, cancellations, delays, rescheduled bookings etc.). Furthermore, a state within such a state machine may be associated with rescheduling of flight itineraries. Accordingly, theapparatus 200 may be caused to effect generation of a URL, i.e. the first URL, such that the textual input along with the state machine and a state within the state machine related to the textual input are captured within the contents of the URL. - An example first URL that may be generated by the
apparatus 200 using the interaction client, such as the chat client, identifying the state machine is depicted below: - “https://staging.api.enterpriseXYZ.net/v1/virtualagents/AirlineABC/rebookingflight?”
- Further, post request parameters may be added to the above URL, such as for example, “q=I+want+to+postpone+flight+travel+from+January+26+to+January+29&sessionid=111111111111&requestid=222222222222”, to indicate the textual input provided by the customer. It is understood that other URL notations may also be used as appropriate and it is understood that the above examples are merely illustrative and not exhaustive in nature.
- Furthermore, in at least one example embodiment, the first URL is configured to facilitate authentication of the customer. For example, requisite API keys authenticating the customer may also be included within the first URL. In an embodiment, the I/
O module 206 may be configured to receive the first URL including the API keys and perform authentication of the customer. For example: - api_key_=XXXXXXXXXXXX, where X may be any alpha-numeric character may be appended to the post request parameter, for example as depicted below:
- “api_key=d34134fa43c6&q=I+want+to+postpone+flight+travel+from+January+26+to+January+29&sessionid=111111111111&requestid=222222222222”, and appended to the first URL:
- “https://staging.api.enterpriseXYZ.net/v1/virtualagents/AirlineABC/rebookingflight?”.
- It is understood that API keys are mentioned herein for example purposes and that the customer authentication may be performed using various other known techniques, such as for example, open authentication (OAuth), OAuth 2.0, password based authentication or shared key based authentication.
- In at least one example embodiment, the customer may be identified from among the plurality of customers of the enterprise during the customer authentication. The identification of the customer may enable retrieval of customer related data stored in a customer relationship management (CRM) database in the
memory 204 of theapparatus 200. Some non-limiting examples of the customer related data stored in the CRM database may include information, such as age/gender of the customer, browsing history of the customer, past interactions of the customer with agents, and the like. - In addition to facilitating customer authentication and identification, the first URL is further configured to identify the state machine as well as the state within the state machine. It is understood that the different states in the interaction may correspond to static representation of the states, such as for example states in a Finite State Machine (FSM). In an embodiment, the identified state machine is a Markov-model based state machine, where what happens next only depends on the current state, not on how the current state was reached at or other stateful data. Furthermore, the semantics of the states of the state machine are represented using state chart XML or SCXML.
- In an embodiment, the
processor 202 is configured to include a state chart extensible markup language (SCXML) interpreter capable of invoking an appropriate state machine from among a plurality of state machines stored in thememory 204 using the first URL to facilitate prediction of the intention of the customer. In an embodiment, the SCXML interpreter, in addition to including the ability to load a state machine via URL, may include the following functionality: (a) the ability to identify state in the state machine to interact with, which differs from conventional SCXML implementations, where the interaction is always started with an initial state which is hardcoded in the state machine; (3) the ability for the state machine when restarted this way to re-initialize a data model, thereby enabling the data model to contain constant strings; (4) include an event to fire into the state machine when the state machine is re-initialized, which allows the state machine author to interact with this process and set an appropriate data values; (5) include a scheme to enable the SCXML application author to signal time to return the result of the state machine to the requester; and (6) include code to automatically report the state machine URL and the state name in question. - In an embodiment, the SCXML interpreter is configured to select a natural language processing (NLP) model from among a plurality of NLP models stored in the
memory 204 based on the identified state within the state machine in the first URL to facilitate prediction of an intention of the customer. More specifically, the textual input included in the first URL and the identified state within the state machine may be utilized by the SCXML interpreter to determine which NLP model to use for natural language processing of the textual input. - In an embodiment, textual input within the first URL may be processed using the selected NLP model by the
processor 202 to understand the intention behind the textual input. In an embodiment, the NLP model may be configured to perform natural language processing of the textual input. For example, the NLP model may be configured to extract feature vectors by parsing and analyzing the free-form textual input. In an embodiment, the extraction of feature vectors (also referred to herein as ‘features’) is performed using statistical techniques. In at least one embodiment, theprocessor 202 is configured to extract one or more features from the textual input and associate intents with the extracted features. An example of a feature is: -
- WORD (reschedule) NEAR WORD (flight) WITHIN_DISTANCE (2),
which implies rescheduling flight travel. Accordingly, the feature ‘reschedule flight’ may be tagged with the intent of rescheduling flight travel. Theprocessor 202 may be caused to identify one or more intents and tag the intents to the corresponding features extracted from the textual input.
- WORD (reschedule) NEAR WORD (flight) WITHIN_DISTANCE (2),
- In some embodiments, the
processor 202 may be caused to compute a probability score for each intention. As explained above, theprocessor 202 is configured to identify the customer during customer authentication and retrieve information related to the customer, such as for example, information like age/gender of the customer, browsing history, past interaction information etc. from the CRM database. In at least one embodiment, the retrieved information may be used to compute a probability score for each intention. In at least one example embodiment, theprocessor 202 is configured to use machine-learning algorithms, such as Hidden Markov's Model (HMM) or Conditional Random Fields (CRF), to compute the probability of intention based on the customer historical behavior. In at least one example embodiment, theprocessor 202 is configured to rank the intents in the order of the probability scores and thereafter compare the probability score of the maximum scoring intent with a pre-defined threshold value (for example, a ‘0.9’ value indicative of a 90% probability of occurrence of an event). - In an embodiment, the various NLP models may be structured as API services, such that a provisioning of textual input to a NLP model may return a list of best-matched intentions with confidence scores for the given textual input. In an embodiment, the processor is configured to learn the customer intention behind provisioning the textual input based on the list on best-matched intentions and decide on one or more next actions and the next interaction flow state. For example, based on the natural language processing of the
textual input 406 stating ‘I want to postpone my flight travel from January 26 to January 29’, theprocessor 202 may learn that the customer intends to postpone his upcoming flight journey. Accordingly, theprocessor 202 may determine one or more next actions, based on information stored related to the corresponding state in the state machine. For example, a next action may involve rescheduling the flight journey to the requested date based on availability and previously recorded customer preferences (such as morning travel, seat preference etc.). In another illustrative example, a next action determined by theprocessor 202 may involve proposing another date if rescheduling the flight as per customer's requirement is not possible. In yet another illustrative example, a next action determined by theprocessor 202 may involve suggestions for airport transfers and hotel stay in addition to rescheduling of the upcoming flight journey as per the customer's requirement. - In an embodiment, the
processor 202 is further configured to determine a next interaction state for the online interaction based on the current state within the state machine and predicted intention of the customer. For example, a next interaction state may relate to confirmation of the traveler details for the revised itinerary and generating of e-tickets for the customer. In an embodiment, theprocessor 202 is configured to provision the determined one or more next actions and the next interaction state to the I/O module 206. - In an embodiment, the
processor 202 is configured to, with the content of thememory 204, cause theapparatus 200 to generate a second URL including the response to the textual input. More specifically, the I/O module 206 may generate the second URL including the response to the textual input. In at least one example embodiment, the I/O module 206 may be configured to determine the response to the textual input based on the next action(s). For example, based on the determined one or more next actions for thetextual input 406 stating ‘I want to postpone my flight travel from January 26 to January 29’, theapparatus 200 may be caused to determine an appropriate response. In one illustrative example, an appropriate response may be to provide a confirmation of the request and suggest a revised itinerary to the customer. In another illustrative example, the response may be to transfer the interaction to a live agent (i.e. a human agent) to assist the customer in rescheduling the flight journey. - In an embodiment, the I/
O module 206 is caused to determine if the next action(s) comprises an instruction to fetch an answer from a database. If the response includes an instruction to fetch answers from thedatabase 212, then the I/O module 206 is configured to send a request to thememory 204 to fetch answers in text format (or other similar media types) that are available for a given customer intent. In an embodiment, thedatabase 212 includes a repository of key-value pairs of intentions to answers for textual inputs related to a plurality of possible intentions of the customer. More specifically, for a given customer intention, thedatabase 212 includes an answer best suited to address the intention. In an embodiment, theapparatus 200 is caused to compare the intention predicted for the customer with the plurality of possible intentions for a match and retrieve the answer corresponding to the matching intention from thedatabase 212. The I/O module 206 may further be configured to embed the retrieved answer within the second URL as the response to the textual input. In an illustrative example, for the predicted intention of rescheduling of the flight journey, an example response included in the second URL may be ‘Ok, our agent will contact you with possible flight options on the requested date within next four hours’. - It is noted that in some example embodiments, the
apparatus 200 may be unable to adequately address a customer's inquiry. Such instances may occur on account of variety of reasons, such as for example, thedatabase 212 may not cover the topic being addressed in the customer's inquiry, the customer's input isn't relevant to the application on the enterprise website or if the customer's inquiry isn't complete or very vague to decipher context from the input. - In such scenarios, the next action(s) may not include an instruction to fetch an answer from the
database 212. In such a case, the I/O module 206 may be configured to include a standard response within the second URL. In an illustrative example, the response may be indicative of a transfer of the online interaction from the virtual agent to a live agent. For example, for the predicted intention of rescheduling of the flight journey, the response included within the second URL may be ‘Ok, Agent John will now assist you with requested rescheduling of your flight itinerary’. In such cases, the response provided to theinteraction client 208 may suggest directing the conversation to a live (or human) agent. - Further, the I/
O module 206 may include parameters, such as for example, API Key, next interaction state, logging correlators and the like in the response. In an embodiment, the second URL is further configured to identify the next interaction state for the online interaction. As explained above, theprocessor 202 may determine the next interaction state for the online interaction and provision such information to the I/O module 206. The I/O module 206 may further be configured to include such information in the second URL. In an embodiment, the identification of the next interaction state within the second URL may be structured as a reference to a generic Markov style state machine and a specific state inside that state machine. - An example second URL that may be generated by the I/
O module 206 of theapparatus 200, identifying the state machine is depicted below: - https://staging.api.enterpriseXYZ.net/v1/virtualagents/AirlineABC/rebookingflight/states/CT01_Itinerary Change
- It is understood that other URL notations may also be used as appropriate and it is understood that the above examples are merely illustrative and not exhaustive in nature.
- In at least one example embodiment, the
processor 202 is configured to, with the content of thememory 204, cause theapparatus 200 to effect a provisioning of the response to the customer during the online interaction. More specifically, the I/O module 206 is configured to provision the generated second URL including the response to theinteraction client 208. Theapparatus 200 may thereafter effect a provisioning of the response to the customer during the chat interaction using theinteraction client 208. For example, theinteraction client 208 may strip the response from the second URL and provision the response as textual entry to be displayed (for example, within the chat console UI) on a device associated with the customer to provide assistance to the customer. - In an embodiment, the
apparatus 200 is caused to effect generation of a URL for each subsequent textual input received from the customer during the chat interaction. The URL corresponding to the each subsequent textual input is configured to identify a respective state machine for facilitating processing of corresponding textual input. In an embodiment, the first URL and the URL for the each subsequent textual input is configured to identify a respective Markov-model based state machine. - In an embodiment, URLs corresponding to at least one pair of successive textual inputs during the chat interaction are configured to identify a same state machine. For example, for an ongoing chat interaction related to postponing of flight travel, successive textual inputs provided by the customer may be directed to the same state machine (i.e. a Markov state machine capable of processing textual inputs related to rescheduling of booked flight journeys) disposed in the
memory 204 of theapparatus 200. - However, in some embodiments, URLs corresponding to at least one pair of successive textual inputs during the chat interaction are configured to identify different state machines for facilitating transitioning of the online interaction from one business context to another business context. For example, in some scenarios, a customer may wish to pay a credit card bill and also redeem accrued reward points. In such a scenario, upon addressing customer need related to payment of credit card bill, subsequent textual inputs related to the redeeming accrued reward points may be directed to a different state machine (i.e. a different Markov-model based state machine capable of processing textual inputs related to consumer benefits tied to usage of banking cards).
- In some embodiments, a time duration between successive textual inputs may be long drawn out and extend over several hours or days. For example, unlike chat interactions where textual inputs are provided by the customer one after the other with very little time gap between successive textual inputs, some online interactions, such as short message service (SMS) interactions or email interactions may involve a gap of several hours or even days. In such cases, the URLs may be used to invoke state machines as and when textual inputs are received. As a result, the interaction flow may be deemed as stateless as no persistent or stateful connection to a server is required. An interaction session on a state machine of an enterprise server can stop and disappear at the point it returns a response to the
interaction client 208. Theinteraction client 208 then can access any state machine (or instance of state machine on a different server) with the next request and jump into the state machine at that point. An example process flow for facilitating stateless representation of interaction flow states associated with online customer interactions is further explained with reference toFIG. 5 . -
FIG. 5 shows a schematic diagram for illustrating anexample process flow 500 for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention. As explained with reference toFIG. 2 , theinteraction client 208 is configured to provision a UI, for example a UI associated with a chat console, to receive customer's textual input. In an example scenario, the customer may provide textual input, such as for example “How to improve my credit score?” - In an embodiment, the
interaction client 208 may be caused by theapparatus 200 to effect generation of a first URL indicative of the textual input. The first URL may be further be configured to identify a state machine and a state within the state machine for facilitating processing of the textual input. For example, a first URL such as: - “https://staging.api.enterpriseXYZ.net/v1/virtualagents/BankDEF/credittracker?” may be appended with post request parameter, such as for example, “q=How+to+improve+my+credit+score” along with appropriate API keys and session/request id information.
- At 502, the
interaction client 208 is configured to send the first URL to the I/O module 206. The I/O module 206 is configured to check for correct API keys and perform authentication of the customer. Upon successful authentication, the I/O module 206 is configured to provision the information related to the textual input as well as the identified state machine and the state within the state machine to theprocessor 202 at 504. - As explained with reference to
FIG. 2 , the processor includes a SCXML interpreter, such as anSCXML interpreter 550, which is configured to invoke the state machine identified in the first URL. TheSCXML interpreter 550 may utilize the textual input and the identified state machine to determine an appropriate NLP model for natural language processing of the textual input. At 506, theSCXML interpreter 550 is configured to provide the NLP model (retrieved from the memory 204) along with the textual input to a NLP module 560 (for example, a software program loaded from thememory 204 into the processor 202) to perform natural language processing of the textual input to predict the intention of the customer. Based on the model received from theSCXML interpreter 550, theNLP module 560 is configured to predict the intention of the customer, i.e. to improve her credit score. TheNLP module 560 is also configured to determine a confidence score for the predicted intention (for example, a confidence score of 90 may be indicative of the fact that the predicted customer's intention is associated with a 90% level of certainty). At 508, theNLP module 560 is configured to provide the predicted intention along with the associated confidence score to theSCXML interpreter 550. - In an embodiment, the
SCXML interpreter 550 within theprocessor 202, utilizing the state machine, may be configured to determine one or more next actions and the next interaction state based on the predicted intention received from theNLP module 560. Theprocessor 202 is further configured to provide the determined one or more next actions and the next interaction state to the I/O module 206 at 510. For example, theSCXML interpreter 550 may determine that the customer should be advised to keep her outstanding bill amount low by making timely payments. The next state within the state machine and the action to be performed (for example, the advice to keep her outstanding bill amount low by making timely payments) may be provided to the I/O module 206. - The I/
O module 206 is configured to receive the information provided by theprocessor 202 and further check if one or more next action(s) include instructions to fetch answers from thedatabase 212. If a next action includes an instruction to fetch an answer from thedatabase 212, then the I/O module 206 is configured to send a request, at 512, to fetch the answer from thedatabase 212. For example, the exact textual answer to be provided to the customer for the identified intention of improving credit score may be stored in thedatabase 212 as an intent-answer pair. Thedatabase 212 may provide the selected answer as an object to the I/O module 206 at 514. The I/O module 206 is configured to generate a second URL and embed the answer object as the response within a second URL. The second URL is also configured to include information related to the next interaction state (for example, identify a generic Markov style state machine and a specific state inside that state machine. An example, second URL generated by the I/O module 206 may be: - “https://staging.api.enterpriseXYZ.net/v1/virtualagents/BankDEF/credittracker/states/CT01_ScoreDifferent” or in another example scenario, the second URL may be:
- “https://staging.api.enterpriseXYZ.net/v1/virtualagents/BankDEF/credittracker/d34134f a43c6/states/CT01_ScoreDifferent”.
- The I/
O module 206 is configured to provision the second URL to theinteraction client 208 at 516. Theinteraction client 208 may strip the response to be provided to the customer from the second URL and provide the response to the customer. - Moreover, the
interaction client 208 may configure further textual inputs of the customer in form of URLs identifying generic Markov style state machine and specific states inside that state machine. Theinteraction client 208 may then access any state machine with the next request and jump into the state machine at that point. Accordingly, as explained above, the customer-agent conversations are handled using Markov state machine and Restful APIs, which utilize hyperlinks to represent interaction flow in a manner that doesn't require stateful sessions or persistent connections. A method for facilitating stateless representation of interaction flow states associated with online customer interactions is explained with reference toFIG. 6 . -
FIG. 6 is a flow diagram of anexample method 600 for facilitating stateless representation of interaction flow states associated with online customer interactions, in accordance with an embodiment of the invention. Themethod 600 depicted in the flow diagram may be executed by, for example, theapparatus 200 explained with reference toFIGS. 2 to 5 . Operations of the flowchart, and combinations of operation in the flowchart, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or a different device associated with the execution of software that includes one or more computer program instructions. The operations of themethod 600 are described herein with help of theapparatus 200. It is noted that, the operations of themethod 600 can be described and/or practiced by using a system other than theapparatus 200. Themethod 600 starts atoperation 602. - At
operation 602 of themethod 600, generation of a first uniform resource locator (URL) indicative of a textual input received from a customer during an online interaction is effected. As explained with reference toFIGS. 1 and 2 , customers may engage in online interactions, such as chat interactions or SMS/email interactions or in some cases even fill-up online questionnaires/web forms in order to seek assistance from the agents of the enterprise, who are entrusted with providing sales and service support to the customers. The textual input may be provided on a UI, such as theUI 302 or theUI 402, explained with reference toFIGS. 3A to 3D orFIG. 4 , respectively. Upon reception of the textual input, the first URL may be generated which is indicative of the textual input. The first URL is further configured to identify a state machine and a state within the state machine for facilitating processing of the textual input as explained with reference toFIG. 1 . - At
operation 604 of themethod 600, an intention of the customer is predicted from the first URL using the state machine and the state within the state machine. More specifically, information related to the textual input and the identified state machine along with the state within the state machine included in the first URL may be utilized to select an appropriate NLP model for processing of the textual input. The NLP model may then be utilized to perform natural language processing of the textual input so as to interpret the textual input and accordingly predict an intention of the customer based on the interpreted textual input. - At
operation 606 of themethod 600, at least one next action is determined based on the predicted intention of the customer. The predicted intention of the customer may be utilized by the state machine to determine the current state of the interaction and accordingly determine one or more next actions for the customer. In some embodiments, a next action may be to display a final answer to a customer's query, or alternatively, a next action may be to display a clarifying question or prompt the customer to move the interaction along to disambiguate the previous response. In some scenarios, a next action may be to suggest changing the interaction channel of the interaction (for example, transitioning the interaction to a human assisted chat) or it may involve providing a response to redirect the customer to a different URL or a different web site. In some scenarios, the next action may be to just acknowledging the input (like “Ok” or “Your welcome”) or it may involve stating something like ‘You are outside of business hours so we can't redirect you to a human agent’ and the like. - At
operation 608 of themethod 600, a second URL including a response to the textual input is generated. More specifically, based on the one or more next actions, an appropriate response may be determined. A second URL including the response may be generated. Moreover, the second URL is configured to identify a next interaction state for the online interaction. In some embodiments, the response may include an instruction to fetch an answer from a database and embedding the answer as the response in the second URL. The fetching of the answer from the database and the generation of the second URL may be performed as explained with reference toFIGS. 2 and 5 and is not explained again herein. - At operation 610 of the
method 600, a provisioning of the response to the customer is effected during the online interaction. More specifically, the response may be displayed within the UI as a reply to the textual input. Another method for facilitating stateless representation of interaction flow states associated with customer interactions is explained with reference toFIG. 7 . -
FIG. 7 is a flow diagram of anexample method 700 for facilitating stateless representation of interaction flow states associated with customer interactions, in accordance with an embodiment of the invention. Themethod 700 depicted in the flow diagram may be executed by, for example, theapparatus 200 explained with reference toFIGS. 2 to 5 . Operations of the flowchart, and combinations of operation in the flowchart, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or a different device associated with the execution of software that includes one or more computer program instructions. Themethod 700 starts atoperation 702. - At
operation 702 of themethod 700, a user interface (UI) is displayed by a chat client on a device associated with a customer for facilitating a chat interaction between the customer and an agent. A UI, such as theUI 302 or theUI 402, explained with reference toFIGS. 3A to 3D orFIG. 4 , respectively may be displayed to the chat client on the device associated with the customer. Some non-limiting examples of the device associated with the customer may include a personal computer, a laptop, a Smartphone, a mobile phone, a tablet computer, a wearable device, a personal digital assistant and the like. - At
operation 704 of themethod 700, a textual input provided by the customer within the UI is received by the chat client. - At
operation 706 of themethod 700, a first uniform resource locator (URL) indicative of the textual input is generated by the chat client. The first URL is configured to identify a state machine and a state within the state machine related to the textual input. The generation of the first URL may be performed as explained with reference tooperation 602 of themethod 600 inFIG. 6 and is not explained herein. - At
operation 708 of themethod 700, the first URL is provisioned to an apparatus, such as theapparatus 200, comprising the state machine by the chat client for processing of the textual input. Further, the processing of textual input to generate a reply to the textual input may be performed as explained with reference toFIGS. 2 to 5 and is not explained herein. - Without in any way limiting the scope, interpretation, or application of the claims appearing below, advantages of one or more of the exemplary embodiments disclosed herein facilitate representation of interaction flow states in customer interactions without having to maintain stateful sessions or persistent connections for the interactions. More specifically, a customer may be directed to any state machine or any server at any point during an on-going interaction without having to maintain a persistent connection with the customer. In an example scenario, a uniform resource locator (URL) may be directed to a different state machine in order to transition a customer session from one state machine (for example, a state machine that contains the conversation flow for a particular business domain) to a different state machine (for example, a state machine that contains the conversation flow for a different domain of that business), thereby supporting topic changes in a clean and efficient manner. In some cases, the customer may continue the interaction even after coming back after hours or days, since there is no persistent connection required and no server side state is needed for supporting the interaction. As such, techniques disclosed herein facilitate long running conversations between the virtual agents and the customers.
- It is noted that though stateless representation of interaction flow states associated with customer interactions as described herein with reference to
FIGS. 1 toFIG. 7 are explained with reference to virtual agents, such representation of application flow states may not be limited to applications involving virtual agents. Indeed any application (including those which preclude agent related conversations) may incorporate techniques disclosed herein to represent application flow states in a RESTful and stateless manner. For example, business flow widgets assisting customers to fill online forms or answer questionnaires, such as those related to applying for credit or filing of taxes online, may utilize the techniques disclosed herein to represent the application flow states to facilitate seamless dialogue flow. For example, the questions presented to the customers in forms/questionnaires may be suitably modified in real-time based on answers provided to earlier questions and states corresponding to such application flow may be represented in a stateless manner as described above. - Various embodiments described above may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. The software, application logic and/or hardware may reside on one or more memory locations, one or more processors, an electronic device or, a computer program product. In an embodiment, the application logic, software or an instruction set is maintained on any one of various conventional computer-readable media. In the context of this document, a “computer-readable medium” may be any media or means that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, as described and depicted in
FIGS. 1 and/or 2 . A computer-readable medium may comprise a computer-readable storage medium that may be any media or means that can contain or store the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer. - Although the present technology has been described with reference to specific exemplary embodiments, it is noted that various modifications and changes may be made to these embodiments without departing from the broad spirit and scope of the present technology. For example, the various operations, blocks, etc., described herein may be enabled and operated using hardware circuitry (for example, complementary metal oxide semiconductor (CMOS) based logic circuitry), firmware, software and/or any combination of hardware, firmware, and/or software (for example, embodied in a machine-readable medium). For example, the systems and methods may be embodied using transistors, logic gates, and electrical circuits (for example, application specific integrated circuit (ASIC) circuitry and/or in Digital Signal Processor (DSP) circuitry).
- Particularly, the
apparatus 200, theprocessor 202, thememory 204 and the I/O module 206 may be enabled using software and/or using transistors, logic gates, and electrical circuits (for example, integrated circuit circuitry such as ASIC circuitry). Various embodiments of the present technology may include one or more computer programs stored or otherwise embodied on a computer-readable medium, wherein the computer programs are configured to cause a processor or computer to perform one or more operations (for example, operations explained herein with reference toFIGS. 6 and 7 ). A computer-readable medium storing, embodying, or encoded with a computer program, or similar language, may be embodied as a tangible data storage device storing one or more software programs that are configured to cause a processor or computer to perform one or more operations. Such operations may be, for example, any of the steps or operations described herein. In some embodiments, the computer programs may be stored and provided to a computer using any type of non-transitory computer readable media. Non-transitory computer readable media include any type of tangible storage media. Examples of non-transitory computer readable media include magnetic storage media (such as floppy disks, magnetic tapes, hard disk drives, etc.), optical magnetic storage media (e.g. magneto-optical disks), CD-ROM (compact disc read only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), DVD (Digital Versatile Disc), BD (Blu-ray (registered trademark) Disc), and semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash ROM, RAM (random access memory), etc.). Additionally, a tangible data storage device may be embodied as one or more volatile memory devices, one or more non-volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices. In some embodiments, the computer programs may be provided to a computer using any type of transitory computer readable media. Examples of transitory computer readable media include electric signals, optical signals, and electromagnetic waves. Transitory computer readable media can provide the program to a computer via a wired communication line (e.g. electric wires, and optical fibers) or a wireless communication line. - Various embodiments of the present disclosure, as discussed above, may be practiced with steps and/or operations in a different order, and/or with hardware elements in configurations, which are different than those which, are disclosed. Therefore, although the technology has been described based upon these exemplary embodiments, it is noted that certain modifications, variations, and alternative constructions may be apparent and well within the spirit and scope of the technology.
- Although various exemplary embodiments of the present technology are described herein in a language specific to structural features and/or methodological acts, the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as exemplary forms of implementing the claims.
Claims (37)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/083,240 US10498834B2 (en) | 2015-03-30 | 2016-03-28 | Method and apparatus for facilitating stateless representation of interaction flow states |
PCT/US2016/024995 WO2016160978A1 (en) | 2015-03-30 | 2016-03-30 | Method and apparatus for facilitating stateless representation of interaction flow states |
AU2016243198A AU2016243198B2 (en) | 2015-03-30 | 2016-03-30 | Method and apparatus for facilitating stateless representation of interaction flow states |
CA2981271A CA2981271A1 (en) | 2015-03-30 | 2016-03-30 | Method and apparatus for facilitating stateless representation of interaction flow states |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562139939P | 2015-03-30 | 2015-03-30 | |
US15/083,240 US10498834B2 (en) | 2015-03-30 | 2016-03-28 | Method and apparatus for facilitating stateless representation of interaction flow states |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160294952A1 true US20160294952A1 (en) | 2016-10-06 |
US10498834B2 US10498834B2 (en) | 2019-12-03 |
Family
ID=57005352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/083,240 Active 2036-09-28 US10498834B2 (en) | 2015-03-30 | 2016-03-28 | Method and apparatus for facilitating stateless representation of interaction flow states |
Country Status (4)
Country | Link |
---|---|
US (1) | US10498834B2 (en) |
AU (1) | AU2016243198B2 (en) |
CA (1) | CA2981271A1 (en) |
WO (1) | WO2016160978A1 (en) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150288818A1 (en) * | 2012-09-19 | 2015-10-08 | 24/7 Customer, Inc. | Method and apparatus for predicting intent in ivr using natural language queries |
US9596350B1 (en) * | 2016-07-21 | 2017-03-14 | Genesys Telecommunications Laboratories, Inc. | Virtual interactions in contact center operations |
US20180077146A1 (en) * | 2016-09-15 | 2018-03-15 | Webroot Inc. | Online Identity Reputation |
WO2018081833A1 (en) * | 2016-10-31 | 2018-05-03 | Talla, Inc. | State machine methods and apparatus executing natural language communications, and al agents monitoring status and triggering transitions |
US20200137014A1 (en) * | 2018-10-26 | 2020-04-30 | International Business Machines Corporation | Adaptive dialog strategy for multi turn conversation systems using interaction sequences |
US10802872B2 (en) | 2018-09-12 | 2020-10-13 | At&T Intellectual Property I, L.P. | Task delegation and cooperation for automated assistants |
US10904200B2 (en) | 2016-10-11 | 2021-01-26 | Talla, Inc. | Systems, apparatus, and methods for platform-agnostic message processing |
CN112307167A (en) * | 2020-10-30 | 2021-02-02 | 广州华多网络科技有限公司 | Text segmentation method, device, computer equipment and storage medium |
US10986047B2 (en) * | 2018-03-09 | 2021-04-20 | Capital One Services, Llc | Systems and methods for controlling secure persistent electronic communication account servicing with an intelligent assistant |
US20210216594A1 (en) * | 2020-05-22 | 2021-07-15 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for backtracking common scenario dialog in multi-round dialog |
US11080717B2 (en) * | 2019-10-03 | 2021-08-03 | Accenture Global Solutions Limited | Method and system for guiding agent/customer interactions of a customer relationship management system |
US11132681B2 (en) | 2018-07-06 | 2021-09-28 | At&T Intellectual Property I, L.P. | Services for entity trust conveyances |
US11201840B2 (en) * | 2015-12-22 | 2021-12-14 | Line Corporation | Communication control method and information processing apparatus |
US20220014359A1 (en) * | 2020-07-07 | 2022-01-13 | Curity Ab | Login and consent methodology that follows rest principles and uses the oauth protocol with attested clients |
US11449197B2 (en) * | 2019-03-08 | 2022-09-20 | [24]7.ai, Inc. | Agent console for facilitating chat interactions with customers |
US11481186B2 (en) | 2018-10-25 | 2022-10-25 | At&T Intellectual Property I, L.P. | Automated assistant context and protocol |
US20220358396A1 (en) * | 2021-05-04 | 2022-11-10 | Capital One Services, Llc | Systems and methods for generating dynamic conversational queries in user interfaces using state machine libraries |
US20220407936A1 (en) * | 2019-06-28 | 2022-12-22 | Paypal, Inc. | Real-time suggested actions based on user profile attributes |
US11711406B2 (en) * | 2018-10-18 | 2023-07-25 | Paypal, Inc. | Systems and methods for providing dynamic and interactive content in a chat session |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180189273A1 (en) * | 2016-12-23 | 2018-07-05 | OneMarket Network LLC | Maintaining context in transaction conversations |
US11347545B2 (en) | 2020-03-19 | 2022-05-31 | International Business Machines Corporation | Adaptive state management for stateless services |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256620B1 (en) * | 1998-01-16 | 2001-07-03 | Aspect Communications | Method and apparatus for monitoring information access |
US20040215608A1 (en) * | 2003-04-25 | 2004-10-28 | Alastair Gourlay | Search engine supplemented with URL's that provide access to the search results from predefined search queries |
US20070005646A1 (en) * | 2005-06-30 | 2007-01-04 | Microsoft Corporation | Analysis of topic dynamics of web search |
US20090013255A1 (en) | 2006-12-30 | 2009-01-08 | Matthew John Yuschik | Method and System for Supporting Graphical User Interfaces |
US7941383B2 (en) * | 2007-12-21 | 2011-05-10 | Yahoo! Inc. | Maintaining state transition data for a plurality of users, modeling, detecting, and predicting user states and behavior |
US9858925B2 (en) * | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US20110208730A1 (en) * | 2010-02-23 | 2011-08-25 | Microsoft Corporation | Context-aware searching |
JP5642809B2 (en) | 2010-03-12 | 2014-12-17 | ニュアンス コミュニケーションズ, インコーポレイテッド | Multi-modal text input system for use with mobile phone touchscreen etc. |
US20120011218A1 (en) * | 2010-07-12 | 2012-01-12 | Isaacs Charles H | System for Information and Function Retrieval |
US20120076283A1 (en) * | 2010-09-23 | 2012-03-29 | Ajmera Dinesh | Predictive Customer Service Environment |
US9614807B2 (en) * | 2011-02-23 | 2017-04-04 | Bottlenose, Inc. | System and method for analyzing messages in a network or across networks |
US8645300B1 (en) | 2011-07-20 | 2014-02-04 | Usability Sciences Corporation | System and method for intent data processing |
US9244931B2 (en) | 2011-10-11 | 2016-01-26 | Microsoft Technology Licensing, Llc | Time-aware ranking adapted to a search engine application |
US9082073B2 (en) * | 2011-11-30 | 2015-07-14 | Metaswitch Networks Ltd. | Method and apparatus for operating a finite state machine |
US20130191185A1 (en) * | 2012-01-24 | 2013-07-25 | Brian R. Galvin | System and method for conducting real-time and historical analysis of complex customer care processes |
US8892419B2 (en) * | 2012-04-10 | 2014-11-18 | Artificial Solutions Iberia SL | System and methods for semiautomatic generation and tuning of natural language interaction applications |
US9325845B2 (en) * | 2012-06-21 | 2016-04-26 | 24/7 Customer, Inc. | Method and apparatus for diverting callers to Web sessions |
US9973457B2 (en) | 2012-06-26 | 2018-05-15 | Nuance Communications, Inc. | Method and apparatus for live chat integration |
US10025760B2 (en) * | 2013-01-25 | 2018-07-17 | Ebay Inc. | Mapping page states to URLs |
US10373177B2 (en) * | 2013-02-07 | 2019-08-06 | [24] 7 .ai, Inc. | Dynamic prediction of online shopper's intent using a combination of prediction models |
-
2016
- 2016-03-28 US US15/083,240 patent/US10498834B2/en active Active
- 2016-03-30 CA CA2981271A patent/CA2981271A1/en not_active Abandoned
- 2016-03-30 AU AU2016243198A patent/AU2016243198B2/en not_active Ceased
- 2016-03-30 WO PCT/US2016/024995 patent/WO2016160978A1/en active Application Filing
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9742912B2 (en) * | 2012-09-19 | 2017-08-22 | 24/7 Customer, Inc. | Method and apparatus for predicting intent in IVR using natural language queries |
US20150288818A1 (en) * | 2012-09-19 | 2015-10-08 | 24/7 Customer, Inc. | Method and apparatus for predicting intent in ivr using natural language queries |
US11201840B2 (en) * | 2015-12-22 | 2021-12-14 | Line Corporation | Communication control method and information processing apparatus |
US9998599B2 (en) * | 2016-07-21 | 2018-06-12 | Genesys Telecommunications Laboratories, Inc. | Virtual interactions in contact center operations |
US9596350B1 (en) * | 2016-07-21 | 2017-03-14 | Genesys Telecommunications Laboratories, Inc. | Virtual interactions in contact center operations |
US20210009381A1 (en) * | 2016-09-15 | 2021-01-14 | Webroot Inc. | Online identity reputation |
US11886555B2 (en) * | 2016-09-15 | 2024-01-30 | Open Text Inc. | Online identity reputation |
US20180077146A1 (en) * | 2016-09-15 | 2018-03-15 | Webroot Inc. | Online Identity Reputation |
US10735401B2 (en) * | 2016-09-15 | 2020-08-04 | Webroot Inc. | Online identity reputation |
US10904200B2 (en) | 2016-10-11 | 2021-01-26 | Talla, Inc. | Systems, apparatus, and methods for platform-agnostic message processing |
US20190370615A1 (en) * | 2016-10-31 | 2019-12-05 | Talla, Inc. | State machine methods and apparatus comprising work unit transitions that execute acitons relating to natural language communication, and artifical intelligence agents to monitor state machine status and generate events to trigger state machine transitions |
WO2018081833A1 (en) * | 2016-10-31 | 2018-05-03 | Talla, Inc. | State machine methods and apparatus executing natural language communications, and al agents monitoring status and triggering transitions |
US20240039875A1 (en) * | 2018-03-09 | 2024-02-01 | Capital One Services, Llc | Systems and methods for controlling secure persistent electronic communication account servicing with an intelligent assistant |
US10986047B2 (en) * | 2018-03-09 | 2021-04-20 | Capital One Services, Llc | Systems and methods for controlling secure persistent electronic communication account servicing with an intelligent assistant |
US11818083B2 (en) * | 2018-03-09 | 2023-11-14 | Capital One Services, Llc | Systems and methods for controlling secure persistent electronic communication account servicing with an intelligent assistant |
US20210234815A1 (en) * | 2018-03-09 | 2021-07-29 | Capital One Services, Llc | Systems and methods for controlling secure persistent electronic communication account servicing with an intelligent assistant |
US20230088003A1 (en) * | 2018-03-09 | 2023-03-23 | Capital One Services, Llc | Systems and methods for controlling secure persistent electronic communication account servicing with an intelligent assistant |
US11588761B2 (en) * | 2018-03-09 | 2023-02-21 | Capital One Services, Llc | Systems and methods for controlling secure persistent electronic communication account servicing with an intelligent assistant |
US12206631B2 (en) * | 2018-03-09 | 2025-01-21 | Capital One Services, Llc | Systems and methods for controlling secure persistent electronic communication account servicing with an intelligent assistant |
US11132681B2 (en) | 2018-07-06 | 2021-09-28 | At&T Intellectual Property I, L.P. | Services for entity trust conveyances |
US11507955B2 (en) | 2018-07-06 | 2022-11-22 | At&T Intellectual Property I, L.P. | Services for entity trust conveyances |
US11579923B2 (en) | 2018-09-12 | 2023-02-14 | At&T Intellectual Property I, L.P. | Task delegation and cooperation for automated assistants |
US11321119B2 (en) | 2018-09-12 | 2022-05-03 | At&T Intellectual Property I, L.P. | Task delegation and cooperation for automated assistants |
US10802872B2 (en) | 2018-09-12 | 2020-10-13 | At&T Intellectual Property I, L.P. | Task delegation and cooperation for automated assistants |
US11711406B2 (en) * | 2018-10-18 | 2023-07-25 | Paypal, Inc. | Systems and methods for providing dynamic and interactive content in a chat session |
US11481186B2 (en) | 2018-10-25 | 2022-10-25 | At&T Intellectual Property I, L.P. | Automated assistant context and protocol |
US20200137014A1 (en) * | 2018-10-26 | 2020-04-30 | International Business Machines Corporation | Adaptive dialog strategy for multi turn conversation systems using interaction sequences |
US11140110B2 (en) * | 2018-10-26 | 2021-10-05 | International Business Machines Corporation | Adaptive dialog strategy for multi turn conversation systems using interaction sequences |
US11449197B2 (en) * | 2019-03-08 | 2022-09-20 | [24]7.ai, Inc. | Agent console for facilitating chat interactions with customers |
US20220407936A1 (en) * | 2019-06-28 | 2022-12-22 | Paypal, Inc. | Real-time suggested actions based on user profile attributes |
US12192297B2 (en) * | 2019-06-28 | 2025-01-07 | Paypal, Inc. | Real-time suggested actions based on user profile attributes |
US11080717B2 (en) * | 2019-10-03 | 2021-08-03 | Accenture Global Solutions Limited | Method and system for guiding agent/customer interactions of a customer relationship management system |
US20210216594A1 (en) * | 2020-05-22 | 2021-07-15 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for backtracking common scenario dialog in multi-round dialog |
US20220014359A1 (en) * | 2020-07-07 | 2022-01-13 | Curity Ab | Login and consent methodology that follows rest principles and uses the oauth protocol with attested clients |
US12149612B2 (en) * | 2020-07-07 | 2024-11-19 | Curity Ab | Login and consent methodology that follows rest principles and uses the OAUTH protocol with attested clients |
CN112307167A (en) * | 2020-10-30 | 2021-02-02 | 广州华多网络科技有限公司 | Text segmentation method, device, computer equipment and storage medium |
US12182672B2 (en) * | 2021-05-04 | 2024-12-31 | Capital One Services, Llc | Systems and methods for generating dynamic conversational queries in user interfaces using state machine libraries |
US20220358396A1 (en) * | 2021-05-04 | 2022-11-10 | Capital One Services, Llc | Systems and methods for generating dynamic conversational queries in user interfaces using state machine libraries |
Also Published As
Publication number | Publication date |
---|---|
WO2016160978A1 (en) | 2016-10-06 |
CA2981271A1 (en) | 2016-10-06 |
AU2016243198B2 (en) | 2019-09-12 |
AU2016243198A1 (en) | 2017-10-19 |
US10498834B2 (en) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10498834B2 (en) | Method and apparatus for facilitating stateless representation of interaction flow states | |
US10592949B2 (en) | Method and apparatus for linking customer interactions with customer messaging platforms | |
CA3008026C (en) | Method and apparatus for managing natural language queries of customers | |
US10552885B2 (en) | Systems and methods for acquiring structured inputs in customer interactions | |
US20160239848A1 (en) | Method and system for automatic execution of at least one next action during a customer interaction | |
AU2016229010B2 (en) | System and method for facilitating social recognition of agents | |
US20220129905A1 (en) | Agent console for facilitating assisted customer engagement | |
US20170091780A1 (en) | Method and apparatus for facilitating customer interactions with enterprises | |
US11080747B2 (en) | Method and apparatus for selecting treatment for visitors to online enterprise channels | |
CA3057495C (en) | Method and apparatus for notifying customers of agent's availability | |
CA2999184C (en) | Method and apparatus for reserving zero-wait time agent interactions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: 24/7 CUSTOMER, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BODELL, MICHAEL;OSHRY, MATTHEW;DEVARAPALLI, RAVALI;REEL/FRAME:045568/0919 Effective date: 20160328 |
|
AS | Assignment |
Owner name: (24)7.AI, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:24/7 CUSTOMER, INC.;REEL/FRAME:047207/0148 Effective date: 20171019 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
AS | Assignment |
Owner name: (24)7.AI, INC., CALIFORNIA Free format text: CHANGE OF ADDRESS;ASSIGNOR:(24)7.AI, INC.;REEL/FRAME:049707/0540 Effective date: 20190506 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: SURCHARGE FOR LATE PAYMENT, LARGE ENTITY (ORIGINAL EVENT CODE: M1554); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |