# US 8,751,524 B2 · Application store concierge

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,524 B2
- Document ID: US8751524B2
- Status: Granted
- Kind: B2
- Application number: 12/916,213
- Filed: 2010-10-29
- Published: 2012-05-03
- Granted: 2014-06-10
- Earliest claimed: 2010-10-29
- Assignees: Microsoft Corporation
- Applicants: Joseph Futty; Miller T. Abel; Eric P. Gilmore; Kamran Rajabi Zargahi; John Clavin; Viswanath Vadlamani
- Inventors: Joseph Futty; Miller T. Abel; Eric P. Gilmore; Kamran Rajabi Zargahi; John Clavin; Viswanath Vadlamani
- Web page: https://patentgrep.com/patent/US8751524B2

## CPC

- G06Q 30/06: Buying, selling or leasing transactions
- G06F 8/61: Installation
- 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
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An application sequence may be composed in response to a user query. The application sequence may be based upon user data accessed by the application concierge service. Each application within the personalized chain of applications may request and receive data from the application concierge service about the other applications within the chain.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving a query from a user requesting identification of a plurality of software applications for use by the user to perform a task identified in the query;
referencing user data relevant to the task identified in the query;
responsive to the user query, automatically identifying, by searching one or more application stores, an application sequence comprising a plurality of software applications that each perform separate portions of the task such that the application sequence enables the user to perform the entire task, the identifying based at least in part on the task, application programming interface (API) descriptions of inputs and outputs for each of the plurality of software applications, and the user data, wherein features and behavior of the plurality of software applications in the one or more application stores are described in descriptive data that is associated with the plurality of software applications;
combining, by a processor, the plurality of software applications in a workflow in which each software application of the plurality of software applications occupies a sequential position and at least one of the plurality of software applications provides data to an immediately subsequent software application in the workflow; and
determining a confidence score indicating a likelihood that the workflow performs the task identified in the query, the determining based at least in part on a history of user actions relevant to the task.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one of the plurality of software applications provides the data directly to the immediately subsequent software application in the workflow.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving, from the user, permission to share the user data with one or more of the plurality of software applications; and
providing the user data to one or more of the plurality of software applications.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining that the confidence score meets a confidence score level; and
automatically launching, by the concierge application, a first software application in the workflow, in response to determining that the confidence score meets the confidence score level.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining that the confidence score does not meet a confidence score level; and
presenting, to the user, a results page comprising a list of software applications in the workflow showing sequential positions of the software applications, in response to determining that the confidence score does not meet the confidence score level.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the user data comprises at least one of a calendar, location data, contacts, application usage data, bank account information, or credit card information.

### Claim 7

A system comprising:
a memory;
one or more processors coupled to the memory; and
a software application concierge service operable by the one or more processors, the software application concierge service comprising:
an application data service configured to automatically identify a plurality of software applications from an application store that each perform separate portions of a task such that the plurality of software applications enables a user to perform an entirety of the task based at least in part on the task, application programming interface (API) descriptions of inputs and outputs for each of the plurality of software applications, and user data relevant to the task, wherein the task is identified in a query from the user, and wherein features and behavior of the plurality of applications in the application store are described in descriptive data that is associated with the plurality of applications;
a sequencer configured to generate a workflow in which each of the plurality of software applications occupies a sequential position and at least one of the plurality of software applications provides data to an immediately subsequent software application in the workflow; and
a confidence module configured to determine a confidence score indicating a likelihood that the workflow performs the task identified in the query based at least in part on a history of user actions relevant to the task.

### Claim 8 (depends on 7)

The system of claim 7, wherein the sequencer is further configured to:
automatically launch a first software application in the workflow; and
automatically launch a second software following termination of the first software application, wherein the second software application occupies a position in the workflow immediately subsequent to the first software application.

### Claim 9 (depends on 7)

The system of claim 7, wherein the application data service is further configured to provide the user data to a first software application in the workflow.

### Claim 10 (depends on 9)

The system of claim 9, wherein the application data service is further configured to transfer the user data from the first software application to a second software application via the application data service, wherein the second software application occupies a position in the workflow immediately subsequent to the first software application.

### Claim 11 (depends on 7)

The system of claim 7, further comprising a security module configured to determine whether the software application concierge service is authorized to access secure user data.

### Claim 12 (depends on 11)

The system of claim 11, wherein the security module is further configured to provide the secure user data to at least one of the plurality of software applications, in response to determining that the software application concierge service is authorized to access the secure user data.

### Claim 13 (depends on 11)

The system of claim 11, wherein the software application concierge service is further configured to request permission from the user to access the secure user data each time the secure user data is requested by one or more of the plurality of software applications, in response to the security module determining that the software application concierge service is not authorized to access the secure user data.

### Claim 14 (depends on 11)

The system of claim 11, wherein the secure user data comprises at least one of a calendar or payment information.

### Claim 15 (depends on 7)

The system of claim 7, wherein the confidence module is further configured to automatically launch a software application that occupies a first sequential position in the workflow in response to determining that the confidence score is greater than or equal to a preset score.

### Claim 16

One or more computer instruction storages accessible by a computing device, the computer instruction storages storing computer-executable instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving a query from a user requesting identification of a plurality of software applications for use by the user to perform a task identified in the query;
referencing user data relevant to the task;
responsive to the user query, automatically identifying, by searching one or more application stores, an application sequence comprising the plurality of software applications that each perform separate portions of the task such that the application sequence enables the user to perform an entirety of the task, the identifying based at least in part on the task, application programming interface (API) descriptions of inputs and outputs for each of the plurality of software applications, and the user data, wherein features and behavior of the plurality of software applications in the one or more application stores are described in descriptive data that is associated with the plurality of software applications;
combining the plurality of software applications in a workflow in which each software application occupies a sequential position and at least one of the plurality of software applications provides data to an immediately subsequent software application in the workflow; and
determining a confidence score indicating a likelihood that the workflow performs the task identified in the query, the determining based at least in part on a history of user actions relevant to the task.

### Claim 17 (depends on 16)

The one or more computer instruction storages accessible by a computing device of claim 16, wherein the at least one of the plurality of software applications provides the data directly to the immediately subsequent software application in the workflow.

### Claim 18 (depends on 16)

The one or more computer instruction storages accessible by a computing device of claim 16, wherein the user data comprises at least one of a calendar, location data, contacts, application usage data, bank account information, or credit card information.

### Claim 19 (depends on 16)

The one or more computer instruction storages accessible by a computing device of claim 16, further comprising automatically launching a software application that occupies a first sequential position in the workflow in response to determining that the confidence score is greater than or equal to a preset score.

### Claim 20 (depends on 16)

The one or more computer instruction storages accessible by a computing device of claim 16, further comprising presenting a results page comprising a list of software applications in the workflow showing sequential positions of the software applications to the user in response to determining that the confidence score is less than a preset score level.
