CN114845351A - Method, system and computer program product for dynamic communication routing - Google Patents

Method, system and computer program product for dynamic communication routing Download PDF

Info

Publication number
CN114845351A
CN114845351A CN202210359284.8A CN202210359284A CN114845351A CN 114845351 A CN114845351 A CN 114845351A CN 202210359284 A CN202210359284 A CN 202210359284A CN 114845351 A CN114845351 A CN 114845351A
Authority
CN
China
Prior art keywords
message
terminal device
network device
communication
messages
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
CN202210359284.8A
Other languages
Chinese (zh)
Other versions
CN114845351B (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
Priority to CN202210359284.8A priority Critical patent/CN114845351B/en
Priority claimed from PCT/US2016/035535 external-priority patent/WO2016196806A1/en
Publication of CN114845351A publication Critical patent/CN114845351A/en
Application granted granted Critical
Publication of CN114845351B publication Critical patent/CN114845351B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/01Customer relationship services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • 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
    • G06F16/316Indexing structures
    • 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/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Human Resources & Organizations (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • Software Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

The present invention extends to methods, systems, and computer program products for dynamic communication routing. The method comprises the following steps: determining a characteristic of the message, wherein the characteristic is based on emotions corresponding to one or more messages; determining whether a condition corresponding to a continuous channel rule is satisfied based on a characteristic of the message; facilitating establishment of a continuous channel between a network device and a terminal device when the condition is satisfied, wherein subsequent messages from the network device are transmitted to the terminal device over the continuous channel, and wherein facilitating establishment of the continuous channel comprises: implementing a protocol for biased routing of subsequent messages from the network device to the terminal device when the network device and the terminal device have previously communicated; and routing the subsequent message between the network device and the terminal device through the continuous channel to continue the communication train containing the message.

Description

Method, system and computer program product for dynamic communication routing
The present application is a divisional application of the original application having an application date of 2016, 6/2, an application number of 201680045661.3, and an invention name of "dynamic communication routing based on consistency weighting and routing rules".
Cross Reference to Related Applications
The present application claims the benefit of U.S. patent application No.62/169,726 entitled "DYNAMIC COMMUNICATION ROUTING BASE CONSISTENCY WEIGHTING AND ROUTING RULES" filed ON 2.6.2015 and U.S. patent application No.15/171,525 entitled "DYNAMIC COMMUNICATION ROUTING BASE CONSISTENCY WEIGHTING AND ROUTING RULES" filed ON 2.6.2016, which are incorporated herein by reference in their entirety for all purposes.
Technical Field
The present invention relates generally to intelligent communication routing. More specifically, techniques are provided for conditionally routing communications for a given client to consistent end devices.
Background
The amount of electronic or telephone communications generated is increasing at an unprecedented rate. Various devices may facilitate providing responses to such communications. However, the quality and speed of such responses may vary from device to device. Additionally, while one device may be configured to provide a relatively high quality and fast response to one communication, a different device may be configured to provide such a relatively high quality and fast response to another communication. Therefore, it is important to facilitate policy routing.
Disclosure of Invention
The term "embodiment" and similar terms are intended to refer broadly to all subject matter of the present disclosure and claims below. Statements containing these terms should be understood as not limiting the subject matter described herein or as not limiting the meaning or scope of the claims below. Embodiments of the invention covered herein are defined by the claims below, not this summary. This summary is a high-level overview of various aspects of the invention and introduces some concepts that are further described below in the detailed description section. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in isolation to determine the scope of the claimed subject matter. The subject matter should be understood by reference to the entire specification of the invention, any or all of the drawings, and appropriate portions of each claim.
Embodiments of the present invention include a computer-implemented method for routing communications. The method may include receiving, at a computing device, a communication including content data, and storing the communication in a primary queue. In some instances, the primary queue may include a plurality of queue locations for storing a plurality of communications. The communication may be stored at a queue location of the plurality of queue locations in the primary queue. The method may also include retrieving the communication from the queue position of the primary queue, and analyzing the communication. In some instances, analyzing the communication may include parsing the content data for keywords. For example, the key may correspond to a secondary queue. Additionally, the method may include storing the communication in the secondary queue. The secondary queue may be associated with one or more terminal devices. The method may also include identifying a terminal device associated with the secondary queue. Additionally, the method may include receiving a retrieval request requesting access to the communication, and routing the communication to the terminal device. For example, routing the communication may include establishing a communication link between the terminal device and a network device associated with the communication.
Embodiments of the present invention may also include a system for routing communications. 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 operations comprising the computer-implemented method for routing communications described above and herein.
Embodiments of the present invention may also 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 operations including the computer-implemented methods for routing communications described above and herein.
Additional embodiments of the invention may include a computer-implemented method for performing a task. The computer-implemented method may include: receiving, at a computing device, an initial communication from a network device; and identifying the terminal device. The terminal device may be identified using the initial communication. The terminal device may be associated with an entity. The computer-implemented method may further comprise: establishing a communication link between the network equipment and the terminal equipment; and facilitating a communication session between the network device and the terminal device. In some instances, facilitating the communication session may include exchanging one or more messages between the network device and the terminal device over the established communication link. Additionally, the method may include receiving an initial message, and determining initial message parameters for the initial message. For example, the initial message parameters may be determined in real time as the initial message is received. The initial message parameter may represent a message characteristic associated with the initial message. The method may also include determining session parameters for a plurality of messages associated with the communication session. The session parameters may be determined using the initial message parameters and one or more additional message parameters. The session parameters may be updated in real-time as one or more additional message parameters are generated. Additionally, the session parameter may represent a session characteristic associated with the plurality of messages. The method may also include performing a task based on the message parameter or the session parameter.
Embodiments of the invention may also include 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 operations comprising the computer-implemented methods for performing tasks described above and herein.
Embodiments of the invention may also 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 operations including the computer-implemented methods for performing tasks described above and herein.
Additional embodiments of the present invention may include a method for dynamically routing electronic messages based on consistency and delay variables. The method can comprise the following steps: receiving a message from a network device; determining that the message is associated with a client; and identifying a terminal device that previously communicated with the network device via exchange of messages routed through the communication channel. The terminal device may include a terminal device associated with a client. The method may also include determining whether a proxy associated with the terminal device is available for responding to the message. In some instances, when it is determined that a proxy is not available for responding to a message, the method may include: predicting a response delay representing a delay in a response to the message if the message is routed to the terminal device; and determining whether proxy coherency outperforms facilitating faster response delays. When it is determined that proxy coherency outperforms facilitating faster response delays, the method may include: routing the message to the terminal device; and facilitating asynchronous communication exchanges between the terminal device and the network device. When it is determined that proxy coherency does not surpass facilitating faster response delays, the method may include: identifying a new terminal device associated with the client; and routing the message to the new terminal device over the new communication channel.
Embodiments of the present invention may also include a system for routing communications. 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 operations comprising the method for dynamically routing electronic messages based on consistency and delay variables described above and herein.
Embodiments of the present invention may also 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 operations including the above and herein described methods for dynamically routing electronic messages based on consistency and delay variables.
Additional embodiments of the present invention may include a method of conditionally establishing a continuous channel for routing messages. The method can comprise the following steps: facilitating routing of a series of messages between a network device and a terminal device, and accessing a continuous channel rule that includes a condition. The series of messages may be associated with a time that is aggregated along a time dimension, and the series of messages may correspond to a client. In addition, the continuous channel rule may indicate that satisfaction of the condition causes a routing of the message to be biased from the network device to a terminal device previously communicating with the network device. The method may further comprise: determining a characteristic based on one or more messages, inputs, or account data in the series of messages; and determining whether a condition is satisfied based on the characteristic. When it is determined that the condition is satisfied, the method may include establishing a continuous channel between the network device and the terminal device. The continuous channel may facilitate routing of subsequent messages from the network device to the terminal device. The subsequent message may correspond to the client. Additionally, subsequent messages may be received at times separated from the times of the series of messages of the cluster along the time dimension. The method may also include generating a presentation indicating that the continuous channel has been established and including an identification associated with the terminal device. When it is determined that the condition is not satisfied, the method may include facilitating routing of a subsequent message from the network device to a different end device. The subsequent message may correspond to the client. Subsequent messages may be received at times separated from the times of the series of messages of the cluster along the time dimension.
Embodiments of the invention may also include 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 operations comprising the method for conditionally establishing a continuous channel for routing messages described above and herein.
Embodiments of the present invention may also 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 operations including the method for conditionally establishing a continuous channel for routing messages described above and herein.
Additional embodiments of the present invention may also include a method for dynamically routing an electronic message to a terminal device. The method can comprise the following steps: the method includes monitoring an exchange of a series of messages between the network device and the terminal device and determining a characteristic of one or more of the series of messages. For example, the series of messages may correspond to a client. For example, the characteristic may correspond to a theme or mood. The method may include accessing a rerouting rule that includes a condition. The rerouting rule may indicate that the satisfaction of the condition is to initiate a rerouting procedure. Additionally, the method may include determining whether a condition is satisfied based on the characteristic. When it is determined that the condition is satisfied, the method may include: the method includes identifying different terminal devices, generating a dynamic message record including at least some of the series of messages, sending the dynamic message record to the different terminal devices, receiving a new message from the network device, and sending the new message to each of the terminal devices and the different terminal devices. For example, the different terminal device may be associated with a client.
Embodiments of the invention may also include 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 operations comprising the computer-implemented methods for dynamically routing electronic messages to terminal devices described above and herein.
Embodiments of the present invention may also 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 operations including the above and herein described methods for dynamically routing electronic messages to terminal devices.
Additional embodiments of the present invention may include a computer-implemented method for indexing messages and generating message records. The method can comprise the following steps: detecting, at a computing device, an interaction between a network device and a terminal device; and identifying a determinable characteristic associated with at least a portion of the interaction. In some instances, the interaction may include one or more communications communicated between the network device and the terminal device. For example, the communication may include content data. The method may further comprise: identifying an interaction topic based on the content data, identifying a problem solving stage based on the content data, and determining a parameter based on the content data. For example, the parameter may represent a characteristic associated with the interaction (e.g., an emotion or intent). Additionally, the method may include setting a plurality of message indices and identifying one of the plurality of message indices. For example, the message index may correspond to a series of communications between the network device and the terminal device. For example, the determined parameters or content data may be used to identify the index. The method may further comprise: selectively identifying one or more messages associated with the identified index, generating a message record based on the identified one or more messages, and presenting or analyzing the generated message record.
Embodiments of the invention may also include 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 operations comprising the computer-implemented method for indexing messages and generating message records described above and herein.
Embodiments of the present invention may also 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 operations including the method for indexing messages and generating message records described above and herein.
Additional embodiments of the present invention may include a computer-implemented method for facilitating message routing based on a generated proxy vector. The method can comprise the following steps: a message from a network device is detected at a computing device and a topic associated with the message is determined. For example, the message may include content data. Additionally, for example, determining the topic may include analyzing the content data. The method may further comprise: the method includes determining a complexity level associated with the message, determining a parameter based on the message, and determining an immaterial characteristic associated with the message. For example, the parameter may represent a characteristic of the message (e.g., an emotion or intent). The target object may represent an intent determined from a message sent by the network device. For example, the target object may represent an intent of a user operating the network device to seek to facilitate password retrieval. Additionally, the method may include: the method includes identifying a vector of corresponding variables for each agent in a set of agents, identifying a subset of the set of agents, and facilitating establishment of an operational connection to route a message to a terminal device of an agent in the subset. The identifying the subset may be based on the proxy vector and the determined variable.
Embodiments of the invention may also include 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 operations comprising the computer-implemented method for facilitating message routing based on a generated proxy vector described above and herein.
Embodiments of the present invention may also include a computer program product, tangibly embodied in a non-transitory computer-readable storage medium, the computer program product including instructions configured to cause data processing apparatus to perform operations including the above and herein described methods for facilitating message routing based on generated proxy vectors.
Additional embodiments of the invention may include a method for displaying a user interface displayed on a computing device (e.g., a mobile device operated by a user). The user interface may be displayed during a real-time communication session or an asynchronous message session between a user operating the network device and an agent operating the terminal device. The method may include displaying a selectable representation for each of a plurality of clients. For example, the selectable representations may be associated with one or more continuous channels, such that the continuous channels correspond to communication sessions between the network device and the terminal device. The method may further comprise: once the selectable representation is selected, one or more messages communicated between the network device and the terminal device are displayed. The method may further comprise: multiple representations of various communication exchanges are displayed on different topics. For example, the representation may include a message record of the target about the identified topic. In some instances, the representation of the selection topic may initiate a start or restart of a continuous communication session with a terminal device (e.g., a terminal device previously associated with or different from a previous terminal device). The method may also include displaying an interface at a terminal device associated with the agent. The method can comprise the following steps: a representation of one or more communication sessions that are persistent between the user and the agent is displayed. For example, an interface displayed at the terminal device may include an indication of an emotion associated with the communication session. For example, the communication session may correspond to a negative polarity (e.g., a negative emotion), and in that case, an indication may be displayed indicating the negative polarity. In some instances, the interface displayed at the terminal device may represent a persistent communication session, even when the network device from which the message originated may use a different third-party application to facilitate communication of the message.
Embodiments of the invention may also include 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 operations of a computer-implemented method for displaying a user interface displayed on a computing device, including as described above and herein.
Embodiments of the present invention may also 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 operations including the above and herein described methods for displaying a user interface displayed on a computing device.
Drawings
The invention is described in connection with the accompanying drawings:
FIG. 1A illustrates a block diagram of an embodiment of a network interaction system;
FIG. 1B illustrates a block diagram of another embodiment of a network interaction system;
FIG. 2 shows a block diagram of yet 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 that connects the operations 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 flow diagram of an embodiment of a process for indexing messages and generating message records;
FIG. 8 illustrates a flow diagram for an embodiment of a process for facilitating message routing based on a generated proxy vector;
FIG. 9 illustrates a flow diagram of one embodiment of a process for managing the establishment of a continuous channel;
FIG. 10 illustrates a flow diagram for one embodiment of a process for dynamically routing electronic messages to end devices based on an index;
FIG. 11 illustrates a flow diagram for one embodiment of a process for dynamically routing electronic messages based on consistency and delay variables;
FIG. 12 illustrates a flow diagram of an embodiment of a process for routing communications;
FIG. 13 illustrates a flow diagram of an embodiment of a process for performing a task;
FIG. 14 is a flow diagram illustrating one embodiment of generating continuous communication parameters; and
fig. 15A to 15D illustrate examples of interfaces representing aspects of connecting with a terminal device according to an embodiment.
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 label is used in the specification, the description is applicable to any one of the similar components having the same first reference label, regardless of the second reference label.
Detailed Description
The following description merely provides preferred examples of one or more embodiments and is not intended to limit the scope, applicability, or configuration of the invention. Rather, the ensuing description of the preferred embodiments of one or more implementations will provide those skilled in the art with an enabling description for implementing a preferred embodiment or embodiments. 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. 1A illustrates a block diagram of an embodiment of a network interaction system 100A, the network interaction system 100A implementing and supporting certain embodiments and features described herein. Particular embodiments relate to establishing a communication link 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). For example, establishing a communication link may include establishing a channel over a network between network device 105 and terminal device 115. Communications (e.g., messages) sent from the network device 105 may be routed over the established communication link to the terminal device 115 and vice versa.
In particular embodiments, user 110 may be an individual browsing a website or accessing an online service provided by remote server 140. Additionally, in particular embodiments, network interaction system 100A may include a client device 130 associated with client 125. The client 125 may be an entity that provides, operates, or operates a website or online service, or an individual that is used or distributed by such entities to perform tasks available to the client 125 as described herein. The agent 120 may be an individual, such as an agent responsible for providing support or information about a website or online service (e.g., information about content on a website) to the user 110. In a large number of agents, a subset of agents may be adapted to provide support or information for a particular client 125 (e.g., on behalf of or associated with the particular client 125). The proxy 120 may or may not be attached to 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 accessing a web page from a personal computing device, the client 125 may be a company that manages or administers the web page, and the agent 120 may be employed by the company to provide information about the web page to the user 110 or other visitors of the web page. In various embodiments, the user 110, client 125, and agent 120 may be other individuals or entities.
Although fig. 1A shows only a single network device 105, a single terminal device 115, and a single client device 130, the network interaction system 100A may include multiple or many (e.g., tens, hundreds, or thousands, etc.) of each of one or more of these types of devices. Similarly. Although FIG. 1A shows only a single user 110, a single agent 120, and a single client 125, the interactive system 100A may include many or many of each of one or more of such entities. Thus, it may be desirable 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 may facilitate strategic or intelligent routing of communications. Non-limiting examples of facilitating strategic routing may include establishing a communication link between two devices (e.g., network device 105 and terminal device 115) and routing communications between the two devices. Facilitating strategic routing may also include rerouting the communication to one or more additional devices. For example, the connection management system 150 may facilitate routing by forwarding communications originating from the network device 105 to the terminal device 115 or to another terminal device 115.
In some examples, the communication may include, for example, one or more messages having content (e.g., defined based on input from an entity (such as typed, clicked, spoken, or other suitable input)), a request for or confirmation of device authentication (e.g., authentication of network device 105 to establish a communication link), or other suitable communication. In some examples, the communication may also include additional data, such as: data about the sending device (e.g., IP address, account identifier, device type, and/or operating system); a target 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 accessed at the time the communication was generated or otherwise associated with the communication); time (e.g., time of day and/or date); and/or a destination address. Other information may also be included in the communication. The invention is not limited to the examples presented herein.
In some instances, the connection management system 150 may route the entire communication to another device (e.g., another end device or another network device). In some instances, connection management system 150 may modify the communication or generate a new communication (e.g., based on the initial communication). The new or modified communication may include at least some (or all) of the message (or processed form thereof), additional data (e.g., regarding the sending device, web page, or online history and/or time), and/or other data identified by the connection management system 150 (e.g., of account data associated with a particular account identifier or device). The new or modified communication may also include other information.
In some instances, a portion of the strategic routing facilitation may 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 evaluate 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 communication with the network device 105. In some instances, the identification of the end device 115 may include evaluating one or more message parameters associated with a message sent from the network device 105, one or more session parameters associated with a series of messages (e.g., conversations), one or more network device parameters associated with the network device 105, one or more continuous communication parameters associated with the client 125, a profile of each of a plurality of agents (or experts or representatives), or other suitable examples. Each agent of the plurality of agents (e.g., agent 120) may be associated with a terminal device (e.g., terminal device 115). The identification of terminal device 115 may include, for example, the techniques described in U.S. application No.12/725,799, filed on 17/3/2010, which is incorporated by reference in its entirety for all purposes.
In some instances, the connection management system 150 may perform strategic routing between the network device 105 and the end device 115 using one or more data structures. For example, the connection management system 150 may include a plurality of data structures. Examples of data structures include queues, buffers, array structures, tree structures, or other suitable data structures. For example, when the connection management system 150 receives a communication from the network device 105, the communication or a representation of the communication (e.g., an identifier) may be stored in the primary queue. The connection management system 150 may analyze each communication stored in the primary queue to identify the end device to which the communication should be routed. In some instances, the secondary queue may correspond to one or more end devices. For example, the secondary queue may store communications to be sent to or accessed by a particular terminal device 115 of the one or more terminal devices associated with the secondary queue. Upon identifying a terminal device 115 for communication with the network device 105, the connection management system 150 may send the communication (which is stored in the primary queue) to be stored in the secondary queue associated with the identified terminal device 115. The secondary queue may be included in the connection management system 150, a computing device associated with the end device, the identified end device itself, or other storage device.
In some instances, the analysis of communications stored in the primary queue to identify the terminal device may be based on one or more parameters (e.g., message parameters, session parameters, network device parameters, continuous communication parameters). The one or more parameters may be determined using content included in or associated with a communication sent from the network device 105 (e.g., an IP address, time between consecutive messages, time of receipt, etc.). For example, the network device 105 may send a message including data representing a text string to the connection management system 150. Upon receiving the message, connection management system 150 may store the message in the primary queue and then analyze the message. Examples of analyzing the message may include parsing text included in the message and determining whether the text (e.g., text data) corresponds to a polarity indication (e.g., positive polarity, negative polarity, neutral polarity, angry polarity, stigma polarity, frustration polarity, and other suitable polarities). The connection management system 150 may generate a message parameter based on whether the text corresponds to, for example, a positive or negative polarity indication. Examples of message parameters may include generating a score or a numerical value as an output of an algorithm. The connection management system 150 may apply the stored one or more rules to the generated message parameters to determine in which secondary queue the message should be stored. For example, the stored rules may indicate that messages associated with message parameters below a threshold (e.g., messages corresponding to a negative polarity indication) are initially routed to a particular secondary queue associated with a particular terminal device 115.
In some instances, analyzing the text of the message to determine the message parameters may include analysis of text attributes or non-text attributes associated with the message. For example, the connection management system 150 may extract one or more lines of text included in the message. Connection management system 150 may identify whether the one or more lines of text include an anchor point. Examples of anchors include text strings associated with polarity (e.g., emotion or intent, the word "frustrated" corresponds to negative polarity or frustrated polarity, the word "happy" corresponds to positive polarity, etc.). The anchor point may be specific to the client 125. For example, the anchor point for the first client may be different from the anchor point for the second client. For example, the term "dispute" may be negative for one client, but neutral or positive for a second client. In some instances, anchor points may be dynamically determined using supervised machine learning techniques. Additionally, 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 "actually", "not seen", "kind of" and the like.
In some instances, when the text includes an anchor point associated with a positive emotion, connection management system 150 may mark the message as corresponding to a positive polarity indication. Likewise, when the text includes an anchor point associated with a negative emotion, the connection management system 150 may mark the message as corresponding to a negative polarity indication. An example of marking a message may include attaching a code to the message that marks whether the message corresponds to a negative or positive polarity indication. When a message is marked with a positive polarity indication, connection management system 150 may generate a first message parameter associated with the positive polarity indication. When a message is marked with a negative polarity indication, the connection management system 150 may generate a second message parameter associated with the negative polarity indication. In this example, the first message parameter and the second message parameter may be different values from each other.
In some instances, the connection management system 150 may generate the session parameters based on a plurality of message parameters. For example, session parameters may be used to determine the emotion of the entire session during a communication conversation. In some instances, the session parameters may be dynamically updated in real-time as the network device 105 sends new messages that are routed to the identified end device 115. Session parameters may be evaluated for various purposes. Examples of purposes for evaluating session parameters may include: determining a characteristic trend of a plurality of messages communicated between network device 105 and terminal device 115; determining whether to reroute a message sent from the network device 105 to another end device (different from the initial end device 115 in communication with the network device 105); determining whether to keep routing the message to the original end device 115; reporting one or more states associated with the network device 105 or the terminal device 115; evaluating performance associated with terminal device 115; or trigger a notification alert to one or more additional terminal devices.
In some instances, the network device parameters may be generated based on a plurality of session parameters (see fig. 14 for further discussion). Network device parameters may be used to determine the overall mood of a particular network device. Additionally, the continuous communication parameters may be generated based on a plurality of network device parameters (see fig. 14 for further discussion). The continuous communication parameters may be used to determine an overall emotion associated with a particular entity (e.g., client 125).
In some instances, the connection management system 150 may determine whether any connection channels are established between the network device 105 and the end devices (or remote servers 140) associated with the clients, and if so, whether such channels are to be used to exchange a series of communications that includes the communication. The determination may depend at least in part on a topic associated with the communication, an emotion score (e.g., message parameter) associated with the communication or a past related communication, a session parameter associated with a series of messages, a network device parameter associated with a network device, a continuous communication parameter associated with a client (e.g., client 125), a predicted (e.g., relative or absolute) response delay for terminal device 115, and/or a type of communication channel (e.g., instant message, email, phone) associated with the communication. Selecting an established communication channel may promote consistency and reduce the need to forward information from network device 105 multiple times. At the same time, determining that a new communication channel is to be established may facilitate faster responses from more professional agents.
The decision as to whether to select (or continue to use) an established communication channel and/or to select a new terminal device may include determining the extent to which each of one or more terminal devices (e.g., associated with the client) corresponds to a communication and/or associated user. Such correspondence may relate to, for example, the degree to which the knowledge base of the agent corresponds to the communication topic, the availability of the agent at a given time and/or on a channel type, language matching between the user and the agent, and/or personality analysis.
The connection management system 150 may use the communication analysis to affect routing determinations (e.g., determine whether to route a communication to a terminal device that has previously received the communication from a network device that has sent the communication or to select a terminal device to receive or send the communication). A communication analysis may include determining and evaluating one or more categories or tags of current or past communications or series of communications. For example, the communication may be assigned a category for each of, for example, subject matter, channel type (e.g., email, SMS message, real-time chat, telephone, or asynchronous message), language, complexity, emotion, and/or whether/which file type to attach, and the selection of terminal devices may be biased towards terminal devices associated with similar, identical, or complementary knowledge bases, availability of channel types, language, proficiency, emotion, and/or file type capabilities.
Upon selecting a 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 end 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., a spoken language, a duration of time that the client has interacted with, proficiency, mood, and/or theme preferences), a received communication, code (e.g., a clickable hyperlink) for generating and sending a communication to network device 105, and/or instructions for generating and sending a communication 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., as defined based on rules), such as non-responsiveness or extended delays of any of the devices. In addition, such configurations may facilitate selective or complete storage of communications that may be later used, for example, to assess the quality of the communication exchange and/or to support learning updates or generating routing rules to facilitate particular post-communication goals. Such storage may also facilitate generation of a message history or message record between the network device and the first terminal device, which may be sent (for example) to the second terminal device when it is determined that the second terminal device is to participate in a current communication series with the network device or participate in a new communication series with the network device.
In some implementations, the connection management system 150 can monitor (e.g., analyze) the communication exchange in real-time and perform automated actions (e.g., rule-based actions) based on the field communication. Examples of real-time monitoring of messages may include receiving messages and analyzing messages (e.g., applying one or more rules to messages) immediately and automatically after receiving the messages (e.g., with minimal delay, milliseconds, seconds, etc.). For example, when the connection management system 150 determines that the communication relates to a particular product, the connection management system 150 may automatically send a message to the terminal device 115 containing additional information about the product (e.g., the amount of product present, a link supporting files about the product, or other information about the product or similar products).
In one example, a designated end device 115 may communicate with the network device 105 without forwarding the communication through the connection management system 150. One or both 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 mentioned, 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 text passages, voice recordings, and/or files that are transmitted in response to the communication. The remote server 140 may select a particular text passage, record, or file based on, for example, an analysis of the received communication (e.g., a semantic analysis or a mapping analysis).
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 communications identifying prioritization of agents, types of terminal devices, and/or subject/skill matches. As another example, the client device 130 may identify one or more weights that apply to various variables (e.g., language compatibility, predicted response time, device type and capabilities, and/or load balancing of end devices) that potentially affect routing determinations. 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 a terminal device and/or agent associated with the client. For example, the client device 130 may send a communication having an IP address and an indication as to whether the terminal device having the address is to be added or removed from the list identifying the terminal device with which the client is associated.
In one example, the connection management system 150 facilitates initial matching and routing between the network device 105 and the first terminal device 115. For example, a message received in a communication from the network device 105 may be routed to the first terminal device. As another example, the communication management system 150 may send a communication to the first terminal device that includes or represents a request or instruction to send a communication (e.g., initiate a series of communications) to the network device 105.
The connection management system 150 may monitor and/or analyze the corresponding communication series between the network device 105 and the first terminal device to determine a characteristic (e.g., a trend). For example, the connection management system 150 may analyze message content in one or more communications (e.g., to determine whether and/or how many particular words, symbols, or character types are used, such as "frustrated," very, "" thank you, "or" irritated, "" | or capital letters). As another example, the connection management system 150 may determine one or more statistics pertaining to each of the one or more messages and/or series. Examples of statistics may include, for example, message length (e.g., by words or characters), delay between receiving a communication and sending a responsive communication, delay between subsequent message transmissions, or typing speed when typing a message. As another example, the connection management system 150 may receive and process one or more inputs that are initially detected at the network device 105 or the first terminal device and then identified by the connection management system 105. Such inputs may identify, for example, emotions, reroute requests, or resolution stages.
Connection management system 150 may evaluate characteristics (e.g., characterizing message content, including statistics, or characterizing inputs) to determine whether to bias subsequent routes in a particular manner. For example, the continuous channel rule may include a condition on a characteristic that specifies when a route of a message of the network device is to be biased toward a first end device that was previously engaged in a communication exchange with the network device. The rule may be configured such that satisfaction of the condition results in establishing a continuous channel between the network device and the first terminal device. The continuous channel may allow subsequent messages from the network device to be automatically routed to the first terminal device and/or preferentially routed to the first terminal device. A continuous channel may be configured to persist through multiple communication series. For example, even if a first series of messages is exchanged between a network device and a first terminal device on a first day, the channel may bias the routing of another message from the network device that is sent on a second day to be routed to the same first terminal device. The magnitude of such an offset may depend on, for example, the time since a previous interaction between the network device and the first terminal device (e.g., increasing the offset when a past interaction was recent), the total duration and/or number of communications in a previous message exchange between the network device and the first terminal device, and/or the number of previous message exchanges between the network device and the first terminal device (and/or the cumulative interaction time or count of interaction messages).
Once the continuous channel is established, the connection management system 150 may also facilitate presenting a presentation (e.g., a notification) at the network device 105 to alert the user 110 that the continuous channel has been established, to identify the first terminal device or an associated user, and/or to indicate that a subsequent message (e.g., a subsequent message sent in association with an identifier of the channel, a subsequent message associated with a particular client, etc.) is to be routed to the first terminal device or that routing has been biased toward the first terminal device.
In some instances, the connection management system 150 may determine that the characteristic indicates that subsequent messages (e.g., belonging to a client) from the network device 105 will not be routed to the same first end device and/or will be rerouted. For example, it may be determined that the condition in the continuous channel rule is not satisfied. Once such a determination is made, the connection management system 150 may identify a new end device to which to route communications (e.g., belonging to the client) from the network device.
In one example, the continuous channel rule is configured such that a continuous channel will be established between the network device and the terminal device after an initial routing of communications between the two devices. Thus, the continuous channel may be used to facilitate consistent message routing within a single message exchange. In an alternative or the same instance, the continuous channel rule (also or alternatively) may be configured such that a continuous channel is established, maintained, or used, thereby facilitating consistent message routing across different message series (e.g., temporally separated series). According to this embodiment, the continuous channel rule may limit the number of continuous channels that may be provided with respect to a given network device and/or client. For example, a rule may indicate that, for a given network device and client, the network device may be connected to only one (or three or another specified number) of terminal devices by means of a continuous channel.
In some instances, the connection management system 150 may determine that a rerouting procedure is to be initiated (e.g., based on satisfaction of a condition in a rerouting rule). The determination may be based on characteristics (e.g., characterizing message content, including statistics or characterizing inputs). For example, the rerouting rules may be configured such that rerouting will be initiated upon detection of a characteristic indicative of user disappointment or dissatisfaction, upon detection of a characteristic indicative of lack of acceptable progress toward problem resolution, upon detection of unacceptable end device communication statistics (e.g., long response delays), or upon detection of a message beginning to focus on a new topic.
The rerouting process may include identifying different end devices participating in a communication exchange with network device 105. Such identification may be based on, for example, a topic associated with the communication, message parameters associated with the communication or a past related communication, continuous communication parameters associated with network device 105, a predicted (e.g., relative or absolute) response delay for terminal device 115, a type of communication channel associated with the communication (e.g., instant message, email, phone), a language match, a type of each of one or more other terminal devices, capabilities in one or more other terminal devices, and/or a match of a skill of an agent to a communication complexity of the network device. The selection of the different terminal device may be performed in the same, similar or different manner as compared to the selection of the first terminal device. For example, determining that the rerouting conditions have been met may bias subsequent end device selection towards devices associated with a higher ranking, a broader knowledge base, and/or better language capabilities.
The rerouting procedure may include sending a notification identifying the proposed rerouting to one or more devices, such as the network device 105, a first end device, or a different end device. The notification may include an option to receive the proposed reroute and/or an option to reject the proposed reroute. The notification may include information about the network device 105, the first terminal device, and/or the different terminal device and/or interested party.
To reduce abrupt transitions between terminal devices, the connection management system 150 may coordinate overlapping time periods. During this time period, the first terminal device and each of the different terminal devices may receive one or more communications (or processed forms thereof) from the network device 105. For example, a new communication from the network device 105 may be copied and then routed to each of the first end device and the different end device.
In some instances, the connection management system 150 may generate a dynamic message record that includes a plurality of messages from the network device 105 and/or from the first terminal device. The record may include, for example, all messages in the communication exchange, all messages routed within a defined time period (e.g., the previous 3 minutes), or all messages associated with one or more defined tags or categories. For example, messages may be selected that pertain to a particular topic, mood (e.g., corresponding to dissatisfaction), or content type (e.g., including questions). The connection management system 150 may send the dynamic message record to a different terminal device. New messages from the network device 105 and/or the first terminal device may also be sent to the different terminal device so that the dynamic message record may be accompanied by such new messages. The selection of messages for dynamic message recording and/or whether dynamic message recording is to be provided may also depend on whether rerouting occurs during or between message series of the temporal cluster.
In some instances, the connection management system 150 may determine whether and/or when to stop routing communications to the first end device. Such routing termination may occur, for example, upon detection of a responsive communication from a different terminal device, after a defined period of time has elapsed after sending the message record, after detection of input received at the first terminal device indicating an intent to exit the communication exchange, after detection of input received at a different terminal device indicating an intent to commence the communication exchange, after detection of input received at the network device 105 requesting that the proposed rerouting take effect to a different terminal device, and so forth.
Depending on the rule or reason for initiating the reroute delivery, rerouting may include closing a connection channel between network device 105 and the first terminal device (e.g., if a rerouting procedure is initiated in response to a low user emotion) and/or establishing a new connection channel between network device 105 and a different terminal device.
Each communication (e.g., between devices, between a device and the connection management system 150, between the remote server 140 and the connection management system 150, or between the remote server 140 and a device) may occur over one or more networks 170. Any combination of open or closed networks may be included in the one or more networks 170. Examples of suitable networks include the internet, personal Area networks (LANs), Local Area Networks (LANs), Wide Area Networks (WANs), Wireless Local Area Networks (WLANs). Other networks may also be suitable. The one or more networks 170 may be fully incorporated within an intranet, an extranet, or a combination thereof, 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 achieved through a Secure communication protocol, such as Secure Sockets Layer (SSL) or Transport Layer Security (TLS). In addition, the data and/or transaction details may be encrypted based on any convenient, known, or to be developed manner, such as, but not limited to: data Encryption Standard (DES), triple DES, Rivest-Shamir-adleman (rsa) Encryption, Blowfish Encryption, Advanced Encryption Standard (AES), CAST-128, CAST-256, Decorrelated Fast Cipher (DFC), Tiny Encryption Algorithm (Tiny Encryption Algorithm, TEA), extended TEA (xtea), modified blocks TEA (xxtea), and/or RC5, etc.
In some instances, the connection management system 150 may authenticate the network device prior to establishing a communication link between the network device and the terminal device. For example, when a message is received at the connection management system 150, the connection management system 150 may identify which client 125 corresponds to the information included in the received message. In some instances, a message may include an identification code that identifies a client associated with the message. Connection management system 150 may then send a request for authentication information (e.g., login credentials, passwords, etc.) to the network device. Upon receiving the authentication information, the connection management system 150 may access the client device 130 (e.g., a database storing user information) to verify that the received authentication information corresponds to valid authentication information stored in the client device 130. After verifying the authentication information, the connection management system 150 may identify a set of end devices corresponding to the client 125, and then select a single end device from the set of end devices based on the processes described herein.
Network device 105, terminal device 115, and/or client device 130 may include, for example, a portable electronic device (e.g., a smartphone, a tablet, a laptop, or a smart wearable device) or a non-portable electronic device (e.g., one or more desktops, smartdevices, servers, and/or processors). The connection management system 150 may be packaged separately from the network devices, terminal devices, and client devices or may be part of one or more such devices (e.g., by installing an application on the device). The remote server 140 may be packaged separately from each device and the connection management system 150 or may be part of another device or system. Although each device, server, and system is shown in fig. 1A as a single device, it will be appreciated that multiple devices may be used instead. For example, a set of network devices may be used to send 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 illustrated device, system or server. In one example, a software agent or application may be configured such that the various illustrated elements may function in a complementary manner. For example, a software agent on the device may be configured to collect and send data regarding the 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. 1B shows a block diagram of an embodiment of a network interaction system 100B, the network interaction system 100B including network devices A-C, terminal devices A-C, and a connection management system 150. Each of network device a, network device B, and network device C may be structurally identical to network device 105 and operated by a user (e.g., user 110). Network device a, network device B, and network device C may be arranged or distributed over different geographic areas. Each of terminal device a, terminal device B, and terminal device C may be structurally identical to terminal device 115 and operated by a proxy (e.g., proxy 120). Terminal device a, terminal device B and terminal device C may be arranged or distributed over different geographical areas.
Connection management system 150 may intelligently determine a routing destination (e.g., terminal a, terminal B, or terminal C) for incoming communications (e.g., messages received from network device a, network device B, and network device C). In some examples, connection management system 150 may include a communication processing system 182 and a plurality of data structures. Examples of data structures include queues, buffers, array structures, tree structures, or other suitable data structures. In the example of the network interaction system 100B, the plurality of data structures may include a primary queue 180 and secondary queues 184, 186, and 188. Main queue 180 may store all incoming messages received from various network devices (e.g., network device a, network device B, and network device C).
In some instances, received messages stored in primary queue 180 may be processed by communication processing system 182. For example, the communication processing system 182 may retrieve a message from the primary queue 180, process the message, and determine which secondary queue stores the message based on the processing. The secondary queue may correspond to a terminal device. For example, secondary queue 184 may be associated with terminal device a, secondary queue 186 may be associated with terminal device B, and secondary queue 188 may be associated with terminal device C. In this example, terminal device a may respond to messages stored in the secondary queue 184, terminal device B may respond to messages stored in the secondary queue 186, and terminal device C may respond to messages stored in the secondary queue 188. Responding to messages stored in the secondary queue may include: retrieve the message from the secondary queue, remove the message from the queue, and send a communication (e.g., in response to content included in the message) to the network device that sent the message.
Although fig. 1B shows only a single primary queue 180 and three secondary queues 184, 186, and 188, the network interaction system 100B may include any number of primary and secondary queues. Additionally, although fig. 1B shows the secondary queue as a data structure included in the connection management system 150, it will be appreciated that the secondary queue may also be stored in the terminal device. For example, secondary queue 184 may be stored in terminal device a, secondary queue 186 may be stored in terminal device B, and secondary queue 188 may be stored in terminal device C.
Communication processing system 182 may process communications received from network device a, network device B, and network device C. The communication Processing system 182 may include one or more Application Specific Integrated Circuits (ASICs), one or more Digital Signal Processors (DSPs), one or more Digital Signal Processing Devices (DSPDs), one or more Programmable Logic Devices (PLDs), one or more Field Programmable Gate Arrays (FPGAs), one or more processors, one or more controllers, one or more microcontrollers, one or more microprocessors, one or more other suitable electronic units designed to perform the functions described herein, and/or combinations thereof.
In some instances, processing communications received from network device a, network device B, and network device C may include: the method includes extracting content included in a received message, parsing the extracted content, and applying one or more rules to the content. The communication processing system 182 may determine the destination of the received message (e.g., terminal a, terminal B, or terminal C) based on the results of the applied rule or rules. The one or more rules may be stored locally or remotely and accessed by the communication processing system 182.
In some instances, rules may be used to analyze text included in a received message. For example, the rule may be used to determine whether one or more keywords are included in the text. As a non-limiting example, the message received from network device a may include the text "i don't know my password". The rule may parse the text of the message to determine whether the word "password" is included in the text. In this example, the text of the message includes the word "password". When the rule successfully determines that the word "password" is present in the text, the communication processing system 182 may identify the secondary queue associated with the rule. For example, the communication processing system 182 may query a lookup table to identify addresses of secondary queues associated with password retrieval (e.g., secondary queues associated with terminal devices corresponding to agents trained to assist password retrieval). In some examples, a rule may indicate whether a received message corresponds to a negative polarity, a neutral polarity, or a positive polarity. For example, a rule may parse text included in a message to determine if the word "unable" is present in the message. If the word "cannot" is present in the message, the rule may indicate that the message has a negative polarity. As a non-limiting example, the message received from network device B may include the text "i am unable to access the internet". The rule may identify that the word "cannot" is present in the message and determine that the message corresponds to a negative polarity because a user associated with network device B is experiencing a problem. In this example, the communication processing system 182 may query a lookup table to identify addresses of secondary queues associated with managing such issues. The communication processing system 182 may send messages for storage in the identified secondary queue so that agents trained to manage such problems may respond to network device B.
In other instances, the one or more rules may be automatically learned using machine learning techniques. For example, the neural network may be trained using supervised machine learning techniques based on content included in previous messages received at the communication processing system 710. One or more rules may be automatically generated based on the results of the supervised machine learning.
In some instances, one or more rules may be different for each client 125. For example, a first set of rules may correspond to a first client and a second set of rules may correspond to a second client. As another example, a rule may be associated with the first client and may indicate whether text included in the message corresponds to a negative polarity. The same rule may also be associated with the second client and may indicate whether the text included in the message corresponds to a positive polarity or a neutral polarity. For example, a rule may parse text in a message to determine if the word "resistant" is present in the message. For a first client, the presence of the word "resistant" in the message may indicate that the message corresponds to a negative polarity, while for a second client, the presence of the word "resistant" in the message may indicate a neutral polarity.
Referring to the network interaction system 100B, the network device a may transmit a first message (hereinafter referred to as "M1"). Network device B may send a second message (hereinafter referred to as "M2"). Network device C may send a third message (hereinafter referred to as "M3"). Message M1, message M2, and message M3 may or may not be sent simultaneously. Additionally, each of message M1, message M2, and message M3 may be sent to the connection management system 150.
Upon receiving message M1, message M2, and message M3, connection management system 150 may store these messages in primary queue 180. In some instances, the connection management system 150 may store the message M1, the message M2, and the message M3 in the order in which they were received. In the example of network interaction system 100B, M1 is received first and M1 is stored in a first location of main queue 180, M2 is received second and M2 is stored in a second location of main queue 180, and M3 is received last and M3 is stored in a third location of main queue 180.
The communication processing system 182 may access the primary queue 180 to retrieve the various stored messages. For example, communication processing system 182 may retrieve M1 from main queue 180 for processing. As a non-limiting example, M1 may include the text "i met technical problem". The communication processing system 182 may extract the content included in M1. In some instances, communication processing system 182 may identify additional information included in M1 or associated with M1 (e.g., the IP address of sending M1, the time of sending M1, the time span from the latest message received from the network device associated with M1, and other suitable additional information). The communication processing system 182 may apply one or more rules to the content of M1 or additional information associated with M1. For example, a rule may parse the content of M1 to identify whether the term "technical issue" is included in the content. In this example, the applied rule will successfully identify that the word "technical problem" is present in M1. The communication processing system 182 may look up the address of the secondary queue associated with the rule in a lookup table. In this example, the response to the lookup table query may identify that the secondary queue 184 is associated with the rule. For example, terminal device a (which may correspond to an agent trained in managing technical issues) may be associated with the secondary queue 184. Communication processing system 182 may send M1 and store M1 in secondary queue 184.
Communication processing system 182 may retrieve M2 from main queue 180 for processing. As a non-limiting example, M2 may include the text "i forgot my password" and may be marked as urgent by a user associated with network device B (e.g., the network device sending M2). The communication processing system 182 may extract the content included in M2 and apply one or more rules to the content of M2 or additional information associated with M2. For example, a rule may parse the content of M2 to identify whether the term "password" is included in the content. In this example, the applied rule will successfully identify that the term "password" is present in M2. The communication processing system 182 may look up the address of the secondary queue associated with the rule in a lookup table. In this example, the response to the lookup table query may identify that the secondary queue 186 and the secondary queue 188 are associated with the rule. For example, terminal device B and terminal device C may correspond to agents trained to manage password retrieval.
However, in this example, M2 is marked as urgent. Marking a message as urgent may include marking the message with a code or flag indicating that a quick response is required. Communication processing system 182 may identify the availability of terminal device B and terminal device C to determine whether these terminal devices are available (e.g., currently accessible, available for response, etc.) for quick response M2. In this example, communication processing system 182 may identify that terminal device B is not currently available, but that terminal device C is available and may respond quickly. Thus, communication processing system 182 may send M2 for storage in secondary queue 188 associated with terminal device C. In this example, if terminal device B is available, the communication processing system 182 may have sent M2 (see dashed line 190 representing a potential connection link) for storage in the secondary queue 186.
Communication processing system 182 may retrieve M3 from main queue 180 for processing. As a non-limiting example, M3 may also include the text "i met technical problem" (similar to M1), and M3 may be sent from an IP address associated with a high priority (e.g., important user). The communication processing system 182 may extract the content included in M3 and apply one or more rules to the content of M3 or additional information associated with M3. For example, a rule may parse the content of M3 to identify whether the term "technical problem" is included in the content (e.g., the same rule applied to M1). In this example, the applied rule will successfully identify that the word "technical problem" is present in M3. The communication processing system 182 may look up the address of the secondary queue associated with the rule in a lookup table. In this example, the response to the lookup table query may identify that the secondary queue 184 is associated with the rule. For example, terminal device a (which may correspond to an agent trained to manage technical issues) may be associated with the secondary queue 184. Communication processing system 182 may send M3 and store M3 in secondary queue 184.
However, in this example, M3 is sent from an IP address associated with a high priority. Further processing may be performed on the secondary queue 184 to prioritize certain messages over other messages. For example, since M3 was sent from an IP address associated with a high priority, M3 may be moved to another location in secondary queue 184 such that M3 is retrieved by terminal device a before M1 (as indicated by the dashed arrow). Similarly, M1 may be moved to another location in secondary queue 184 such that M1 is retrieved by terminal device a after retrieving M3 (as shown by the dashed arrow). Although M1 was received prior in time to M3 (e.g., M1 was stored at the initial queue location, indicating that M1 will be retrieved by terminal device a earlier than M3, and M3 was stored at the subsequent queue location), due to the high priority associated with M3, M3 takes precedence over M1, so terminal device a will retrieve M3 earlier than M1 (e.g., the initial queue location where M3 is now stored is scheduled to be processed before the subsequent queue location where M1 is now stored).
It will be appreciated that moving messages from the primary queue to the secondary queue may be used to improve load balancing of the primary queue. For example, during peak hours, if the primary queue receives a large number of messages from various network devices, moving the messages to various secondary queues may improve the availability of queue positions in the primary queue. Thus, queue requests are less likely to be discarded or stored in the buffer. Improved load balancing effectively addresses the processing load or burden and effectively manages processing resources (e.g., processors).
Fig. 2 shows a block diagram of another embodiment of a network interaction system 200. In general, fig. 2 illustrates a wide variety of components configured and arranged to enable network device 205 to communicate with one or more terminal devices 215. The illustrated example includes 9 terminal devices 215 included in 3 local area networks 235.
In some instances, the communication from the network device 205 includes destination data (e.g., a destination IP address) that at least partially or completely indicates which end device received the communication. The network interaction system 200 may include one or more inter-network connectivity components 240 and/or one or more internal network connectivity components 255 that may process the targeted data and facilitate appropriate routing.
Each inter-network connection 245 may connect to multiple networks 235 and may enable multiple network cards to be installed (e.g., each card connected to a different network). For example, the inter-network connection 245 may be connected to a wide area network 270 (e.g., the Internet) and one or more local area networks 235. In the illustrated example, in order to send a communication from the network device 205 to any terminal device, the communication must be handled by a plurality of inter-network connection components 245 in the illustrated system.
When inter-network connecting component 245 receives a communication (or a set of packets corresponding to the communication), inter-network connecting 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 routes that are predefined, generated based on an incoming message (e.g., from another router or from another device), or learned.
Examples of inter-network connection components 245 include routers 260 and gateways 265. 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 Internetwork Packet Exchange/sequential Packet Exchange (IPX/SPX) device.
Once the communication is received at the local area network 235, another route may still need to be performed. Such internal network routing may be performed by way of internal network connection component 255, such as switch 280 or hub 285. Each internal network connection component 255 may be connected (e.g., wirelessly or wired, such as via 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 a target device or whether the communication will be ignored. The switch 280 may be configured to selectively direct communications only to the target end 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. Internal network connection components 255 may be provided in one, more, or all of the zones to facilitate intra-zone routing. The bridge 280 may be configured to route communications across the segment 275.
In order to route communications appropriately across or within a network, various components analyze target data in the communications. For example, such data may indicate which network the communication is to be routed to, which device in the network the communication is to be routed to, or which communications the end device is to process (versus ignore). However, in some instances, it does not immediately appear which terminal device (or even which network) will be engaged in communications from the network device.
To illustrate, a group of terminal devices may be configured to provide similar types of responsive communications. Thus, it may be desirable to respond to queries in a communication from a network device in a similar manner, regardless of which network device the communication is routed to. Although this assumption may be true at a high level, various details about the terminal device may make certain routes more favorable than others. For example, the terminal devices in the group may differ from each other with respect to, for example, which communication channels are supported, geographic and/or network proximity to the network devices, and/or characteristics of the relevant agents (e.g., knowledge base, experience, spoken language, availability, group personality or mood, etc.). Thus, selecting a route may facilitate a faster response that more accurately and/or more fully responds to network device communications. A complication is that static routes mapping network devices to end devices may not account for changes in communication subject matter, channel type, proxy availability, etc.
Fig. 3A-3C illustrate block diagrams of other embodiments of network interaction systems 300a-300C including a connection management system. For simplicity, each of the illustrated systems 300a-300c shows only two local area networks 235, but it can be appreciated that embodiments can be extended to expand the number of local area networks. Each of the systems 300a-300c includes a connection management system 350 that can identify which end devices will communicate with the network device 205, can establish and manage (e.g., maintain or close) a connection channel, can determine whether and when to reroute communications in 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 route determination.
In fig. 3A, a connection management system 350 is associated with each of network appliance 205 and remote server 340 (e.g., connection management system 350a is associated with network appliance 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 an application on each of the network device 205 and the remote server 340, respectively. Execution of one or more applications may facilitate communication between, for example, network device 205 and remote server 340 to identify terminal devices 215 selected to participate in a communication exchange with network device 205. This identification may be based on one or more factors disclosed herein (e.g., availability, degree of match between details of knowledge base of the communicating subject/agent or terminal device, predicted delay, availability of channel type, etc.).
The client device 330 may provide client data indicating how the routing determination is to be made. Such data may include, for example: an indication of how to weight or match or constrain or bias a particular characteristic (e.g., response delay with respect to load balancing or prediction). The client data may also include instructions on 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, rules for channel establishment, management, or shutdown, rules for communication rerouting, rules for communication classification, and so forth.
Connection management system 350b executing on remote server 340 may monitor various metrics regarding the terminal device (e.g., regarding a given client), such as which communication channels are supported, geographic and/or network proximity to the network device, 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 the relevant agent (e.g., knowledge base, experience, spoken language, availability, crowd-sourcing or mood, etc.). Thus, the communication management system 350b may be enabled to select routes to facilitate faster responses that more accurately and/or more fully respond to network device communications based on metrics.
In the example shown in fig. 3A, the communication exchange between network device 205 and remote server 340 may facilitate early identification of the target address. The network device 205 may then use the destination address to direct subsequent communications. For example, the network device 205 may send the initial communication to the remote server 340 (e.g., via 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 corresponding clients and collect metrics for those end devices. The metrics may be evaluated (e.g., by remote server 340) to select a terminal device to participate in the communication exchange, and information regarding the terminal device (e.g., an IP address) may be sent to network device 205. In some embodiments, remote server 340 may continuously or periodically collect and evaluate metrics for various terminal devices and store the evaluation results in a data store. In such embodiments, upon identifying a set of terminal devices associated with the one or more corresponding 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 may receive each communication and may 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 forward each communication. According to this embodiment, terminal device communications may similarly be directed to a consistent destination (e.g., a destination of the connection management system 350) for further forwarding, or the terminal device may begin communicating directly with the corresponding network device. These embodiments may facilitate efficient routing and careful communication monitoring.
The embodiment shown in fig. 3C is similar to the embodiment shown in fig. 3B. However, in some embodiments, the connection management system 350 is directly connected to an internal network component (e.g., a terminal device, an internal network connection, etc.).
It will be appreciated 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., the inter-network connection component 245 or the internal network connection component 255) such that an application corresponding to the connection management system 350 (or a portion thereof) is installed on the component. The application may be executed (e.g., on one or more other components, network devices, or remote servers), for example, independently or by communication with one or more similar or complementary applications.
Fig. 4 shows a representation of a protocol stack mapping 400 that connects the operations of components. More specifically, FIG. 4 identifies the operational layers in the Open Systems Interaction (OSI) model corresponding to the 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 layers 402 through 412 serve higher layers and layers 404 through 414 serve lower layers. The OSI model includes a physical layer 402. The physical layer 402 may define parametric physical communication (e.g., electrical, optical, or electromagnetic). 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-node communications. The link layer 404 may detect and correct errors (e.g., transmission errors in the physical layer 402) and manage access permissions. The Link layer 404 may include a Media Access Control (MAC) layer and a Logical Link Control (LLC) layer.
Network layer 406 may coordinate the transfer of data (e.g., variable length data) between nodes in the same network (e.g., as data telegrams). Network layer 406 may translate logical network addresses to physical machine addresses.
The transport layer 408 may manage transmission quality and reception quality. The transport layer 408 may provide protocols for communicating data, such as the Transmission Control Protocol (TCP). Transport layer 408 may perform segmentation/de-segmentation of packets for transmission and may detect and account for transmission errors that occur in layers 402 through 406. The session layer 410 may initiate, maintain, and terminate a connection between the local application and the remote application. A session may be used as part of a remote process interaction. Presentation layer 412 may encrypt, decrypt, and format data based on known data types accepted by the application layer or network layer.
The application layer 414 may interact with software applications that control or manage communications. With 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 as may be available and suitable.
Internal network connection components 422, 424 are shown operating in physical layer 402 and link layer 404. More specifically, the hub may operate in a physical layer so that operations may be controlled with respect to reception and transmission of communications. Hubs have little capability 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 inter-network connection components 426, 428 are shown operating on higher layers (e.g., layer 406 through layer 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, directing the packet to the appropriate network. The gateway may operate at the network layer and higher, perform similar filtering and steering of data, and further translation (e.g., across protocols or architectures).
In various embodiments, the connection management system 450 may interact with and/or operate on one, multiple, 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 communicate with the hub. 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 target (e.g., MAC, logical, or physical) address. By way of another example, the connection management system 450 may monitor, control, or direct the segmentation of data packets at the transport layer 408, the duration of a session at the session layer 410, and/or encryption and/or compression at the presentation layer 412. In some implementations, 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., 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 existing communications. Thus, the connection management system 450 may affect communication routing and channel establishment (or maintenance or termination) by interacting with a wide variety of devices and/or by affecting operation at a wide variety of protocol stack layers.
Fig. 5 illustrates a multi-device communication switching system 500 according to an embodiment. System 500 includes a network device 505, the network device 505 configured to communicate with a wide variety of types of terminal devices over a wide variety of types of communication channels.
In the illustrated example, the network device 505 can send communications over a cellular network (e.g., via the 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 the communication and identifies which end devices respond to the communication. Such a determination may depend on identifying the client to which the communication belongs (e.g., based on content analysis or user input representative 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, the end devices 530a-530c of each cluster may correspond to different clients. These terminal devices may be geographically collocated or decentralized. Metrics may be determined based on stored or learned data and/or real-time monitoring (e.g., based on availability).
The connection management system 520 may communicate with various end devices via one or more routers 525 or other inter-network or intra-network connections. Connection management system 520 can collect, analyze, and/or store data from or about communications, terminal device operations, client rules, and/or user-associated actions (e.g., online activity, account data, purchase history, etc.) at one or more data stores. Such data may affect communication routing.
Notably, various other devices may also be used to affect communication routing and/or processing. For example, in the illustrated example, connection management system 520 is also connected to network server 540. Accordingly, the connection management system 540 may retrieve data of interest, such as technical product details, news, current product offerings, current or predicted weather, and so forth.
Network device 505 may also be connected to a network server (including, for example, streaming network server 545). In some instances, communication with such servers provides an initial option to initiate a communication exchange with the connection management system 520. For example, the network device 505 may detect that when a particular web page is accessed, a communication opportunity is available and may present such an option.
One or more elements of the communication system 500 may also be connected to a social networking server 550. Social network server 550 may aggregate data received from a wide variety of user devices. Thus, for example, connection management system 520 may be capable of evaluating a general (or user-specific) mood for a given topic or evaluating a general behavior of a given user or class of users.
Fig. 6 illustrates a block diagram of an embodiment of a connection management system 600. Message receiver interface 605 may receive a message. In some instances, the message may be received, for example, as part of a communication sent by a source device (e.g., packaged separately from or within the same enclosure as connection management system 600), such as a network device or a terminal device. In some instances, the communication may be part of a series of system or communication exchanges that may include a series of messages or message exchanges 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 channel or operating channel 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 comprise a message generated based on input received at a local or remote user interface. For example, the message may include a message generated based on a button or key press or a recorded verbal 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 providing a particular input command (e.g., a key sequence). An application may refer to an application executing on a mobile device (e.g., a smartphone). 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 target address associated with the client; or the message may include or be associated with an identification of an item (e.g., a product) or service associated with the client (e.g., an item or service offered for sale by, sold by, or served for 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 to include 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 one or more particular 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 messages (e.g., extracted or received). The evaluation may include identifying, for example, one or more categories or tags for the message. Examples of categories or tag types may include, for example, subject, mood, complexity, and urgency. The distinction between classifying messages and marking messages may be that categories may be restricted (e.g., according to a predefined set of category options) while labels may be open. The subject matter may include, for example, a product, a service, a technical issue, a user issue, a complaint, a refund request, or a purchase request. The categories or tags may be determined, for example, based on semantic analysis of the message (e.g., by identifying keywords, sentence structures, repeated words, punctuation, and/or indefinite articles), user input (e.g., one or more categories have been selected), and/or statistics associated with 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, a large number of characters, words, capitalization, all capitalized words, or particular characters or punctuation (e.g., exclamation marks, question marks, and/or period marks). Metrics may include ratios such as the proportion of sentences ending in exclamation marks (or question marks), the proportion of all upper case words, 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 corresponding source device, target device, network device, terminal device, client, one or more categories, one or more phases, and/or statistics 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. In some instances, the message evaluation engine 615 may generate message parameters, session parameters, network device parameters, or continuous communication parameters (see fig. 14 for further discussion).
The interaction management engine 625 may determine to which device to route the communication and how the receiving device and the sending device 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 device associated with connection management system 600 or any terminal device associated with one or more particular clients).
In some instances, when a network device (or other network devices associated with the same user or account) has previously communicated with a given end device (e.g., with respect to client-related issues), communication routing may typically be biased towards the same end device. Other factors that may affect routing may include, for example, inferred or identified emotions of users or agents belonging to previous communications, subject matter of the current communication (e.g., and degree of relevance to subject matter of previous communications and/or knowledge base associated with one or more terminal devices or agents), whether a terminal device (or corresponding agent) is available, and/or predicted response delay of the terminal device. Such 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 such 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 (e.g., with respect to a client-related transaction), selection of a terminal device may be performed based on a number of factors, such as, for example, the extent to which the knowledge base of the various agents corresponds to the communication topic, the availability of the various agents at a given time and/or on the channel type, the type and/or capabilities of the terminal device (e.g., associated with the client), language matching between the user and the agents, and/or character analysis. In one example, a rule may identify how to determine a score for one or more factors (such as these factors) and a weight assigned to each score. The score for each agent may be determined by combining (e.g., summing) the weighted score scores. Terminal device selection may then be made by comparing the scores (e.g., option high or highest scores) of the terminal devices.
With respect to determining how the devices communicate, the interaction management engine 625 may, for example, determine whether the end devices are communicating via, for example, email, web chat, SMS message, voice call, video chat, or the like, in response. The communication type may be selected based on, for example, a prioritized list of communication types (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 end devices. Obviously, some communication types will result in real-time communication (e.g., where a fast message response is desired), while other communication types may result in asynchronous communication (e.g., where a delay between messages (e.g., minutes or hours) is acceptable).
Additionally, 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 future communications from the network device to the designated end device. The bias may even persist across a series of messages (e.g., days, weeks, or months). In some instances, a representation of the continuous channel (e.g., an identification agent) may be included in a presentation presented on the network device. In this manner, the user can understand that communications are to be routed consistently to improve efficiency.
In one example, the score may be generated using one or more factors described herein and a rule that determines a connection score for a given network device and terminal device (e.g., the rule includes a weight for each of the one or more factors). The score may relate to an overall degree of match or a degree of match for a given communication or series of communications. Thus, for example, the score may reflect the degree to which a given terminal device is predicted to be suitable for responding to network device communications. In some instances, score analysis may be used to identify the various end devices to which a given communication is routed and whether to establish, use, or terminate a connection channel. When using score analysis to engage in routing decisions and channel decisions, the score for each decision may be determined in the same, similar, or different manner.
Thus, for example, it will be appreciated that different factors may be considered depending on whether the score predicts the strength of a long-term match versus the strength of a match in response to a particular message query. For example, in the former instance, overall scheduling and time zone considerations may be important, while in the latter instance, immediate availability may be more highly weighted. The score may be determined for a single network device/terminal device combination, or multiple scores may be determined, each score 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 may be evaluated for potential communication routes. A score may be generated for each terminal device regarding the degree of match for a particular communication. Each of the first two terminal devices may have previously communicated with the network device that sent the communication. The input from the network device may have indicated satisfaction with the interaction with the one or more communications with the first device. Thus, the point scores for past interactions of the first device, the second device, and the third device (as calculated according to the rules) may be 10, 5, and 0, respectively. A negative satisfaction input may result in a negative score. It may be determined that only the third terminal device is directly available. It is predictable 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 quick response score for the first device, the second device, and the third device may be 1, 3, and 10. Finally, the knowledge of the agent (associated with the terminal device) about the topic in the communication may be evaluated. It may be determined that the agent associated with the third terminal device is more knowledgeable than the agents associated with the other two devices, resulting in the point scores of 3, 4 and 9. In this example, the rule does not include weighting or normalization parameters (although in other instances the rule may include these parameters), resulting in scores 14, 11, and 19. Thus, the rule may indicate that the message is to be routed to the device with the highest score, which is the third end device. If routing to a particular end device is unsuccessful, the message may be routed to the device with the next highest score, and so on.
The score may be compared to one or more absolute or relative thresholds. For example, scores for a group of terminal devices may be compared to each other to identify a high score for selecting a terminal device to which communications may be routed. As another example, a score (e.g., a high score) 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 important in a continuous channel context due to a strong match (given the extended 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 for consistently routing communications in a given series of messages.
In various contexts, interaction management engine 625 may interact with account engine 630. For example, account engine 630 may look up an identifier of a network device or terminal device in account data store 635 to identify the account to which the device corresponds. Additionally, account engine 630 may maintain information about previous communication exchanges (e.g., time, other device(s) involved, channel type, resolution phase, topic(s), and/or associated client identifier), connection channels (e.g., indicating for each of one or more clients whether any channels are present, end devices associated with each channel, time of setup, frequency of use, date last used, any channel constraints, and/or communication types supported), user or agent preferences or constraints (e.g., preferences or constraints regarding end device selection, response delay, end device consistency, agent expertise, and/or communication types), and/or user or agent characteristics (e.g., age, language(s) spoken or preferred, geographic location, time of day of the day, time of the day, and/or of the day, Interests, etc.).
Additionally, interaction management engine 625 may alert account engine 630 of various connection channel behaviors so that account data store 635 may be updated to reflect current channel data. For example, once the channel is established, the interaction management engine 625 may notify the account engine 630 of the establishment and identification of one or more of a network device, a terminal device, an account, and a client. The account engine 635 may then (in some instances) notify the user of the existence of the channel so that the user may be aware that proxy consistency is utilized.
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). 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, product, service, web page, or application page). The identifier may be included as part of a message (e.g., a message that client mapping engine 640 may detect) or as other data in a communication that includes 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 one or more keywords. In some instances, a single client is identified. In some examples, multiple clients are identified. The identity of each client may then be presented via 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 about each of one, more, or all such end devices (and/or agents) in order to influence routing determinations. For example, the terminal routing engine 650 can maintain a terminal data store 655, which terminal data store 655 can store information such as the device type of the terminal device, operating system, communication type capabilities, installed application attachments, geographic location, and/or identifiers (e.g., IP addresses). The information may also include agent information such as experience level, location, skill level, knowledge base (e.g., the agent's knowledgeable topics and/or level of knowledge for each topic), personality metrics, hours of operation, language or languages spoken, and/or demographic information. Some information may be dynamically updated. For example, information indicating whether the terminal device is available may be dynamically updated based on, for example, communications from the terminal device (e.g., identifying whether the device is asleep, off/on, idle/active, or whether input is received within a time period), 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 is to be appreciated that, in various contexts, engaging in one or more communication exchanges does not necessarily indicate that the terminal device is unavailable to engage in another communication exchange. Various factors, such as the type of communication (e.g., message, email, chat, phone), the target response time identified by the client or user, and/or the system load (e.g., generally or relative to 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, it may notify the end routing engine 650, which end routing engine 650 may retrieve from the end data store 655 any pertinent data about the end device, such as destination (e.g., IP) address, device type, protocol, etc. Processing engine 610 may then (in some instances) modify the communication comprising the message or generate a new communication (comprising the message) to have a particular format, conform to a particular protocol, and so forth. 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 transmitter interface 660 may then send the communication to the terminal device. The transmission may include, for example, wired or wireless transmission to a device enclosed in a separate enclosure. The terminal devices may include terminal devices in the same or different network (e.g., a local area network) as the connection management system 600. Thus, sending the communication to the terminal device may comprise sending the communication to an inter-network connection means or an internal network connection means.
FIG. 7 illustrates a flow diagram of an embodiment of a process for indexing messages and generating message records. Process 700 may be performed, for example, in part or in whole by a connection management system, such as connection management system 150, connection management system 350, connection management system 450, connection management system 520, or connection management system 600. Process 700 may begin at block 705 where a message receiver interface (e.g., message receiver interface 605 of fig. 6) detects an interaction between a network device and a terminal device. The interaction may include one or more messages sent as part of one or more sessions (e.g., associated with different time periods, browser sessions, communication initiation requests, etc.). The interaction may include, for example, an interaction facilitated by an application or web page, an SMS interaction, an email interaction, a call interaction, and so forth. Process 700 may be performed, for example, in part or in whole, by a message evaluation engine (e.g., message evaluation engine 615 of fig. 6).
At block 710, one or more determinable characteristics associated with all or a portion of the interactions are identified. The determinable characteristic may include, for example, an identifier of the network device, an identifier of the terminal device, an identifier of a user associated with the network device, an identifier of an agent associated with the terminal device, a specification of the message (e.g., a number of words or characters); the number of messages (e.g., typically or from each of one or two devices); the time of the message; delays between messages (e.g., delays between messages from the same device or between messages from either device) and/or a count of particular characters (e.g., exclamation or question marks).
At block 715, one or more topics are identified for all or a portion of the interactions based on content in one or more messages in the interactions and/or detected inputs. Topics may be identified based on extracting one or more keywords from the content of the message, identifying data associated with the message that identifies the topic (e.g., identified based on a user or agent's selection of the topic), and/or performing semantic analysis (e.g., based on ontology, machine learning, or clustering techniques). Topics may include category topics (e.g., category topics selected from a list of available topics) or tag topics (e.g., allowing topic identification to be open).
At block 720, one or more problem resolution stages are identified based on content in one or more messages in the interaction and/or the detected input. Problem resolution may be inferred based on keyword or wording detection (e.g., detecting various common interactive endwords, such as "do i answer all your questions. A problem solution may also or alternatively be detected based on input received at the network device or the terminal device (e.g., and communicated to the connection management system). The input may correspond to a selection of a resolution stage or problem processing stage (e.g., "resolved," "in survey") or an input that terminates the session in a manner indicative of a resolution stage (e.g., after an aggressive end message content).
At block 725, one or more inferred sentiment scores are determined based on the one or more messages in the interaction, the specifications of the one or more messages, the speed at which the one or more messages are constructed, the delay between messages, and/or the detected input. For example, a set of emotions may be defined, where each emotion is associated with one or more metrics (e.g., keywords, statistics, or input identifiers). Semantic, statistical, clustering logic, or other analysis may then be performed to classify the message for association with one or more of the set of emotions. For example, the mood definition may indicate that a high message frequency (e.g., relative to message frequencies of other devices) and/or a long message from a given device may indicate a "frustrating" mood. As another example, the mood definition may indicate that a particular keyword (e.g., "thank," "frustrated," "not working," "irritated") may correspond to a particular mood. Block 725 may include generating a single sentiment score or multiple sentiment scores (e.g., one score for each of the terminal device and the network device; one score for each of a set of sentiments; and/or one score for each time period or message).
At block 730, one or more message indexes are set. The one or more message indices may be set to reflect the results of one or more of blocks 710-725. In some instances, the indexes are arranged in a hierarchical manner. For example, a series or batch of messages may be associated with a given index, in which case the index may (but need not) belong to each message in the series or selection. In some instances, one or more indices are assigned to each of some or all of the messages in an interaction. Setting the message index may include associating a particular message with an indication reflecting a determined or identified value or other data. Thus, for example, setting the index may include defining or generating metadata, association structures, and the like.
At block 735, an index is identified. In some instances, the index may be an index identified in an input (e.g., entered at a network device or a terminal device). For example, a user may indicate an interest in a set of messages presented about a particular topic. In some instances, the index may be identified according to a rule. For example, the rule may indicate that messages associated with poor sentiment scores are to be aggregated after determining that a rerouting procedure is to be initiated. In various instances, block 735 may include identifying a single index (e.g., a particular topic), a set of indices (e.g., multiple topics, a particular topic, and a particular network device), and/or a series of indices (e.g., emotion score indices below a threshold).
At block 740, a message record is generated to selectively include a plurality of messages, each of the plurality of messages associated with an index. Generating the message record may include, for example, retrieving a set of messages (e.g., messages associated with the identified one or more indices) from a message data store (e.g., message data store 620 of fig. 5) and aggregating the messages. The messages may be ordered based on one or more indices or dimensions, such as time, mood, resolution stage, source device, and/or topic. In some instances, the classification technique may be determined based on the input and/or may be set based on the identified one or more indices.
At block 745, the message record is analyzed or presentation of the message record is facilitated. For example, a message record including messages sharing a first index may be analyzed to characterize the presence and/or magnitude of a trend in a second dimension (e.g., an emotion or solution phase). Facilitating presentation of the message record may include sending the message record to another device or presenting the record locally. It will be appreciated that presenting the record may include presenting at least a portion of the record (e.g., so as to be disposed within a display on the device).
In some instances, the message record may be dynamic. For example, even after a message record is generated, sent, and/or presented, newly received messages associated with the identified one or more indices may be added to the record. Such message additions may be implemented, for example, as follows: sending a new message along with an indication that the new message is to be added to the record, updating a stored version of the record with the new message and sending or presenting the updated version, or generating a new version of the record (e.g., on a regular period of time, or upon detection of any new message associated with a particular channel, network device, and/or terminal device).
Fig. 8 illustrates a flow diagram of an embodiment of a process 800 for facilitating message routing based on a generated proxy vector. Process 800 may be performed, for example, in part or in whole by a connection management system, such as connection management system 150, connection management system 350, connection management system 450, connection management system 520, or connection management system 600. Process 800 may begin at block 805 where a message receiver interface (e.g., message receiver interface 605 of fig. 6) detects a message from a network device.
At block 810, a topic associated with the message is determined, such as by a message evaluation engine (e.g., message evaluation engine 615 of fig. 6). The topic may be determined based on, for example, the message and/or content in the detected input. Topics may be identified based on extracting one or more keywords from the content of the message, identifying data associated with the message that identifies the topic (e.g., identified based on a user or agent's selection of the topic), and/or performing semantic analysis (e.g., based on ontology, machine learning, or clustering techniques). Topics may include category topics (e.g., category topics selected from a list of available topics) or tag topics (e.g., allowing topic identification to be open).
At block 815, a complexity level associated with the message or account data associated with the network device is determined, such as by an interaction management engine (e.g., interaction management engine 625 of fig. 6). For example, the complexity level may be determined based on the number of occurrences of technical terms in the message (e.g., technical terms matching in a defined list), the length of the message, the number of question marks or requests in the message, and/or an identifier of the complex product or service. As another example, the interaction management engine may communicate with an account engine (e.g., account engine 630 of fig. 6) to access account data from an account data store (e.g., account data store 635 of fig. 6). The account data may reflect (e.g., predict) the complexity associated with the user based on previous communication exchanges, input from the agent, accessed web pages or application pages, and/or profile data (e.g., academic or vocational). This account data may be used to predict the complexity that a message exchange will involve. It may be assumed, for example, that a user who has visited many highly technical web pages and/or has a high degree of scholarness may request more complex questions from another user.
At block 820, an inferred sentiment score is determined based on the message or account data associated with the network device, such as by an interaction management engine. For example, the interaction management engine may receive an inferred emotion score from the message evaluation engine that is generated based on the message or associated data (e.g., metadata and/or other data in the communication that includes the message). Such a score may have been based on, for example, the size of the message, the speed at which the message was constructed, and/or the words or characters in the message. Semantic, statistical, clustering logic, or other analysis may then be performed to classify the message to be associated with one or more of the set of emotions, such as the analysis detailed herein (e.g., with respect to block 735 of process 700 of fig. 7). Examples of techniques (for any of the purposes disclosed herein) that may be used to evaluate emotions or generate an emotion score may include, for example, keyword matching, lexical homologies, and machine learning (e.g., support vector machines, information theory, latent semantic analysis, semantic networks, ontology, and/or neural networks).
As another example, the account engine may retrieve account data corresponding to network devices representing emotional tendencies. To illustrate, the account data may indicate that the associated user frequently provides input within or after a communication identifying dissatisfaction (or conversely, satisfaction) with the communication exchange, that the agent frequently provides input indicating that the user appears frustrated (or conversely, cooperative and motivated), that semantic analysis frequently identifies a decrease (or conversely, an increase) in emotional score throughout the exchange, and so forth. The inferred sentiment score may include, for example, a numerical or categorical score.
At block 825, immaterial characteristics associated with the message or account data associated with the network device are determined, such as by an interaction management engine. Immaterial characteristics such as the size of the message (e.g., number of words or characters); the speed at which the message is typed (e.g., as identified by metadata in the communication); the time of the message; inter-message delay (e.g., between the beginning or end of the most recent series of messages between the network device and the end device associated with the client (the same client as related to the message)) and/or a count of a particular character (e.g., exclamation or question mark).
At block 830, for each agent in the set of agents, a vector of corresponding variables is identified, such as by an end routing engine (e.g., end routing engine 650 of fig. 6). The corresponding variable may include or may be based on data in a terminal data store (e.g., terminal data store 655 of fig. 6). Examples of the corresponding variables may include: an identification of a subject to which an agent has been assigned a treatment or trained exercise; experience level (e.g., time at the company or client assigned experience level); a rank of company-associated locations of the agent; an indication of how to typically change (e.g., typically or starting at a particular mood point) the mood associated with the network device during the message exchange with the terminal device of the proxy; and/or a current or typical (e.g., average or median) sentiment score associated with the agent or terminal device. The vector may also include one or more additional variables, such as an indication as to whether the agent and/or associated terminal device is available to respond to the message and/or an indication as to which communication types the agent is capable of receiving and/or transmitting via.
A vector may comprise any combination of data, including a variety of corresponding variables. A vector may comprise a single data structure or a portion or all of multiple data structures.
At block 835, a subset of the set of agents is identified based on the agent vector and the determined variable, such as by an interaction management engine. The subset may include a single agent or multiple agents and may include fewer agents than the set of agents. In some instances, the number of agents included in a subset may be fixed (e.g., defined generally and/or for a particular client). In other instances, the number may be variable (e.g., depending on the identified vector).
In one example, a score is generated for each agent based on the corresponding vector. For example, the score may include a weighted sum of the elements of the vector, where the weight may be predefined (e.g., generally or for a particular client) or determined based on one or more of the variables determined in blocks 810-825. The subset may then include one or more agents associated with scores above a relative or absolute threshold (e.g., the agent with the highest score among the set of agents). Additionally or alternatively, a filtering strategy may be employed. For example, each of one or more agents associated with a particular supplemental variable (or variable outside of a prescribed threshold), such as a variable indicating that the agent is not currently available, may be excluded from the subset. Additionally or alternatively, identifying the subset may include using load balancing or pseudo-random selection techniques. For example, a single agent may be selected from among a plurality of agents associated with scores above a threshold value generated based on the corresponding vectors.
At block 840, the interaction management engine may facilitate establishing an operative connection to route the message to the end device associated with the agent in the subset. In some instances, the operative connection may comprise a continuous connection that may persist across a series of messages or a connection that is specific to a particular series of messages. Establishing the connection may include storing a routing indication indicating that messages received from the network device (e.g., at least during a given session or before an operational connection is closed) are to be routed to the end device.
In one instance, a single agent may be identified (e.g., at block 835), and a connection may be established. The communication may be sent to the network device that identifies the proxy (e.g., prior to or with the sending of the responsive communication routed from the end device). In one example, information about a plurality (e.g., all) of the agents in the subset is sent to the network device so that the user can select the agent with which to communicate. This information may include, for example, a name, a picture, an empirical indication, a location, and/or a spoken language. Upon receiving the selection indication, the interaction management engine may establish an operative connection between the network device and the end device associated with the selected agent.
It will be appreciated that block 840 may include facilitating establishment of a direct operative connection between the terminal device and the network device (e.g., by sending an address or phone number of the network device to the terminal device, by sending an address or number of the terminal device to the network device, or by receiving or selecting an address or number of the terminal device at the network device) or an indirect operative connection (e.g., by generating a routing protocol at an intermediary device).
Fig. 9 shows a flow diagram of an embodiment of a process 900 for managing the establishment of a continuous channel. Process 900 may be performed, for example, in part or in whole by a connection management system, such as connection management system 150, connection management system 350, connection management system 450, connection management system 520, or connection management system 600. Process 900 may begin at block 905 with an interaction management engine (e.g., interaction management engine 625 of fig. 6) facilitating routing of a series of messages between a network device and an end device.
Such facilitation may include, for example, controlling the target data in the initial or relayed message (e.g., depending on whether the connection management system is operating at the network device, at least in part). As another example, facilitating may include establishing a routing protocol to route communications received from the network device to the end device, and vice versa. As yet another example, facilitating may include sending target data regarding the network device to the terminal device and/or sending target data regarding the terminal device to the network device so that the devices may communicate directly (via one or more networks and connecting components).
The series of messages may include messages sent as part of a session and/or associated with similar transmission times (e.g., within one hour of each other). The series of messages may include messages received and/or sent via a single session of a web page or web site (e.g., instructing the user not to close the browser during the session).
At block 910, the continuous channel rules are accessed, such as by an interaction management engine. The continuous channel rule may include a condition that, when satisfied, indicates that a continuous channel is to be established between the network device and the terminal device. The condition may relate to a characteristic relating to one or more messages, one or more inputs (e.g., from a user and/or an agent), and/or account data. In general, the conditions may be structured such that they are satisfied when it is predicted that long-term communications between an agent associated with the terminal device and a user associated with the network device will be constructively effective and complete solutions to cause any user problems, will promote client-side goals (e.g., user satisfaction, purchase, or repeated network access), and/or will promote positive user emotions.
The conditions may include conditions defined by the client, conventionally defined, and/or learned. For example, a learning algorithm may be established to generate or modify the condition based on which the established continuous channel is terminated during or between uses of the continuous channel or after uses by user activity (or agent activity), frequency of use of one or more continuous channels, and/or monitoring of user mood, network access, purchase decisions, and/or the like.
The condition may relate to a characteristic related to the message, the input, or the account data. The condition may include, for example, one or more thresholds to which the characteristic may be compared and/or one or more values to which the characteristic may be compared. For example, the condition may indicate that the condition is satisfied when the user emotion score is above 80% at the end of the series of messages and when the user account data indicates that the user has not closed more than 80% of the three or the established continuous channel.
In some instances, the condition may relate to any of a message parameter, a session parameter, a network device parameter, and a continuous communication parameter (see fig. 14 for further discussion). For example, the condition of the continuous channel rule may be satisfied if the session parameters indicate that a series of messages (e.g., a session on a topic) communicated between the network device and the terminal device have a positive polarity.
At block 915, characteristics are determined based on one or more messages in the series of messages, the input, or the account data, such as by an interaction management engine. For example, the characteristics may include a polarity (e.g., negative, neutral, positive, etc.) indicating an emotion of one or more messages, an emotion score derived based on a single or multiple messages, a change in emotion score over a series of messages, a problem resolution phase corresponding to a message or a series of messages, and/or a change in problem resolution phase over a series of messages. As another example, the characteristic may include an indication of whether an input requesting establishment of a continuous channel with another device is received at the network device or the terminal device. As yet another example, the characteristics may be based on a degree of match between account data corresponding to a user indicating a time at which the user typically sent a message and account data corresponding to a time of the agent indicating typical availability. As yet another example, the characteristic may reflect a frequency of use or a count of one, more, or all of the continuous channels established to comprise the network device (e.g., belonging to a particular client or any such channel), and/or a percentage of termination or a count of one, more, or all of the continuous channels established to comprise the network device (e.g., belonging to a particular client or any such channel).
At block 920, a determination is made as to whether a condition of the rule is satisfied based on the characteristic, such as by an interaction management engine. This determination may include, for example, comparing each of the one or more characteristic values to a corresponding threshold value and/or determining whether the characteristic matches a particular value (e.g., a category value or a numerical value).
When it is determined that the condition is satisfied, process 900 may continue to block 925 where a continuous channel is established between the network device and the end device, such as through an interaction management engine. Establishing the continuous channel may include transmitting one or more instruction communications and/or storing data that facilitates the network device's ability to communicate with the same terminal device during a subsequent series of messages.
For example, when the connection management system is detached from the network device, the interaction management engine may send data regarding the end device, the agent, and/or the continuous channel instructions to the network device. The interaction management engine may receive or have received data about the end device or the agent when the connection management system is operating at least in part on the network device. Using the terminal device and/or proxy data, the network device may then address some or all subsequent client-associated communications to the terminal device. To illustrate, in one example, any message from a user that is generated in part via a particular (e.g., client-associated) website may be addressed to a terminal device. As another illustration, the application may identify the agent or allow the user to request a new agent, and all messages generated corresponding to the selection of the agent may be addressed to the terminal device.
As another example, the target data in the communication sent from the network device need not be affected by the establishment of the continuous channel. Instead, a target device receiving such communications may implement protocols to bias routing, conditionally route, or always route client-associated communications from a network device to an end device. Thus, establishing a continuous channel may include generating or updating a routing protocol belonging to a network device (e.g., and a client associated with a terminal device).
Establishing a continuous channel may, but need not (depending on the implementation) result in all messages associated with the client being routed to the end device. For example, such routing may require a user to first provide input selecting a channel or generate a message in the context associated with the channel. As another example, the channel may have particular applicability, such as to a given topic or problem. Thus, once it is determined that the message relates to the topic or problem, the message may be selectively routed to the end device.
At block 930, a presentation indicating that a channel has been established and including an identifier is generated, such as by an interaction management engine. The identifier may identify an agent associated with the terminal device. The identifier may include, for example, a picture, a name, an experience identifier, and/or a location of the agent. The presentation may include an option that the user may select in order to direct a particular message to the agent. The presentation may also include one or more other options, such as an option for terminating a continuous channel and/or for sending non-directed messages (which will not bias routing towards end devices). The presentation may be dynamic and may reflect, for example, the current real-time availability status of the agent.
When it is determined that the condition is not satisfied, process 900 may continue to block 935, where routing of subsequent messages from the network device to a different end device may be facilitated, such as by an interaction management engine. Different terminal devices may be selected, for example, based on availability, using some or all of process 800, to favor terminal devices associated with more agent experience, different agent skills, and/or different agent locations.
In some instances, a notification is sent to the network device indicating that the subsequent message may or will be routed to a different end device before block 935 is performed. The notification may, but need not, include information about the different terminal devices and/or associated agents. The notification may be accompanied by an instruction to select an option corresponding to the request to proceed with the proposed reroute and/or not to proceed with the proposed reroute. In some instances, block 935 may then be conditionally executed (e.g., only after receiving a request to continue rerouting or as long as no instructions have been received to continue rerouting).
In various embodiments, some or all of process 900 may be performed during or after a session between a network device and a terminal device. Thus, for example, in one example, block 935 may correspond to re-routing messages in a session, such that a terminal device communicating with a network device at the end of the session may be different from a terminal device communicating with a network device at the beginning of the session.
Figure 10 shows a flow diagram of an embodiment of a process 1000 for dynamically routing electronic messages to end devices based on an index. Process 1000 may be performed, for example, in part or in whole by a connection management system, such as connection management system 150, connection management system 350, connection management system 450, connection management system 520, or connection management system 600. Process 1000 may begin at block 1005, where a message evaluation engine (e.g., message evaluation engine 615 of fig. 6) evaluates index data for one or more messages in one or more interactions. The index may include one or more indices set according to block 730 of the process 700 of fig. 7.
At block 1010, one or more characteristics for one or more messages may be determined, such as by a message evaluation engine. The one or more characteristics may correspond to a theme, mood, or polarity associated with the one or more messages. The one or more messages may include one or more messages in a communication series between the network device and the terminal device. The terminal device may comprise a terminal device associated with the client. The one or more messages may include one or more messages sent by the network device, the terminal device, or both.
The one or more characteristics may be determined based on, for example, content in the one or more messages, data associated with the one or more messages (e.g., included in the one or more communications that include the messages), and/or one or more inputs received at the network device and/or the terminal device. For example, upon receiving a message from a network device, the terminal device may prompt the agent to select one or more topics and/or emotions for the message from a list of possible topics and/or emotions. As another example, the user may be prompted to identify a subject of the message prior to sending the communication, and the selection may be identified within the communication that includes the message. As another example, the message analysis techniques disclosed herein may be used to automatically (e.g., without human assistance) detect subject matter and/or emotions. In some instances, the one or more characteristics may be based on any of message parameters, session parameters, network device parameters, or continuous communication parameters (see fig. 14 for further discussion).
In some instances, the one or more characteristics relate to static characterizations, such as a topic or mood at a particular time or belonging to a particular message. In some instances, the one or more characteristics relate to differential characterization, such as whether a topic or emotion has been changed, the degree to which a topic or emotion has been changed, and/or how a topic or emotion has been changed during a series of messages. In some instances, the one or more characteristics relate to more advanced characterizations, such as a broad range of themes or emotions associated with different portions of the message series. In some instances, the emotionally corresponding characteristic includes whether to receive input (e.g., from a network device or a terminal device) corresponding to a request to reroute the communication to a different terminal device.
At block 1015, a rerouting condition from the rerouting rule is evaluated, such as by the interaction management engine, based on the one or more characteristics. In general, the routing conditions may be structured such that they are satisfied when: when it can be assessed that the user is or will be dissatisfied with the series of communications, that the series of communications is not or proceeds much slower than expected toward the target problem-solving phase, or that the agent is or will be dissatisfied with the series of communications. The evaluation may include, for example, comparing each of the one or more characteristic values to a corresponding threshold value and/or determining whether the characteristic matches a particular value (e.g., a category value or a numerical value).
The rerouting conditions may include conditions defined, conventionally defined, and/or learned by the client. For example, a learning algorithm may be established to generate or modify the rerouting condition based on which the established series of messages is terminated by monitoring user activity (or agent activity) and/or user mood, network access, purchase decisions, etc. during the series of messages.
In some examples, the rerouting condition may be complementary to the continuous channel condition evaluated at block 920 of process 900 of fig. 9. For example, the conditions may be structured such that messages will be rerouted during a series of messages when the sentiment score is below a threshold and a continuous channel will be established after the series of messages when the sentiment score remains at or above the threshold. In some examples, the conditions for establishing a continuous channel are more restrictive than the supplements of rerouting conditions. For example, re-routing may be avoided as long as the emotion score does not decrease by more than 50%, but a continuous channel may be established when the emotion score increases by at least 20% in the message series.
At block 1020, a determination is made, such as by the interaction management engine, as to whether a rerouting condition is satisfied based on the evaluation. When it is determined that the rerouting conditions are not met, process 1000 may return to block 1015.
When it is determined that the rerouting condition is satisfied, process 1000 may continue to block 1025 where a new end device may be selected, such as by an interaction management engine. New end devices may be selected, for example, based on availability, using some or all of process 800 of fig. 8, to favor end devices associated with more agent experience, different agent skills (e.g., corresponding to recent communication interaction topics), and/or different agent locations.
At block 1030, a dynamic message record may be generated, such as by a message evaluation engine (e.g., message evaluation engine 615 of fig. 6). For example, an initial set of messages may be identified. The group may include messages from multiple series, either in a single series of messages (and/or sessions) or in other instances (e.g., in the case of a single terminal device or multiple terminal devices). In some instances, the message may comprise a message associated with a single client. The messages may include messages sent exclusively from the network device, messages sent exclusively by the terminal device(s), or a combination of both.
In some instances, a message record may be targeted because the message record may include messages corresponding to one or more selection indices. Generating the message record for the target may include filtering the set of messages. For example, messages associated with an index associated with a particular topic, mood (or range of moods), issue resolution stage (or range thereof), and/or time period may be selected for inclusion in the recording.
In some instances, the specification of the record is restricted or specified. For example, a rule may indicate that a record will include no more than 10 messages, 300 words, or 2000 characters. Records may be categorized and/or multidimensional. For example, the dimension of the record may indicate whether a given message is from a network device or a terminal device, and the messages may be sorted according to transmission time. This may allow messages to be presented differently on a given display side based on the source device. Other examples of dimensions may include question identifiers, subject matter, identifiers of message series, and so forth.
The message record may be dynamic in that one or more new messages may be dynamically added to the record. For example, a new message is appended to the message record after receipt (which may, but need not, indicate that the message is to be displayed at the top/bottom or right/left end of the record presentation). Adding a new message may, but need not, require or result in the deletion of one or more other messages in the record (so as to comply with any combination of message number, word number, or character number constraints).
At block 1035, presentation of the dynamic message record (e.g., at the new end device) is facilitated, such as by an interaction management engine. For example, the representation of the message record may be presented locally, a presentation comprising the representation of the message record may be sent to the new terminal device, or a presentation of data of the message record may be sent to the new terminal device.
It will be appreciated that blocks 1030 through 1035 may be partially or fully repeatedly performed. For example, before rerouting occurs, if a new message is received, the dynamic message record may be updated to include the new message (e.g., by locally generating a new or modified version of the message record or by sending the message to the rendering device to integrate the message with the record at the receiving device). The presentation may then be updated to include the new message.
At the same time, the new message may also be sent to the terminal device that initially participated in the message series with the terminal device. Thus, two terminal devices may receive communications of one or more network devices during the period between the determination that the rerouting condition is satisfied and the completion of the rerouting procedure. Thus, communications may be replicated (e.g., by the interaction management engine) to reach each device. The policy may allow an agent associated with the new terminal device to examine the ongoing series of messages before participating in the series, thereby reducing the need for the user to re-interpret the relevant details, matters, questions, etc.
At block 1040, a reroute notification is sent to a network device or display, such as through a message transmitter interface (e.g., message transmitter interface 660 of fig. 6) (e.g., when message transmitter interface 660 operates locally at the network device). The reroute notification may indicate that a subsequent message may or will be routed to the new end device. The notification may, but need not, include information about the new terminal device and/or associated agent. The notification may be accompanied by an option to choose to proceed with the proposed reroute and/or not to proceed with the proposed reroute.
At block 1045, one or more subsequent messages may be directed to the new end device, such as by an end routing engine (e.g., end routing engine 650 of fig. 6). These one or more subsequent messages may include messages to which a new terminal device is assigned to respond and/or messages not received by the terminal device that initially participated in the series of messages. The steering may include updating routing protocols and/or task allocation protocols.
The directing may include releasing the terminal device initially participating in the series of messages from the task of responding to the message. The release may occur, for example, in response to detecting a message directed from the new terminal device to the network device, detecting that a defined period of time has elapsed since the sending or presentation of the dynamic message record, detecting a communication from a different terminal device indicating that the associated party is ready to engage in the interaction, etc. Releasing the terminal device may include ceasing transmission of new messages from the network device to the terminal device. In some instances, the rule indicates that the terminal device will continue to receive messages associated with the interaction (e.g., to prepare an agent associated with the terminal device to provide information, if required, or to observe how the interaction is handled by an agent associated with the new terminal device).
Block 1045 may then be performed conditionally in some instances (e.g., only when a request to continue rerouting is received; only if an instruction to not continue rerouting has not been received; and/or only when an indication of a request direction occurrence is received from an agent associated with the new terminal device).
Fig. 11 illustrates a flow diagram of an embodiment of a process 1100 for dynamically routing electronic messages based on consistency and delay variables. Process 1100 may be performed, for example, in part or in whole by a connection management system, such as connection management system 150, connection management system 350, connection management system 450, connection management system 520, or connection management system 600. Process 1100 may begin at block 1105, where a message receiver interface (e.g., message receiver interface 605 of fig. 6) receives a message from a network device. The message may include a message that initiates a new series of messages or a session.
At block 1110, a determination is made that the message is associated with one or more particular clients, such as by a client mapping engine (e.g., client mapping engine 640 of fig. 6). In some instances, the determination may be based on an identifier corresponding to the client (e.g., an identifier of the client, product, service, web page, or application page). The identifier may be included as part of the message (e.g., the client mapping engine may detect the message) or as other data in the communication that includes the message. For example, an interface presented at the user device (e.g., in a web page or application page) may allow the user to select a particular client (or product or service) to indicate that the message relates to or is directed to the selected client. A message as specified by the user may then be sent (e.g., via one or more communications) in association with the selection. The identifier may be looked up in a client data store (e.g., client data store 645 of fig. 6), such as by a client mapping engine, to retrieve additional data about the client and/or the identifier of the client.
At block 1115, the end device is identified as associated with one or more clients that previously communicated with the network device, such as by an interaction management engine. In one example, the terminal device can include a terminal device associated with a continuous channel involving a network device. In one example, the terminal device may comprise a terminal device that participates in a current or previous message exchange with the network device.
At block 1120, a topic, emotion, or resolution phase of a message associated with a last conversation corresponding to a series of previous messages between the terminal device and the network device is analyzed, such as by an interaction management engine. The topic and/or emotion may be identified, for example, by retrieving index data (e.g., as set according to the techniques described herein, such as by way of a portion or all of process 700 of fig. 7) or by analyzing stored messages or message metadata in order to determine a topic or emotion (e.g., according to the techniques described herein).
In one example, the analysis can include determining whether the mood (e.g., average mood score or final mood category) and/or mood change exceeds a threshold and/or matches a value. The emotion may comprise an inferred or recognized (e.g. input by means of an explicit emotion identification from the agent or user) emotion of a user associated with the network device or an agent associated with the terminal device. In one example, the analysis can include determining whether the topic to which the message received at block 1105 corresponds is any number or threshold number of messages that also correspond to the last conversation or generally corresponds to the topic of the last conversation. In one example, the problem resolution stage of a previous message may be analyzed with respect to the problem resolution stage to which the received message corresponds (e.g., to determine whether a step forward or a step backward has been experienced). In some instances, the analysis may include an evaluation of any of message parameters, session parameters, network device parameters, and continuous communication parameters (see fig. 14 for further discussion).
It will be appreciated that the analysis performed at block 1120 may involve additional or alternative features. For example, the type of communication channel associated with the previous message may be compared to the type of received message to determine if the two are the same.
At block 1125, a determination is made as to whether the analysis indicates that the message is to be routed to a new (i.e., different) end device, such as by an interaction management engine. This determination may be made by evaluating conditions in the (generic or client-specific) routing rules.
In general, the rerouting conditions may be structured such that they are satisfied: when it is possible to evaluate that the user or agent associated with the terminal device will be satisfied with the communication series; the communication series will advance towards the target problem solving phase; the communication series will progress towards the target problem solving phase at or faster than the target speed; and/or the agent associated with the terminal device will have a rich knowledge of the problems posed by the network device communications.
This determination may include determining whether a variable (e.g., an emotion score or a change in emotion score) identified at block 1120 exceeds a threshold or whether the analysis resulting from block 1120 identifies a degree of match or a match score between the subject matter of the received message and the subject matter of the message of the last conversation that is above a threshold.
In some instances, the determination may be based on whether a continuous channel is established between the network device and the terminal device. For example, the presence of a continuous channel may indicate that process 1100 is to proceed from block 1125 to block 1130 b.
The routing conditions may include conditions defined, conventionally defined, and/or learned by the client. For example, a learning algorithm may be established to generate or modify the routing condition based on which previous consistent routing attempts are terminated by user activity, how initiating an asynchronous communication exchange does not affect emotions (e.g., of a particular user or group of users) in real-time, and so on.
When it is determined that the message is to be routed to a new end device, process 1100 continues to block 1130a where the new end device is selected, such as by an interaction management engine.
A new terminal device may be selected using some or all of process 800, for example, based on availability (e.g., general, current, and/or relative to the type of communication to which the received message corresponds) and/or an agent knowledge base, skill, or location associated with the device.
At block 1135, a notification of the new agent selection is sent to the network device and/or the new terminal device, such as through a message transmitter interface (e.g., message transmitter interface 660 of fig. 6). The notification may indicate that subsequent messages may or will be routed to the new end device. The notification may, but need not, include information about the new end device, an agent associated with the new end device, the network device, a user associated with the network device, and/or the message. The notification may include an indication that the communication is not to be sent to a terminal device that previously communicated with the network device. The notification may include information about the terminal device and/or the associated agent. The notification may be accompanied by an option to select a request corresponding to the proposed reroute to proceed and/or an instruction not to proceed with the proposed reroute (e.g., and route the communication to the terminal device identified at block 1115).
At block 1140a, a new (e.g., continuous or discontinuous) connection channel may be opened and a communication exchange between the network device and the new end device may be facilitated, such as by an interaction management engine. Block 1140a may comprise, for example, sending the message to the new end device, routing the new message from the network device to the new end device (e.g., in the same message series), routing the message from the new end device to the network device, and/or providing information about the network device or the new end device (e.g., address, IP address, phone number, account data, etc.) to other devices, etc. In one example, routing protocols (e.g., specific to a session or series of messages or a more permanent session or series of messages) and/or task assignments may be updated to associate the network device with the new end device.
In some instances, block 1140a may be performed conditionally (e.g., only when a request to proceed with routing to a new device is received; only if an instruction has not been received to not proceed with the proposed new device route; and/or only when an indication of a request direction occurrence is received from an agent associated with the new end device).
When it is determined that the message will not be routed to a new end device, process 1100 continues to block 1130b, where a determination is made as to whether a proxy associated with the end device is available, such as by an end routing engine (e.g., end routing engine 650 of FIG. 6). The determination may include identifying a status of the terminal device (e.g., whether the terminal device is online or offline) and/or determining whether a value associated with assignment of a task to the terminal device (e.g., to participate in a communication exchange) exceeds a threshold. The value may include, for example, a number of assigned tasks, a predicted time that the end device will take to complete a task assignment once (or another number, such as 1 plus the number of assigned tasks that are not attended to), and/or an estimated workload based on the task assignment (e.g., a sum or average over multiple assignments). The threshold may be a threshold as defined within a rule, such as a general rule, a client-specific rule, a terminal device-specific rule, a rule defined based on a learning technique (at least in part) (to identify a value that a defined percentage of users will tolerate in a real-time communication exchange without terminating the exchange), and so forth.
The determination at block 1130b may include determining whether the agent is available to provide a response to the message in real time and/or with a short delay (e.g., within less than 3 minutes, 1 minute, 30 seconds, or 10 seconds). The determination may be based on, for example, a time at which a most recent communication (e.g., any type or particular type of most recent communication) from a terminal device associated with the agent is detected, a stored working time of the agent, a determination of whether the agent has any existing communication task assignments, a determination of an amount and/or type of any existing communication task assignments, a detection of whether an affirmative answer is received in response to an availability inquiry communication sent to the terminal device, and/or a detection of a status or activity of the terminal device (e.g., via remote monitoring).
When it is determined that the agent is not available, process 1100 continues to block 1132 where a response delay is predicted, such as by an end routing engine. Response delays may be predicted based on, for example, the number, complexity, and/or predicted engagement time of the communication task assignments currently assigned to the agent (e.g., based on empirical data that may generally predict engagement time or may predict engagement time specifically for a client, topic, time period, issue type, agent, etc.). The prediction of response delay may also or alternatively be based on agent operating time, local time, and/or a latency assessment provided by the prediction.
At block 1134, a determination is made, such as by the interaction management engine, as to whether the shorter delay outperforms proxy consistency. The determination may be made according to a rule. For example, a rule may specify a threshold and indicate that a shorter delay prevails over proxy coherency when the predicted response delay exceeds the threshold. The threshold may be general or specific to one or more of a client, a user, a time period, a type of issue, a topic, a type of communication, etc. The threshold may be defined or learned, for example, by a client or user. For example, the machine learning technique may identify a threshold corresponding to a given percentage of users that abandon the series of messages when the response delay exceeds the threshold.
In one example, a notification is generated for presentation at a network device that tells a user routing options. The notification may identify the previous agent and the predicted response delay. In some instances, the notification may also identify one or more communication channel types that may be used to communicate with the previous agent or the new agent. In the absence of any contrary instruction, the notification may, but need not, identify a default routing policy (e.g., routing to a previous agent or a new agent). The notification may include an option to indicate that the communication should be routed to the network device associated with the new agent and/or an option to indicate that the communication should be routed to the new network device. The determination at block 1134 may be made in accordance with any user input received in response to this type of notification.
When it is determined that the shorter delay prevails over device consistency, process 1100 continues to block 1130 a. When it is determined that the shorter delay prevails over device consistency, process 1100 proceeds to block 1140b, where the connection channel is reopened and the communication exchange between the network device and the end device is facilitated, such as by the interaction management engine. When it is determined that an agent is available, process 1100 proceeds to block 1140c, where the connection channel is reopened and a real-time communication exchange between the network device and the end device is facilitated, such as by the interaction management engine.
One or both of blocks 1140b and 1140c may comprise facilitating the communication exchange by, for example, sending a message to the terminal device, routing a new message from the network device to the terminal device (e.g., in the same message series), routing a message from the terminal device to the network device, and/or providing information about the network device or the terminal device (e.g., address, IP address, phone number, account data, etc.) to other devices, etc. In one example, routing protocols (e.g., specific to a session or series of messages or a more persistent session or series of messages) and/or task assignments may be updated to associate network devices with end devices.
The difference between block 1140b and block 1140c relates to how quickly the terminal device will respond to the network device's message expectation. With respect to block 1140c, it may be desirable to receive the response quickly and/or in real-time. For example, it may be expected that the terminal device will respond to the network device's message within 1 minute, 3 minutes, or 5 minutes. Meanwhile, a longer delay may be desired at block 1140 b.
Due to the predicted response delay differences, in some examples, the communication exchange facilitated at block 1140b may be of a different type than the communication exchange facilitated at block 1140 c. For example, the communication exchange facilitated at block 1140c can comprise an online chat or a telephone call, and the communication exchange facilitated at block 1140b can comprise an SMS message exchange, an application-based message exchange, or an email chain. In some instances, the type of communication exchange facilitated at block 1140b may comprise an asynchronous exchange, wherein the user and the agent need not participate in the exchange at the same time or during the same time period (while such concurrent participation may be desired in the exchange facilitated at block 1140 c). The asynchronous exchange may include, for example, an electronic message exchange (e.g., via an application, a web-based messaging/mailbox system, or email) as opposed to instant messaging or chat. Asynchronous exchange may include transmitting messages as follows: the sent message is stored in a message queue or mailbox until the target device requests that the message be rendered or access a web page or application page corresponding to the queue or mailbox.
Fig. 12 shows a flow diagram of an embodiment of a process 1200 for routing communications. Process 1200 may be performed, for example, in part or in whole by a connection management system, such as connection management system 150, connection management system 350, connection management system 450, connection management system 520, or connection management system 600. Process 1200 may begin at block 1205 where a message receiver interface (e.g., message receiver interface 605 of fig. 6) receives a communication from a network device. The communication may comprise a message. The message may initiate a new series of messages or communication sessions. The communication may include content data. In some instances, the content data may include various information (e.g., text, images, video, files (. doc,. pdf, and other suitable files), etc.). Content data may be generated based on input received at a network device sending the communication. Content data may also be generated based on information related to or associated with the communication (e.g., IP address, time of transmission, time of reception, user profile data associated with a user operating the network device, and other suitable information).
At block 1210, upon receiving a communication, a connection management system (e.g., connection management system 150) may store the communication in a primary queue (e.g., primary queue 180). The primary queue may be a data structure that stores various communications received from various network devices. Additionally, the primary queue may include a plurality of queue locations. The communication received at block 1205 may be stored at a queue location of the plurality of queue locations. In some instances, the primary queue may be a combination of multiple queues or various data structures (e.g., queues, data trees, etc.) for storing data.
At block 1215, communications may be retrieved from the main queue. For example, a communication processing system (e.g., communication processing system 182) may retrieve communications from the main queue. In some instances, the communication processing system may retrieve the communication in order to process the communication to determine to which end device or devices the communication should be routed.
At block 1220, the communication may be analyzed. For example, the communication processing system may analyze the communication. In some instances, analyzing the communication may include parsing the content data for one or more keywords. For example, the keywords may include any combination of text or punctuation data, however, the invention is not limited thereto. In some instances, parsing the content data may include extracting any text in the content data and reading the text to determine whether the text includes keywords.
In some instances, the key may correspond to one or more secondary queues. The secondary queue may be a data structure (similar to the primary queue) stored in the connection management system. For example, one or more of the secondary queues may be queues associated with particular keywords. As a non-limiting example, the secondary queue may be associated with the term "password. In this example, all communications determined to include the term "password" are stored in a secondary queue associated with the term "password". As another example, if the communication includes the text "i don't know my password," the text may be parsed to determine if the keyword "password" is included in the text. In this example, the text included in the communication is determined to include the term "password". Accordingly, since the communication includes the term "password," the password may be stored in a secondary queue associated with the keyword "password.
In some instances, analyzing the communication may include identifying whether one or more anchor points are included in the communication. An anchor point may include any combination of text or punctuation associated with negative, neutral, or positive polarity. An anchor may be determined, identified, or generated by a client (e.g., client 125) such that the anchor may be specific to each client. In other instances, the anchor point may be automatically determined based on previous communications (e.g., using supervised machine learning techniques), or may be the same for each client. As a non-limiting example, an anchor point may be the phrase "dislike," which may be associated with a negative polarity. When identifying an anchor point, the text surrounding the anchor point (e.g., three to five words near the identified anchor point item in the sentence) may be analyzed for enlarging the item. The magnification term may increase, maintain, or decrease the intensity of the polarity (e.g., negative, neutral, or positive).
Continuing with the present example, if the term "true" is near anchor "dislike" (e.g., as in the sentence "i really dislike"), the term "true" may be identified as an enlarged term. Once the magnification is identified, the communication processing system may determine that the negative polarity associated with the communication is of a high intensity. In this case, the message parameters may be generated based on the identification of the anchor point and the associated magnification item. As a non-limiting example, the message parameter may be a numerical value indicating a high strength of negative polarity (e.g., a message parameter of 20 on a scale of 0 to 100, where a lower number indicates negative polarity and a higher number indicates 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 near anchor "dislike" (e.g., as in the sentence "i am somewhat dislike"), the term "a point" may be identified as a moderately strong enlarged item indicating negative polarity. In this case, the message parameters may be generated based on an identification of moderate strength of negative polarity. As a non-limiting example, the message parameter may be a value of moderate strength indicating a negative polarity (e.g., a message parameter of 40 as opposed to a message parameter of 20). As discussed in the next block (block 1225), in some instances, a message parameter may be used to determine which secondary queue to use to store communications.
At block 1225, the general store may be stored in a secondary queue associated with the key. In some instances, the secondary queue may correspond to one or more end devices. For example, a secondary queue associated with the keyword "password" may correspond to one or more terminal devices operated by agents trained to exercise engagement with users having password questions.
In some instances, the secondary queue may include one or more secondary queues. Additionally, in some instances, a secondary queue may be associated with a polarity. For example, the secondary queue may be associated with one or more of a negative polarity (e.g., described herein as a negative secondary queue), a neutral polarity (e.g., described herein as a neutral secondary queue), an active polarity (e.g., described herein as an active secondary queue), and so forth. As another example, if a communication has a message parameter of high strength indicating a negative polarity, the communication may be stored in a negative secondary queue associated with the high strength. For example, communications associated with negative polarity may be stored together in a negative secondary queue regardless of strength, or the communications may be stored in a separate negative secondary queue based on strength.
In some instances, when multiple communications (e.g., messages) are stored in the secondary queue, the queue positions of the communications in the secondary queue may be prioritized based on various factors. For example, if the IP address of a message stored in the secondary queue is associated with a high priority, the messages stored in the secondary queue may be reordered so that the message associated with the high priority is earlier in the queue (e.g., processed earlier than other messages).
At block 1230, terminal devices included in one or more terminal devices corresponding to the secondary queue (which stores communications) may be identified. For example, the communication processing system may identify one or more terminal devices corresponding to the secondary queue storing communications. The communication processing system may then select one of the one or more terminal devices based on various factors. Examples of factors evaluated in considering which terminal device to select from the one or more terminal devices may include predicted response time (e.g., of the terminal device), availability, unavailability, location, a knowledge base of agents associated with the terminal device, the terminal device affiliated with the user profile (e.g., the terminal device that previously communicated with the network device associated with the communication), and other suitable factors. Examples of predicted response times may include an amount of time to wait before an agent may respond to a communication received from a network device, an unavailable time (e.g., a time when an agent is unavailable), and so forth.
In some instances, the communication processing system may compare the predicted response time associated with the first terminal device to a threshold (e.g., a defined time). For example, when the predicted response time for the first terminal device exceeds (e.g., is equal to or greater than) a threshold, the communication processing system may identify a second terminal device that has a faster response time (e.g., a predicted response time that is below a defined threshold).
At block 1235, a retrieval request may be received from the terminal device identified at block 1230. The retrieval request may be a communication from the identified terminal device that includes data indicative of a request to access the communication stored in the secondary queue. In some instances, once the end device is identified (e.g., at block 1230), the connection management system may route the communication to the end device (rather than the end device requesting retrieval of the communication).
At block 1240, communications stored in the secondary queue may be routed to the terminal device requesting access to the communications. In some instances, routing the communication to the identified end device may include establishing the communication between the identified end device and a network device associated with the communication (e.g., the network device that originally sent the communication).
It will be appreciated that once a message is received at the connection management system, the terminal device may be notified of messages associated with a particular polarity (e.g., a negative polarity) rather than messages stored in a secondary queue associated with the particular polarity. For example, if the received message corresponds to a negative polarity, the terminal device (e.g., associated with the management agent) may receive an alert communication indicating the presence of the message having the negative polarity.
FIG. 13 is a flow diagram illustrating an embodiment of a process of performing a task. Process 1300 may be performed, for example, in part or in whole by a connection management system, such as connection management system 150, connection management system 350, connection management system 450, connection management system 520, or connection management system 600. Process 1300 may begin at block 1305, where a message receiver interface (e.g., message receiver interface 605 of fig. 6) receives an initial communication from a network device. The initial communication may comprise a message. The message may initiate a new series of messages or communication sessions. The communication may include content data. In some instances, the content data may include various information (e.g., text, images, video, uploaded files (. doc,. pdf, and other suitable files), etc.). Content data may be generated based on input received at a network device sending the communication. Content data may also be generated based on information related to or associated with the communication (e.g., IP address, time of transmission, time of reception, user profile data associated with a user operating the network device, and other suitable information).
At block 1310, the connection management system may identify the terminal device using the initial communication. In some instances, the connection management system may identify the terminal device (e.g., analyze the initial communication) using the processes described in blocks 1220-1230 of fig. 12. In other examples, in block 1310, the connection management system may identify a terminal device that has previously communicated with the network device. Additionally, the end device may be associated with a client (e.g., entity, client 125). At block 1315, the connection management system may establish a communication link between the network device (which sent the initial communication) and the terminal device (which was identified at block 1310). Establishing a communication link between the network device and the terminal device may enable communications (e.g., messages) to be communicated between the network device and the terminal device.
At block 1320, the connection management system may facilitate a communication session between the network device and the terminal device. The communication session may include one or more sessions associated with different time periods, browser sessions, communication initiation requests, and the like. Additionally, the communication session may include a plurality of messages communicated (e.g., exchanged) between the network device and the terminal device over the established communication link (e.g., the communication link established at block 1315). A communication session may also include messages communicated between multiple network devices and/or multiple terminal devices.
At block 1325, the connection management system may receive an initial message. In some instances, the initial message may be a communication that is part of a communication session. The initial message may include content data.
At block 1330, the connection management system may generate initial message parameters for the initial message. Initial message parameters may be generated as discussed at blocks 1220 through 1230 of fig. 12. For example, the message parameters may be generated based on the identification of the anchor point and the associated enlarged term. In some instances, the message parameter may indicate or indicate a polarity (e.g., characteristic) of the message. Examples of polarity include negative, positive, neutral, angry, frustration, and the like. In some instances, the polarity may include multiple dimensions (e.g., multiple emotions). For example, polarity may correspond to angry mood and frustrated mood. In this example, a message parameter for a message having a polarity with multiple dimensions may include multiple components (e.g., a value representing an angry emotion, and another value representing a frustrating emotion). In some examples, the message parameter may be a high-intensity value indicating negative polarity (e.g., a message parameter of 20 on a scale of 0 to 100, where a lower number indicates negative polarity and a higher number indicates positive polarity). An algorithm may be used to calculate the message parameters. For example, the algorithm may be based on supervised machine learning techniques. The message parameters may indicate characteristics of the message (e.g., message characteristics) (emotion, intent, polarity, etc.).
At block 1335, the connection management system may generate session parameters for a plurality of messages associated with the communication session. For example, session parameters may be generated for a particular session (e.g., a set, subset, or group of messages) between a user and an agent. In some instances, the session parameters may be generated based on a combination (e.g., a weighted combination, an average, an exponential moving sum, and other suitable combination) of a plurality of message parameters (which correspond to a plurality of received messages). As a non-limiting example, the session parameters may be generated by calculating an exponential move sum of the first message, the second message, and so on. In this example, the exponential moving sum may be calculated by taking a first-in-time message parameter in time and multiplying it by a defining factor, and then adding a second message parameter in time (e.g., an additional message parameter). An example of the definition factor may be 0.8, however, the present invention is not limited thereto. For example, the first message parameter in time may be-1 and the second message parameter in time may be 1, and the session parameter calculated using exponential mobile summation may be (-1) × 0.8+ (1) × 0.2.
It will be appreciated that the technique for combining two or more message parameters (e.g., when generating session parameters) may differ based on the determined polarity of the message. For example, if both message parameters correspond to negative polarity, the session parameters for both messages may be calculated using an exponential moving sum (or any other technique), whereas if both messages correspond to positive polarity, the session parameters for both message parameters may be calculated using an average of the two message parameters (or any other technique). As another example, if the first message parameter corresponds to positive polarity and the second message parameter corresponds to negative polarity, the session parameters for the two messages may be calculated using a weighted combination (or any other technique).
In some instances, the session parameters may be updated in real-time as new messages are received from the network device (e.g., as discussed in fig. 14). In some instances, the conversation parameter may indicate a conversation characteristic (emotion, intent, polarity, etc.) of the conversation (e.g., the set of messages, e.g., regarding a particular topic).
In some instances, network device parameters may be generated (see fig. 14 for further discussion). For example, the network device parameter may be a combination (e.g., weighted combination, average, exponential moving sum, and other suitable combination) of all session parameters associated with a particular network device. Additionally, in some instances, continuous communication parameters may be generated (see fig. 14 for further discussion). For example, the continuous communication parameter may be a combination (e.g., a weighted combination, an average, an exponential moving sum, and other suitable combination) of all network device parameters associated with the plurality of network devices.
At block 1340, a task may be performed based on the message parameters, the session parameters, the network device parameters, the continuous communication parameters, or any combination thereof. Examples of tasks performed based on message parameters or sessions may include: routing communications to a particular end device, selecting the end device best suited for communicating with the network device (which sent the communications), rerouting communications to another end device, sending alert communications to an end device other than the end device participating in the communication session with the network device (e.g., the end device that sent the alert to the management agent), generating reports, and other suitable tasks.
Fig. 14 is a flow diagram illustrating an example process 1400 for generating continuous communication parameters. Process 1400 may be performed, for example, in part or in whole by a connection management system (such as connection management system 150, connection management system 350, connection management system 450, connection management system 520, or connection management system 600) or communication processing system 182. Process 1400 may include generating message parameters, session parameters, network device parameters, and continuous communication parameters. The message parameters, session parameters, network device parameters, and continuous communication parameters may include scores or values, which may be generated based on one or more algorithms.
In some instances, the message parameter may indicate whether the polarity (e.g., emotion, intent, subject, etc.) of a particular message is negative, neutral, positive, or other suitable polarity. The session parameters may indicate whether the polarity of a particular session (e.g., a series of message exchanges between the network device and the terminal device regarding a topic) is negative, neutral, positive, etc. The network device parameter may indicate whether the polarity of all sessions associated with the network device is negative, neutral, positive, etc. Finally, the continuous communication parameter may indicate whether the polarity of all network devices communicating with the terminal device associated with a particular client is negative, neutral, positive, or other suitable polarity.
In process 1400, network device a may send one or more messages as part of one or more communication sessions (e.g., sessions associated with different time periods, browser sessions, communication initiation requests, etc.). The sending of the message may be facilitated by an application executing on the mobile device (e.g., a smartphone), a web page displayed on a desktop computer, an SMS interaction, an email interaction, a phone interaction, and so forth. Process 1400 may be performed, for example, in part or in whole by a message evaluation engine (e.g., message evaluation engine 615 of fig. 6) or communication processing system 182.
In some instances, the message parameters may be generated in real-time for each message sent by network device a as the message is received at the connection management system. In the example of process 1400, MP1A corresponds to message parameters generated for a first message sent by network device a, MP2A corresponds to message parameters generated for a second message sent, MP3A corresponds to message parameters generated for a third message sent, MP4A corresponds to message parameters generated for a fourth message sent, and MP5A corresponds to message parameters generated for a fifth message sent. Message parameters may be generated as discussed above with respect to fig. 1A-1B (e.g., identifying one or more anchors and calculating a score or value based on the one or more anchors).
MP1A, MP2A, MP3A, MP4A, and MP5A may be dynamically grouped based on one or more factors. Examples of factors considered for grouping may include a subject matter of the message or series of messages, an emotion associated with the message (e.g., negative, neutral, or positive polarity), completion of a session between the user and the agent, a degree of resolution of a problem indicated in one or more messages of the communication session, and other suitable factors. In some instances, messages may be immediately grouped in real time as they are received at the connection management system. A set of messages may include a subset of messages in the set of messages included in the communication session.
In some instances, the session parameters may be generated in real-time for each group of messages (e.g., a particular session). For example, as shown in fig. 14, CP1405 may be generated based on a combination (e.g., a weighted combination, an average, an exponential moving sum, and other suitable combination) of message parameters MP1A, MP2A, and MP 3A. By way of non-limiting example, CP1405 may be generated by calculating the sum of the exponential shifts of MP1A, MP2A, and MP 3A. Similarly, CP 1410 may be generated based on a combination of message parameters MP4A and MP 5A. The session parameters may be updated in real time as new messages are received at the connection management system. For example, CP1405 is initially generated based on MP1A and MP2A prior to generating MP3 (e.g., prior to receiving a third message at the connection management system). Upon receiving the third message and generating MP3A, CP1405 may be updated using, for example, an exponential moving sum equation.
In some instances, Network Device Parameters (NDPs) may be generated in real-time based on the generated session parameters. For example, NDP 1415 may be a combination (e.g., a weighted combination, an average, an exponential moving sum, and other suitable combination) of CP 1405 and CP 1410. Additionally, the NDP 1415 may be automatically updated when new session parameters are generated (e.g., when a new message is received at the connection management system).
In some instances, the message parameters may be generated in real-time for each message sent by network device B as the message is received at the connection management system. In the example of process 1400, MP1B corresponds to message parameters generated for a first message sent by network device B, MP2B corresponds to message parameters generated for a second message sent, MP3B corresponds to message parameters generated for a third message sent, MP4B corresponds to message parameters generated for a fourth message sent, MP5B corresponds to message parameters generated for a fifth message sent, and MP6B corresponds to message parameters generated for a sixth message sent.
MP1B, MP2B, MP3B, MP4B, MP5B, and MP6B may be dynamically grouped based on one or more factors, as described above. As shown in fig. 14, a CP 1420 may be generated based on message parameters MP1B and MP 2B. CP 1420 may be a combination (e.g., a weighted combination, an average, an exponentially moving sum, and other suitable combinations) of MP1B and MP 2B. Similarly, CP 1425 may be generated based on message parameters MP3B and MP4B, and CP 1430 may be generated based on message parameters MP5B and MP 6B. In some instances, CP 1420, CP 1425, and CP 1430 may be updated in real time as new messages are received at the connection management system, as described above.
Additionally, the NDP 1435 may be generated in real-time as a combination (e.g., a weighted combination, an average, an exponential moving sum, and other suitable combinations) of the CP 1420, CP 1425, and CP 1430. Additionally, the NDP 1435 may be automatically updated when new session parameters are generated (e.g., when a new message is received at the connection management system).
The continuous communication parameter (CCP 1440) may be generated based on a combination (e.g., a weighted combination, an average, an exponential moving sum, and other suitable combinations) of NDP 1415 and NDP 1435. Additionally, CCP 1440 may be automatically updated when new network device parameters are generated (e.g., when new messages are received at the connection management system).
The connection management system may perform one or more activities based on the message parameters, session parameters, network device parameters, and/or continuous communication parameters. In some instances, the connection management system may reroute existing communications between the network device and the terminal device to another terminal device based on the session parameters. For example, if the session parameters indicate that a series of messages communicated between the network device and the terminal device have negative polarity, the connection management system may reroute the next message from the network device to a different terminal device. In some instances, the connection management system may send an alert message to a management end device (e.g., an end device associated with a manager of the plurality of agents) when the network device parameter indicates that a particular network device is associated with a negative polarity. In other instances, network device parameters may be used to evaluate the performance of an agent associated with a terminal device. For example, a terminal device that is always associated with session parameters indicating a positive polarity may correspond to a positive performance.
It will be appreciated that the terminal device parameters may be generated in a manner similar to the network device parameters. For example, the terminal device parameter may indicate a capability of an agent associated with the terminal device. In this example, the terminal device parameters may be generated by analyzing responsive communications sent from the terminal device to the network device (e.g., in response to communications received from the network device). Similarly, it will be appreciated that message parameters, session parameters, terminal device parameters, and continuous communication parameters may be generated for a network device based on communications originating from the terminal device (as opposed to messages received from the network device).
Fig. 15A to 15D illustrate examples of interfaces representing aspects of connecting with a terminal device according to an embodiment. FIG. 15A shows an example of an interface identifying three clients. For the first client, three consecutive channels have been established between the network device of the user and the terminal device associated with the client. For the second client, a single continuous channel has been established. For the third client, a continuous channel has not been established.
Each successive channel is identified in the interface. In the illustrated example, each channel is identified by a picture of the agent associated with the successive channel. The interface may allow a user to communicate with the identified agent by clicking on the channel representation.
Fig. 15B illustrates an example of an interface for a message exchange between a network device and a terminal device (e.g., a message exchange presented in response to detecting selection of a particular continuous channel representation, or in response to detecting other input indicating a request to participate in the message exchange). According to the present embodiments and environments, the message exchange may include a real-time message exchange or an asynchronous message exchange that allows parties to participate in the exchange during different and/or non-overlapping times.
FIG. 15C illustrates an example of an interface including representations of various communication exchanges on different topics. Each representation includes a target message record for the identified topic. The messages associated with the topic may include messages from all or a portion of one or more message exchange sessions. In one example, the representation of the selected topic may initiate opening or reopening of a continuous connection with the terminal device that previously participated in the topic-associated message exchange. In one example, the representation of the selection topic may initiate opening of communications with different terminal devices, but subsequent communication exchanges may be appended to previous communication exchanges to seamlessly bridge the exchanges. In addition, previous theme-targeted exchanges can be sent to different terminal devices by means of message records.
It will be appreciated that the subject matter may correspond to subject matter selected from the defined categories. However, in one example, the theme may correspond to an open label. Thus, after the exchange of messages, the user may be able to provide input selecting an existing tag or identifying a new tag. In this way, the user can define how to aggregate the messages in a desired manner.
Fig. 15D illustrates an example of an interface that may be presented at a terminal device to facilitate participation in a message exchange. In the illustrated example, the terminal device participates in a series of 12 messages. Data about a series (about the user John Smith) is presented in the main window. The window shows the user's name, topic (or theme), and message records (which in the illustrated example are separate based on the source device and include only one message sent from each device). The interface also includes data about the targets for interaction (for "sales improvement"), identification of the type of communication ("chat"), and user account data (order data).
The interface also includes representations of other interactions (e.g., "24 visitors," "22 apprentices," etc.). The representation may identify how many, if any, unviewed messages have been received from the network devices participating in the interaction, the time since the last response, and the emotional representation.
Thus, it will be appreciated that establishing a real-time (and/or, in some instances, asynchronous) communication exchange between a network device and a terminal device may include adding a representation of an interaction and/or network device to an interface presented at the terminal device.
In the above description, specific details are given to provide a thorough understanding of the implementations. However, it is understood that the above-described embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams 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.
The implementation of the techniques, blocks, steps and means described above may be performed in various ways. For example, these techniques, blocks, steps and means may be implemented in hardware, software, or a combination of hardware and software. For a hardware implementation, the Processing units may be implemented within one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, other electronic units designed to perform the functions described herein, and/or combinations thereof.
Also, it is noted that portions of the embodiments 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. Further, the order of the operations may be rearranged. A process may 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 corresponds to a return of the function to the calling function or the main function.
Furthermore, embodiments may be implemented by hardware, software, scripting languages, firmware, middleware, microcode, hardware description languages, and/or any combination thereof. When implemented in software, firmware, middleware, scripting language, and/or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium. A code segment or machine-executable instruction may represent a process, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a script, a set, or any combination of instructions, data structures, and/or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, and/or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, ticket passing, network transmission, etc.
For a firmware and/or software implementation, the methods may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, the software codes may be stored in a memory. The memory may be implemented within the processor or external to the processor. As used herein, the term "memory" refers to any type of long term, short term, volatile, non-volatile, or other storage medium and is not to be limited to any particular type of memory or memories or any particular type of media on which memory is stored.
Furthermore, as disclosed herein, the terms "storage medium," "Memory," or "Memory" may represent one or more memories for storing data, including Read Only Memories (ROMs), Random Access Memories (RAMs), magnetic RAMs, core memories, magnetic disk storage media, optical storage media, flash Memory devices, and/or other machine-readable media for storing information. The term "machine-readable medium" includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels, and/or various other storage media capable of storing, containing or carrying instruction(s) and/or data.
While the principles of the invention have been described above in connection with specific apparatuses and methods, it is to be clearly understood that this description is made only by way of example and not as a limitation on the scope of the invention.

Claims (21)

1. A computer-implemented method, comprising:
determining a characteristic of the message, wherein the characteristic is based on emotions corresponding to one or more messages;
determining whether a condition corresponding to a continuous channel rule is satisfied based on a characteristic of the message;
facilitating establishment of a continuous channel between a network device and a terminal device when the condition is satisfied, wherein subsequent messages from the network device are transmitted to the terminal device over the continuous channel, and wherein facilitating establishment of the continuous channel comprises: implementing a protocol for biased routing of the subsequent message from the network device to the terminal device when the network device and the terminal device have previously communicated; and
routing the subsequent message between the network device and the terminal device through the continuous channel to continue the communication train containing the message.
2. The computer-implemented method of claim 1, further comprising:
Generating a representation indicating that the continuous channel has been established between the network device and the terminal device when the condition is satisfied based on a characteristic of the message, wherein the representation includes an identifier of an agent associated with the terminal device.
3. The computer-implemented method of claim 1, further comprising:
when the condition is not satisfied based on the characteristics of the message, sending a notification to the network device indicating that the subsequent message is to be routed to a different terminal device.
4. The computer-implemented method of claim 1, further comprising:
selecting a different terminal device to which to route the subsequent message when the condition is not satisfied, wherein the different terminal device is selected based on the characteristic being consistent with a vector of variables associated with an agent operating the different terminal device.
5. The computer-implemented method of claim 1, wherein the condition comprises an aggressive polarity of the message.
6. The computer-implemented method of claim 1, wherein determining characteristics of the message comprises parsing the message to identify keywords indicative of the emotion.
7. The computer-implemented method of claim 1, wherein the condition is satisfied when an emotion score corresponding to the one or more messages satisfies one or more thresholds associated with the characteristic.
8. A system, comprising:
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 operations comprising:
determining a characteristic of the message, wherein the characteristic is based on emotions corresponding to one or more messages;
determining whether a condition corresponding to a continuous channel rule is satisfied based on a characteristic of the message;
facilitating establishment of a continuous channel between a network device and a terminal device when the condition is satisfied, wherein subsequent messages from the network device are transmitted to the terminal device over the continuous channel, and wherein facilitating establishment of the continuous channel comprises: implementing a protocol for biased routing of the subsequent message from the network device to the terminal device when the network device and the terminal device have previously communicated; and
Routing the subsequent message between the network device and the terminal device through the continuous channel to continue the communication train containing the message.
9. The system of claim 8, wherein the operations further comprise:
generating a representation indicating that the continuous channel has been established between the network device and the terminal device when the condition is satisfied based on a characteristic of the message, wherein the representation includes an identifier of an agent associated with the terminal device.
10. The system of claim 8, wherein the operations further comprise:
when the condition is not satisfied based on the characteristics of the message, sending a notification to the network device indicating that the subsequent message is to be routed to a different terminal device.
11. The system of claim 8, wherein the operations further comprise:
selecting a different terminal device to which to route the subsequent message when the condition is not satisfied, wherein the different terminal device is selected based on the characteristic being consistent with a vector of variables associated with an agent operating the different terminal device.
12. The system of claim 8, wherein the condition comprises an aggressive polarity of the message.
13. The system of claim 8, wherein determining characteristics of the message comprises parsing the message to identify keywords indicative of the emotion.
14. The system of claim 8, wherein the condition is satisfied when an emotion score corresponding to the one or more messages satisfies one or more thresholds associated with the characteristic.
15. 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 operations comprising:
determining a characteristic of the message, wherein the characteristic is based on emotions corresponding to one or more messages;
determining whether a condition corresponding to a continuous channel rule is satisfied based on a characteristic of the message;
facilitating establishment of a continuous channel between a network device and a terminal device when the condition is satisfied, wherein subsequent messages from the network device are transmitted to the terminal device over the continuous channel, and wherein facilitating establishment of the continuous channel comprises: implementing a protocol for biased routing of the subsequent message from the network device to the terminal device when the network device and the terminal device have previously communicated; and
Routing the subsequent message between the network device and the terminal device through the continuous channel to continue the communication train containing the message.
16. The computer program product of claim 15, wherein the operations further comprise:
generating a representation indicating that the continuous channel has been established between the network device and the terminal device when the condition is satisfied based on a characteristic of the message, wherein the representation includes an identifier of an agent associated with the terminal device.
17. The computer program product of claim 15, wherein the operations further comprise:
when the condition is not satisfied based on the characteristics of the message, sending a notification to the network device indicating that the subsequent message is to be routed to a different terminal device.
18. The computer program product of claim 15, wherein the operations further comprise:
selecting a different terminal device to which to route the subsequent message when the condition is not satisfied, wherein the different terminal device is selected based on the characteristic being consistent with a vector of variables associated with an agent operating the different terminal device.
19. The computer program product of claim 15, wherein the condition comprises an aggressive polarity of the message.
20. The computer program product of claim 15, wherein determining characteristics of the message comprises parsing the message to identify keywords indicative of the emotion.
21. The computer program product of claim 15, wherein the condition is satisfied when an emotion score corresponding to the one or more messages satisfies one or more thresholds associated with the characteristic.
CN202210359284.8A 2015-06-02 2016-06-02 Method, system and computer program product for dynamic communication routing Active CN114845351B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210359284.8A CN114845351B (en) 2015-06-02 2016-06-02 Method, system and computer program product for dynamic communication routing

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562169726P 2015-06-02 2015-06-02
US62/169,726 2015-06-02
CN201680045661.3A CN107924507B (en) 2015-06-02 2016-06-02 Dynamic communication routing based on consistency weighting and routing rules
CN202210359284.8A CN114845351B (en) 2015-06-02 2016-06-02 Method, system and computer program product for dynamic communication routing
PCT/US2016/035535 WO2016196806A1 (en) 2015-06-02 2016-06-02 Dynamic communication routing based on consistency weighting and routing rules

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201680045661.3A Division CN107924507B (en) 2015-06-02 2016-06-02 Dynamic communication routing based on consistency weighting and routing rules

Publications (2)

Publication Number Publication Date
CN114845351A true CN114845351A (en) 2022-08-02
CN114845351B CN114845351B (en) 2024-08-16

Family

ID=61521270

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680045661.3A Active CN107924507B (en) 2015-06-02 2016-06-02 Dynamic communication routing based on consistency weighting and routing rules
CN202210359284.8A Active CN114845351B (en) 2015-06-02 2016-06-02 Method, system and computer program product for dynamic communication routing

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201680045661.3A Active CN107924507B (en) 2015-06-02 2016-06-02 Dynamic communication routing based on consistency weighting and routing rules

Country Status (3)

Country Link
EP (1) EP3304462A1 (en)
CN (2) CN107924507B (en)
HK (1) HK1252949A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111756850B (en) * 2020-06-29 2022-01-18 金电联行(北京)信息技术有限公司 Automatic proxy IP request frequency adjustment method and system serving internet data acquisition
CN114884891A (en) * 2021-01-22 2022-08-09 南宁富联富桂精密工业有限公司 Data stream processing method, electronic device and computer storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010001150A1 (en) * 1997-02-06 2001-05-10 Alec Miloslavsky System for routing electronic mails
US20030046421A1 (en) * 2000-12-12 2003-03-06 Horvitz Eric J. Controls and displays for acquiring preferences, inspecting behavior, and guiding the learning and decision policies of an adaptive communications prioritization and routing system
US20050288954A1 (en) * 2000-10-19 2005-12-29 Mccarthy John Method, system and personalized web content manager responsive to browser viewers' psychological preferences, behavioral responses and physiological stress indicators
US8954317B1 (en) * 2011-07-01 2015-02-10 West Corporation Method and apparatus of processing user text input information

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8774018B1 (en) * 2006-12-14 2014-07-08 At&T Intellectual Property I, L.P. Interactive inquiry and access to information via cellular networks
CN101291546B (en) * 2008-06-11 2011-09-14 清华大学 Switching structure coprocessor of core router
CN101771627B (en) * 2009-01-05 2015-04-08 武汉邮电科学研究院 Equipment and method for analyzing and controlling node real-time deep packet on internet
US8094556B2 (en) * 2009-04-27 2012-01-10 Avaya Inc. Dynamic buffering and synchronization of related media streams in packet networks
US8665724B2 (en) * 2009-06-12 2014-03-04 Cygnus Broadband, Inc. Systems and methods for prioritizing and scheduling packets in a communication network
US8553849B2 (en) * 2009-06-17 2013-10-08 Avaya Inc. Personal identification and interactive device for internet-based text and video communication services
US8797902B2 (en) * 2012-05-29 2014-08-05 Alcatel Lucent Routing decision context objects
CN104301192B (en) * 2013-07-18 2019-06-11 新华三技术有限公司 A kind of network equipment discovery method and device of VPN networking

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010001150A1 (en) * 1997-02-06 2001-05-10 Alec Miloslavsky System for routing electronic mails
US20050288954A1 (en) * 2000-10-19 2005-12-29 Mccarthy John Method, system and personalized web content manager responsive to browser viewers' psychological preferences, behavioral responses and physiological stress indicators
US20030046421A1 (en) * 2000-12-12 2003-03-06 Horvitz Eric J. Controls and displays for acquiring preferences, inspecting behavior, and guiding the learning and decision policies of an adaptive communications prioritization and routing system
US8954317B1 (en) * 2011-07-01 2015-02-10 West Corporation Method and apparatus of processing user text input information

Also Published As

Publication number Publication date
HK1252949A1 (en) 2019-06-06
CN107924507A (en) 2018-04-17
CN114845351B (en) 2024-08-16
CN107924507B (en) 2022-04-26
EP3304462A1 (en) 2018-04-11

Similar Documents

Publication Publication Date Title
AU2022252732B2 (en) Dynamic communication routing based on consistency weighting and routing rules
JP7135070B2 (en) Dynamic Response Prediction for Improved Bot Task Processing
JP2023166445A (en) Systems and methods for transferring messaging to automation
US11595325B2 (en) Bot response generation with dynamically-changing website or native application
AU2020328581B2 (en) Systems and methods for managing interaction invitations
US20220060580A1 (en) Intent-driven contact center
CN107924507B (en) Dynamic communication routing based on consistency weighting and routing rules

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