# US 2014/0207801 A1 · Computer implemented methods and apparatus for recommending events

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

- Number: US 2014/0207801 A1
- Document ID: US20140207801A1
- Status: Published application
- Kind: A1
- Application number: 14/160,400
- Filed: 2014-01-21
- Published: 2014-07-24
- Earliest claimed: 2013-01-21
- Assignees: salesforce.com, inc.
- Applicants: Salesforce.Com, Inc.
- Inventors: Joel Palmert; Tony Meng
- Web page: https://patentgrep.com/patent/US20140207801A1

## CPC

- G06F 16/24578: {using ranking}
- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 16/248: Presentation of query results
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 16/9536: Search customisation based on social or collaborative filtering
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed are methods, apparatus, systems, and computer-readable storage media for recommending an event to a user. In some implementations, one or more servers receive information identifying a plurality of events. The one or more servers store data of the plurality of events in a first one or more data tables having an action field, an item field, and a user field, and analyze the data of the first one or more data tables to generate one or more pairs, each pair including information identifying a set of events and a target event. The one or more servers may calculate a similarity score for each of the one or more pairs and store the respective similarity score in a second one or more data tables having a set field, a target event field, and a similarity score field.

## Claims

### Claim 1

A computer implemented method for recommending an event to a user, the method comprising:
receiving, at a server, information identifying a plurality of events, each event having an action and an item, each event associated with a user;
storing data of the plurality of events in a first one or more data tables stored on one or more storage media, the first one or more data tables having an action field, an item field, and a user field;
analyzing the data of the first one or more data tables to generate one or more pairs, each pair including information identifying a set of events and a target event, at least one pair including a first set of events and a first target event, the first set of events including an event having a first action of a first action type and the target event having a second action of a second action type, the first and second action types being different;
calculating a similarity score for each of the one or more pairs; and
storing each of the one or more pairs and the respective similarity score in a second one or more data tables of the one or more storage media, the second one or more data tables having a set field, a target event field, and a similarity score field.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, at the server, one or more events from a computing device, the one or more events associated with a first user; and
identifying, based on the stored one or more pairs, the stored similarity scores, and the received one or more events, a first event to be recommended to the first user.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
transmitting, to a computing device associated with the first user, data for displaying in a user interface of the computing device a recommendation that the first user perform the identified first event.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
transmitting, to the computing device, data for arranging or rearranging displayed data or user interface components in the user interface to highlight the identified first event.

### Claim 5 (depends on 4)

The method of claim 4, wherein rearranging the displayed data comprises repositioning a displayed link in a list of links to an upper region of the list of links, the displayed link representing the identified first event.

### Claim 6 (depends on 1)

The method of claim 1, wherein an event is one of: following a user, following a record, clicking a link, joining a group, conversing with a user, accessing a file, acting on a record, acting on a customer relationship management (CRM) object, accessing an image, accessing a video, accessing audio data, communicating with a group or with a user, buying an item, selling an item, performing a search, and following a topic.

### Claim 7 (depends on 1)

The method of claim 1, wherein each action has an action type, the action type being one of: following, clicking, joining, accessing, downloading, viewing, searching, communicating, buying, selling, recommending, rating, opening, closing, deleting, creating, and updating.

### Claim 8 (depends on 1)

The method of claim 1, wherein an item is one of: a record, a link, an image, a video, a document, a user, a group, a file, a CRM object, a topic, and an article.

### Claim 9 (depends on 1)

The method of claim 1, wherein each set of events includes a sequence of events performed in a particular order by a single user.

### Claim 10 (depends on 1)

The method of claim 1, wherein each set of events includes events performed within a designated time interval by a single user.

### Claim 11 (depends on 1)

The method of claim 1, wherein all of the sets of events of the one or more pairs have a length, the length of a set being the number of events in the set.

### Claim 12 (depends on 11)

The method of claim 11, wherein the length of all of the sets of events is more than one, wherein one of the sets of events includes a first event having a first action of a first action type and a second event having a second action of a second action type, wherein the first and second action types are different.

### Claim 13 (depends on 1)

The method of claim 1, wherein analyzing the data of the one or more data tables to generate one or more pairs comprises generating a collaborative filter table as output having the one or more pairs recorded therein based on the analysis.

### Claim 14 (depends on 1)

The method of claim 1, wherein the similarity score of a pair is based at least in part on one or both of a frequency of performing the set of events of the pair and performing the target event of the pair.

### Claim 15 (depends on 1)

The method of claim 1, wherein the similarity score of the pair is normalized for a frequency that the set of events is performed.

### Claim 16 (depends on 1)

The method of claim 1, wherein the similarity score is a cosine-based similarity score.

### Claim 17

One or more computing devices for recommending an event to a user, the one or more computing devices comprising:
one or more processors operable to execute one or more instructions to:
receive, at a server, information identifying a plurality of events, each event having an action and an item, each event associated with a user;
store data of the plurality of events in a first one or more data tables stored on one or more storage media, the first one or more data tables having an action field, an item field, and a user field;
analyze the data of the first one or more data tables to generate one or more pairs, each pair including information identifying a set of events and a target event, at least one pair including a first set of events and a first target event, the first set of events including an event having a first action of a first action type and the target event having a second action of a second action type, the first and second action types being different;
calculate a similarity score for each of the one or more pairs; and
store each of the one or more pairs and the respective similarity score in a second one or more data tables of the one or more storage media, the second one or more data tables having a set field, a target event field, and a similarity score field.

### Claim 18 (depends on 17)

The one or more computing devices of claim 17, the one or more processors further operable to execute one or more instructions to:
receive, at the server, one or more events from a computing device, the one or more events associated with a first user;
identify, based on the stored one or more pairs, the stored similarity scores, and the received one or more events, a first event to be recommended to the first user; and
transmit, to a computing device associated with the first user, data for displaying in a user interface of the computing device a recommendation that the first user perform the identified first event.

### Claim 19

A non-transitory computer-readable storage medium storing instructions executable by a computing device to perform a method for recommending an event to a user, the method comprising:
receiving, at a server, information identifying a plurality of events, each event having an action and an item, each event associated with a user;
storing data of the plurality of events in a first one or more data tables stored on one or more storage media, the first one or more data tables having an action field, an item field, and a user field;
analyzing the data of the first one or more data tables to generate one or more pairs, each pair including information identifying a set of events and a target event, at least one pair including a first set of events and a first target event, the first set of events including an event having a first action of a first action type and the target event having a second action of a second action type, the first and second action types being different;
calculating a similarity score for each of the one or more pairs; and
storing each of the one or more pairs and the respective similarity score in a second one or more data tables of the one or more storage media, the second one or more data tables having a set field, a target event field, and a similarity score field.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium of claim 19, the method further comprising:
receiving, at the server, one or more events from a computing device, the one or more events associated with a first user;
identifying, based on the stored one or more pairs, the stored similarity scores, and the received one or more events, a first event to be recommended to the first user; and
transmitting, to a computing device associated with the first user, data for displaying in a user interface of the computing device a recommendation that the first user perform the identified first event.
