IP Library Granted Patent US 11,496,421
Granted Patent B2
US 11,496,421 · App. 17/152,671 · Granted Nov 8, 2022

Methods and apparatus for exchanging asynchronous messages

Inventors: Snehasish Mukherjee (Santa Clara, CA); Shankara Bhargava (Santa Clara, CA); Venkata Naga Vamsi Krishna Nandanavan (Newark, CA); Navin Naidu (Fremont, CA); Sriprabha Gopalan (Bangalore, IN)
Assignee: Walmart Apollo, LLC
H04L51/02H04L51/226H04L51/23
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,496,421
App. No.
17/152,671
Granted
Nov 8, 2022
Kind
B2
Abstract

The disclosed subject matter relates to a system and method for facilitating automated conversations with users over a network. In some embodiment, a disclosed system includes a computing device operably connected to a database, and is configured to receive a plurality of incoming messages from a first user in an asynchronous manner; and identify a user request associated with the plurality of incoming messages. In these embodiments, the computing device determines that the plurality of incoming messages are all incoming messages that are associated with the user request; processes the plurality of incoming messages together; and generates at least one outgoing message as a response to the user request.

Claims (92)

1. A system for facilitating automated conversations over a network, comprising:

a computing device operably connected to a database, wherein the computing device is configured to:

receive a plurality of incoming messages from a first user in an asynchronous manner;

identify a user request associated with the plurality of incoming messages;

determine that the plurality of incoming messages are all incoming messages that are associated with the user request;

determine whether the first user corresponds to a synchronous client or an asynchronous client based on client information of the first user;

add each of the plurality of incoming messages into an incoming message queue storing all asynchronous messages yet to be processed, upon a determination that the first user corresponds to an asynchronous client;

transmit an acknowledgement (ACK) message to the first user in response to the plurality of incoming messages, upon the determination that the first user corresponds to the asynchronous client;

process the plurality of incoming messages together; and

generate at least one outgoing message as a response to the user request.

2. The system of claim 1 , wherein:

each of the plurality of incoming messages is received based on a user input of the first user, in form of utterance or text, on a client device associated with a user identity (ID) of the first user.

3. The system of claim 2 , wherein:

the client information includes information related to at least one of: a client ID of the client device determined during an on-boarding process of the client device, or the user ID of the first user determined during an on-boarding process of the first user; and

each message of the plurality of incoming messages and the at least one outgoing message includes the client information.

4. The system of claim 1 , wherein the computing device is further configured to:

extract the plurality of incoming messages associated with the user request from the incoming message queue, based on a domain configuration and a channel configuration associated with the user request;

transmit synchronously the plurality of incoming messages to a conversational bot, wherein the plurality of incoming messages are processed together at the conversational bot to generate the at least one outgoing message; and

receive synchronously the at least one outgoing message from the conversational bot.

5. The system of claim 4 , wherein the computing device is further configured to:

add the at least one outgoing message into an outgoing message queue storing all responses from the conversational bot and yet to be dispatched;

extract the at least one outgoing message including the client information from the outgoing message queue; and

determine at least one destination for the at least one outgoing message based on the client information.

6. The system of claim 5 , wherein:

the computing device is further configured to transmit the at least one outgoing message asynchronously to the at least one destination; and

the at least one destination comprises at least one of:

the client device,

an additional device associated with the user ID of the first user, or

an additional device associated with a user ID of a second user.

7. The system of claim 5 , wherein:

the at least one destination comprises an agent tool, based on an indication in the at least one outgoing message; and

the computing device is further configured to transmit the at least one outgoing message and a conversation history between the system and the first user, asynchronously to the agent tool, which selects a human agent to chat with the first user via the agent tool based on the at least one outgoing message and the conversation history.

8. The system of claim 7 , wherein the computing device is further configured to:

receive an additional incoming message from the first user;

add the additional incoming message into the incoming message queue;

extract the additional incoming message from the incoming message queue; and

transmit the additional incoming message to the agent tool, which forwards the additional incoming message to the human agent and sends a response from the human agent to the first user, either directly to the client device or via the outgoing message queue.

9. The system of claim 8 , wherein the computing device is further configured to:

store a chat history between the human agent and the first user into the database; and

add the chat history into the incoming message queue for offline ingestion.

10. The system of claim 5 , wherein the computing device is further configured to:

read and sort messages from the incoming message queue and the outgoing message queue, based on time stamps of the messages; and

store the messages into the database.

11. The system of claim 1 , wherein the computing device is further configured to:

receive a message from a second user;

determine that the second user corresponds to a synchronous client based on client information of the second user; and

transmit synchronously the message to a conversational bot for processing, without adding the message into a queue.

12. A method of facilitating automated conversations over a network, comprising:

receiving a plurality of incoming messages from a first user in an asynchronous manner;

identifying a user request associated with the plurality of incoming messages;

determining that the plurality of incoming messages are all incoming messages that are associated with the user request;

determining whether the first user corresponds to a synchronous client or an asynchronous client based on client information of the first user;

adding each of the plurality of incoming messages into an incoming message queue storing all asynchronous messages yet to be processed, upon a determination that the first user corresponds to an asynchronous client;

transmitting an acknowledgement (ACK) message to the first user in response to the plurality of incoming messages, upon the determination that the first user corresponds to the asynchronous client;

processing the plurality of incoming messages together; and

generating at least one outgoing message as a response to the user request.

13. The method of claim 12 , wherein:

each of the plurality of incoming messages is received based on a user input of the first user, in form of utterance or text, on a client device associated with a user identity (ID) of the first user;

the client information includes information related to at least one of: a client ID of the client device determined during an on-boarding process of the client device, or the user ID of the first user determined during an on-boarding process of the first user; and

each message of the plurality of incoming messages and the at least one outgoing message includes the client information.

14. The method of claim 13 , further comprising:

extracting the plurality of incoming messages associated with the user request from the incoming message queue, based on a domain configuration and a channel configuration associated with the user request;

transmitting synchronously the plurality of incoming messages to a conversational bot, wherein the plurality of incoming messages are processed together at the conversational bot to generate the at least one outgoing message; and

receiving synchronously the at least one outgoing message from the conversational bot.

15. The method of claim 14 , further comprising:

adding the at least one outgoing message into an outgoing message queue storing all responses from the conversational bot and yet to be dispatched;

extracting the at least one outgoing message including the client information from the outgoing message queue; and

determining at least one destination for the at least one outgoing message based on the client information.

16. The method of claim 15 , further comprising transmitting the at least one outgoing message asynchronously to the at least one destination, wherein the at least one destination comprises at least one of:

the client device;

an additional device associated with the user ID of the first user; or

an additional device associated with a user ID of a second user.

17. The method of claim 15 , further comprising:

transmitting, based on an indication in the at least one outgoing message, the at least one outgoing message and a conversation history between the conversational bot and the first user, asynchronously to an agent tool, which selects a human agent to chat with the first user via the agent tool based on the at least one outgoing message and the conversation history;

receiving an additional incoming message from the first user;

adding the additional incoming message into the incoming message queue;

extracting the additional incoming message from the incoming message queue; and

transmitting the additional incoming message to the agent tool, which forwards the additional incoming message to the human agent and sends a response from the human agent to the first user, either directly to the client device or via the outgoing message queue.

18. The method of claim 17 , further comprising:

storing a chat history between the human agent and the first user into a database including all real-time conversations with users over the network;

adding the chat history into the incoming message queue for offline ingestion;

reading and sorting messages from the incoming message queue and the outgoing message queue, based on time stamps of the messages; and

storing the messages into the database.

19. A non-transitory computer readable medium having instructions stored thereon, wherein the instructions, when executed by at least one processor, cause a device to perform operations comprising:

receiving a plurality of incoming messages from a first user in an asynchronous manner;

identifying a user request associated with the plurality of incoming messages;

determining that the plurality of incoming messages are all incoming messages that are associated with the user request;

determining whether the first user corresponds to a synchronous client or an asynchronous client based on client information of the first user;

adding each of the plurality of incoming messages into an incoming message queue storing all asynchronous messages yet to be processed, upon a determination that the first user corresponds to an asynchronous client;

transmitting an acknowledgement (ACK) message to the first user in response to the plurality of incoming messages, upon the determination that the first user corresponds to the asynchronous client;

processing the plurality of incoming messages together; and

generating at least one outgoing message as a response to the user request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2021
From: MUKHERJEE, SNEHASISH; BHARGAVA, SHANKARA; NANDANAVAN, VENKATA NAGA VAMSI KRISHNA; NAIDU, NAVIN; GOPALAN, SRIPRABHA
To: WALMART APOLLO, LLC
Reel/Frame 054958/0555 →
Continuity (1)
Related Publication 20220231972A1 · Jul 21, 2022