IP Library Granted Patent US 12711462
Granted Patent B2
US 12711462 · App. 18/520,368 · Granted Aug 18, 2026

Computer system and methods for managing data, data access, and data retention

Inventors: Anuj Rohatgi (Austin, TX); Allen Kim (Irvine, CA); Tabitha Jewett (Ventura, CA); Terrence Cole (Santa Barbara, CA); Tem K. Boylan (Santa Barbara, CA)
Assignee: Procore Technologies, Inc.
G06Q10/103G06F16/125G06Q10/06313G06Q50/08
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 12711462
App. No.
18/520,368
Granted
Aug 18, 2026
Kind
B2
Abstract

Techniques for managing data and data connections for a construction project involve (1) establishing respective data connections between (i) each party-entity data record and a project-entity data record for the construction project, and (ii) each party-entity data record and each respective object-entity data record for the construction project, (2) determining each party's permissions for retaining access to (i) the project-entity data record and (ii) each object-entity data record after a trigger event occurs, and (3) generating (i) respective connection data encoding the party's permissions for retaining access to the project-entity data record to be stored in association with the respective data connection between the party-entity data record and the project-entity data record and (ii) respective connection data encoding the party's permissions for retaining access to each respective object-entity data record in association with the respective data connection between the party-entity data record and the respective object-entity data record.

Claims (90)

1 . A computing system comprising:

a network interface;

at least one processor;

at least one non-transitory computer-readable medium; and

program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to:

receive, via the network interface, from a first client station associated with a first party, a first request to create a project-entity data record representing a given construction project;

after receiving the first request to create a project-entity data record representing the given construction project:

create the project-entity data record representing the given construction project;

establish a first connection between a first party-entity data record representing the first party and the project-entity data record representing the given construction project, wherein establishing the first connection comprises generating first connection data that encodes data retention permissions for the first party with respect to the project-entity data record representing the given construction project; and

cause the first connection data to be stored separately from the project-entity data record;

receive, via the network interface, from the first client station associated with the first party, a second request to issue an invitation for a second party to electronically collaborate on the given construction project, wherein the second request indicates data retention permissions for the second party with respect to the project-entity data record representing the given construction project; and

based on a determination that the second party has accepted the invitation to collaborate on the given construction project:

establish a second connection between a second party-entity data record representing the second party and the project-entity data record representing the given construction project, wherein establishing the second connection comprises generating second connection data that encodes the data retention permissions for the second party with respect to the project-entity data record representing the given construction project; and

cause the second connection data to be stored separately from the project-entity data record;

detect a trigger event for determining an extent to which the second party is authorized to retain a copy of the project-entity data record; and

in response to detecting the trigger event:

access the second connection data that is stored separately from the project-entity data record;

determine a retention level of the second party with respect to the project-entity data record representing the given construction project based on the data retention permissions encoded in the second connection data;

based on the retention level, determine whether the second party has rights to retain a copy of the project-entity data record;

based on determining that the second party has rights to retain a copy of the project-entity data record, cause a copy of the project-entity data record to be stored in a data repository accessible to the second party; and

delete the second connection between the second party-entity data record representing the second party and the project-entity data record.

2 . The computing system of claim 1 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to:

establish a respective connection between the second party-entity data record and each respective object-entity data record representing a respective data object in a first set of data objects associated with the given construction project, wherein establishing each respective connection comprises generating respective connection data that encodes respective data retention permissions for the second party with respect to the respective data object.

3 . The computing system of claim 2 , wherein, for each respective data object in the first set of data objects, the respective data retention permissions for the second party with respect to the respective data object are defined based on the data retention permissions for the second party with respect to the project-entity data record representing the given construction project.

4 . The computing system of claim 2 , wherein the trigger event is a first trigger event, and wherein the computing system further comprises program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to:

detect a second trigger event for determining an extent to which the second party is authorized to retain a copy of a given data object in the first set of data objects; and

in response to detecting the second trigger event, determine a retention level of the second party with respect to the given data object based on the respective connection data that encodes the respective data retention permissions for the second party with respect to the given data object.

5 . The computing system of claim 4 , wherein the retention level of the second party with respect to the given data object comprises one of: read/write retention, read-only retention, or no retention.

6 . The computing system of claim 4 , wherein the second trigger event comprises either a request to delete the given data object or an indication that the second party no longer has access to the given construction project.

7 . The computing system of claim 4 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to:

in response to detecting the second trigger event, delete the respective connection between the second party-entity data record and the respective object-entity data record representing the given data object.

8 . The computing system of claim 2 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to:

receive, from a second client station associated with the second party, a request to create a new data object associated with the given construction project; and

establish a new connection between the second party-entity data record and a new object-entity data record representing the new data object in a second set of data objects, wherein establishing the new connection comprises generating new connection data that encodes data retention permissions for the second party with respect to the new data object that differ from the respective data retention permissions for the second party with respect to the respective data objects in the first set of data objects.

9 . The computing system of claim 8 , wherein:

the respective data retention permissions for the second party with respect to the respective data objects in the first set of data objects comprise either read-only retention or no retention; and

the data retention permissions for the second party with respect to the new data object comprise read/write retention.

10 . The computing system of claim 1 , wherein the trigger event comprises either a request to delete the project-entity data record representing the given construction project or an indication that the second party no longer has access to the given construction project.

11 . The computing system of claim 1 , wherein the retention level of the second party with respect to the project-entity data record representing the given construction project comprises one of: read/write retention, read-only retention, or no retention.

12 . The computing system of claim 1 , wherein:

the first connection data further encodes information about a given role of the first party with respect to the project-entity data record; and

