Patent · US10187337B2 · B2 · US
Systems and methods for invoking chatbots in a channel based communication system
- (11) Publication number
- US10187337B2
- (21) Application number
- 15/452,486
- (22) Filing date
- 2017-03-07
- (30) Priority date
- 2015-03-25
- (43) Publication date
- 2019-01-22
- (45) Date of grant
- 2019-01-22
- (51) IPC
- H04L 12/58; H04L 29/06; H04L 29/08; G06F 15/16; H04L 12/18
- (52) CPC
- H04L Transmission of digital information, e.g. telegraphic communication: 51/046, 12/185, 51/02, 63/18, 67/01, 67/02, 67/306, 67/322, 67/42, 67/61, 69/14
- G06F Electric digital data processing: 3/167
- G06Q Information and communication technology [ICT] specially adapted for administrative, commercial, financial, managerial or supervisory purposes; systems or methods specially adapted for administrative, commercial, financial, managerial or supervisory purposes, not otherwise provided for: 30/016
- Y02D Climate change mitigation technologies in information and communication technologies [ICT], i.e. information and communication technologies aiming at the reduction of their own energy use: 30/50, 50/30
- (73) Assignee
- Pypestream Inc
- (72) Inventors
- Richard Smullen; Joerg Habermeier; Soren Larson
- (54) Title
- Systems and methods for invoking chatbots in a channel based communication system
- (57) Abstract
The disclosed systems and methods join a user to a sub-channel within a primary communication channel. A message from the user comprises a user identifier and a text communication. The communication is compared to each tag in each set of tags in a plurality of sets of tags, each set of tags being uniquely associated with (i) a different chatbot in one or more chatbots associated with the sub-channel or (ii) a different node within a plurality of nodes in a chatbot. The communication is routed to a first chatbot in the one or more chatbots, or a first node within the first chatbot, on the basis of being associated with a tag that best matches the communication. A responsive message by the first chatbot within the sub-channel includes the user identifier, thereby facilitating a conversation between the user and an enterprise data source associated with the sub-channel.
- Full text
- View on Google Patents
Claims (48)
- A method, comprising: at a server system comprising one or more processors and memory: joining a first user to a primary communication channel, wherein the primary communication channel facilitates electronic communication between a corresponding enterprise data source and a remote user device associated with the first user and wherein the primary communication channel hosts a plurality of users including the first user; receiving a first message that is posted by the first user, wherein the first message comprises (a) an application programming interface token identifying the first user and (b) a first text communication; responsive to the first message, comparing the first text communication to each tag in each respective set of tags in a plurality of sets of tags, wherein each respective set of tags in the plurality of sets of tags is uniquely associated with (i) a different automated human interface module in one or more automated human interface modules associated with the primary communication channel or (ii) a different node within a plurality of nodes in an automated human interface module in the one or more automated human interface modules, wherein the first message is routed to a first automated human interface module in the one or more automated human interface modules or a first node within the first automated human interface module that is associated with a tag that best matches the first text communication, and the first automated human interface module prepares a second message responsive to the first message; receiving the second message that is posted by the first automated human interface module, wherein the second message includes (a) the first application programming interface token identifying the first user, and (b) a second communication responsive to the first message; and using the application programming interface token to route the second message to the first user within the primary communication channel thereby facilitating a secure bidirectional conversation between (i) the remote user device associated with the first user and (ii) the corresponding enterprise data source associated with the primary communication channel.
- The method of claim 1, wherein the comparing the first text communication to each tag in each respective set of tags in a plurality of sets of tags includes performing a procedure that comprises: tokenizing the first text communication thereby obtaining a plurality of tokens; converting the plurality of tokens into a query vector; and evaluating the query vector to a first set of tags in the plurality of sets of tags, and wherein, the first set of tags is in the form of a matrix of target vectors, and each target vector in the matrix of target vectors includes a relative frequency of occurrence of each term in a plurality of terms.
- The method of claim 2, wherein the plurality of terms is associated with a context or an industry associated with the primary communication channel.
- The method of claim 1, wherein the comparing the first text communication to each tag in each respective set of tags in the plurality of sets of tags further comprises applying one or more extension modules to the first text communication, thereby forming an augmented first text communication that is compared to each tag in each respective set of tags in the plurality of sets of tags.
- The method of claim 4, wherein an extension module, in the one more extension modules, is a spell checker and wherein the augmented first text communication is a spell-checked version of the first text communication.
- The method of claim 4, wherein an extension module, in the one more extension modules, is a context extraction module and wherein the augmented first text communication comprises a context identified by the context extraction module.
- The method of claim 1, wherein the comparing the first text communication to each tag in each respective set of tags in the plurality of sets of tags includes performing a procedure that comprises: converting the first text communication into a query vector; applying one or more extension modules to the query vector, thereby forming an augmented query vector; using the augmented query vector to identify a subset of sets of tags from the plurality of sets of tags to evaluate, wherein each set of tags in the subset of sets of tags is in the form of a matrix of target vectors in a subset of a plurality of matrices of target vectors, and each target vector in each respective matrix in the subset of the plurality of matrices of target vectors includes a relative frequency of occurrence of each term in a plurality of terms; and comparing the augmented vector to each respective target vector in each respective matrix in the subset.
- The method of claim 7, wherein an extension module, in the one more extension modules, is a spell checker and wherein the augmented vector is a spell-checked version of the query vector.
- The method of claim 7, wherein an extension module, in the one more extension modules, is a context extraction module, the augmented vector includes a context identified by the context extraction module, and the context determines the identity of the subset of the plurality of matrices of target vectors.
- The method of claim 1, wherein the first automated human interface module comprises a node graph, the node graph comprises a first plurality of nodes and a first plurality of edges, each edge in the first plurality of edges connects two nodes in the first plurality of nodes, and a subset of the first plurality of nodes in the node graph performs a dedicated function and is called by one or more referencing nodes in the node graph that are not part of the subset of the first plurality of nodes.
- The method of claim 10, wherein the dedicated function is a script that is designed to obtain information from the first user within the secure bidirectional conversation.
- The method of claim 10, wherein the dedicated function receives status data from a referencing node in the one or more referencing nodes to facilitate performing the dedicated function.
- The method of claim 10, wherein the dedicated function receives a destination node in the first plurality of nodes from a referencing node in the one or more referencing nodes, and once the subset of the first plurality of nodes in the node graph performs the dedicated function, the method further comprises passing the secure bidirectional conversation to the destination node.
- The method of claim 13, wherein the destination node is the same as the referencing node.
- The method of claim 13, wherein the destination node is other than the referencing node.
- The method of claim 1, wherein the method further comprises: determining a context for the secure bidirectional conversation based, at least in part, on the first text communication as part of a first layer of natural language processing; and responsive to determining the context, routing the secure bidirectional conversation to a first node in the plurality of nodes in the automated human interface module that includes an interface module for the context.
- The method of claim 16, wherein the context is a type of reservations.
- The method of claim 16, wherein the first node performs image analysis.
- The method of claim 16, wherein the context is a medical application.
- The method of claim 1, the method further comprising: detecting a communication protocol used by the server system to communicate the second communication to the remote user device; and when the communication protocol is other than a default communication protocol, invoking a transformation layer that translates the second message to a format associated with the communication protocol prior to routing the second message to the remote user device.
- The method of claim 20, wherein the communication protocol is other than a default communication protocol, and the invoking the transformation layer translates the second message to a JSON file that is routed as the second message to the remote user device.
- The method of claim 20, wherein the communication protocol is other than a default communication protocol, the second message comprises one or more objects in other than ASCII format, and the invoking the transformation layer translates an object in the one or more objects to ASCII format prior to the second message being routed to the remote user device.
- The method of claim 22, wherein the transformation layer includes a lookup table that provides a translation schedule for each object in a plurality of objects, for each communication protocol in a plurality of communication protocols.
- The method of claim 23, wherein the communication protocol is other than a default communication protocol, the second message comprises one or more objects in other than ASCII format, and the invoking the transformation layer translates an object in the one or more objects to another format prior to the second message being routed to the remote user device in accordance with the lookup table.
- The method of claim 1, wherein the remote user device includes a client side communications module for sending and receiving communications, the method further comprising: determining an identity of the client side communications module; and when the client side communications module is determined to be a first type of client side communications module, invoking a transformation layer that translates the second message to a format associated with the client side communications module prior to routing the second message to the remote user device, and when the client side communications module is determined to be a second type of client side communications module, routing the second message to the remote user device without translating the second message to a format associated with the client side communications module.
- The method of claim 25, wherein the client side communications module is determined to be the first type of client side communications module, and the invoking the transformation layer translates the second message to a JSON file that is routed as the second message to the remote user device.
- The method of claim 25, wherein the client side communications module is determined to be the first type of client side communications module, the second message comprises one or more objects in other than ASCII format, and the invoking the transformation layer translates an object in the one or more objects to ASCII format prior to the second message being routed to the remote user device.
- The method of claim 27, wherein the transformation layer includes a lookup table that provides a translation schedule for each object in a plurality of objects, for each type of client side communications module in a plurality of types of client side communications module.
- The method of claim 28, wherein the client side communications module is determined to be the first type of client side communications module, the second message comprises one or more objects in other than ASCII format, and the invoking the transformation layer translates an object in the one or more objects to another format prior to the second message being routed to the remote user device in accordance with the lookup table.
- The method of claim 1, wherein the enterprise data source is associated with a customer relationship application on a server computer associated with the enterprise data source, the routing the second message to the first user within the primary communication channel comprises routing the second message to the customer relationship application.
- The method of claim 30, wherein the secure bidirectional conversation comprises a conversation history and wherein routing the second message to the customer relationship application includes the conversation history and the application programming interface token identifying the first user.
- The method of claim 30, wherein the method further comprises: using the application programming interface token identifying the first user to poll the customer relationship application on a recurring basis for a response by the customer relationship application to the second message; and responsive to receiving the response to the second message, using the application programming interface token to route the response to the second message to the first automated human interface module or the first node within the first automated human interface module that provided the second communication.
- The method of claim 1, wherein the primary communication channel hosts five or more conversations, each conversation between the enterprise data source and a different user in the plurality of users.
- The method of claim 1, wherein the enterprise data source is a store, a chain of stores, a government institution or service, a company, a corporation, an enterprise, an advertising firm, a restaurant, a healthcare organization, an organization, or a social organization.
- The method of claim 1, wherein all or a portion of the secure bidirectional conversation is recorded into a first data structure, the method further comprises transferring the secure bidirectional conversation to a first survey automated human interface module at a conclusion of the secure bidirectional conversation thereby initiating a survey of the first user by the survey automated human interface module, and the survey of the first user is not recorded in the first data structure.
- The method of claim 35, wherein an identity of the first survey automated human interface module is determined by an identity of the primary communication channel.
- The method of claim 35, the method further comprising: using the survey of the first user to generate a net promotor score for the secure bidirectional conversation; and making the net promotor score available to an administrator associated with the enterprise data source corresponding to the primary communication channel.
- The method of claim 37, wherein the net promotor score comprises a plurality of questions and the net promotor score is determined from the answers provided by the first user to the plurality of questions.
- The method of claim 37, the method further comprising: aggregating the net promotor score associated with each conversation in a plurality of conversations associated with the primary communication channel thereby forming an aggregate net promotor score; and making the aggregate net promotor score available to the administrator associated with the enterprise data source corresponding to the primary communication channel.
- The method of claim 39, wherein conversations occurring in the primary communication channel prior to a predetermined period of time are excluded from the plurality of conversations that are aggregated to form the aggregate net promotor score.
- The method of claim 39, wherein the individual net promotor scores of conversations terminating more recently are given more weight than the individual net promotor scores of conversations ending less recently when forming the aggregate net promotor score.
- The method of claim 35, wherein the survey collects numeric survey data from the first user on a response scale between a first numeric value and a second numeric value.
- The method of claim 35, wherein the survey collects text based feedback from the first user.
- The method of claim 1, the method further comprising, prior to receiving the second message: loading information regarding one or more prior electronic conversations between the first user and the enterprise data source corresponding to the primary communication channel; and using the information regarding one or more prior electronic conversations to determine the second communication.
- The method of claim 44, wherein the information regarding one or more prior electronic conversations comprises an electronic shopping cart including items offered by the enterprise data source corresponding to the first primary communication channel that the first user has selected in the one or more prior electronic conversations.
- The method of claim 44, wherein the information regarding one or more prior electronic conversations is used in the determination of which node, in the plurality of nodes, is initially used by the automated human interface module to drive the secure bidirectional conversation.
- A non-transitory computer readable storage medium, wherein the non-transitory computer readable storage medium stores instructions, which when executed by a computer system, cause the computer system to perform the method of: joining a first user to a primary communication channel, wherein the primary communication channel facilitates electronic communication between a corresponding enterprise data source and a remote user device associated with the first user and wherein the primary communication channel hosts a plurality of users including the first user; receiving a first message that is posted by the first user, wherein the first message comprises (a) an application programming interface token identifying the first user and (b) a first text communication; responsive to the first message, comparing the first text communication to each tag in each respective set of tags in a plurality of sets of tags, wherein each respective set of tags in the plurality of sets of tags is uniquely associated with (i) a different automated human interface module in one or more automated human interface modules associated with the primary communication channel or (ii) a different node within a plurality of nodes in an automated human interface module in the one or more automated human interface modules, wherein the first message is routed to a first automated human interface module in the one or more automated human interface modules or a first node within the first automated human interface module that is associated with a tag that best matches the first text communication, and the first automated human interface module prepares a second message responsive to the first message; receiving the second message that is posted by the first automated human interface module, wherein the second message includes (a) the first application programming interface token identifying the first user, and (b) a second communication responsive to the first message; and using the application programming interface token to route the second message to the first user within the primary communication channel thereby facilitating a secure bidirectional conversation between (i) the remote user device associated with the first user and (ii) the corresponding enterprise data source associated with the primary communication channel.
- A server system, comprising: one or more processors; memory; and one or more programs, wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors, the one or more programs including instructions for: joining a first user to a primary communication channel, wherein the primary communication channel facilitates electronic communication between a corresponding enterprise data source and a remote user device associated with the first user and wherein the primary communication channel hosts a plurality of users including the first user; receiving a first message that is posted by the first user, wherein the first message comprises (a) an application programming interface token identifying the first user and (b) a first text communication; responsive to the first message, comparing the first text communication to each tag in each respective set of tags in a plurality of sets of tags, wherein each respective set of tags in the plurality of sets of tags is uniquely associated with (i) a different automated human interface module in one or more automated human interface modules associated with the primary communication channel or (ii) a different node within a plurality of nodes in an automated human interface module in the one or more automated human interface modules, wherein the first message is routed to a first automated human interface module in the one or more automated human interface modules or a first node within the first automated human interface module that is associated with a tag that best matches the first text communication, and the first automated human interface module prepares a second message responsive to the first message; receiving the second message that is posted by the first automated human interface module, wherein the second message includes (a) the first application programming interface token identifying the first user, and (b) a second communication responsive to the first message; and using the application programming interface token to route the second message to the first user within the primary communication thereby facilitating a secure bidirectional conversation between (i) the remote user device associated with the first user and (ii) the corresponding enterprise data source associated with the primary communication channel.
Description
The present disclosure relates generally to secure mobile communications platforms that provide primary communication channels. Users connect to primary communication channels and, in so doing, engage in secure bidirectional communication with enterprise data sources associated with such channels, thereby enabling the enterprise data sources to respond directly or broadcast messages to users.
Enterprise data sources use different types of communication systems to connect with end users, such as consumers. For example, some enterprise data sources rely on electronic mail (email), telephone, etc., to communicate with consumers, who in turn can respond to the enterprise data sources. However, email communication systems are more than two decades old, not secure, typically laced with spam, a primary deliverer of viruses, cluttered, are error prone, and are a cause for disconnects between enterprise data sources and consumers. Anyone who has tried to obtain customer support using a telephone system will appreciate that call centers do not improve the situation. A consumer must listen to numerous recorded messages, navigate through countless menus, and start over if there is a single incorrect number entered. Moreover, the consumer, once lucky enough to reach a live operator, is often transferred, often more than once, each time providing countless security credentials in order to provide some modicum of security to the call. Thus, typical communication systems do not facilitate direct and secure performance of transactions with consumers.
Citations (20)
- US6044142A
- US20070192414A1
- US20030023691A1
- US20030028451A1
- US20030055907A1
- US20060036679A1
- US8122084B2
- US20050102401A1
- US20050080862A1
- US20060036671A1
- US20070206086A1
- US20080104244A1
- US20100064015A1
- US8677451B1
- US20120089698A1
- US9240970B2
- CA2884775A1
- US20130191481A1
- US20140280936A1
- US20150310446A1
Record as JSON
{
"publication_number": "US10187337B2",
"country": "US",
"kind": "B2",
"title": "Systems and methods for invoking chatbots in a channel based communication system",
"abstract": "The disclosed systems and methods join a user to a sub-channel within a primary communication channel. A message from the user comprises a user identifier and a text communication. The communication is compared to each tag in each set of tags in a plurality of sets of tags, each set of tags being uniquely associated with (i) a different chatbot in one or more chatbots associated with the sub-channel or (ii) a different node within a plurality of nodes in a chatbot. The communication is routed to a first chatbot in the one or more chatbots, or a first node within the first chatbot, on the basis of being associated with a tag that best matches the communication. A responsive message by the first chatbot within the sub-channel includes the user identifier, thereby facilitating a conversation between the user and an enterprise data source associated with the sub-channel.",
"claims": [
"1. A method, comprising: at a server system comprising one or more processors and memory: joining a first user to a primary communication channel, wherein the primary communication channel facilitates electronic communication between a corresponding enterprise data source and a remote user device associated with the first user and wherein the primary communication channel hosts a plurality of users including the first user; receiving a first message that is posted by the first user, wherein the first message comprises (a) an application programming interface token identifying the first user and (b) a first text communication; responsive to the first message, comparing the first text communication to each tag in each respective set of tags in a plurality of sets of tags, wherein each respective set of tags in the plurality of sets of tags is uniquely associated with (i) a different automated human interface module in one or more automated human interface modules associated with the primary communication channel or (ii) a different node within a plurality of nodes in an automated human interface module in the one or more automated human interface modules, wherein the first message is routed to a first automated human interface module in the one or more automated human interface modules or a first node within the first automated human interface module that is associated with a tag that best matches the first text communication, and the first automated human interface module prepares a second message responsive to the first message; receiving the second message that is posted by the first automated human interface module, wherein the second message includes (a) the first application programming interface token identifying the first user, and (b) a second communication responsive to the first message; and using the application programming interface token to route the second message to the first user within the primary communication channel thereby facilitating a secure bidirectional conversation between (i) the remote user device associated with the first user and (ii) the corresponding enterprise data source associated with the primary communication channel.",
"2. The method of claim 1, wherein the comparing the first text communication to each tag in each respective set of tags in a plurality of sets of tags includes performing a procedure that comprises: tokenizing the first text communication thereby obtaining a plurality of tokens; converting the plurality of tokens into a query vector; and evaluating the query vector to a first set of tags in the plurality of sets of tags, and wherein, the first set of tags is in the form of a matrix of target vectors, and each target vector in the matrix of target vectors includes a relative frequency of occurrence of each term in a plurality of terms.",
"3. The method of claim 2, wherein the plurality of terms is associated with a context or an industry associated with the primary communication channel.",
"4. The method of claim 1, wherein the comparing the first text communication to each tag in each respective set of tags in the plurality of sets of tags further comprises applying one or more extension modules to the first text communication, thereby forming an augmented first text communication that is compared to each tag in each respective set of tags in the plurality of sets of tags.",
"5. The method of claim 4, wherein an extension module, in the one more extension modules, is a spell checker and wherein the augmented first text communication is a spell-checked version of the first text communication.",
"6. The method of claim 4, wherein an extension module, in the one more extension modules, is a context extraction module and wherein the augmented first text communication comprises a context identified by the context extraction module.",
"7. The method of claim 1, wherein the comparing the first text communication to each tag in each respective set of tags in the plurality of sets of tags includes performing a procedure that comprises: converting the first text communication into a query vector; applying one or more extension modules to the query vector, thereby forming an augmented query vector; using the augmented query vector to identify a subset of sets of tags from the plurality of sets of tags to evaluate, wherein each set of tags in the subset of sets of tags is in the form of a matrix of target vectors in a subset of a plurality of matrices of target vectors, and each target vector in each respective matrix in the subset of the plurality of matrices of target vectors includes a relative frequency of occurrence of each term in a plurality of terms; and comparing the augmented vector to each respective target vector in each respective matrix in the subset.",
"8. The method of claim 7, wherein an extension module, in the one more extension modules, is a spell checker and wherein the augmented vector is a spell-checked version of the query vector.",
"9. The method of claim 7, wherein an extension module, in the one more extension modules, is a context extraction module, the augmented vector includes a context identified by the context extraction module, and the context determines the identity of the subset of the plurality of matrices of target vectors.",
"10. The method of claim 1, wherein the first automated human interface module comprises a node graph, the node graph comprises a first plurality of nodes and a first plurality of edges, each edge in the first plurality of edges connects two nodes in the first plurality of nodes, and a subset of the first plurality of nodes in the node graph performs a dedicated function and is called by one or more referencing nodes in the node graph that are not part of the subset of the first plurality of nodes.",
"11. The method of claim 10, wherein the dedicated function is a script that is designed to obtain information from the first user within the secure bidirectional conversation.",
"12. The method of claim 10, wherein the dedicated function receives status data from a referencing node in the one or more referencing nodes to facilitate performing the dedicated function.",
"13. The method of claim 10, wherein the dedicated function receives a destination node in the first plurality of nodes from a referencing node in the one or more referencing nodes, and once the subset of the first plurality of nodes in the node graph performs the dedicated function, the method further comprises passing the secure bidirectional conversation to the destination node.",
"14. The method of claim 13, wherein the destination node is the same as the referencing node.",
"15. The method of claim 13, wherein the destination node is other than the referencing node.",
"16. The method of claim 1, wherein the method further comprises: determining a context for the secure bidirectional conversation based, at least in part, on the first text communication as part of a first layer of natural language processing; and responsive to determining the context, routing the secure bidirectional conversation to a first node in the plurality of nodes in the automated human interface module that includes an interface module for the context.",
"17. The method of claim 16, wherein the context is a type of reservations.",
"18. The method of claim 16, wherein the first node performs image analysis.",
"19. The method of claim 16, wherein the context is a medical application.",
"20. The method of claim 1, the method further comprising: detecting a communication protocol used by the server system to communicate the second communication to the remote user device; and when the communication protocol is other than a default communication protocol, invoking a transformation layer that translates the second message to a format associated with the communication protocol prior to routing the second message to the remote user device.",
"21. The method of claim 20, wherein the communication protocol is other than a default communication protocol, and the invoking the transformation layer translates the second message to a JSON file that is routed as the second message to the remote user device.",
"22. The method of claim 20, wherein the communication protocol is other than a default communication protocol, the second message comprises one or more objects in other than ASCII format, and the invoking the transformation layer translates an object in the one or more objects to ASCII format prior to the second message being routed to the remote user device.",
"23. The method of claim 22, wherein the transformation layer includes a lookup table that provides a translation schedule for each object in a plurality of objects, for each communication protocol in a plurality of communication protocols.",
"24. The method of claim 23, wherein the communication protocol is other than a default communication protocol, the second message comprises one or more objects in other than ASCII format, and the invoking the transformation layer translates an object in the one or more objects to another format prior to the second message being routed to the remote user device in accordance with the lookup table.",
"25. The method of claim 1, wherein the remote user device includes a client side communications module for sending and receiving communications, the method further comprising: determining an identity of the client side communications module; and when the client side communications module is determined to be a first type of client side communications module, invoking a transformation layer that translates the second message to a format associated with the client side communications module prior to routing the second message to the remote user device, and when the client side communications module is determined to be a second type of client side communications module, routing the second message to the remote user device without translating the second message to a format associated with the client side communications module.",
"26. The method of claim 25, wherein the client side communications module is determined to be the first type of client side communications module, and the invoking the transformation layer translates the second message to a JSON file that is routed as the second message to the remote user device.",
"27. The method of claim 25, wherein the client side communications module is determined to be the first type of client side communications module, the second message comprises one or more objects in other than ASCII format, and the invoking the transformation layer translates an object in the one or more objects to ASCII format prior to the second message being routed to the remote user device.",
"28. The method of claim 27, wherein the transformation layer includes a lookup table that provides a translation schedule for each object in a plurality of objects, for each type of client side communications module in a plurality of types of client side communications module.",
"29. The method of claim 28, wherein the client side communications module is determined to be the first type of client side communications module, the second message comprises one or more objects in other than ASCII format, and the invoking the transformation layer translates an object in the one or more objects to another format prior to the second message being routed to the remote user device in accordance with the lookup table.",
"30. The method of claim 1, wherein the enterprise data source is associated with a customer relationship application on a server computer associated with the enterprise data source, the routing the second message to the first user within the primary communication channel comprises routing the second message to the customer relationship application.",
"31. The method of claim 30, wherein the secure bidirectional conversation comprises a conversation history and wherein routing the second message to the customer relationship application includes the conversation history and the application programming interface token identifying the first user.",
"32. The method of claim 30, wherein the method further comprises: using the application programming interface token identifying the first user to poll the customer relationship application on a recurring basis for a response by the customer relationship application to the second message; and responsive to receiving the response to the second message, using the application programming interface token to route the response to the second message to the first automated human interface module or the first node within the first automated human interface module that provided the second communication.",
"33. The method of claim 1, wherein the primary communication channel hosts five or more conversations, each conversation between the enterprise data source and a different user in the plurality of users.",
"34. The method of claim 1, wherein the enterprise data source is a store, a chain of stores, a government institution or service, a company, a corporation, an enterprise, an advertising firm, a restaurant, a healthcare organization, an organization, or a social organization.",
"35. The method of claim 1, wherein all or a portion of the secure bidirectional conversation is recorded into a first data structure, the method further comprises transferring the secure bidirectional conversation to a first survey automated human interface module at a conclusion of the secure bidirectional conversation thereby initiating a survey of the first user by the survey automated human interface module, and the survey of the first user is not recorded in the first data structure.",
"36. The method of claim 35, wherein an identity of the first survey automated human interface module is determined by an identity of the primary communication channel.",
"37. The method of claim 35, the method further comprising: using the survey of the first user to generate a net promotor score for the secure bidirectional conversation; and making the net promotor score available to an administrator associated with the enterprise data source corresponding to the primary communication channel.",
"38. The method of claim 37, wherein the net promotor score comprises a plurality of questions and the net promotor score is determined from the answers provided by the first user to the plurality of questions.",
"39. The method of claim 37, the method further comprising: aggregating the net promotor score associated with each conversation in a plurality of conversations associated with the primary communication channel thereby forming an aggregate net promotor score; and making the aggregate net promotor score available to the administrator associated with the enterprise data source corresponding to the primary communication channel.",
"40. The method of claim 39, wherein conversations occurring in the primary communication channel prior to a predetermined period of time are excluded from the plurality of conversations that are aggregated to form the aggregate net promotor score.",
"41. The method of claim 39, wherein the individual net promotor scores of conversations terminating more recently are given more weight than the individual net promotor scores of conversations ending less recently when forming the aggregate net promotor score.",
"42. The method of claim 35, wherein the survey collects numeric survey data from the first user on a response scale between a first numeric value and a second numeric value.",
"43. The method of claim 35, wherein the survey collects text based feedback from the first user.",
"44. The method of claim 1, the method further comprising, prior to receiving the second message: loading information regarding one or more prior electronic conversations between the first user and the enterprise data source corresponding to the primary communication channel; and using the information regarding one or more prior electronic conversations to determine the second communication.",
"45. The method of claim 44, wherein the information regarding one or more prior electronic conversations comprises an electronic shopping cart including items offered by the enterprise data source corresponding to the first primary communication channel that the first user has selected in the one or more prior electronic conversations.",
"46. The method of claim 44, wherein the information regarding one or more prior electronic conversations is used in the determination of which node, in the plurality of nodes, is initially used by the automated human interface module to drive the secure bidirectional conversation.",
"47. A non-transitory computer readable storage medium, wherein the non-transitory computer readable storage medium stores instructions, which when executed by a computer system, cause the computer system to perform the method of: joining a first user to a primary communication channel, wherein the primary communication channel facilitates electronic communication between a corresponding enterprise data source and a remote user device associated with the first user and wherein the primary communication channel hosts a plurality of users including the first user; receiving a first message that is posted by the first user, wherein the first message comprises (a) an application programming interface token identifying the first user and (b) a first text communication; responsive to the first message, comparing the first text communication to each tag in each respective set of tags in a plurality of sets of tags, wherein each respective set of tags in the plurality of sets of tags is uniquely associated with (i) a different automated human interface module in one or more automated human interface modules associated with the primary communication channel or (ii) a different node within a plurality of nodes in an automated human interface module in the one or more automated human interface modules, wherein the first message is routed to a first automated human interface module in the one or more automated human interface modules or a first node within the first automated human interface module that is associated with a tag that best matches the first text communication, and the first automated human interface module prepares a second message responsive to the first message; receiving the second message that is posted by the first automated human interface module, wherein the second message includes (a) the first application programming interface token identifying the first user, and (b) a second communication responsive to the first message; and using the application programming interface token to route the second message to the first user within the primary communication channel thereby facilitating a secure bidirectional conversation between (i) the remote user device associated with the first user and (ii) the corresponding enterprise data source associated with the primary communication channel.",
"48. A server system, comprising: one or more processors; memory; and one or more programs, wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors, the one or more programs including instructions for: joining a first user to a primary communication channel, wherein the primary communication channel facilitates electronic communication between a corresponding enterprise data source and a remote user device associated with the first user and wherein the primary communication channel hosts a plurality of users including the first user; receiving a first message that is posted by the first user, wherein the first message comprises (a) an application programming interface token identifying the first user and (b) a first text communication; responsive to the first message, comparing the first text communication to each tag in each respective set of tags in a plurality of sets of tags, wherein each respective set of tags in the plurality of sets of tags is uniquely associated with (i) a different automated human interface module in one or more automated human interface modules associated with the primary communication channel or (ii) a different node within a plurality of nodes in an automated human interface module in the one or more automated human interface modules, wherein the first message is routed to a first automated human interface module in the one or more automated human interface modules or a first node within the first automated human interface module that is associated with a tag that best matches the first text communication, and the first automated human interface module prepares a second message responsive to the first message; receiving the second message that is posted by the first automated human interface module, wherein the second message includes (a) the first application programming interface token identifying the first user, and (b) a second communication responsive to the first message; and using the application programming interface token to route the second message to the first user within the primary communication thereby facilitating a secure bidirectional conversation between (i) the remote user device associated with the first user and (ii) the corresponding enterprise data source associated with the primary communication channel."
],
"description_excerpt": "The present disclosure relates generally to secure mobile communications platforms that provide primary communication channels. Users connect to primary communication channels and, in so doing, engage in secure bidirectional communication with enterprise data sources associated with such channels, thereby enabling the enterprise data sources to respond directly or broadcast messages to users.\n\nEnterprise data sources use different types of communication systems to connect with end users, such as consumers. For example, some enterprise data sources rely on electronic mail (email), telephone, etc., to communicate with consumers, who in turn can respond to the enterprise data sources. However, email communication systems are more than two decades old, not secure, typically laced with spam, a primary deliverer of viruses, cluttered, are error prone, and are a cause for disconnects between enterprise data sources and consumers. Anyone who has tried to obtain customer support using a telephone system will appreciate that call centers do not improve the situation. A consumer must listen to numerous recorded messages, navigate through countless menus, and start over if there is a single incorrect number entered. Moreover, the consumer, once lucky enough to reach a live operator, is often transferred, often more than once, each time providing countless security credentials in order to provide some modicum of security to the call. Thus, typical communication systems do not facilitate direct and secure performance of transactions with consumers.",
"cpc": [
"H04L 51/046",
"G06F 3/167",
"G06Q 30/016",
"H04L 12/185",
"H04L 51/02",
"H04L 63/18",
"H04L 67/01",
"H04L 67/02",
"H04L 67/306",
"H04L 67/322",
"H04L 67/42",
"H04L 67/61",
"H04L 69/14",
"Y02D 30/50",
"Y02D 50/30"
],
"ipc": [
"H04L 12/58",
"H04L 29/06",
"H04L 29/08",
"G06F 15/16",
"H04L 12/18"
],
"assignees": [
"Pypestream Inc"
],
"inventors": [
"Richard Smullen",
"Joerg Habermeier",
"Soren Larson"
],
"filing_date": "2017-03-07",
"publication_date": "2019-01-22",
"grant_date": "2019-01-22",
"priority_date": "2015-03-25",
"application_number": "US-201715452486-A",
"family_id": "57996216",
"cited_by_count": 51,
"citations": [
"US6044142A",
"US20070192414A1",
"US20030023691A1",
"US20030028451A1",
"US20030055907A1",
"US20060036679A1",
"US8122084B2",
"US20050102401A1",
"US20050080862A1",
"US20060036671A1",
"US20070206086A1",
"US20080104244A1",
"US20100064015A1",
"US8677451B1",
"US20120089698A1",
"US9240970B2",
"CA2884775A1",
"US20130191481A1",
"US20140280936A1",
"US20150310446A1"
]
}
Record 3,065 of 8,000 in Patents full text (MLC-0201). Request the full dataset.