IP Library Granted Patent US 8,996,639
Granted Patent B1
US 8,996,639 · App. 14/100,762 · Granted Mar 31, 2015

Predictive responses to incoming communications

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 8,996,639
App. No.
14/100,762
Granted
Mar 31, 2015
Kind
B1
Abstract

A computing system includes at least one processor and at least one module, operable by the at least one processor to receive, from a computing device associated with a user, an indication of an incoming communication, the incoming communication including information and determine, based at least in part on the information included in the incoming communication, one or more candidate responses to the incoming communication, wherein each candidate response includes information to be sent by the computing device to at least one other computing device, and wherein at least one candidate response was previously selected at least at a threshold frequency by at least one of the user and one or more other users. The at least one module is further operable by the at least one processor to send, to the computing device, a set of candidate responses from the one or more candidate responses.

Claims (66)

1. A method comprising:

receiving, by a computing system having at least one processor, from a computing device associated with a user, an indication of an incoming communication, the incoming communication including information;

determining, by the computing system, based at least in part on the information included in the incoming communication, one or more candidate responses to the incoming communication, wherein each candidate response from the one or more candidate responses includes information to be sent by the computing device to at least one other computing device, and wherein at least one candidate response from the one or more candidate responses was previously selected at least at a threshold frequency by at least one of the user and one or more other users; and

sending, by the computing system, to the computing device, a set of candidate responses from the one or more candidate responses.

2. The method of claim 1 , further comprising receiving, by the computing system, a current location of the computing device, wherein the one or more candidate responses are determined based at least in part on the current location.

3. The method of claim 2 , further comprising:

determining, based at least in part on the current location, a predicted destination of the user; and

determining, based on an amount of traffic along a travel route from the current location to the predicted destination, a predicted arrival time of the user at the predicted destination, wherein the one or more candidate responses are determined based at least in part on the predicted arrival time.

4. The method of claim 1 , further comprising:

determining, by the computing system, a level of deference to a sender of the incoming communication,

wherein at least one of the one or more candidate responses includes the word “sorry” based on the level of deference.

5. The method of claim 1 , further comprising:

determining, by the computing system, based at least in part on calendar data associated with the user, that the user is currently busy; and

responsive to determining that the user is currently busy, determining, based at least in part on the calendar data, a predicted time at which the user will be available, wherein the one or more candidate responses are determined based at least in part on the predicted time at which the user will be available.

6. The method of claim 1 , wherein determining the one or more candidate responses comprises:

determining a set of responses, wherein each response from the set of responses was previously selected, by at least one of the user and the one or more other users and at least at the threshold frequency, to respond to a respective incoming communication that includes at least a portion of the information included in the incoming communication;

determining a current context of the computing device, the current context including one or more contextual elements;

determining whether each response from the set of responses is associated with at least one contextual element from the one or more contextual elements; and

responsive to determining that at least one response from the set of responses is associated with the at least one element, including the at least one response in the one or more candidate responses.

7. The method of claim 6 ,

wherein determining the current context comprises determining a respective weight for each contextual element from the one or more contextual elements, and

wherein including the at least one response in the one or more candidate responses comprises:

determining, based at least in part on the respective weight for each contextual element from the at least one contextual element, a respective score associated with the at least one response; and

ordering the one or more candidate responses based at least in part on the respective score.

8. The method of claim 7 , wherein at least one contextual element of the one or more contextual elements indicates at least one of: a mode of travel of the user, an activity in which the user is currently engaged, an availability of the user, a location of the user, a current time, an application that received the incoming communication, a type of incoming communication, a type of response, a format of incoming communication, a format of response, a sender of the incoming communication, a type of social relationship between the user and the sender, and a level of deference to the sender.

9. The method of claim 1 , further comprising:

receiving, by the computing system, an indication of a selection of a candidate response from the set of candidate responses; and

responsive to receiving the indication of the selection, modifying, by the computing system, a frequency value indicating a frequency at which the candidate response was previously selected by at least one of the user and the one or more other users.

10. The method of claim 9 , further comprising:

responsive to receiving the indication of the selection, associating the candidate response with at least one contextual element of a current context of the computing device.

11. The method of claim 1 , further comprising:

receiving, by the computing system, an indication of a selection of a custom response, the custom response being a response that is different from each candidate response from the set of candidate responses; and

responsive to receiving the indication of the selection, storing, by the computing system, at least an indication of the custom response.

12. A computing system, comprising:

at least one processor; and

at least one memory storing instructions that, when executed by the at least one processor, cause the computing system to:

receive, from a computing device associated with a user, an indication of an incoming communication, the incoming communication including information;

determine, based at least in part on the information included in the incoming communication, one or more candidate responses to the incoming communication, wherein each candidate response from the one or more candidate responses includes information to be sent by the computing device to at least one other computing device, and wherein at least one candidate response from the one or more candidate responses was previously selected at least at a threshold frequency by at least one of the user and one or more other users; and

send, to the computing device, a set of candidate responses from the one or more candidate responses.

13. The computing system of claim 12 , wherein the at least one memory further stores instructions that, when executed by the at least one processor, cause the computing system to:

receive a current location of the computing device, wherein determining the one or more candidate responses is further based at least in part on the current location.

14. The computing system of claim 12 , wherein the at least one memory further stores instructions that, when executed by the at least one processor, cause the computing system to:

determine, based at least in part on calendar data associated with the user, that the user is currently busy; and

responsive to determining that the user is currently busy, determine, based at least in part on the calendar data, a predicted time at which the user will be available, wherein determining the one or more candidate responses is further based at least in part on the predicted time at which the user will be available.

15. The computing system of claim 12 , wherein the at least one memory further stores instructions that, when executed by the at least one processor, cause the computing system to:

receive an indication of a selection of a candidate response from the set of candidate responses; and

responsive to receiving the indication of the selection, modify a frequency value indicating a frequency at which the candidate response was previously selected by at least one of the user and the one or more other users.

16. The computing system of claim 12 , wherein the at least one memory further stores instructions that, when executed by the at least one processor, cause the computing system to:

determine a set of responses, wherein each response from the set of responses was previously selected, by at least one of the user and the one or more other users and at least at the threshold frequency, to respond to a respective incoming communication that includes at least a portion of the information included in the incoming communication;

determine a current context of the computing device, the current context including one or more contextual elements;

determine whether each response from the set of responses is associated with at least one contextual element from the one or more contextual elements; and

responsive to determining that at least one response from the set of responses is associated with the at least one element, include the at least one response in the one or more candidate responses.

17. The computing system of claim 16 , wherein at least one contextual element of the one or more contextual elements indicates at least one of: a mode of travel of the user, an activity in which the user is currently engaged, an availability of the user, a location of the user, a current time, an application that received the incoming communication, a type of incoming communication, a type of response, a format of incoming communication, a format of response, a sender of the incoming communication, a type of social relationship between the user and the sender, and a level of deference to the sender.

18. A non-transitory computer-readable storage medium encoded with instructions that, when executed, cause at least one processor of a computing system to:

receive, from a computing device associated with a user, an indication of an incoming communication, the incoming communication including information;

determine, based at least in part on the information included in the incoming communication, one or more candidate responses to the incoming communication, wherein each candidate response from the one or more candidate responses includes information to be sent by the computing device to at least one other computing device, and wherein at least one candidate response from the one or more candidate responses was previously selected at least at a threshold frequency by at least one of the user and one or more other users; and

send, to the computing device, a set of candidate responses from the one or more candidate responses.

19. The computer-readable storage medium of claim 18 , wherein the instructions that cause the at least one processor to determine the at least one candidate response comprise instructions that, when executed, cause the at least one processor to:

determine a set of responses, wherein each response from the set of responses was previously selected, by at least one of the user and the one or more other users and at least at the threshold frequency, to respond to a respective incoming communication that includes at least a portion of the information included in the incoming communication;

determine a current context of the computing device, the current context including one or more contextual elements and a respective weight for each contextual element from the one or more contextual elements, wherein at least one contextual element from the one or more contextual elements indicates at least one of: a mode of travel of the user, an activity in which the user is currently engaged, an availability of the user, a location of the user, a current time, an application that received the incoming communication, a type of incoming communication, a type of response, a format of incoming communication, a format of response, a sender of the incoming communication, a type of social relationship between the user and the sender, and a level of deference to the sender;

determine whether each response from the set of responses is associated with at least one contextual element from the one or more contextual elements;

responsive to determining that at least one response from the set of responses is associated with the at least one contextual element, determining, based at least in part upon the respective weight for each contextual element from the at least one contextual element, a respective score associated with the response; and

determining the one or more candidate responses based at least in part on the respective score.

20. The computer-readable storage medium of claim 18 , further encoded with instructions that, when executed, cause the at least one processor to:

determine, based at least in part one or more previous communications of the user, a level of deference to a sender of the incoming communication,

wherein the one or more candidate responses are determined based at least in part on the level of deference.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2013
From: FAABORG, ALEXANDER; KAPLAN, JOSHUA ROBIN
To: GOOGLE INC.
Reel/Frame 031742/0327 →