the second connection data further encodes information about a given role of the second party with respect to the project-entity data record.

13 . A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a computing system to:

receive, via a network interface, from a first client station associated with a first party, a first request to create a project-entity data record representing a given construction project;

after receiving the first request to create a project-entity data record representing the given construction project:

create the project-entity data record representing the given construction project;

establish a first connection between a first party-entity data record representing the first party and the project-entity data record representing the given construction project, wherein establishing the first connection comprises generating first connection data that encodes data retention permissions for the first party with respect to the project-entity data record representing the given construction project; and

cause the first connection data to be stored separately from the project-entity data record;

receive, via the network interface, from the first client station associated with the first party, a second request to issue an invitation for a second party to electronically collaborate on the given construction project, wherein the second request indicates data retention permissions for the second party with respect to the project-entity data record representing the given construction project; and

based on a determination that the second party has accepted the invitation to collaborate on the given construction project:

establish a second connection between a second party-entity data record representing the second party and the project-entity data record representing the given construction project, wherein establishing the second connection comprises generating second connection data that encodes the data retention permissions for the second party with respect to the project-entity data record representing the given construction project; and

cause the second connection data to be stored separately from the project-entity data record;

detect a trigger event for determining an extent to which the second party is authorized to retain a copy of the project-entity data record; and

in response to detecting the trigger event:

access the second connection data that is stored separately from the project-entity data record;

determine a retention level of the second party with respect to the project-entity data record representing the given construction project based on the data retention permissions encoded in the second connection data;

based on the retention level, determine whether the second party has rights to retain a copy of the project-entity data record;

based on determining that the second party has rights to retain a copy of the project-entity data record, cause a copy of the project-entity data record to be stored in a data repository accessible to the second party; and

delete the second connection between the second party-entity data record representing the second party and the project-entity data record.

14 . The non-transitory computer-readable medium of claim 13 , wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by the at least one processor, cause the computing system to:

establish a respective connection between the second party-entity data record and each respective object-entity data record representing a respective data object in a first set of data objects associated with the given construction project, wherein establishing each respective connection comprises generating respective connection data that encodes respective data retention permissions for the second party with respect to the respective data object.

15 . The non-transitory computer-readable medium of claim 14 , wherein, for each respective data object in the first set of data objects, the respective data retention permissions for the second party with respect to the respective data object are defined based on the data retention permissions for the second party with respect to the project-entity data record representing the given construction project.

16 . The non-transitory computer-readable medium of claim 14 , wherein the trigger event is a first trigger event, and wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by the at least one processor, cause the computing system to:

detect a second trigger event for determining an extent to which the second party is authorized to retain a copy of a given data object in the first set of data objects; and

in response to detecting the second trigger event, determine a retention level of the second party with respect to the given data object based on the respective connection data that encodes the respective data retention permissions for the second party with respect to the given data object.

17 . The non-transitory computer-readable medium of claim 14 , wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by the at least one processor, cause the computing system to:

receive, from a second client station associated with the second party, a request to create a new data object associated with the given construction project; and

establish a new connection between the second party-entity data record and a new object-entity data record representing the new data object in a second set of data objects, wherein establishing the new connection comprises generating new connection data that encodes data retention permissions for the second party with respect to the new data object that differ from the respective data retention permissions for the second party with respect to the respective data objects in the first set of data objects.

18 . The non-transitory computer-readable medium of claim 17 , wherein:

the respective data retention permissions for the second party with respect to the respective data objects in the first set of data objects comprise either read-only retention or no retention; and

the data retention permissions for the second party with respect to the new data object comprise read/write retention.

19 . A method carried out by a computing system, the method comprising:

receiving, via a network interface, from a first client station associated with a first party, a first request to create a project-entity data record representing a given construction project;

after receiving the first request to create a project-entity data record representing the given construction project:

creating the project-entity data record representing the given construction project;

establishing a first connection between a first party-entity data record representing the first party and the project-entity data record representing the given construction project, wherein establishing the first connection comprises generating first connection data that encodes data retention permissions for the first party with respect to the project-entity data record representing the given construction project; and

causing the first connection data to be stored separately from the project-entity data record;

receiving, via the network interface, from the first client station associated with the first party, a second request to issue an invitation for a second party to electronically collaborate on the given construction project, wherein the second request indicates data retention permissions for the second party with respect to the project-entity data record representing the given construction project; and

based on a determination that the second party has accepted the invitation to collaborate on the given construction project:

establishing a second connection between a second party-entity data record representing the second party and the project-entity data record representing the given construction project, wherein establishing the second connection comprises generating second connection data that encodes the data retention permissions for the second party with respect to the project-entity data record representing the given construction project; and

causing the second connection data to be stored separately from the project-entity data record;

detecting a trigger event for determining an extent to which the second party is authorized to retain a copy of the project-entity data record; and

in response to detecting the trigger event:

accessing the second connection data that is stored separately from the project-entity data record;

determining a retention level of the second party with respect to the project-entity data record representing the given construction project based on the data retention permissions encoded in the second connection data;

based on the retention level, determining whether the second party has rights to retain a copy of the project-entity data record;

based on determining that the second party has rights to retain a copy of the project-entity data record, causing a copy of the project-entity data record to be stored in a data repository accessible to the second party; and

deleting the second connection between the second party-entity data record representing the second party and the project-entity data record.

20 . The method of claim 19 , further comprising:

establishing a respective connection between the second party-entity data record and each respective object-entity data record representing a respective data object in a first set of data objects associated with the given construction project, wherein establishing each respective connection comprises generating respective connection data that encodes respective data retention permissions for the second party with respect to the respective data object.