# US 9,436,701 B2 · Methods and systems for regulating user engagement

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

- Number: US 9,436,701 B2
- Document ID: US9436701B2
- Status: Granted
- Kind: B2
- Application number: 13/913,213
- Filed: 2013-06-07
- Published: 2014-01-09
- Granted: 2016-09-06
- Earliest claimed: 2012-07-03
- Assignees: salesforce.com, inc.
- Applicants: salesforce.com, inc.
- Inventors: Nathan Wisman; Nicholas Hellbusch
- Web page: https://patentgrep.com/patent/US9436701B2

## CPC

- G06F 21/6227: {where protection concerns the structure of data, e.g. records, types, queries}
- G06F 16/1873: {Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files}
- G06F 21/554: {involving event detection and direct action}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and systems are provided for regulating interaction with respect to an object in a database. One exemplary method involves creating an engagement record associated with the object in the database and in response receiving a request for a database activity with respect to the object from a user, determining whether the user is authorized to initiate the database activity with respect to the object based on a protection status indicated by the engagement record for the object. When the first user is authorized, the database is updated the database to reflect the requested database activity associated with the object and the protection status of the engagement record is updated in response to the database activity. After updating the protection status of the engagement record, subsequent database activity with respect to the object initiated by a second user is regulated based on the updated protection status.

## Claims

### Claim 1

A method of regulating interaction with respect to an object in a database, the method comprising:
creating an engagement record in the database, the engagement record being associated with the object and indicating a protection status for the object, wherein creating the engagement record comprises obtaining engagement rules for the object from a configuration record in the database and determining an initial protection status for the object based on the engagement rules; and
in response receiving a request for a database activity with respect to the object from a first user:
determining whether the first user is authorized to initiate the database activity with respect to the object based on the initial protection status; and
when the first user is authorized:
updating the database to reflect the database activity associated with the object; and
updating the protection status of the engagement record in response to the database activity to indicate a protected state for the first user with respect to the object; and
after updating the protection status of the engagement record, regulating subsequent database activity with respect to the object initiated by a second user based on the updated protection status.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
regulating the subsequent database activity comprises preventing the subsequent database activity with respect to the object on behalf of the second user while the engagement record indicates the protected state for the first user.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
providing a graphical user interface display associated with the object, the graphical user interface display including a graphical user interface element corresponding to the engagement record; and
in response to manipulation of the graphical user interface element, providing a graphical representation of the protection status in a second graphical user interface display.

### Claim 4 (depends on 1)

The method of claim 1, the first user belonging to a first class of users, wherein:
updating the protection status of the engagement record comprises updating the engagement record to indicate the protected state for the first user with respect to the first class of users; and
regulating the subsequent database activity comprises preventing the subsequent database activity initiated by the second user based on the protected state when the second user belongs to the first class of users.

### Claim 5 (depends on 1)

The method of claim 1, the first user belonging to a first class of users, wherein:
updating the protection status of the engagement record comprises updating the engagement record to indicate the protected state for the first user with respect to the first class of users; and
regulating the subsequent database activity comprises:
determining the second user is authorized to initiate the subsequent database activity with respect to the object based on the protection status when the second user belongs to a second class of users; and
when the second user is authorized:
updating the database to reflect the subsequent database activity; and
updating the protection status of the engagement record in response to the subsequent database activity to indicate a protected state for the second user with respect to the second class of users.

### Claim 6 (depends on 1)

The method of claim 1, further comprising automatically changing the protection status for the first user with respect to the object from the protected state to an unprotected state after a protection expiration date.

### Claim 7 (depends on 6)

The method of claim 6, further comprising providing a notification to the second user indicating a change to the protection status with respect to the object in response to automatically changing the protection status for the first user with respect to the object from the protected state to the unprotected state.

### Claim 8 (depends on 7)

The method of claim 7, further comprising automatically generating a message indicating the change in the protection status in a feed associated with the object, wherein providing the notification comprises displaying the message to the second user when the second user accesses the feed.

### Claim 9 (depends on 7)

The method of claim 7, further comprising automatically generating a message indicating the change in the protection status in a feed associated with the object, wherein providing the notification comprises pushing the message to the second user when the second user is subscribed to the feed.

### Claim 10 (depends on 6)

The method of claim 6, the method further comprising:
obtaining a protection duration from a configuration record in the database; and
determining the protection expiration date based on a date associated with the database activity initiated by the first user and the protection duration.

### Claim 11 (depends on 10)

The method of claim 10, wherein updating the protection status of the engagement record comprises updating the engagement record to maintain the date associated with the database activity.

### Claim 12 (depends on 10)

The method of claim 10, further comprising identifying the configuration record based on an association with a tenant associated with the first user and an object type associated with the object.

### Claim 13 (depends on 1)

The method of claim 1, the engagement rules providing a duration of protection for a first class of users, the first user belonging to the first class of users, the method further comprising:
determining an expiration for protection of the object for the first user based on the duration of protection, wherein updating the protection status of the engagement record comprises updating the engagement record to indicate the expiration.

### Claim 14 (depends on 13)

The method of claim 13, wherein when the second user belongs to the first class of users, regulating the subsequent database activity initiated by the second user comprises preventing the subsequent database activity with respect to the object prior to the expiration.

### Claim 15 (depends on 1)

The method of claim 1, wherein updating the database to reflect the database activity associated with the object comprises creating, in the database, a second object associated with the object.

### Claim 16

A system comprising:
a database to store a first object, a configuration record associated with an object type associated with the first object, and an engagement record associated with the first object, the configuration record maintaining rules of engagement associated with the object type and the engagement record indicating a protection status for the first object; and
a server providing one or more instances of a virtual application to one or more client devices via a network, the server comprising a processing system and a data storage element, the server being coupled to the database to:
identify the configuration record in the database based at least in part on the object type associated with the first object;
determine the protection status for the engagement record based on the rules of engagement maintained by the configuration record;
receive a request for a database activity with respect to the first object from a first client device of the one or more client devices;
determine whether a first user associated with the first client device is authorized to initiate the database activity with respect to the first object based on the protection status;
update the database to reflect the database activity associated with the first object when the first user is authorized;
update the protection status of the engagement record in response to the database activity; and
regulate subsequent database activity with respect to the first object initiated by a second user based on the updated protection status.

### Claim 17 (depends on 16)

The system of claim 16, wherein:
the server is configured to update the database to reflect the database activity associated with the first object when the first user is authorized by creating a second object in the database; and
the second object is associated with the first object.

### Claim 18 (depends on 16)

The system of claim 16, wherein:
the database comprises a multi-tenant database configured to support a plurality of tenants;
the configuration record is associated with a first tenant of the plurality of tenants and the object type associated with the first object, the configuration record maintaining the rules of engagement associated with the object type for the first tenant;
the first user and the second user are associated with the first tenant; and
the server is configured to:
identify the configuration record in the database based on the first tenant associated with the first user and the object type associated with the first object.

### Claim 19

A non-transitory computer-readable medium comprising computer-executable instructions that, when executed by a processing system, cause the processing system to:
create an engagement record in a database, the engagement record being associated with an object in the database and indicating a protection status for the object wherein creating the engagement record comprises obtaining engagement rules for the object from a configuration record in the database and determining an initial protection status for the object based on the engagement rules;
receive a request for a database activity with respect to the object from a first user;
determine the first user is authorized to initiate the database activity with respect to the object based on the initial protection status;
update the database to reflect the database activity associated with the object;
update the engagement record to indicate an updated protection status for the object in response to the database activity, the updated protection status indicating a protected state for the first user with respect to the object; and
regulate subsequent database activity with respect to the object initiated by a second user based on the updated protection status.

### Claim 20

A method of regulating interaction with respect to an object in a database, the method comprising:
creating an engagement record in the database, the engagement record being associated with the object and indicating a protection status for the object; and
in response receiving a request for a database activity with respect to the object from a first user:
determining whether the first user is authorized to initiate the database activity with respect to the object based on the protection status, the first user belonging to a first class of users; and
when the first user is authorized:
updating the database to reflect the database activity associated with the object; and
updating the protection status of the engagement record to indicate a protected state for the first user with respect to the first class of users in response to the database activity; and
after updating the protection status of the engagement record, regulating subsequent database activity with respect to the object initiated by a second user based on the updated protection status, wherein regulating the subsequent database activity comprises:
determining the second user is authorized to initiate the subsequent database activity with respect to the object based on the protection status when the second user belongs to a second class of users; and
when the second user is authorized:
updating the database to reflect the subsequent database activity; and
updating the protection status of the engagement record in response to the subsequent database activity to indicate a protected state for the second user with respect to the second class of users.
