IP Library Granted Patent US 10,289,528
Granted Patent B2
US 10,289,528 · App. 15/467,905 · Granted May 14, 2019

Targeted user notification of bug fixes

Inventors: Sarika Calla (Kirkland, WA); Neeraja Reddy Singireddy (Bothell, WA); Jonathan Daniel Keech (Kirkland, WA); Ritesh Rambhai Parikh (Redmond, WA); Ryan Alexander Dawson (Redmond, WA); Ram Kumar Donthula (Redmond, WA); Deniz Duncan (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F11/366G06F8/65G06Q30/016G06Q30/0251H04L41/0859H04L67/22H04L67/34
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 10,289,528
App. No.
15/467,905
Granted
May 14, 2019
Kind
B2
Abstract

Systems and methods for sending in-product notifications to individual users of a software product or a specifically identified subset of users of the software product selected via their previously observed interactions with the software product. In addition, targeted notifications of bug fixes can be sent to specific users who have encountered an error condition or performance issue that a particular bug fix is designed to correct.

Claims (38)

1. A system for sending in-product notifications to individual users of a software product or a specifically identified subset of users of the software product selected via their previously observed interactions with the software product, the system comprising: one or more processors; and one or more computer-readable media having stored thereon instructions that are executable by the one or more processors, including instructions that are executable to configure the computer system to perform at least the following: collect telemetry data associated with each user of the software product relating to the user's interactions with or use of the software product and store the telemetry data in a telemetry data database; identify an error condition in the software product that requires correction; traverse a database of existing updates to identify any prior update that relates to the error condition and, if no prior update exists, create an update to correct the error condition; query the telemetry data database to identify all users of the software product that have encountered the error condition and to create an identified subset of users associated with that error condition; and provide an in-product notification of the update to the identified subset of users to correct the error condition in the software product.

2. The system of claim 1 , wherein one or more computer-readable media further have stored thereon instructions that are executable by the one or more processors to configure the computer system to perform at least the following:

track, in the telemetry data database, which users have received an in-product notification for a particular update.

3. The system of claim 2 , wherein one or more computer-readable media further have stored thereon instructions that are executable by the one or more processors to configure the computer system to perform at least the following:

associate each update with its corresponding error condition; and

store each update and its corresponding error condition in a notification database.

4. The system of claim 3 , wherein one or more computer-readable media further have stored thereon instructions that are executable by the one or more processors to configure the computer system to perform at least the following:

for each update stored in the notification database, periodically query the telemetry data database to identify any additional users who have encountered the error condition associated with that update and have not previously been notified of the update; and

provide additional in-product notifications of the update to the additional users.

5. The system of claim 4 , wherein the telemetry data database is part of a connected cloud service that exposes an API that the software product calls and collects data indicative of current client side configuration and user information.

6. The system of claim 5 , wherein the API returns to the user any new in-product notifications identified for a particular user.

7. The system of claim 6 , wherein the telemetry data associated with a user further comprises user information including any one or more of userID online user ID, machine ID, instance ID or similar ID used by the system to identify a particular user.

8. The system of claim 7 , wherein the telemetry data associated with a user comprises client side configuration data including any one or more of version, locale or SKU.

9. The system of claim 8 , wherein the telemetry data associated with a user further comprises usage data indicative of the user's use of and interaction with the software product or portions thereof.

10. The system of claim 9 , wherein usage data further comprises error condition data indicative of the occurrence of a software error and conditions existing at the time of the occurrence of the software error.

11. The system of claim 10 , wherein the software product incorporates a notification hub and the notification is provided to each user via the notification hub.

12. The system of claim 10 , wherein notification is provided to each user via a pop-up modal dialog within the software product.

13. The system of claim 10 , wherein one or more computer-readable media further have stored thereon instructions that are executable by the one or more processors to configure the computer system to perform at least the following:

track, in the notification database, each time a particular notification is returned to any user; and

periodically query the notification database and delete any notifications that have not been provided to any user for a time interval that equals or exceeds a predetermined period of time.

14. A method for sending in-product notifications to individual users of a software product or a specifically identified subset of users of the software product selected via their previously observed interactions with the software product, the method comprising: collecting telemetry data associated with each user of the software product relating to the user's interactions with or use of the software product and store the telemetry data in a telemetry data database; identifying an error condition in the software product that requires correction; traversing a database of existing updates to identify any prior update that relates to the error condition and, if no prior update exists, creating an update to correct the error condition; querying the telemetry data database to identify all users of the software product that have encountered the error condition and to create an identified subset of users associated with that error condition; and providing an in-product notification of the update to the identified subset of users to correct the error condition in the software product.

15. The method of claim 14 further comprising tracking, in the telemetry data database, which users have received an in-product notification for a particular update.

16. The method of claim 15 further comprising:

associating each update with its corresponding error condition; and

storing each update and its corresponding error condition in a notification database.

17. The method of claim 16 , further comprising:

for each update stored in the notification database, periodically querying the telemetry data database to identify any additional users who have encountered the error condition associated with that update and have not previously been notified of the update; and

providing additional in-product notifications of the update to the additional users.

18. The method of claim 17 , wherein the telemetry data database is part of a connected cloud service that exposes an API that the software product calls and collects data indicative of current client side configuration and user information.

19. The method of claim 18 , wherein the API returns to the user any new in-product notifications identified for a particular user.

20. A system for sending in-product notifications to individual users or a specifically identified subset of users of a software product selected via their previously observed interactions with the software product, the system comprising:

one or more processors; and

one or more computer-readable media having stored thereon instructions that are executable by the one or more processors, including instructions that are executable to configure the computer system to perform at least the following:

store a collection of notifications to be sent to one or more identified users of the software product and their selected configuration in a cloud service;

expose, by the cloud service, a web API having details of current client/product side configuration, including version, Locale and SKU, and user information, including userID for each user of the software product;

look up applicable notifications in the cloud storage and return them to the client of each identified user to which a particular notification is relevant;

display the notification returned by the web API through invoking the user and software configuration information by the client software product; and

mark the notification as sent in the cloud storage to prevent sending the notification multiple times.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2017
From: CALLA, SARIKA; SINGIREDDY, NEERAJA REDDY; KEECH, JONATHAN DANIEL; PARIKH, RITESH RAMBHAI; DAWSON, RYAN ALEXANDER; DONTHULA, RAM KUMAR; DUNCAN, DENIZ
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 041713/0024 →
Continuity (1)
Related Publication 20180276104A1 · Sep 27, 2018
Cited By (1)
US 12,639,719