CN114586323A - Dynamic routing of communications to different end nodes - Google Patents

Dynamic routing of communications to different end nodes Download PDF

Info

Publication number
CN114586323A
CN114586323A CN202080074487.1A CN202080074487A CN114586323A CN 114586323 A CN114586323 A CN 114586323A CN 202080074487 A CN202080074487 A CN 202080074487A CN 114586323 A CN114586323 A CN 114586323A
Authority
CN
China
Prior art keywords
user
communication
message
network
client
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
Application number
CN202080074487.1A
Other languages
Chinese (zh)
Other versions
CN114586323B (en
Inventor
杰弗里·索尔特
罗伯特·罗卡西奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LivePerson Inc
Original Assignee
LivePerson Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by LivePerson Inc filed Critical LivePerson Inc
Publication of CN114586323A publication Critical patent/CN114586323A/en
Application granted granted Critical
Publication of CN114586323B publication Critical patent/CN114586323B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present invention relates generally to facilitating routing of communications. More specifically, techniques are provided for dynamically routing messages with specific intents between a robot and a user device during a communication session configured with multi-channel capabilities.

Description

Dynamic routing of communications to different end nodes
CROSS-REFERENCE TO RELATED APPLICATIONSBy using
This patent application claims priority to U.S. provisional patent application No.62/926,773, filed on 28.10.2019, the disclosure of which is incorporated herein by reference.
Technical Field
The present invention relates generally to facilitating routing of communications. More specifically, techniques are provided for dynamically routing messages with specific intents between a robot and a user device during a communication session configured with multi-channel capabilities.
Disclosure of Invention
The terms embodiment and similar terms are intended to refer broadly to all subject matter of the invention and the appended claims. Statements containing these terms should not be understood to limit the subject matter described herein or to limit the meaning or scope of the claims appended hereto. Embodiments of the invention covered herein are defined by the appended claims, not this summary. This summary is a general overview of various aspects of the invention and is provided to introduce a selection of concepts that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter alone. The subject matter should be understood by reference to appropriate portions of the entire specification of the invention, any or all of the drawings, and each claim.
Certain embodiments of the invention include a computer-implemented method. The method may include receiving a message from a first user. The message includes a question. The method may also include receiving a response to the message. The response includes an answer to the question. The method may also include posting the questions and answers to a device of the second user. The questions and answers are selected for the second user based on one or more characteristics of the second user. The method may also include receiving a subsequent request from the second user. Subsequent requests solicit further information about the answer. The method may also include facilitating a communication session between the first user and the second user. The first user provides the further information to the second user.
Certain embodiments of the invention comprise a system. The system may include one or more data processors; and a non-transitory computer-readable storage medium containing instructions that, when executed on the one or more data processors, cause the one or more data processors to perform the methods described above and herein.
Certain embodiments of the present invention include a computer program product, tangibly embodied in a non-transitory machine-readable storage medium, the computer program product including instructions configured to cause data processing apparatus to perform the methods described above and herein.
Drawings
The invention is described with reference to the accompanying drawings:
FIG. 1 shows a block diagram of an embodiment of a network interaction system;
FIG. 2 shows a block diagram of another embodiment of a network interaction system;
3A-3C illustrate block diagrams of other embodiments of network interaction systems including a connection management system;
FIG. 4 illustrates a representation of a protocol stack mapping connecting the operation of components;
FIG. 5 illustrates a multi-device communication switching system according to one embodiment;
FIG. 6 illustrates a block diagram of an embodiment of a connection management system;
FIG. 7 illustrates a block diagram of a network environment for dynamically switching between a robot and a user device during a communication session;
FIG. 8 illustrates a block diagram representing a network environment for dynamically selecting a termination point across multiple channel environments;
FIG. 9 illustrates a block diagram representative of a network environment for enhancing endpoint selection using machine learning techniques;
FIG. 10 shows an example process for routing messages between a robot and a user device during a communication session;
11A-11N are screen shots of a graphical user interface for switching interactions between a robot and a user device during a communication session; and
fig. 12A-12R are screen shots of a graphical user interface for switching between robots during a communication session.
In the drawings, similar components and/or features may have the same reference numerals. In addition, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If only the first reference numeral is used in the specification, the description is applicable to any one of the similar components having the same first reference numeral regardless of the second reference numeral.
Detailed Description
The following description merely provides preferred examples of embodiment(s), and is not intended to limit the scope, applicability, or configuration of the invention. Rather, the ensuing description of the preferred examples of embodiment(s) will provide those skilled in the art with an enabling description for implementing a preferred example of an embodiment. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope as set forth in the appended claims.
FIG. 1 illustrates a block diagram of an embodiment of a network interaction system 100 that implements and supports certain embodiments and features described herein. Some embodiments involve establishing a connection channel between the network device 105 (which may be operated by the user 110) and the terminal device 115 (which may be operated by the proxy 120). In some implementations, the network interaction system 100 can include a client device 130 associated with the client 125.
In some implementations, the user 110 may be an individual browsing a website or accessing an online service provided by the remote server 140. The client 125 may be an entity that provides, operates, or runs a website or online service, or an individual that such entity employs or is assigned by to perform tasks available to the client 125 as described herein. The agent 120 may be an individual, such as a support agent, whose task is to provide support or information to the user 110 about a website or online service. Of the large number of agents, a subset of agents may be appropriate to provide support or information for a particular client 125. The proxy 120 may or may not be associated with the client 125. Each agent may be associated with one or more clients 125. In some non-limiting examples, the user 110 may be an individual shopping at an online store from a personal computing device, the client 125 may be a company selling products online, and the agent 120 may be a representative employed by the company. In various embodiments, the user 110, client 125, and agent 120 may be other individuals or entities.
Although fig. 1 shows only a single network device 105, terminal device 115, and client device 130, the interactive system 100 may include multiple or many (e.g., tens, hundreds, or thousands) of each of one or more of these types of devices. Similarly, although fig. 1 shows only a single user 110, agent 120, and client 125, the interactive system 100 may include multiple or many of each of one or more of such entities. Thus, it may be necessary to determine which terminal device to select for communication with a given network device. To further complicate matters, the remote server 140 may also be configured to receive and respond to select network device communications.
The connection management system 150 can facilitate strategic routing of communications. The communication may include a message having content (e.g., a message defined based on input from an entity, such as typed or spoken input). The communication may further include: additional data, such as data about the sending device (e.g., IP address, account identifier, device type, and/or operating system); a destination address; an identifier of the client; an identifier or online history data of a web page or web page element (e.g., a web page or web page element that is being accessed or otherwise associated with a communication when the communication is generated); time (e.g., time and/or date of day); and/or a destination address. Other information may be included in the communication. In some instances, the connection management system 150 routes the entire communication to another device. In some instances, the connection management system 150 modifies the communication or generates a new communication (e.g., based on the initial communication). The new or modified communication may include at least some (or all) of the additional data (e.g., regarding the sending device, web page, or online history and/or time) of the message (or processed version thereof) and/or other data identified by the connection management system 150 (e.g., account data associated with a particular account identifier or device). The new or modified communication may also include other information.
Part of the strategic routing facilitation can include establishing, updating, and using one or more connection channels between the network device 105 and one or more end devices 115. For example, upon receiving a communication from the network device 105, the connection management system 150 may first estimate to which client (if any) the communication corresponds. After identifying the client, the connection management system 150 may identify the terminal device 115 associated with the client for communicating with the network device 105. In some instances, the identifying may include evaluating a profile of each of a plurality of agents (or experts or representatives), each agent (e.g., agent 120) of the plurality of agents being associated with a terminal device (e.g., terminal device 115). The evaluation may relate to content in the network device message. The identification of terminal device 115 may include, for example, the techniques described in U.S. application No. 12/725,799, filed 3/17/2010, which is incorporated by reference herein in its entirety for all purposes.
In some instances, the connection management system 150 may determine whether any connection channels are established between the network device 105 and end devices associated with the client (or remote server 140) and, if so, whether a series of communications, including the communications, are to be exchanged using such channels.
Upon selecting the terminal device 115 to communicate with the network device 105, the connection management system 150 may establish a connection channel between the network device 105 and the terminal device 115. In some instances, the connection management system 150 may send a message to the selected terminal device 115. The message may request acceptance of the proposed assignment to communicate with network device 105 or identify that such assignment has been generated. The message may include information about network device 105 (e.g., an IP address, a device type, and/or an operating system), information about associated user 110 (e.g., spoken language, duration of time that has interacted with a client, skill level, mood, and/or theme preferences), received communications, code for generating and sending communications to network device 105 (e.g., a clickable hyperlink), and/or instructions for generating and sending communications to network device 105.
In one example, communications between network device 105 and terminal device 115 may be routed through connection management system 150. Such a configuration may allow the connection management system 150 to monitor communication exchanges and detect problems (e.g., problems as defined based on rules), such as no response or extended delay of any device. Further, such a configuration may facilitate selective or complete storage of communications, which may be used later, for example, to assess the quality of communication exchanges and/or to support learning to update or generate routing rules to advance specific post-communication objectives.
In some implementations, the connection management system 150 can monitor the communication exchange in real-time and perform automated actions (e.g., rule-based actions) based on the real-time communication. For example, when the connection management system 150 determines that the communication is related to a particular item (e.g., a product), the connection management system 150 may automatically send an additional message to the terminal device 115 containing additional information about the item (e.g., the number of available items, a link to a supporting document related to the item, or other information about the item or similar items).
In one example, a designated terminal device 115 may communicate with the network device 105 without relaying the communication through the connection management system 150. One or both of the devices 105, 115 may (or may not) report specific communication metrics or content to the connection management system 150 to facilitate communication monitoring and/or data storage.
As described above, the connection management system 150 may route the selected communication to the remote server 140. The remote server 140 may be configured to provide information in a predetermined manner. For example, remote server 140 may access one or more defined text passages, voice recordings, and/or files to be sent in response to the communication. The remote server 140 may select a particular text passage, record, or file based on, for example, an analysis (e.g., semantic or mapping analysis) of the received communication.
The routing and/or other determinations or processing performed at the connection management system 150 may be performed based on rules and/or data defined or provided at least in part by one or more client devices 130. For example, the client device 130 may send a communication identifying the agent's priority, terminal device type, and/or topic/skill matching. As another example, the client device 130 may identify one or more weights to apply to various variables that may affect route determination (e.g., language compatibility, predicted response time, device type and capabilities, and/or end device load balancing). It will be appreciated that which end devices and/or agents are to be associated with a client may be dynamic. Communications from client device 130 and/or terminal device 115 may provide information indicating that a given terminal device and/or agent is to be added or removed as one associated with the client. For example, the client device 130 may send a communication with an IP address and an indication of whether the terminal device with the address is to be added to or removed from a list identifying terminal devices associated with the client.
Each communication (e.g., communication between devices and the connection management system 150, communication between the remote server 140 and the connection management system 150, or communication between the remote server 140 and devices) may be over one or more networks 170. The one or more networks 170 may include any combination of open or closed networks. Examples of suitable networks include the internet, a personal area network, a Local Area Network (LAN), a Wide Area Network (WAN), or a Wireless Local Area Network (WLAN). Other networks may also be suitable. The one or more networks 170 may be fully incorporated within, or may include an intranet, an extranet, or a combination thereof. In some instances, a network of the one or more networks 170 includes a short-range communication channel, such as a bluetooth or bluetooth low energy channel. In one embodiment, communication between two or more systems and/or devices may be accomplished through a secure communication protocol such as Secure Sockets Layer (SSL) or Transport Layer Security (TLS). Further, data and/or transaction details may be encrypted based on any convenient, known, or to be developed means, such as, but not limited to, Data Encryption Standard (DES), triple DES, Rivest-Shamir-Adleman encryption (RSA), Blowfish encryption, Advanced Encryption Standard (AES), CAST-128, CAST-256, Decorrelated Fast Cipher (DFC), micro encryption algorithm (TEA), eXtended TEA (XTEA), correction blocks TEA (XXTEA), and/or RC5, and the like.
For example, network device 105, terminal device 115, and/or client device 130 may include a portable electronic device (e.g., a smartphone, a tablet, a portable computer, or a smart wearable device) or a non-portable electronic device (e.g., one or more desktop computers, smart appliances, servers, and/or processors). The connection management system 150 may be provided separately from the network devices, the terminal devices, and the client devices, or may be part of one or more of such devices (e.g., by installing an application on the device). The remote server 140 may be provided separately from each device and the connection management system 150 and/or may be part of another device or system. While each device, server, and system in fig. 1 is shown as a single device, it should be understood that multiple devices may alternatively be used. For example, a group of network devices may be used to transmit various communications from a single user, or remote server 140 may include a server stack.
A software agent or application may be installed and/or executable on the depicted device, system, or server. In one example, a software agent or application is configured such that the various depicted elements can function in a complementary manner. For example, a software agent on the device may be configured to collect and send data regarding device usage to a separate connection management system, and a software application on the separate connection management system may be configured to receive and process the data.
Fig. 2 shows a block diagram of a network interaction system 200 of another embodiment. In general, fig. 2 illustrates various components configured and arranged to enable the network device 205 to communicate with one or more terminal devices 215. The depicted example includes nine terminal devices 215 included in three local area networks 235.
In some instances, the communication from the network device 205 includes destination data (e.g., a destination IP address) that indicates, at least in part or in whole, which end device is to receive the communication. The network interaction system 200 may include one or more inter-network connection components 240 and/or one or more intra-network connection components 255 that may process destination data and facilitate appropriate routing.
Each inter-network connection component 245 may be connected to multiple networks 235 and may have multiple network cards installed (e.g., each card connected to a different network). For example, internetworking component 245 may be connected to a wide area network 270 (e.g., the internet) and one or more local area networks 235. In the depicted example, to transmit a communication from network device 205 to any terminal device, in the depicted system, the communication must be handled by a plurality of inter-network connection components 245.
When inter-network connection component 245 receives a communication (or a set of packets corresponding to the communication), inter-network connection component 245 may determine at least a portion of a route to deliver the communication to a network associated with the destination. The route may be determined using, for example, a routing table (e.g., stored at a router) that may include one or more predefined routes generated based on an incoming message (e.g., from another router or another device), or learned.
Examples of internetworking components 245 include routers 260 and gateways 265. The inter-network connection component 245 (e.g., gateway 265) may be configured to translate between network systems or protocols. For example, the gateway 265 may facilitate communication between a transmission control protocol/internet protocol (TCP/IP) device and an internet packet exchange/serial packet exchange (IPX/SPX) device.
Further routing may still need to be performed after the communication is received at local network 235. Such intra-network routing may be performed by an intra-network connection component 255, such as a switch 280 or a hub 285. Each intra-network connection component 255 may be connected (e.g., wirelessly or by wire, such as through an ethernet cable) to a plurality of end devices 215. Hub 285 may be configured to repeat all received communications to each device to which it is connected. Each terminal device may then evaluate each communication to determine whether the terminal device is the destination device or whether the communication is to be ignored. The switch 280 may be configured to selectively direct communications only to the destination terminal device.
In some instances, local area network 235 may be divided into multiple segments, each of which may be associated with a separate firewall, security rules, and network protocol. An intra-network connection component 255 may be provided in each of one, more, or all of the segments to facilitate intra-segment routing. Bridge 280 may be configured to route communications across segment 275.
In order to properly route communications across or within a network, various components analyze the destination data in the communications. For example, such data may indicate which network the communication is to be routed to, which device within the network the communication is to be routed to, or which communications the end device is to process (and ignore). However, in some instances it is not immediately clear which terminal device (or even which network) is to participate in the communication from the network device.
To illustrate, a group of terminal devices may be configured to provide similar types of responsive communications. Thus, it is contemplated that queries in a communication from a network device may be responded to in a similar manner regardless of which network device the communication is routed to. Although this assumption may be correct at a high level, various details regarding the end devices may result in particular routes being advantageous over other routes. For example, the terminal devices in the set may differ from each other with respect to (for example) the following: which communication channels are supported, geographic and/or network proximity to the network device, and/or characteristics of the associated agent (e.g., knowledge base, experience, spoken language, availability, general character or emotion, etc.). Thus, selecting a route may facilitate a faster response that is more accurate and/or fully responsive to network device communications. Complexly, static routes that map network devices to end devices may not account for changes in communication subject matter, channel types, proxy availability, etc.
Fig. 3A-3C show block diagrams of network interaction systems 300A-300C including a connection management system according to other embodiments. For simplicity, each of the depicted systems 300A-300C shows only two local area networks 235, but it is understood that embodiments may be extended to extend the number of local area networks. Each of the systems 300A-300C includes a connection management system 350, which connection management system 350 can identify which end devices are to communicate with the network device 205, can establish and manage (e.g., maintain or close) connection channels, can determine whether and when to reroute communications in an exchange, and the like. Thus, the connection management system 350 may be configured to dynamically and in real-time evaluate communications, agent availability, capabilities of end devices or agents, etc., to affect routing determinations.
In fig. 3A, a connection management system 350 is associated with each of network device 205 and remote server 340 (e.g., connection management system 350a is associated with network device 205 and connection management system 350b is associated with remote server 340). For example, the connection management system 350a and/or the connection management system 350b may be installed or stored as applications on each of the network device 205 and the remote server 340, respectively. Execution of the application(s) may, for example, facilitate communication between the network device 205 and the remote server 340 to identify the terminal device 215 selected to participate in a communication exchange with the network device 205. Identification may be based on one or more factors disclosed herein (e.g., availability, degree of match between subject/detail level of communication and knowledge base of agent or terminal device, predicted delay, channel type availability, etc.).
The client device 330 may provide client data indicating how routing determinations are to be made. For example, such data may include: an indication or constraint or deviation on how a particular feature is weighted or matched (e.g., related to load balancing or predicted response delay). The client data may also include specifications regarding when to establish (or close) a communication channel or when to reroute communications to a different network device. The client data may be used to define various client-specific rules, such as rules for communication routing, and the like.
The connection management system 350b running on the remote server 340 may monitor various metrics related to the terminal device (e.g., related to a given client), such as which communication channels are supported, geographic and/or network proximity to network devices, communication delay and/or stability with the terminal device, type of terminal device, capabilities of the terminal device, whether the terminal device (or agent) has previously communicated with a given network device (or user), and/or characteristics of an associated agent (e.g., knowledge base, experience, spoken language, availability, general character or emotion, etc.). Thus, the connection management system 350b may be enabled to select routes to facilitate faster responses that more accurately and/or completely respond to network device communications based on the metrics.
In the example depicted in fig. 3A, the communication exchange between network device 205 and remote server 340 may facilitate earlier identification of the destination address. The network device 205 may then use the destination address to direct subsequent communications. For example, the network device 205 may send an initial communication to the remote server 340 (e.g., over one or more inter-network connections and a wide area network), and the remote server 340 may identify one or more corresponding clients. Remote server 340 may then identify a set of end devices associated with the one or more respective clients and collect metrics for those end devices. These metrics may be evaluated (e.g., by remote server 340) to select a terminal device to participate in the communication exchange, and information (e.g., an IP address) relating to the terminal device may be sent to network device 205. In some embodiments, remote server 340 may continuously or periodically collect and evaluate metrics for various end devices and store the evaluation results in a data store. In such an embodiment, upon identifying a set of terminal devices associated with the one or more respective clients, remote server 340 may access the stored evaluation results from the data store and select a terminal device to participate in the communication exchange based on the stored evaluation results.
In fig. 3B, the connection management system 350 may be configured to act as a relay and/or destination address. Thus, for example, a group of network devices 205 may send communications, each identifying the connection management system 350 as a destination. The connection management system 350 can receive individual communications and can monitor a group of terminal devices simultaneously (e.g., to generate metrics for each terminal device). Based on the monitoring and rules, the connection management system 350 may identify the terminal devices 215 to which it may relay the respective communications. According to this embodiment, the terminal device communication may similarly be directed to a consistent destination (e.g., the destination of the connection management system 350) for further relaying, or the terminal device may begin communicating directly with the corresponding network device. These embodiments may facilitate efficient routing and overall communication monitoring.
The embodiment depicted in fig. 3C is similar to the embodiment in fig. 3B. However, in some embodiments, the connection management system 350 connects directly to components within the network (e.g., end devices, intra-network connections, or otherwise).
It should be understood that many variations of fig. 3A-3C are contemplated. For example, the connection management system 350 may be associated with a connection component (e.g., an inter-network connection component 245 or an intra-network connection component 255) such that an application corresponding to the connection management system 350 (or a portion thereof) is installed on the component. For example, the application may be executed independently or by communicating with one or more similar or complementary applications (e.g., applications executing on one or more other components, network devices, or remote servers).
Fig. 4 shows a representation of a protocol stack mapping 400 connecting the operation of components. More specifically, FIG. 4 identifies layers of operation in the Open Systems Interaction (OSI) model corresponding to various connected components.
The OSI model may include a plurality of logical layers 402-414. The layers are arranged in an ordered stack such that each of layers 402 and 412 serves higher layers and each of layers 404 and 414 is served by lower layers. The OSI model includes a physical layer 402. The physical layer 402 may define parametric physical communications (e.g., electrical, optical, or electromagnetic communications). The physical layer 402 also defines connection management protocols, such as protocols for establishing and closing connections. The physical layer 402 may also define flow control protocols and transmission modes.
Link layer 404 may manage node-to-node (node-to-node) communications. Link layer 404 may detect and correct errors (e.g., transmission errors in physical layer 402) and manage access permissions. The link layer 404 may include a Medium Access Control (MAC) layer and a Logical Link Control (LLC) layer.
Network layer 406 may coordinate the transmission of data (e.g., having variable length) across nodes in the same network (e.g., as datagrams). Network layer 406 may translate logical network addresses to physical machine addresses.
The transport layer 408 may manage the transmission and reception quality. Transport layer 408 may provide a protocol for transporting data, such as the Transmission Control Protocol (TCP). Transport layer 408 may perform segmentation/reassembly of data packets for transmission and may detect and interpret transmission errors that occur in layers 402 and 406. The session layer 410 may initiate, maintain, and terminate connections between local and remote applications. The session may be used as part of a remote process interaction. Presentation layer 412 may encrypt, decrypt, and format data based on the type of data known to be accepted by an application or network layer.
The application layer 414 may interact with software applications that control or manage communications. Through such applications, the application layer 414 may, for example, identify destinations, local resource status or availability, and/or communication content or formatting. The various layers 402-414 may perform other functions that may be available and suitable.
Intra-network connection components 422 are shown operating in the physical layer 402 and intra-network connection components 424 are shown operating in the link layer 404. More specifically, the hub may operate in the physical layer such that operations may be controlled with respect to the reception and transmission of communications. Hubs have little ability to operate at higher layers because they lack the ability to address communications or filter data. Meanwhile, the switch may operate in the link layer 404 because the switch is able to filter communication frames based on address (e.g., MAC address).
Meanwhile, the internetworking connection components 426, 428 are shown operating on higher layers (e.g., layer 406 and 414). For example, a router may filter communication packets based on an address (e.g., an IP address). The router may forward the packet to a particular port based on the address in order to direct the packet to the appropriate network. The gateway may operate at and above the network layer, performing similar filtering and direction and further conversion of data (e.g., across protocols or architectures).
In various embodiments, the connection management system 450 may interact with and/or operate on one, more, all, or any of the various layers. For example, the connection management system 450 may interact with the hub to dynamically adjust which end devices the hub communicates with. As another example, the connection management system 450 may communicate with a bridge, switch, router, or gateway to influence which end device the component selects as the destination address (e.g., MAC, logical, or physical address). As further examples, connection management system 450 may monitor, control, or direct the segmentation of data packets at transport layer 408, the duration of a session at session layer 410, and/or encryption and/or compression at presentation layer 412. In some embodiments, the connection management system 450 may interact with the various layers by exchanging communications (e.g., sending commands to) a device operating at a particular layer (e.g., a switch operating at the link layer 404), by routing or modifying existing communications in a particular manner (e.g., communications between a network device and a terminal device), and/or by generating new communications containing particular information (e.g., a new destination address) based on the existing communications. Thus, the connection management system 450 may affect communication routing and channel establishment (or maintenance or termination) by interacting with various devices and/or by affecting operations at various protocol stack layers.
Fig. 5 illustrates a multi-device communication switching system 500 according to an embodiment. System 500 includes a network device 505 that is configured to communicate with various types of terminal devices over various types of communication channels.
In the depicted example, network device 505 may transmit communications over a cellular network (e.g., through base station 510). The communication may be routed to the operating network 515. The operating network 515 may include a connection management system 520 that receives communications and identifies which terminal devices will respond to the communications. Such determination may depend on identifying the client to which the communication belongs (e.g., based on content analysis or user input indicative of the client) and determining one or more metrics for each of one or more terminal devices associated with the client. For example, in FIG. 5, each cluster of end devices 530A-530C may correspond to a different client. The terminal devices may be geographically co-located or distributed. The metric may be determined based on stored or learned data and/or real-time monitoring (e.g., availability-based).
The connection management system 520 may communicate with various end devices through one or more routers 525 or other inter-or intra-network connection components. Connection management system 520 can collect, analyze, and/or store data from (or about) communications, terminal device operations, client rules, and/or actions associated with a user (e.g., online activities) at one or more data stores. Such data may affect communication routing.
It is noted that various other devices may also be used to affect communication routing and/or processing. For example, in the depicted example, connection management system 520 is also connected to a web server 540. Accordingly, the connection management system 520 may retrieve data of interest, such as technical project details, and the like.
Network device 505 may also be connected to a network server (e.g., including network server 545). In some instances, communication with such a server provides an initial option to initiate a communication exchange with the connection management system 520. For example, the network device 505 may detect that a communication opportunity is available when a particular web page is visited and such an option may be presented.
One or more elements of the communication system 500 may also be connected to a social networking server 550. The social networking server 550 may aggregate data received from various user devices. Thus, for example, connection management system 520 may be able to estimate general (or user-specific) behavior for a given user or class of users.
Fig. 6 shows a block diagram of an embodiment of a connection management system 600. Message receiver interface 605 may receive a message. In some instances, for example, the message may be received as part of a communication sent by a source device (e.g., a network device or a terminal device) such as a network device or a terminal device (e.g., separately provided from or within the same housing as connection management system 600). In some instances, a communication may be part of a series of communications or a communication exchange, which may include a series of messages or a message exchange being routed between two devices (e.g., a network device and a terminal device). The message or communication exchange may be part of and/or may define an interaction between devices. The communication channels or operational channels may include one or more protocols (e.g., routing protocols, task assignment protocols, and/or addressing protocols) for facilitating routing and communication exchanges between devices.
In some instances, the message may include a message generated based on input received at a local user interface or a remote user interface. For example, the message may include a message generated based on a button or key or a recorded voice signal. In one example, the message comprises an automatically generated message, such as a message generated upon detecting that the network device is rendering a particular application page or web page or has provided a particular input command (e.g., a key sequence). The message may include an instruction or request, such as an instruction or request to initiate a communication exchange.
In some instances, the message may include or be associated with an identifier of the client. For example, the message may explicitly identify the client (or a device associated with the client); the message may include or be associated with a web page or application page associated with the client; the message may include or be associated with a destination address associated with the client; or the message may include or be associated with an identification of an item (e.g., product) or service associated with the client. To illustrate, the network device may present an application page for a particular client, which may provide an option to send communications to the proxy. Upon receiving user input corresponding to a message, a communication may be generated that includes the message and an identifier of a particular client.
Processing engine 610 may process received communications and/or messages. Processing may include, for example, extracting a particular one or more data elements (e.g., a message, a client identifier, a network device identifier, an account identifier, etc.). Processing may include converting a format or communication type (e.g., to be compatible with a particular device type, operating system, communication channel type, protocol, and/or network).
Message evaluation engine 615 may evaluate (e.g., extract or receive) messages. The evaluation may include identifying one or more categories or tags of the message, for example. Examples of categories or tag types may include, for example, topic (topic), mood, complexity, and urgency. The distinction between classifying and labeling messages may be that categories may be restricted (e.g., according to a set of predefined category options) and labels may be opened. Topics may include, for example, technical issues, usage issues, or requests. For example, the categories or tags may be determined based on semantic analysis of the message (e.g., by identifying keywords, sentence structures, repeated words, punctuation, and/or non-crown words), user input (e.g., one or more categories have been selected), and/or statistical information related to the message (e.g., typing speed and/or response delay).
In some instances, the message evaluation engine 615 may determine metrics for the message. Metrics may include, for example, the number of instances (e.g., exclamation, question, and/or period) of a character, word, capital letter, full capital word, or a particular character or punctuation. Metrics may include rates, such as the score of a sentence ending in an exclamation point (or question mark), the score of a full capitalized word, and so forth.
Message evaluation engine 615 may store messages, message metrics, and/or message statistics in message data store 620. Each message may also be stored in association with other data (e.g., metadata), such as data identifying the respective source device, destination device, network device, terminal device, client, one or more categories, one or more phases, and/or statistical information associated with the message. Various components of the connection management system 600 (e.g., the message evaluation engine 615 and/or the interaction management engine 625) may query the message data store 620 to retrieve query response messages, message metrics, and/or message statistics.
The interaction management engine 625 may determine to which device to route the communication and how the receiving and sending devices will communicate. Each of these determinations may depend, for example, on whether a particular network device (or any network device associated with a particular user) has previously communicated with one of a set of terminal devices (e.g., any terminal devices associated with connection management system 600, or any terminal devices associated with one or more particular clients).
In some instances, communication routing may generally be biased toward a given end device when the network device (or other network devices associated with the same user or profile) has previously communicated with the same end device. Other factors that may affect routing may include, for example, whether the end device (or corresponding proxy) is available, and/or the predicted response delay of the end device. These factors may be considered absolutely or relative to similar metrics corresponding to other terminal devices. The rerouting rules (e.g., client-specific or generic rules) may dictate how these factors are evaluated and weighted to determine whether to forego proxy consistency.
When a network device (or other network device associated with the same user or account) has not previously communicated with a given terminal device, selection of a terminal device may be performed based on factors such as: for example, the degree to which the knowledge base of various agents correspond to communication topics, the availability of various agents at a given time and/or channel type, the type and/or capabilities of the end device (e.g., the end device associated with the client). In one example, a rule may identify how to determine sub-parameters for one or more factors such as these and assign a weight to each parameter. By combining (e.g., summing) the weighted sub-parameters, the parameters for each agent can be determined. The selection of the terminal device can then be made by comparing the parameters of the terminal device.
With respect to determining how the devices will communicate, the interaction management engine 625 may, for example, determine whether the end device is responding to the communication by, for example, an SMS message, a voice call, a video communication, etc. The communication type may be selected based on, for example: a communication type priority list (e.g., defined at least in part by a client or user); the type of communication previously received from the network device (e.g., to facilitate consistency), the complexity of the received message, the capabilities of the network device, and/or the availability of one or more terminal devices. It is apparent that some communication types will result in real-time communications (e.g., where a fast message response is desired), while other communication types may result in asynchronous communications (e.g., where a delay between messages (e.g., minutes or hours) is acceptable).
In addition, the interaction management engine 625 may determine whether a continuous channel between two devices should be established, used, or terminated. A continuous channel may be constructed to facilitate routing of future communications from the network device to a designated end device. Such a bias may even persist across a series of messages. In some instances, a representation of the continuous channel (e.g., an identifying agent) may be included in the presentation to be presented on the network device. In this manner, the user may understand that the communication is to be routed consistently to improve efficiency.
In one example, parameters may be generated using one or more factors and rules described herein (e.g., including a weight for each of the one or more factors) to determine connection parameters for a given network device and terminal device. The parameter may relate to an overall degree of match or a degree of match specific to a given communication or series of communications. Thus, for example, the parameter may reflect the degree to which a given terminal device is predicted to be suitable for responding to network device communications. In some instances, parameter analysis may be used to identify each end device to which a given communication is to be routed and whether to establish, use, or terminate a connection channel. When parameter analysis is used to process both routing decisions and channel decisions, the parameters associated with each decision may be determined in the same, similar, or different ways.
Thus, for example, it will be appreciated that different factors may be considered depending on whether the parameters are used to predict the strength of a long-term match or to respond to a particular message query. For example, in the former instance, consideration of the overall schedule and time region may be important, while in the latter instance immediate availability may be weighted more heavily. The parameters may be determined for a single network device/terminal device combination, or multiple parameters may be determined, each parameter characterizing a degree of match between a given network device and a different terminal device.
To illustrate, a set of three end devices associated with a client for potential communication routing may be evaluated. Parameters relating to the degree of match of a particular communication may be generated for each terminal device. Each of the first two terminal devices may have previously communicated with the network device that has transmitted the communication. The input from the network device may have indicated positive feedback associated with the interaction of the communication(s) with the first device. Thus, the past interaction sub-parameters (as calculated from the rules) of the first device, the second device and the third device may be 10, 5 and 0, respectively. (negative feedback input may result in negative sub-parameters.) it may be determined that only the third terminal device is available. It may be predicted that the second terminal device will be available for response within 15 minutes, but the first terminal device will not be available for response until the next day. Thus, the fast response subparameters of the first device, the second device, and the third device may be 1, 3, and 10. Finally, the degree to which the agent (associated with the terminal device) is aware of the subject matter in the communication can be estimated. It may be determined that the agent associated with the third terminal device is more aware than the agents associated with the other two devices, resulting in sub-parameters of 3, 4 and 9. In this example, the rule does not include a weighting or normalization parameter (although, in other examples, the rule may include a weighting or normalization parameter), resulting in parameters of 14, 11, and 19. Thus, the rule may indicate that the message is to be routed to the device with the highest parameters, i.e. the third terminal device. If the routing to a particular end device is unsuccessful, the message may be routed to the device with the next highest parameter, and so on.
The parameter may be compared to one or more absolute or relative thresholds. For example, parameters of a group of terminal devices may be compared to each other to determine a high parameter, thereby selecting the terminal device to which communications may be routed. As another example, a parameter (e.g., a high parameter) may be compared to one or more absolute thresholds to determine whether to establish a continuous channel with the terminal device. The overall threshold for establishing a continuous channel may (but need not) be higher than the threshold for consistently routing communications in a given series of messages. This difference between the overall threshold and the threshold used to determine whether to route communications consistently may be because a strong match is important in the context of a continuous channel given the expanded utility of the channel. In some embodiments, the overall threshold for using a continuous channel may (but need not) be lower than the threshold for establishing a continuous channel and/or the threshold for consistently routing communications in a given series of messages.
Interaction management engine 625 may interact with account engine 630 in various contexts. For example, account engine 630 may look up an identifier of a network device or terminal device in account data store 635 to identify an account corresponding to the device. Further, account engine 630 may maintain data regarding previous communication exchanges (e.g., time, other device(s) involved, channel type, problem resolution phase, topic(s), and/or associated client identifier), connection channels (e.g., for each of one or more clients, indicating whether any channels exist, end devices associated with each channel, time of setup, frequency of use, date last used, any channel constraints, and/or supported communication types), user or agent preferences or constraints (e.g., regarding end device selection, response delay, end device consistency, agent expertise, and/or communication type preferences or constraints), and/or user or agent characteristics (e.g., age, spoken or preferred language (s)), geographic location, interests, etc.).
Further, interaction management engine 625 may alert account engine 630 of various connection-channel (connection-channel) actions so that account data store 635 may be updated to reflect the current channel data. For example, upon establishing the channel, the interaction management engine 625 may notify the account engine 630 of the establishment and identify one or more of a network device, a terminal device, an account, and a client. Account engine 635 may (in some instances) then notify the user of the existence of the channel so that the user may be aware that proxy consistency is being used.
The interaction management engine 625 may also interact with a client mapping engine 640, which the client mapping engine 640 may map communications to one or more clients (and/or associated brands (brands)). In some instances, the communication received from the network device itself includes an identifier corresponding to the client (e.g., an identifier of the client, web page, or application page). The identifier may be included as part of the message (e.g., as detectable by the client mapping engine 640) or as other data in the communication containing the message. The client mapping engine 640 may then look up the identifier in the client data store 645 to retrieve additional data about the client and/or the identifier of the client.
In some instances, the message may not specifically correspond to any client. For example, the message may include a general query. The client mapping engine 640 may, for example, perform semantic analysis on the message, identify one or more keywords, and identify one or more clients associated with the keyword(s). In some instances, a single client is identified. In some instances, multiple clients are identified. The identity of each client may then be presented by the network device so that the user may select the client with which to communicate (e.g., via the associated terminal device).
The client data store 645 may include an identification of one or more terminal devices (and/or agents) associated with the client. The end routing engine 650 may retrieve or collect data related to each of one, more or all such end devices (and/or agents) in order to affect routing determinations. For example, the terminal routing engine 650 can maintain a terminal data store 655, and the terminal data store 655 can store information such as the device type of the terminal device, operating system, communication-type (communication-type) capabilities, installed application attachments, geographic location, and/or identifiers (e.g., IP addresses). Some information may be dynamically updated. The information indicating whether the terminal device is available may be dynamically updated, for example, based on communications from the terminal device (e.g., identifying whether the device is in a sleep state, turned off or on, inactive or active, or whether input has been received within a period of time), communications routing (e.g., indicating whether the terminal device is engaged in or assigned as part of a communications exchange), or communications from a network device or terminal device indicating that a communications exchange has ended or begun.
It should be understood that, in various contexts, participating in one or more communication exchanges does not necessarily mean that the terminal device is unavailable to participate in another communication exchange. Various factors such as the type of communication (e.g., message), the target response time of the client identification or the user identification, and/or the system load (e.g., prevalent or on the user) may affect how much the end device may participate in the exchange.
When the interaction management engine 625 has identified an end device participating in a communication exchange or connection channel, the interaction management engine 625 may notify the end routing engine 650, which the end routing engine 650 may retrieve from the end data store 655 any relevant data about the end device, such as destination address (e.g., IP address), device type, protocol, etc. Processing engine 610 may then (in some instances) modify the communication containing the message or generate a new communication (containing the message) to have a particular format, comply with a particular protocol, and so on. In some instances, the new or modified message may include additional data, such as account data, message records, and/or client data corresponding to the network device.
The message sender interface 660 may then send the communication to the terminal device. The transmission may include, for example, wired or wireless transmission to a device housed within a separate enclosure. The terminal devices may include terminal devices in the same or different networks (e.g., local area networks) as the connection management system 600. Thus, sending the communication to the terminal device may include sending the communication to an inter-network connection component or an intra-network connection component.
Systems and methods are provided for dynamically switching between a robot and a user device (e.g., operated by a real-time user) during a communication session with a network device (e.g., operated by a user). In some implementations, the robot may be configured to communicate autonomously with the network device. Further, the robot may be configured for a particular capability. Examples of capabilities may include updating database records, providing updates to a user, providing additional data about a user to an agent, determining a user's intent and routing the user to a destination system based on the intent, predicting or suggesting a response to an agent in communication with a user, upgrading a communication session to include one or more additional robots or agents, and other suitable capabilities. In some implementations, the communication server can automatically and dynamically determine to switch the bot to the user device when the bot is communicating with a network device (e.g., operated by a user) during a communication session (e.g., using a chat-enabled interface). For example, the robot may communicate with the user regarding certain tasks (e.g., updating database records associated with the user), while the terminal device may communicate with the user regarding more difficult tasks (e.g., communicating using a communication channel to resolve a technical issue).
In some implementations, determining whether to switch between the robot and the user device during the communication session may be based on an analysis of one or more characteristics of messages in the communication session. Further, dynamic mood parameters may be generated to represent the mood of a message, conversation, entity, agent, or the like. For example, where the dynamic mood parameter indicates that the user is frustrated with the robot, the system may automatically switch the robot to the user device so that the online agent may communicate with the user. See U.S. serial No. 15/171,525 filed on day 6, 2 of 2016, the disclosure of which is incorporated by reference herein in its entirety for all purposes. In some examples, determining whether to switch between the robot and the user device may be performed without a prompt from the user. This determination may be automatically performed at the communication server based on any number of factors, including characteristics of a current message in a communication session (e.g., chat), characteristics of previous messages sent by the user in previous communication sessions, trajectories of characteristics (e.g., emotions) over multiple messages in a conversation, or additional information associated with the user (e.g., profile information, preference information, and other suitable information associated with the user).
Fig. 7 illustrates a block diagram of a network environment for dynamically switching between a robot and a user device during a communication session. In some implementations, the network environment 700 may include a network device 705, a communication server 710, a user device 715, and a bot 720. The communication server 710 may be a server having one or more processors and at least one storage device, and may be configured to perform the methods and techniques described herein. For example, the communication server 710 may manage communication sessions between a network device (e.g., operated by a user) and a terminal device (e.g., operated by a proxy). The communication server 710 may establish a communication channel between the network device 705 and the user device 715 such that the network device 705 and the user device 715 may communicate with each other during a communication session. The communication session may facilitate the exchange of one or more messages between network device 705 and user device 715. The present invention is not limited to the exchange of messages during a communication session. The communication session may facilitate other forms of communication such as video communication (e.g., video feeds) and audio communication (e.g., voice over IP connections).
In some implementations, the communication server 710 can establish a communication channel between the network device 705 and the robot 720. The bot 720 may be code that, when executed, is configured to autonomously communicate with the network device 705. For example, bot 720 may be a bot that automatically generates messages to initiate conversations with users associated with network device 705 and/or automatically responds to messages from network device 705. Further, the communication server 710 may be associated with a platform. A client (e.g., a system external to the platform) may use the platform to deploy the robot in its internal communication system. In some examples, clients may use their own robots in the platform, which enables the clients to implement the methods and techniques described herein into their internal communication systems.
In some implementations, the robot may be defined by one or more sources. For example, the data store 730 may store code representing a robot defined (e.g., created or encoded) by a client of the communication server. For example, a client that has defined its own robot may load the robot into the communication server 710. The client-defined robots may be stored in the client robot data store 730. The data store 740 may store code representing robots defined by third party systems. For example, the third party system may include an independent software vendor. The data store 750 may store code representing a robot defined by an entity associated with the communication server 710. For example, a robot encoded by an entity may be loaded into the communication server 710 or may be accessed by the communication server 710 so that the robot may be executed and communicate autonomously with the user. In some implementations, communication server 710 may access robots stored in data storage 730, data storage 740, and/or data storage 750 using cloud network 760. Cloud network 760 may be any network and may include: open networks such as the internet, personal area networks, Local Area Networks (LANs), Campus Area Networks (CANs), Metropolitan Area Networks (MANs), Wide Area Networks (WANs), Wireless Local Area Networks (WLANs); private networks such as intranets, extranets or other backbones.
Further, the user device 715 may be operated by a user. The user device 715 may be any portable device (e.g., a mobile phone, a tablet, a laptop) or non-portable device (e.g., an electronic kiosk, a desktop computer, etc.). In some instances, the proxy may access the website using a browser running on the user device 715. For example, the website may include a console or platform running on a browser of the user device 715. The agent may log onto the platform using a browser. The identity of the agent may be verified using one or more login credentials (e.g., username, password, etc.) before the agent is allowed to access the console or a Web application contained in the console. Examples of a console may include a platform containing one or more APIs (application programming interfaces), a control panel containing one or more functions, a Web-hosted application running on a Web browser that is capable of establishing or joining a communication session (without downloading plug-ins), and other suitable interfaces. In addition, the console may include one or more network applications or functions that may be executed. The Web application or function may be executed at a browser, communication server 710, local server, remote server, or other suitable computing device. For example, a Web application, native application, or function may enable an agent to communicate with a user and view communications between the user and one or more bots.
In some implementations, the communication server 710 may be configured to dynamically switch between the bot 720 and the user device 715 during a particular communication session. For example, communication server 710 may facilitate a communication session between network device 705 and robot 720. Bot 720 may be configured to autonomously communicate with network device 705 by exchanging one or more messages with network device 705 during a communication session. The communication server 710 may dynamically determine whether to switch the bot 720 to the user device 715 (or vice versa in some cases) so that the online proxy may communicate with the network device 705 instead of the bot 720. In some implementations, the handover can be performed without prompting from the network device 705 or the user device 715. For example, the handover may be based on message parameters of messages exchanged between network device 705 and robot 720 (e.g., scores representing emotions of a message or a series of messages) without prompting network device 705 to request a terminal device.
In some implementations, the communication server 710 may determine to automatically switch between the robot 720 and the user device 715 based on characteristics of messages exchanged between the robot 720 and the network device 705. In some instances, analyzing the text of the message to determine the characteristic (e.g., message parameter) may include an analysis of a textual or non-textual attribute associated with the message. For example, communication server 710 may extract one or more lines of text included in the message from network device 705. The communication server 710 may identify whether one or more lines of text include an anchor point. Examples of anchors include text strings associated with a polarity (e.g., mood or intent, the word "frustrated" corresponding to a negative or frustrated polarity, the word "happy" corresponding to a positive polarity, etc.). For example, the term "dispute" may be negative for one client, but may be neutral or positive for a second client. In some instances, anchor points may be dynamically determined using supervised machine learning techniques. For example, one or more clustering algorithms may be performed on the stored messages to find patterns in the stored messages. The clustered messages may be further filtered and evaluated to determine anchor points. Further, one or more words near the identified anchor point may be parsed for the amplifier. Examples of amplifiers are terms that increase or decrease the intensity associated with the polarity of the anchor point, such as "true", "not true", "somewhat", and so forth. The characteristics may include, for example, typing speed, the number of special characters used in the message (e.g., exclamation marks, question marks, etc.), semantic analysis of the message (e.g., by identifying keywords, sentence structures, repeated words, punctuation marks, and/or non-articles); user input (e.g., one or more categories have been selected); and/or statistical information related to the message (e.g., response delay).
As a non-limiting example, the message parameter may be a numerical value indicating a high strength of negative polarity (e.g., message parameter 20 in the range of 0-100, with lower numbers representing negative polarity and higher numbers representing positive polarity). An algorithm may be used to calculate the message parameters. For example, the algorithm may be based on supervised machine learning techniques. In another example, if the term "a point" is "disliked" near an anchor point (e.g., as in the sentence "i am somewhat disliked"), the term "a point" may be identified as an enlarged term representing a negative polarity of moderate intensity. In this case, the message parameters may be generated based on the identification of a medium strength of negative polarity. As a non-limiting example, the message parameter may be a value indicating a medium strength of negative polarity (e.g., message parameter 40, not message parameter 20). In some instances, the message parameters may be used to determine a secondary queue to store communications.
In some implementations, the characteristic of the message may be an emotion associated with the message. The message parameter may represent the mood of the message. For example, a message parameter may be a certain value or range of values if the emotion of the message is happy, and another value or range of values if the emotion of the message is angry. The determination of whether to switch between the robot and the terminal device may be based on message parameters that are continuously and automatically updated with each new message received at the communication server 710.
In some implementations, the communication server 710 may recommend or predict a response to a message received from the network device 705. For example, the communication server 710 may include a message recommendation system that may evaluate messages received from the network device 705 and recommend responses to those received messages using a machine learning model. The message recommendation system may display a set of recommended messages on the user device 715 to help the agent communicate with the network device 705.
Fig. 8 illustrates a block diagram representative of a network environment 800 for dynamically selecting a termination point across multiple communication channels. In some implementations, the network environment 800 may include a network device 805, a user device 810, and a communication server 820. Network device 805 may be similar to network device 705 and, thus, the description is omitted herein for the sake of brevity. The user equipment 810 may be similar to the terminal equipment 715 and therefore, for brevity, description is omitted here. The communication server 820 may be similar to the communication server 710 and, therefore, the description is omitted here for the sake of brevity.
The communication server 820 may establish or facilitate the establishment of a communication channel between the network device 805 and the user device 810. As shown in fig. 8, communication server 820 may establish communication channel C840, communication channel C840 enabling network device 805 and user device 810 to exchange one or more messages. By way of non-limiting example, communication channel C840 may be a web chat feature of a website, communication channel B835 may be a chat application running on a mobile device (e.g., a smartphone), and communication channel A830 may be a Voice Over Internet Protocol (VOIP) audio channel that enables an agent to communicate with a user.
The communication server 820 may configure the robot 825 to autonomously communicate with the network device 805. In some implementations, the robot 825 may access and execute one or more protocols that enable the robot 825 to communicate with the network device 805 using the communication channel C840. Continuing with the above non-limiting example, robot 825 can access and execute protocols for communicating through the web chat feature of the website. In this example, the protocol may include an encoding language specific to the network chat feature for exchanging messages using the network chat feature. The protocol may include code that, when executed, converts a message (e.g., a text string or other content) entered by the agent at the terminal device 810 into structured content (e.g., content separated into independent data fields) and maps the structured content to elements of the web chat feature of the website. Upon receiving input at terminal device 810 (e.g., by an agent), bot 825 can convert the structured content into elements of a web chat feature to enable communication of messages using the web chat feature.
In some implementations, the robot 825 may also be configured to communicate with the network device 805 using a communication channel B835. Communication channel B835 may be a different communication channel than communication channel C840. Further, communication channel B835 may require different elements to facilitate communication than required for communication channel C840. Bot 825 may be configured to convert the structured content into elements of communication channel B835. Continuing with the above non-limiting example, communication channel B835 may be an in-app chat feature of a native application running on a smartphone. To facilitate communication using communication channel B835, one or more elements may be required. For example, FACEBOOK instant MESSENGER (FACEBOOK MESSENGER) may be a native application running on a smartphone. In this example, the one or more elements of FACEBOOK MESSENGER may be FACEBOOK-specific templates required to facilitate communications using FACEBOOK MESSENGER. The protocol that enables the robot 825 to communicate using communication channel B835 may map the structured content to a template of the FACEBOOK MESSENGER native application for sending the structured content as a message in the FACEBOOK MESSENGER application.
In some examples, a mobile application (e.g., a mobile native application) may include executable code (stored in the mobile device or on one or more external servers) that may be executed using an operating system of a network device (e.g., a smartphone). In some examples, the mobile application may comprise a hybrid mobile application that is composed of native User Interface (UI) components (generated and stored on the mobile device), but written in an interpreted language (e.g., using a Web-based encoding language). The present invention is not limited to mobile native applications or hybrid applications, and thus any type of mobile application may be used in the methods described herein.
In some implementations, the robot 825 may also be configured to communicate with the network device 805 using communication channel a 830. Communication channel A835 may be a different communication channel than communication channel C840 and communication channel B835. Further, communication channel A830 may require different elements to facilitate communication than are required for communication channel C840 and communication channel B835. Bot 825 may be configured to convert the structured content into elements of communication channel a 830. Continuing with the above non-limiting example, communication channel A830 may be a VOIP audio communication link between the network device 805 and the user device 810. One or more elements may be needed to facilitate communications using communication channel a 830. The protocol may include a mapping of structured content to elements associated with communication channel a 830.
In some implementations, the communication server 820 can be configured to dynamically, autonomously, and/or automatically transfer communication sessions between different communication channels so that the robot 825 can continuously communicate with the network device 805 regardless of the communication channel. For example, the network device 805 may communicate with the user device 810 using the first communication channel 845 (i.e., communication channel C840). Network device 805 may send a message indicating that a user operating network device 805 intends to change the communication channel currently being used for the communication session. For example, the network device 805 may indicate that the second communication channel 850 is a target communication channel for continuing the communication session with the user device 810. The robot 825 may automatically detect an indication that the communication channel should change from the first communication channel 845 to the second communication channel 850. For example, the robot 825 may continuously evaluate messages exchanged during the communication session to detect that the communication channel should be changed. Upon detecting an indication that the communication channel should be changed, the communication server may identify a user identifier associated with the network device 805. For example, the user data database 815 may store user identifiers for various users. The user identifier may be a text string and/or a number string that uniquely identifies the network device. If at any given time, the communication server 820 determines that the same user identifier is associated with both active communication channels, the communication server 820 may recognize that the network device is requesting to continue the communication session, but changes the communication channel.
The communication server 820 may be configured to support continuity between different communication channels. For example, the robot 825 may automatically continue the communication session with the network device 805 using the target communication channel (e.g., the second communication channel 850), but using the second communication channel 850 instead of the first communication channel 845. In some implementations, the robot 825 can automatically send a message to the network device 805 using the second communication channel 850. Sending a message to network device 805 may indicate to network device 805 that the transfer of the communication channel is complete. In some implementations, the communication server 820 can automatically detect that the communication channel has changed from the first communication channel 845 to the second communication channel 850. For example, the communication server 820 may identify a user identifier associated with the network device 805 when the network device 805 is communicating with the robot 825 using the first communication channel 845. If the network device 805 begins using the second communication channel 850 (e.g., no intent to change communication channel is indicated during the communication session), the communication server 820 may automatically detect that the user identifier of the network device 805 is currently associated with two active communication channels (e.g., the first communication channel 845 and the second communication channel 850). The communication server 820 may detect that the first communication channel 845 is associated with a recent history of messages (e.g., messages sent or exchanged within the last five minutes) and that the second communication channel 850 is not associated with a recent history of messages (e.g., within the last few minutes). Thus, the communication server 820 can determine that the network device 805 is requesting a transfer of the communication session from the first communication channel 845 to the second communication channel 850. The communication server 820 may effect this transfer by accessing a protocol associated with the second communication channel 850 and using the accessed protocol to execute the robot 825 to enable the robot 825 or the user device 810 to communicate with the network device 805 using the second communication channel 850 instead of using the first communication channel 845.
In some implementations, one or more machine learning techniques may be used to identify patterns of communication channel usage by the network device 805. For example, the usage of the communication channel by the network device 805 may be tracked and recorded (and stored as historical data). Machine learning techniques may be applied to the historical data to identify which communication channel the network device 805 is most likely to use when communicating with a particular entity (e.g., a robot, company, terminal device, agent, etc.). When initiating a communication from the user device 810 (or the robot 825 or any other terminal device) to the network device 805, the communication server 820 may establish a communication channel (based on the results of machine learning techniques) of the type most likely to be used by the network device 805. When the network device 805 begins to use a different communication channel more frequently, the communication server 820 may identify the trend of change and initiate a communication session using the most common or most frequently used communication channel.
Fig. 9 illustrates a block diagram that represents a network environment 900 for enhancing endpoint selection using machine learning techniques. The network environment 900 may include network devices 905 (operated by users), communication servers 910, robots 915, and user devices 920. The communication server 910 may facilitate establishment of a communication channel that enables the network device 905 to communicate with at least one robot 915 and the terminal device 920.
Communication server 910 may include an intelligent routing system 925, a message recommendation system 930, and a message data store 935. Each of intelligent routing system 925 and message recommendation system 930 may include one or more computing devices having processors and memory that execute instructions to perform certain operations. In some implementations, intelligent routing system 925 may be a robot configured to intelligently route communications received from network devices to appropriate destinations. The intelligent routing system 925 may include one or more processors configured to execute code that intelligently routes messages using one or more machine learning techniques or artificial intelligence techniques. In some implementations, the intelligent routing system 925 can perform one or more machine learning techniques to train a model that predicts a destination associated with a message received from the network device 905.
As a non-limiting example, the intelligent routing system 925 may receive messages from the network device 905 over a communication channel established or facilitated by the communication server 910 (e.g., a native application configured to enable users to communicate with each other across various communication devices). The intelligent routing system 925 may evaluate incoming messages according to some embodiments described above. For example, intelligent routing system 925 may use a trained machine learning model to evaluate content (e.g., text, audio clips, images, emoticons, or other suitable content) contained in the received message. The content of the message may be input into a machine learning model to generate a predicted destination (e.g., a particular terminal device or robot). The machine learning model may be continuously trained based on the feedback signal 940 received from the network device 905. In some implementations, intelligent routing system 925 may request confirmation of the predicted destination from network device 905. As a non-limiting example, the intelligent routing system 925 can evaluate the message using machine learning techniques, and the evaluation result can include a conclusion that the robot 915 is the destination of the message. To acknowledge, intelligent routing system 925 may automatically request feedback signal 940. For example, the feedback signal 940 can include a request to the network device 905 to confirm whether the robot 915 is the correct destination for the message (e.g., "is technical support the correct destination. If the network device 905 sends a confirmation that the bot 915 is the correct destination (e.g., the destination expected by the user operating the network device 905), the intelligent routing system 925 can train a machine learning model to predict that future messages including identical or similar content (e.g., a similarity threshold, such as a 10% difference in content) to the received message will be routed to the bot 915. However, if the intelligent routing system 925 receives a feedback signal 940 indicating that the robot 915 is not the correct or intended destination of the received message, but that the user device 920 is the correct or intended destination, the intelligent routing system 925 can train the machine learning model: future messages that include identical or similar content to the received message will be routed to the user device 920 (rather than the bot 915). In some implementations, the intelligent routing system 925 may not immediately update or train the machine learning model to route future messages to the user device 920, but rather the intelligent routing system 925 may wait for a threshold number of incorrect routes to the robot 915 and then route all future messages to the terminal device 920 that have exactly the same or similar content as the received message. As a non-limiting example, the intelligent routing system 925 may begin routing future messages (originally predicted to be routed to the robot 915) to the user device 920 instead of the robot 915 after the network device sends five instances of a feedback signal indicating that the robot 915 is not the correct or intended destination.
In some implementations, intelligent routing system 925 may select where to route a given message based on the bids received to handle a particular request in the message. Intelligent routing system 925 may broadcast the intent to different services and determine who wants to bid on processing the request. Bidders may respond with their confidence level of successfully processing the request and plan to perform the processing of the request. Intelligent routing system 925 may evaluate all responses from bidders and determine which bidder to use for a given message based on machine learning strategies.
Message data store 935 may store some (e.g., but not all) or all of the messages received in the past from one or more network devices. Additionally, the message data store 935 may also store some or all of the messages sent by the terminal device or bot during a previous communication session with the network device. The message data store 935 may also store some or all of the messages sent by the network device to the robot during the communication session. Additionally, the message data store 935 may store some or all of the messages sent by the robot to the network device during the communication session. In some implementations, the message data store 935 may be a database of all messages processed by the communication server 910 (e.g., sent or received by the communication server 910).
The message recommendation system 930 may analyze a database of messages stored at the message data store 935. The database of messages in the message data store 935 may include one or more questions & answers (queries-and-answers), queries & responses (query-and-responses), and other collections of communications between users and robots, agents, or other terminals. The communication set may also be associated with a rating or evaluation of successful communications with the user. In some implementations, the message recommendation system 930 may solicit questions & answers from users identified as having expertise with the subject matter of the questions and answers. The message recommendation system 930 may also provide and present the selected question & answer set to the user of the network device 905. Information regarding the selection of a particular set of questions & answers by the user of the network device 905 may be tracked in the message data store 935 and used by the intelligent routing system 925 to connect the network device 905 to the user device 920 of the expert associated with the selected question & answer. The success or failure of the interaction between the network device 906 and the user device 920 (as indicated by the assigned score or observed user satisfaction indicator) may be further stored in the message data store 935 and subsequently used to improve subsequent routing decisions. For example, successful interaction with an expert of the user device 920 may be used to route subsequent conversations that are more related to the subject matter of the question & answer.
In some implementations, the message recommendation system 930 can evaluate messages stored at the message data store 935 using one or more machine learning algorithms or artificial intelligence algorithms. For example, message recommendation system 930 may perform one or more clustering algorithms, such as K-means clustering, mean-shift clustering, density-based application space clustering with noise (DBSCAN) clustering, expectation-maximization (EM) clustering using Gaussian Mixture Model (GMM), and other suitable machine learning algorithms, on a database of messages stored in message data store 935. In some implementations, a Recurrent Neural Network (RNN) or a Convolutional Neural Network (CNN) may be used to predict the response message to assist the agent. In some implementations, the message recommendation system 930 can evaluate all previous messages using a Support Vector Machine (SVM), supervised, semi-supervised, integrated techniques, or unsupervised machine learning techniques to predict a response to an incoming message received from a network device during a communication session. For example, the message recommendation system 930 may evaluate the content of a message received from a network device (or a message received from a robot or terminal device at the communication server 910) and compare the evaluation results to one or more clusters of previous messages stored in the message data store 935. Once the clusters are identified, the message recommendation system 930 may identify the most relevant response message based on a confidence threshold. For example, an incoming message (e.g., a message received at the communication server 910 from the network device 905) may correspond to a technical issue based on the content of the incoming message. The message recommendation system 930 may identify that the incoming message corresponds to a technical issue based on an evaluation (e.g., a text evaluation) of the content of the incoming message. The message recommendation system 930 may access the message data store 935 to identify message clusters associated with technical issues. The message recommendation system 930 may select one or more response messages (and associated termination points) in the message cluster based on the confidence threshold. For example, an expert in the technical problem may be identified as having successfully solved a similar problem in the past, and based on that identification, may dynamically route it to the network device 905, which network device 905 either communicates or is observed to exhibit an indicator of the technical problem. As a non-limiting example, a confidence algorithm may be executed to generate a confidence score. The confidence score may be a percentage value, where the lower the percentage, the less likely the response is a good prediction for the incoming message, and the higher the percentage, the more likely the response is a good prediction for the incoming message. The minimum confidence threshold may be defined as a measure of certainty or confidence associated with each discovered pattern. Further, examples of confidence algorithms may be Apriori algorithms, similarity algorithms that indicate the similarity between two data sets, and other suitable confidence algorithms.
Fig. 10 illustrates an example process for switching between a robot and a user device during a communication session with a network device. At step 1005, a message is received from a first user. The message may include a question. For example, the message may state "what is the least expensive flight from new york to los angeles? ". However, it is envisaged that the problem may relate to any subject matter, such as news, weather, sports, shopping, technology, entertainment, travel, etc.
At step 1010, a response to the message is received. The response may include an answer to the question. For example, for "what is the least expensive flight to los Angeles? The "answer to the question may be" Great Airways flight $287 from new york to los angeles ". In some implementations, both the message and the response can be received from the first user. In other embodiments, the message and the response may be received from different users.
At step 1015, the question and the answer may be posted to the device of the second user. Questions and answers may be selected for the second user based on one or more characteristics of the second user. For example, a cookie or browsing history information may be accessed for the second user to determine the second user's interests, demographic information, and the like. In the example above, it may be determined that the second user is in new york and is traveling frequently. Thus, the particular question and answer may be posted to the second user's device.
At step 1020, a subsequent request is received from the device of the second user. Subsequent requests may solicit further information about the answer. In the example above, a subsequent request might ask "when there are flights? ". At step 1025, a communication session between the first user and the second user may be facilitated. The first user may provide the further information to the second user. In the example above, the further information may be "7 am on tuesday".
At step 1030, the session data may be saved as historical data. In addition to communications and information regarding interactions between the first user and the second user, the session data may include questions and answers presented to the first user, a first user selection of one or more questions and answers for viewing, any subsequent requests related to any questions and answers, and ratings or other indicators related to the quality of the match between the users. For example, the second user may give a direct numerical, categorical, or other type of rating, as well as provide comments on the interaction with the first user. In some implementations, the user rating may be inferred from subsequent comments in the conversation or further actions taken (e.g., asking the same question again). Such comments or actions may indicate that the current intent may not have been satisfied yet, and in such cases, the robot may be responsible for asking questions about: the original intent determines whether it may be inaccurate or whether the first user is dissatisfied with the intent and determines a possible reason why it is or is not. Metadata about communications and interactions may also be included in the session data and stored as historical data.
In step 1035, historical data can be used to refine decisions related to users and similar users based on artificial intelligence and machine learning techniques, including decisions regarding matching questions and answers of different users, decisions to route conversations between different users (and agents and robots), and decisions to switch endpoints of conversations. Thus, in an exemplary embodiment, users participating in a conversation with a robot may be identified as likely to be interested in certain topics based on historical data, and thus may be dynamically connected in real-time to one or more different endpoints (e.g., specialized robots, agents, experts, brand representatives) related to such topics. For example, such identification may be made dynamically and in real-time based on metrics or behavior patterns currently exhibited by the user consistent with the session described above with respect to steps 1005-1030. Further, one or more predictions may be dynamically made in real-time for one or more intentions of the user, including intentions of engagement or interaction related to certain topics, services, or functions. Accordingly, responsive actions may also be taken dynamically and in real-time based on the predicted intent(s). Such actions may include different routing or switching decisions associated with the user, who may be dynamically connected to the determined termination point in real time. The determination of the termination point may be based on predictions and real-time data about the user. Thus, over time, the method shown in FIG. 10 not only allows for the identification of areas of expertise between different users, linking expert users to other users who may be interested in such expertise, but may also generate feedback and other data that may be used to inform and improve future decisions.
11A-11N are screen shots of a graphical user interface for switching interactions between a robot and a user device during a communication session. In FIG. 11A, the user opens a dialog box with the system (i.e., the robot). The system may display a plurality of questions. Questions may be selected based on the user's demographic information, browsing history, interests, and the like. In some implementations, the questions can be selected based on time (e.g., most recently submitted questions and answers), popularity, highest rating, and so forth. In fig. 11B-11E, the user scrolls through the available questions being displayed to determine which question to select. In FIG. 11F, the user selects the question he wants to answer. In this example, he selects "which restaurant you like bruecklin best? ". In FIG. 11G, the user answers the question. The user also receives feedback in the form of ratings of the quality of the answers. The rating may be provided by the system or may be solicited from other users viewing the submitted questions and answers.
In fig. 11H, the system asks the user if he has a question to which he wants to provide another answer. In fig. 11I, the user asks "what nice place is in new york? ". The user is solicited for answers and, in FIG. 11J, a preview of the questions and answers is displayed to the user. In FIG. 11K, the user asks the system to issue questions and answers, and the system issues the questions and answers. The system then asserts that another user, Jeff, has subsequent questions related to the issued questions and answers. In FIG. 11L, the system displays the follow-up question and provides a button to open a communication session with Jeff or to decline to talk with Jeff. In fig. 11M, the user decides to open a communication session with Jeff. As shown in fig. 11M, Jeff is able to communicate with the user on the same graphical interface so that no phone numbers or private information is displayed. In FIG. 11N, the user can answer a subsequent question by Jeff, and Jeff closes the dialog. The dialog is then returned to the robot. In FIG. 11N, the user may obtain feedback regarding the usefulness of the conversation or his answers in the form of ratings.
Fig. 12A-12R are screen shots of a graphical user interface for switching between robots during a communication session. Prior to fig. 12A, a number of questions and answers may be displayed for which the user may open a communication session. In fig. 12A, the user requests to open a communication session with Vodafone. The system (i.e., the robot) informs the user how to return to the system after the session with Vodafone is terminated. Fig. 12B shows a user's dialog with Vodafone, where the user may ask a question, e.g., "how did i get down my bill? ". Vodafone can be operated by a separate or the same robot, or by an agent on the terminal equipment. Fig. 12C shows a dialog list on the user device. In FIG. 12D, the user can select the system (i.e., "Maven") and return a dialog with the robot. When the user declares he is back, the system may display further questions and answers that have been received or located since the user opened a dialog with Vodafone. In fig. 12E, the user may ask for more answers if the current answer is insufficient or undesirable. In fig. 12F, the system may display further questions and answers, and the user may rate the displayed questions and answers. The user may further initiate a dialog with the person providing the answer to request further information.
In FIG. 12G, the system opens a communication session with other users and indicates how the requesting user returns to the system. Fig. 12H shows a dialog with other users regarding questions and answers. Fig. 12I illustrates how the system can be used to hire the authors of questions and answers for goods or services. Fig. 12J illustrates an interface for collecting payment information. Fig. 12K shows a timer that adds up the time used by the expert when paying for a period of time. Fig. 12L may return the user to the chat screen to facilitate further conversation.
Fig. 12M shows a list of all dialogs of the user. The user may select the system (i.e., "Maven") to return to a dialog with the system, as shown in fig. 12N. In fig. 12N, the system may display any new and related (or unrelated) questions and answers received when the user leaves the conversation.
In fig. 12O, the user may select different questions and answers to initiate different conversations. A message may be sent to the user from the author of the newly selected question and answer. FIG. 12P shows the dialog opened by the author and the questions and answers exchanged. Fig. 12Q shows a list of all conversations from which the user may select a new conversation or return to the system (i.e., "Maven"). The user may state that he is back to the dialog and the process may continue.
The disclosed methods may be performed using a computing system. An example computing system may include a processor (e.g., a central processing unit), memory, non-volatile memory, and an interface device. The memory may store data and/or one or more sets of code, software, scripts or the like. The components of the computer system may be coupled together by a bus or by some other known or convenient means. The processor may be configured to perform all or a portion of the methods described herein, e.g., by executing code stored in the memory, for example. One or more of the user device or computer, the vendor server or system, or the suspended database updating system may comprise a component of a computing system or a variation of such a system.
The present invention contemplates the computer system taking any suitable physical form, including but not limited to a point of sale system ("POS"). By way of example and not limitation, the computer system may be an embedded computer system, a system on a chip (SOC), a single board computer System (SBC) (e.g., a modular Computer (COM) or modular System (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a grid of computer systems, a mobile phone, a Personal Digital Assistant (PDA), a server, or a combination of two or more of these. Where appropriate, the computer system may include one or more computer systems; are singular or distributed; spanning a plurality of locations; spanning multiple machines; and/or reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. By way of example, and not limitation, one or more computer systems may perform in real-time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more computer systems may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
The processor may be, for example, a conventional microprocessor such as an Intel Pentium (Intel Pentium) microprocessor or a Motorola power PC microprocessor. One skilled in the relevant art will recognize that the terms "machine-readable (storage) medium" or "computer-readable (storage) medium" include any type of device that is accessible by a processor.
The memory may be coupled to the processor by, for example, a bus. By way of example, and not limitation, memory may include Random Access Memory (RAM), such as dynamic RAM (dram) and static RAM (sram). The memory may be local, remote, or distributed.
The bus may also couple the processor to the non-volatile memory and the drive unit. The non-volatile memory is typically a magnetic floppy disk or hard disk, a magneto-optical disk, an optical disk, a Read Only Memory (ROM) such as a CD-ROM, EPROM, or EEPROM, a magnetic or optical card, or another form of storage for a volume of data. During the execution of software in a computer, some of this data is typically written to memory by a direct memory access process. The non-volatile memory may be local, remote, or distributed. Non-volatile memory is optional, as the system can be created using all applicable data available in the memory. A typical computer system will usually include at least a processor, memory, and a device (e.g., a bus) coupling the memory to the processor.
The software may be stored in a non-volatile memory and/or in the drive unit. In fact, for large programs, it may not even be possible to store the entire program in memory. However, it should be understood that in order to run the software, it is moved to a computer readable location suitable for processing, if necessary, and for purposes of illustration, this location is referred to herein as memory. Even if software is moved into memory for execution, the processor may utilize hardware registers to store values associated with the software, as well as local caches, which are ideally used to speed up execution. As used herein, when a software program is referred to as being "embodied in a computer-readable medium", it is assumed that the software program is stored in any known or convenient location (from non-volatile memory to hardware registers). A processor is said to be "configured to execute a program" when at least one value associated with the program is stored in a register readable by the processor.
The bus may also couple the processor to a network interface device. The interface may include one or more of a modem and a network interface. It should be understood that a modem or network interface may be considered part of the computer system. The interface may include an analog modem, an integrated services digital network (ISDN0) modem, a cable modem, a token ring interface, a satellite transmission interface (e.g., "direct PC"), or other interfaces for coupling a computer system to other computer systems. An interface may include one or more input and/or output (I/O) devices. I/O devices may include, for example and without limitation, a keyboard, mouse or other pointing device, disk drive, printer, scanner, and other input and/or output devices, including a display device. By way of example, and not limitation, the display device may include a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), or some other suitable known or convenient display device.
In operation, the computer system may be controlled by operating system software including a file management system (e.g., a disk operating system). One example of operating system software with associated file management system software is Microsoft corporation known as Redmond (Redmond) from Redmond, Washington
Figure BDA0003612151170000391
And its associated file management system. Another example of operating system software and its associated file management system software is LinuxTMAn operating system and its associated file management system. The file management system may be stored in non-volatile storageAnd/or a drive unit, and may cause the processor to perform various actions required by the operating system to input and output data and store the data in memory, including storing files in non-volatile memory and/or a drive unit.
Some portions of the detailed description may be presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, considered to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or "generating" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform some of the example methods. The required structure for a variety of these systems will appear from the description below. Moreover, the techniques are not described with reference to any particular programming language, and thus various examples may be implemented using various programming languages.
In various implementations, the systems operate as standalone devices or may be connected (e.g., networked) to other systems. In a networked deployment, the system may operate in the capacity of a server or a client system in a client-server network environment, or as a peer system in a peer-to-peer (or distributed) network environment.
The system may be a server computer, a client computer, a Personal Computer (PC), a tablet PC, a laptop computer, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, an iPhone, a Blackberry, a processor, a telephone, a Web appliance, a network router, switch or bridge, or any system capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that system.
While the machine-readable medium or machine-readable storage medium is shown as a single medium by way of example, the terms "machine-readable medium" and "machine-readable storage medium" should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The terms "machine-readable medium" and "machine-readable storage medium" shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the system and that cause the system to perform any one or more of the methodologies or modules disclosed herein.
In general, the routines executed to implement the embodiments of the invention, may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as a "computer program". The computer programs typically comprise one or more instructions disposed at various times in various memory and storage devices in the computer, and when read and executed by one or more processing units or processors in the computer, cause the computer to perform operations to perform elements relating to various aspects of the present invention.
Moreover, while examples have been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various examples are capable of being distributed as a program object in a variety of forms, and that the invention applies equally regardless of the particular type of machine or computer-readable media used to actually carry out the distribution.
Further examples of machine-readable storage media, machine-readable media, or computer-readable (storage) media include, but are not limited to: recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., compact disk read Only memory (CD ROM), Digital Versatile Disks (DVD), etc.), among others; and transmission type media such as digital and analog communications links.
In some cases, the operation of the memory device, such as a state change from a binary one to a binary zero (or vice versa), may include, for example, a transformation, such as a physical transformation. For a particular type of memory device, such a physical transformation may include physically transforming an item to a different state or thing. For example, and without limitation, for certain types of memory devices, a change in state may involve the accumulation and storage of charge, or the release of stored charge. Also, in other memory devices, a state change may include a physical change or transformation in magnetic orientation, or a physical change or transformation in molecular structure, such as a change or transformation from crystalline to amorphous or vice versa. The foregoing is not intended to be an exhaustive list of all examples in which a state change of a binary one to a binary zero (or vice versa) in a memory device may include a transformation (e.g., a physical transformation). Rather, the foregoing is intended as an illustrative example.
The storage medium may typically be non-transitory or comprise a non-transitory device. In this context, a non-transitory storage medium may include a tangible device, meaning that the device has a particular physical form, although the device may change its physical state. Thus, for example, non-transitory means that the device is tangible despite such a change in state.
The above description and drawings are illustrative and are not to be construed as limiting the subject matter to the precise forms disclosed. One skilled in the relevant art will appreciate that many modifications and variations are possible in light of the above disclosure. Numerous specific details are described to provide a thorough understanding of the present invention. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description.
As used herein, the terms "connected," "coupled," or any variant thereof, when applied to a module of a system, means any direct or indirect connection or coupling between two or more elements; the connections or couplings between the elements may be physical, logical, or any combination thereof. Further, as used in this application, the words "herein," "above," "below," and words of similar import shall refer to this application as a whole and not to any particular portions of this application. Words in the above detailed description using the singular or plural number may also include the plural or singular number, respectively, where the context permits. The word "or" in reference to a list of two or more items covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, or any combination of the items in the list.
Those skilled in the art will appreciate that the disclosed subject matter may be embodied in other forms and manners not shown below. It is understood that relational terms, if any, such as first, second, top, bottom, and the like may be used solely to distinguish one from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions.
While processes or blocks are presented in a given order, alternative implementations may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, replaced, combined, and/or modified to provide alternative or subcombinations. Each of these processes or blocks may be implemented in a variety of different ways. Further, while processes or blocks are sometimes shown as being performed in series, these processes or blocks may instead be performed in parallel, or may be performed at different times. Moreover, any particular number noted herein is merely an example: alternative implementations may employ different values or ranges.
The teachings of the invention provided herein may be applied to other systems, not necessarily the systems described above. The elements and acts of the various examples described above can be combined to provide further examples.
Any of the above patents and applications, as well as other references, including any references that may be listed in the accompanying documents, are incorporated herein by reference. Aspects of the invention can be modified, if necessary, to employ the systems, functions and concepts of the various references described above to provide yet further examples of the invention.
These and other changes can be made to the invention in light of the above detailed description. While the above description describes certain examples, and describes the best mode contemplated, no matter how detailed the above appears in text, the teachings can be practiced in many ways. The details of the system may vary widely in its implementation details, but are still encompassed by the subject matter disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific implementations disclosed in the specification, unless the above detailed description section explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed implementations, but also all equivalent ways of practicing or implementing the disclosure under the claims.
While certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any number of claim forms. Any claim intended to be treated in accordance with 35u.s.c. § 112(f) will be preceded by the expression "means for … …". Accordingly, applicants reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention.
Within the context of the present invention, the terms used in this specification generally have their ordinary meanings in the art and in the specific context in which each term is used. Certain terms used to describe the invention are discussed above or elsewhere in the specification to provide additional guidance to the practitioner regarding the description of the invention. For convenience, certain terms may be highlighted, such as using capitalization, italics, and/or quotation marks. The use of highlighting does not have any impact on the scope and meaning of the term; in the same context, the scope and meaning of a term is the same, whether or not that term is emphasized. It is to be understood that the same element may be described in more than one way.
Thus, alternative language and synonyms may be used for any one or more of the terms discussed herein, without giving any special meaning to the terms, whether they are elaborated or discussed herein. Synonyms for certain terms are provided. The recitation of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification, including examples of any terms discussed herein, is illustrative only and is not intended to further limit the scope and meaning of the invention or any exemplary terms. Likewise, the invention is not limited to the examples given in this description.
Examples of devices, apparatuses, methods and their related results according to examples of the present invention are given below, without intending to further limit the scope of the invention. It should be noted that titles or subtitles may be used in the examples for the convenience of a reader, but the scope of the invention is not limited in any way. Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. In case of conflict, the present document, including definitions, will control.
Some portions of this specification describe examples of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. When these operations are described functionally, computationally, or logically, they are understood to be implemented by computer programs or equivalent circuits, microcode, or the like. Moreover, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combination thereof.
Any of the steps, operations, or processes described herein may be performed or implemented using one or more hardware or software modules, alone or in combination with other devices. In some examples, the software modules are implemented with a computer program object comprising a computer readable medium containing computer program code executable by a computer processor for performing any or all of the described steps, operations, or processes.
Examples may also relate to an apparatus for performing the operations herein. The apparatus may be specially constructed for the required purposes, and/or it may comprise a general purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory, tangible computer readable storage medium or any type of medium suitable for storing electronic instructions, which may be coupled to a computer system bus. Moreover, any computing system mentioned in this specification may include a single processor or may be an architecture that employs a multi-processor design to increase computing capacity.
Examples may also relate to objects formed by the computing processes described herein. The object may comprise information generated by a computing process, where the information is stored on a non-transitory tangible computer readable storage medium and may comprise any implementation of a computer program object or other combination of data described herein.
The language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the subject matter. Therefore, it is intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the example disclosure is intended to be illustrative, but not limiting, of the scope of the subject matter, which is set forth in the following claims.
In the above description, specific details are given to provide a thorough understanding of the system and various implementations for the components of the contextual connectivity system. However, it will be understood by those of ordinary skill in the art that the above-described implementations may be practiced without these details. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
Additionally, it is noted that the various implementations may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process will terminate when its operations are completed, but may have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a procedure corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.
Client devices, network devices, and other devices may be computing systems that include one or more integrated circuits, input devices, output devices, data storage devices, and/or network interfaces, among others. The integrated circuit may include, for example, one or more processors, volatile memory, and/or non-volatile memory, among others. The input devices may include, for example, a keyboard, a mouse, a keypad, a touch interface, a microphone, a camera, and/or other types of input devices. The output devices may include, for example, a display screen, speakers, a haptic feedback system, a printer, and/or other types of output devices. Data storage devices, such as hard drives or flash memory, may enable computing devices to store data temporarily or permanently. A network interface, such as a wireless or wired interface, may enable the computing device to communicate with a network. Examples of computing devices include desktop computers, laptop computers, server computers, handheld computers, tablets, smart phones, personal digital assistants, digital home assistants, and machines and appliances that have incorporated computing devices.
The term "computer-readable medium" includes, but is not limited to portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instruction(s) and/or data. A computer-readable medium may include a non-transitory medium in which data may be stored and which does not include a carrier wave and/or transitory electrical signals propagating wirelessly or through a wired connection. Examples of non-transitory media may include, but are not limited to, a magnetic disk or tape, an optical storage medium such as a Compact Disc (CD) or Digital Versatile Disc (DVD), a flash memory, a memory, or a memory device. A computer-readable medium may have code and/or machine-executable instructions stored thereon that may represent procedures, functions, subroutines, programs, routines, subroutines, modules, software packages, classes, or any combination of instructions, data structures, or program statements. A code segment may be associated with another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
The various examples discussed above may also be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments (e.g., computer program products) to perform the necessary tasks may be stored in a computer-readable medium or machine-readable storage medium (e.g., a medium for storing the program code or code segments). The processor(s) implemented in the integrated circuit may perform the necessary tasks.
When a component is described as being "configured to" perform certain operations, such configuration may be accomplished, for example, by designing electronic circuitry or other hardware to perform the operations, by programming programmable electronic circuitry (e.g., a microprocessor, or other suitable electronic circuitry) to perform the operations, or any combination thereof.
The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the implementations disclosed herein may be implemented as electronic hardware, computer software, firmware, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The techniques described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices, such as a general purpose computer, a wireless communication device handset, or an integrated circuit device having multiple uses, including applications in wireless communication device handsets and other devices. Any features described as modules or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be realized at least in part by a computer-readable data storage medium comprising program code comprising instructions that, when executed, perform one or more of the methods described above. The computer readable data storage medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may include memory or a data storage medium, such as Random Access Memory (RAM), e.g., Synchronous Dynamic Random Access Memory (SDRAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, a magnetic or optical data storage medium, etc. Additionally or alternatively, the techniques may be realized at least in part by a computer-readable communication medium that carries or communicates program code in the form of instructions or data structures (e.g., propagated signals or waves) and that can be accessed, read, and/or executed by a computer.
The program code may be executed by a processor, which may include one or more processors, such as one or more Digital Signal Processors (DSPs), general purpose microprocessors, Application Specific Integrated Circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Such a processor may be configured to perform any of the techniques described in this disclosure. A general purpose processor may be a microprocessor; but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Thus, the term "processor" as used herein may refer to any of the foregoing structure, any combination of the foregoing structure, or any other structure or means suitable for implementing the techniques described herein. Further, in some aspects, the functionality described herein may be provided within a dedicated software module or hardware module configured to implement the suspended database update system.
The foregoing detailed description of the technology has been presented for purposes of illustration and description. The detailed description is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology, its practical application, and to enable others of ordinary skill in the art to utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claims.

Claims (18)

1. A computer-implemented method, comprising:
receiving one or more responses associated with the issue, wherein the responses are received from one or more client devices;
issuing the question and at least one answer to a device of a user, wherein the question and the at least one answer are selected for the user based on one or more characteristics of the user, the at least one answer being associated with at least one of the client devices;
receiving a subsequent request from the user device, wherein the subsequent request solicits further information about the at least one answer; and
facilitating a communication session between the user device and the at least one client device based on the subsequent request.
2. The method of claim 1, wherein at least one of the question and the response is received from the same client device.
3. The method of claim 1, further comprising: receiving input regarding the issue, the input received from one of the client devices.
4. The method of claim 3, wherein a menu of one or more questions is presented to the client device, and the input comprises a selection from the menu.
5. The method of claim 1, wherein the question is selected further based on one or more predetermined criteria.
6. The method of claim 1, wherein posting the question and the at least one answer comprises generating a graphical interface.
7. The method of claim 6, wherein the graphical interface is initially associated with a communication session between the user device and a robot.
8. The method of claim 6, wherein facilitating the communication session between the user device and the at least one client device comprises switching from a communication session with the bot to a communication session with the at least one client device.
9. The method of claim 8, further comprising: switching back to the communication session with the robot when the communication session with the at least one client device is closed.
10. The method of claim 1, wherein receiving the subsequent request comprises selecting from a menu of subsequent options.
11. The method of claim 1, further comprising: providing a timer that tracks a time of a communication session between the user device and the at least one client device.
12. The method of claim 10, further comprising: determining the payment amount due based on the tracked time.
13. The method of claim 1, further comprising: receiving a rating from the user device, wherein the rating is associated with the at least one client device.
14. The method of claim 1, wherein the communication session is configured such that a type of information associated with the at least one client device is not displayed.
15. The method of claim 1, further comprising: storing information about the communication session in association with historical data.
16. The method of claim 14, further comprising: one or more subsequent communication sessions are initiated based on the historical data.
17. A system, comprising:
a communication interface for communicating over a communication network, wherein the communication interface:
receiving one or more responses associated with the issue, wherein the responses are received from one or more client devices;
issuing the question and at least one answer to a device of a user, wherein the question and the at least one answer are selected for the user based on one or more characteristics of the user, the at least one answer being associated with at least one of the client devices; and
receiving a subsequent request from the user device, wherein the subsequent request solicits further information about the at least one answer; and
a processor that executes instructions stored in memory to facilitate a communication session between the user device and the at least one client device based on the subsequent request.
18. A non-transitory computer readable storage medium having embodied thereon a program executable by a processor to perform a method comprising:
receiving one or more responses associated with the issue, wherein the responses are received from one or more client devices;
issuing the question and at least one answer to a device of a user, wherein the question and the at least one answer are selected for the user based on one or more characteristics of the user, the at least one answer being associated with at least one of the client devices;
receiving a subsequent request from the user device, wherein the subsequent request solicits further information about the at least one answer; and
facilitating a communication session between the user device and the at least one client device based on the subsequent request.
CN202080074487.1A 2019-10-28 2020-10-28 Dynamic communication routing to different endpoints Active CN114586323B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962926773P 2019-10-28 2019-10-28
US62/926,773 2019-10-28
PCT/US2020/057746 WO2021086970A1 (en) 2019-10-28 2020-10-28 Dynamic communications routing to disparate endpoints

Publications (2)

Publication Number Publication Date
CN114586323A true CN114586323A (en) 2022-06-03
CN114586323B CN114586323B (en) 2024-05-17

Family

ID=73452328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080074487.1A Active CN114586323B (en) 2019-10-28 2020-10-28 Dynamic communication routing to different endpoints

Country Status (8)

Country Link
US (3) US11323408B2 (en)
EP (1) EP4052428A1 (en)
JP (1) JP7423768B2 (en)
CN (1) CN114586323B (en)
AU (2) AU2020376819B2 (en)
CA (1) CA3158920A1 (en)
IL (1) IL292134A (en)
WO (1) WO2021086970A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114586323B (en) 2019-10-28 2024-05-17 利维帕尔森有限公司 Dynamic communication routing to different endpoints
US11658886B2 (en) * 2021-10-20 2023-05-23 SentioCX B.V. Methods and systems of facilitating predictive intent-based routing of service requests

Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005078129A (en) * 2003-08-28 2005-03-24 Hitachi Ltd Knowledge sharing system
WO2007092722A2 (en) * 2006-01-31 2007-08-16 Sento Corporation Systems and methods for providing a dynamic interaction router
CN101076184A (en) * 2006-07-31 2007-11-21 腾讯科技(深圳)有限公司 Method and system for realizing automatic reply
US20080253363A1 (en) * 2007-04-10 2008-10-16 Utbk, Inc. Systems and Methods to Facilitate Real Time Communications and Commerce via Answers to Questions
US20130297625A1 (en) * 2012-05-04 2013-11-07 Pearl.com LLC Method and apparatus for identifiying similar questions in a consultation system
US20150161513A1 (en) * 2013-12-09 2015-06-11 Google Inc. Techniques for detecting deceptive answers to user questions based on user preference relationships
CN105207890A (en) * 2015-08-24 2015-12-30 北京智齿博创科技有限公司 Online customer service method
CN105493446A (en) * 2013-07-23 2016-04-13 微软技术许可有限责任公司 Communication with on-calls and machines using multiple modalities through single historical tracking
US20160360039A1 (en) * 2015-06-05 2016-12-08 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
CN106897334A (en) * 2016-06-24 2017-06-27 阿里巴巴集团控股有限公司 A kind of question pushing method and equipment
CN107153965A (en) * 2017-04-05 2017-09-12 芜湖恒天易开软件科技股份有限公司 A kind of intelligent customer service solution of multiple terminals
US20170344532A1 (en) * 2016-05-27 2017-11-30 Juji, Inc. Method and system for creating interactive inquiry and assessment bots
CN107609058A (en) * 2017-08-25 2018-01-19 维沃移动通信有限公司 A kind of marketing method, robot customer side, artificial customer side and user terminal
CN107636710A (en) * 2015-05-15 2018-01-26 苹果公司 Virtual assistant in communication session
CN107870977A (en) * 2016-09-27 2018-04-03 谷歌公司 Chat robots output is formed based on User Status
CN108491519A (en) * 2018-03-26 2018-09-04 上海智臻智能网络科技股份有限公司 Man-machine interaction method and device, storage medium, terminal
CN108491506A (en) * 2018-03-22 2018-09-04 上海连尚网络科技有限公司 Method for pushing problem answers combination
US20180322403A1 (en) * 2017-05-05 2018-11-08 Liveperson, Inc. Dynamic response prediction for improved bot task processing
US20180349475A1 (en) * 2017-05-31 2018-12-06 Panasonic Intellectual Property Corporation Of America Computer-implemented method for question answering system
CN109155749A (en) * 2016-06-21 2019-01-04 甲骨文国际公司 The natural language interaction formula message transfer service session device of internet cloud trustship
CN110019693A (en) * 2017-07-25 2019-07-16 百度在线网络技术(北京)有限公司 Information recommendation method, server and the computer-readable medium of intelligent customer service
KR20190104119A (en) * 2019-08-28 2019-09-06 주식회사 카카오 Method and server for providing semi-automatic communication using chatbot and consultant

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250783A1 (en) 2006-04-24 2007-10-25 Ehealthinsurance Services, Inc. Method and system to provide online application forms
US8751559B2 (en) * 2008-09-16 2014-06-10 Microsoft Corporation Balanced routing of questions to experts
US8812982B2 (en) * 2010-12-23 2014-08-19 Facebook, Inc. Targeting questions to users of a social networking system
US9256662B2 (en) * 2013-03-15 2016-02-09 Quora, Inc. Techniques for publishing viewers of content
WO2016196806A1 (en) 2015-06-02 2016-12-08 Liveperson, Inc. Dynamic communication routing based on consistency weighting and routing rules
US10594635B2 (en) * 2018-04-20 2020-03-17 Oracle International Corporation Managing customer relationship using multiple chat servers designed to interface with service applications
US11243671B2 (en) * 2018-05-07 2022-02-08 Quora, Inc. Methods and systems for soliciting an answer to a question
AU2020257179A1 (en) * 2019-04-18 2021-10-21 Genesys Cloud Services Holdings II, LLC A system and method for analyzing web application network performance
JP7265652B2 (en) * 2019-05-31 2023-04-26 ナイキ イノベイト シーブイ Multi-channel communication platform with dynamic response goals
CN114586323B (en) 2019-10-28 2024-05-17 利维帕尔森有限公司 Dynamic communication routing to different endpoints

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005078129A (en) * 2003-08-28 2005-03-24 Hitachi Ltd Knowledge sharing system
WO2007092722A2 (en) * 2006-01-31 2007-08-16 Sento Corporation Systems and methods for providing a dynamic interaction router
CN101076184A (en) * 2006-07-31 2007-11-21 腾讯科技(深圳)有限公司 Method and system for realizing automatic reply
US20080253363A1 (en) * 2007-04-10 2008-10-16 Utbk, Inc. Systems and Methods to Facilitate Real Time Communications and Commerce via Answers to Questions
US20130297625A1 (en) * 2012-05-04 2013-11-07 Pearl.com LLC Method and apparatus for identifiying similar questions in a consultation system
CN105493446A (en) * 2013-07-23 2016-04-13 微软技术许可有限责任公司 Communication with on-calls and machines using multiple modalities through single historical tracking
EP3025454A1 (en) * 2013-07-23 2016-06-01 Microsoft Technology Licensing, LLC Communication with on-calls and machines using multiple modalities through single historical tracking
US20150161513A1 (en) * 2013-12-09 2015-06-11 Google Inc. Techniques for detecting deceptive answers to user questions based on user preference relationships
CN107636710A (en) * 2015-05-15 2018-01-26 苹果公司 Virtual assistant in communication session
US20160360039A1 (en) * 2015-06-05 2016-12-08 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
CN105207890A (en) * 2015-08-24 2015-12-30 北京智齿博创科技有限公司 Online customer service method
US20170344532A1 (en) * 2016-05-27 2017-11-30 Juji, Inc. Method and system for creating interactive inquiry and assessment bots
CN109155749A (en) * 2016-06-21 2019-01-04 甲骨文国际公司 The natural language interaction formula message transfer service session device of internet cloud trustship
CN106897334A (en) * 2016-06-24 2017-06-27 阿里巴巴集团控股有限公司 A kind of question pushing method and equipment
CN107870977A (en) * 2016-09-27 2018-04-03 谷歌公司 Chat robots output is formed based on User Status
CN107153965A (en) * 2017-04-05 2017-09-12 芜湖恒天易开软件科技股份有限公司 A kind of intelligent customer service solution of multiple terminals
US20180322403A1 (en) * 2017-05-05 2018-11-08 Liveperson, Inc. Dynamic response prediction for improved bot task processing
US20180349475A1 (en) * 2017-05-31 2018-12-06 Panasonic Intellectual Property Corporation Of America Computer-implemented method for question answering system
CN110019693A (en) * 2017-07-25 2019-07-16 百度在线网络技术(北京)有限公司 Information recommendation method, server and the computer-readable medium of intelligent customer service
CN107609058A (en) * 2017-08-25 2018-01-19 维沃移动通信有限公司 A kind of marketing method, robot customer side, artificial customer side and user terminal
CN108491506A (en) * 2018-03-22 2018-09-04 上海连尚网络科技有限公司 Method for pushing problem answers combination
CN108491519A (en) * 2018-03-26 2018-09-04 上海智臻智能网络科技股份有限公司 Man-machine interaction method and device, storage medium, terminal
KR20190104119A (en) * 2019-08-28 2019-09-06 주식회사 카카오 Method and server for providing semi-automatic communication using chatbot and consultant

Also Published As

Publication number Publication date
CA3158920A1 (en) 2021-05-06
IL292134A (en) 2022-06-01
AU2023203394B2 (en) 2024-05-16
US20220329561A1 (en) 2022-10-13
JP7423768B2 (en) 2024-01-29
AU2023203394A1 (en) 2023-06-29
US11323408B2 (en) 2022-05-03
WO2021086970A1 (en) 2021-05-06
US20240022536A1 (en) 2024-01-18
EP4052428A1 (en) 2022-09-07
US20210126891A1 (en) 2021-04-29
AU2020376819A1 (en) 2022-04-28
US11665127B2 (en) 2023-05-30
CN114586323B (en) 2024-05-17
JP2022553788A (en) 2022-12-26
AU2020376819B2 (en) 2023-04-06

Similar Documents

Publication Publication Date Title
CN113615135B (en) Dynamic communication routing to different endpoints
CN111713086B (en) Dynamic Response Prediction for Improved Robotic Task Processing
CN114223185B (en) System and method for transferring messaging to automation
CN114051740B (en) System and method for external system integration
AU2023203394B2 (en) Dynamic communications routing to disparate endpoints
US11888792B2 (en) Bot supervision

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant