IP Library Granted Patent US 11,050,700
Granted Patent B2
US 11,050,700 · App. 15/803,720 · Granted Jun 29, 2021

Action response selection based on communication message analysis

Inventors: William Christopher Fama Roller (San Francisco, CA); Shardul Vikram (San Jose, CA); Alex Michael Noe (Palo Alto, CA); Noah William Burbank (Palo Alto, CA); Sammy Adnan Nammari (Mountain View, CA); Ascander Dost (San Mateo, CA); Shuvajit Das (San Francisco, CA); Oliver Qian Tang (San Francisco, CA); Robert Christopher Ames (Sunnyvale, CA); Madhav Vaidyanathan (Sunnyvale, CA); Wing Hing Ku (San Jose, CA); Bhaskar Garg (San Francisco, CA); Xu Yang (San Francisco, CA); Madeleine Mary Gill (San Francisco, CA); Percy Dara Mehta (Foster City, CA); Janelle Wen Hui Teng (San Francisco, CA); Abraham Dio Suharli (Cupertino, CA); Alexis Roos (Palo Alto, CA); Wenhao Liu (Redwood City, CA); Nelson Esteban Acevedo (San Francisco, CA); Joseph Gerald Keller (San Francisco, CA); Rohit Deshpande (Fremont, CA); Sandeep Raju Prabhakar (Santa Clara, CA)
Assignee: salesforce.com, inc.
H04L51/18G06F40/186G06F40/216G06F40/295G06F40/30G06F40/40G06F40/56G06N3/0445G06N3/08G06Q10/10
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,050,700
App. No.
15/803,720
Granted
Jun 29, 2021
Kind
B2
Abstract

Methods, systems, and devices for analyzing communication messages (e.g., emails) and selecting corresponding actions are described. In some database systems, a user may receive multiple messages at a user device. To efficiently determine responses to these messages, the user device may send the messages to a backend server for analysis. The server may perform natural language processing (NLP) to classify the message with one or more binary classifications and may extract metadata from each message. Based on the classifications and the metadata, the server may determine one or more actions the user device may perform to respond to each message. The server may send instructions to the user device indicating the suggested actions, and the user device may display these actions as options to a user. Additionally, the user device may use the classifications and metadata to automatically generate one or more communication templates in response to the message.

Claims (50)

1. A method for communication data processing at a database server, comprising:

receiving, at the database server, a copy of a communication message received by an application running on a first user device for a first user;

classifying the communication message with one or more binary classifications based at least in part on a natural language processing (NLP) analysis of text of the communication message;

selecting, from a stored list of possible services on the database server, a set of services that correspond to a set of actions that are in response to receiving the copy of the communication message and that are based at least in part on the one or more binary classifications;

sending indication instructions indicating the selected set of services to the application running on the first user device, the indication instructions instructing the application to automatically generate a communication template from the first user that is responsive to the communication message and that incorporates information based at least in part on the classified one or more binary classifications, wherein the communication template corresponds to at least one action of the set of actions;

receiving user feedback based at least in part on user input from the first user to the application running on the first user device, the user input triggering the application running on the first user device to perform an action of the set of actions; and

sending additional indication instructions indicating a subset of the selected set of services to the application running on a second user device for the first user, the subset of the selected set of services corresponding to a subset of the set of actions comprising each action of the set of actions except for the performed action based at least in part on the user input triggering the application running on the first user device to perform the action.

2. The method of claim 1 , further comprising:

extracting metadata from the communication message, wherein selecting the set of services that correspond to the set of actions is further based at least in part on the extracted metadata.

3. The method of claim 2 , wherein the extracted metadata comprises one or more symbols, words, or phrases associated with a date, the method further comprising:

converting the one or more symbols, words, or phrases into a date object formatted for use at the application.

4. The method of claim 1 , further comprising:

modifying a service selection process specific to the first user based at least in part on the received user feedback.

5. The method of claim 4 , further comprising:

calculating a prediction accuracy for each action of the set of actions based at least in part on the received user feedback, wherein the indication instructions indicate to the application to automatically perform an additional action of the set of actions if the prediction accuracy associated with the additional action is greater than a threshold prediction accuracy.

6. The method of claim 1 , further comprising:

receiving an instruction request from the application, wherein sending the indication instructions to the application is based at least in part on receiving the instruction request.

7. The method of claim 1 , wherein the indication instructions instruct the application to automatically generate a set of communication templates, and the application generates a subset of the set of communication templates based at least in part on one or more capabilities of the application.

8. The method of claim 1 , wherein classifying the communication message, selecting the set of services, or both are based at least in part on a tenant-specific selection process in a multi-tenant system, a user-specific selection process, or a combination thereof.

9. The method of claim 1 , wherein the communication message comprises an email, a calendar event, a service ticket, a short message service (SMS) text message, a voice call, a social media message, or a combination thereof.

10. The method of claim 1 , wherein the one or more binary classifications comprise a scheduling intent insight, a pricing request insight, an out of office response insight, a competitor mentioned insight, an executive added insight, or a combination thereof.

11. The method of claim 1 , wherein the set of actions comprises indicating an available time, creating a calendar event, viewing a calendar, generating an email, sending an email, viewing contact details, creating a task, creating a notification message, or a combination thereof.

12. The method of claim 1 , wherein the communication template comprises an email, a calendar invite, a notification, a document, or a combination thereof.

13. An apparatus for communication data processing at a database server, comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

receive, at the database server, a copy of a communication message received by an application running on a first user device for a first user;

classify the communication message with one or more binary classifications based at least in part on a natural language processing (NLP) analysis of text of the communication message;

select, from a stored list of possible services on the database server, a set of services that correspond to a set of actions that are in response to receiving the copy of the communication message and that are based at least in part on the one or more binary classifications;

send indication instructions indicating the selected set of services to the application running on the first user device, the indication instructions instructing the application to automatically generate a communication template from the first user that is responsive to the communication message and that incorporates information based at least in part on the classified one or more binary classifications, wherein the communication template corresponds to at least one action of the set of actions;

receive user feedback based at least in part on user input from the first user to the application running on the first user device, the user input triggering the application running on the first user device to perform an action of the set of actions; and

send additional indication instructions indicating a subset of the selected set of services to the application running on a second user device for the first user, the subset of the selected set of services corresponding to a subset of the set of actions comprising each action of the set of actions except for the performed action based at least in part on the user input triggering the application running on the first user device to perform the action.

14. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

extract metadata from the communication message, wherein the instructions executable by the processor to cause the apparatus to select the set of services that correspond to the set of actions are further executable by the processor to cause the apparatus to select the set of services that correspond to the set of actions further based at least in part on the extracted metadata.

15. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

modify a service selection process specific to the first user based at least in part on the received user feedback.

16. The apparatus of claim 15 , wherein the instructions are further executable by the processor to cause the apparatus to:

calculate a prediction accuracy for each action of the set of actions based at least in part on the received user feedback, wherein the indication instructions indicate to the application to automatically perform an additional action of the set of actions if the prediction accuracy associated with the additional action is greater than a threshold prediction accuracy.

17. A non-transitory computer-readable medium storing code for communication data processing at a database server, the code comprising instructions executable by a processor to:

receive, at the database server, a copy of a communication message received by an application running on a first user device for a first user;

classify the communication message with one or more binary classifications based at least in part on a natural language processing (NLP) analysis of text of the communication message;

select, from a stored list of possible services on the database server, a set of services that correspond to a set of actions that are in response to receiving the copy of the communication message and that are based at least in part on the one or more binary classifications;

send indication instructions indicating the selected set of services to the application running on the first user device, the indication instructions instructing the application to automatically generate a communication template from the first user that is responsive to the communication message and that incorporates information based at least in part on the classified one or more binary classifications, wherein the communication template corresponds to at least one action of the set of actions;

receive user feedback based at least in part on user input from the first user to the application running on the first user device, the user input triggering the application running on the first user device to perform an action of the set of actions; and

send additional indication instructions indicating a subset of the selected set of services to the application running on a second user device for the first user, the subset of the selected set of services corresponding to a subset of the set of actions comprising each action of the set of actions except for the performed action based at least in part on the user input triggering the application running on the first user device to perform the action.

18. The non-transitory computer-readable medium of claim 17 , wherein the instructions are further executable by the processor to:

extract metadata from the communication message, wherein selecting the set of services that correspond to the set of actions is further based at least in part on the extracted metadata.

19. The non-transitory computer-readable medium of claim 17 , wherein the instructions are further executable by the processor to:

modify a service selection process specific to the first user based at least in part on the received user feedback.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0247 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2018
From: ROLLER, WILLIAM CHRISTOPHER FAMA; VIKRAM, SHARDUL; NOE, ALEX MICHAEL; BURBANK, NOAH WILLIAM; NAMMARI, SAMMY ADNAN; DOST, ASCANDER; DAS, SHUVAJIT; TANG, OLIVER QIAN; AMES, ROBERT CHRISTOPHER; VAIDYANATHAN, MADHAV; KU, WING HING; GARG, BHASKAR; YANG, XU; GILL, MADELEINE MARY; MEHTA, PERCY DARA; TENG, JANELLE WEN HUI; SUHARLI, ABRAHAM DIO; ROOS, ALEXIS; LIU, WENHAO; ACEVEDO, NELSON ESTEBAN; KELLER, JOSEPH GERALD; DESHPANDE, ROHIT; PRABHAKAR, SANDEEP RAJU
To: SALESFORCE.COM, INC.
Reel/Frame 047556/0716 →
Continuity (1)
Related Publication 20190140995A1 · May 9, 2019
Cited By (1)
US 12,216,983