IP Library Granted Patent US 11,880,650
Granted Patent B1
US 11,880,650 · App. 17/505,470 · Granted Jan 23, 2024

Smart detection of and templates for contract edits in a workflow

Inventors: Jason Li (San Francisco, CA); Cai Gogwilt (San Francisco, CA)
Assignee: Ironclad, Inc.
G06F40/197G06F40/166G06F40/169G06Q10/101
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 11,880,650
App. No.
17/505,470
Granted
Jan 23, 2024
Kind
B1
Abstract

Various aspects of the subject technology relate to systems, methods, and machine-readable media for detecting changes to uploaded documents in a workflow platform. Various aspects may include determining changes between various versions of a media file. Aspects may include detecting what portions of the media file change relative to different instances of the various media file versions. Aspects may also include updating a template element to incorporate the changes to the portions of the media file so that the template element may be used to regenerate a new version of the media file with the incorporated changes being reflected by the template element. Aspects may include determining a new location of text within a portion of the media file that is changed between versions of the media file.

Claims (66)

1. A computer-implemented method for processing conflicting edits, in different versions of a textual document, that result from inputs by different users to a workflow platform configured to manage creation and asynchronous editing of the textual document, the method comprising:

generating, by a server executing the workflow platform, and based on a template comprising a plurality of fields for insertion of data by users, a base version of the textual document;

inserting, by the server, based on receiving a selection of a key portion of the textual document, and to create a marked base version comprising first and second markers, the first marker before the key portion of the textual document and the second marker after the key portion of the textual document;

receiving, by the server and from a first client device used by a first user, first inputs corresponding to a first edited version of the textual document, wherein the first edited version is different from the marked base version, wherein the first inputs comprise a first edit corresponding to a first field of the plurality of fields, wherein the first inputs comprise an input deleting a portion of the textual document comprising a second field of the plurality of fields, and wherein the key portion comprises the portion of the textual document comprising the second field;

receiving, by the server, from a second client device used by a second user, and via a form section of a template element interface of the workflow platform, second inputs corresponding to a second edited version of the textual document, wherein the second edited version is different from the first edited version and different from the marked base version, wherein the form section comprises a plurality of text entry regions respectively corresponding to the plurality of fields, wherein the second inputs comprise a second edit, corresponding to the first field, received via a first text entry region, of the plurality of text entry regions, corresponding to the first field, and wherein the form section indicates, for the first text entry region, that the second edit differs from the first edit;

determining, by the server and based on a three-way merge of the marked base version, the first edited version, and the second edited version, a conflict in the key portion caused by the first edited version and by the second edited version, wherein determining the conflict comprises determining the conflict based on the first edited version lacking one or more of the first marker or the second marker; and

based on determining the conflict, causing, by the server, output of a display indicating the conflict in the key portion and indicating options for resolving the conflict.

2. The computer-implemented method of claim 1 , wherein the first marker and the second marker comprise tags indicating subject matter of the key portion.

3. The computer-implemented method of claim 1 , wherein receiving the first inputs comprises receiving an attachment to an email.

4. The computer-implemented method of claim 1 , wherein determining the conflict comprises one or more of:

determining different edits corresponding to a field of the plurality of fields;

determining deletion of at least some of the key portion;

determining that an edit alters the template; or

determining that an edit is inconsistent with the template.

5. The computer-implemented method of claim 1 , further comprising at least one of:

updating a location of the first marker to a beginning of the conflict; or

updating a location of the second marker to an end of the conflict.

6. The computer-implemented method of claim 1 , further comprising:

storing, by the server in a database, a copy of the base version, a copy of the marked based version, a copy of the first edited version, a copy of the second edited version, and a copy of a merged version, wherein the stored copies are linked to nodes of a master branch, a markers branch, and a template branch, and wherein the master branch is mapped to the markers branch and to the template branch.

7. The computer-implemented method of claim 1 , further comprising:

modifying, by the server and based on one or more of the first edited version or the second edited version, the template.

8. The computer-implemented method of claim 1 , wherein the first edit, corresponding to the first field of the plurality of fields, comprises a freeform edit made without using the form section of the template element interface.

9. A server for processing conflicting edits, in different versions of a textual document, that result from inputs by different users to a workflow platform configured to manage creation and asynchronous editing of the textual document, the server comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the server to:

generate, based on a template comprising a plurality of fields for insertion of data by users, a base version of the textual document;

insert, based on receiving a selection of a key portion of the textual document, and to create a marked base version comprising first and second markers, the first marker before the key portion of the textual document and the second marker after the key portion of the textual document;

receive, from a first client device used by a first user, first inputs corresponding to a first edited version of the textual document, wherein the first edited version is different from the marked base version, wherein the first inputs comprise a first edit corresponding to a first field of the plurality of fields, wherein the first inputs comprise an input deleting a portion of the textual document comprising a second field of the plurality of fields, and wherein the key portion comprises the portion of the textual document comprising the second field;

receive, from a second client device used by a second user, and via a form section of a template element interface of the workflow platform, second inputs corresponding to a second edited version of the textual document, wherein the second edited version is different from the first edited version and different from the marked base version, wherein the form section comprises a plurality of text entry regions respectively corresponding to the plurality of fields, wherein the second inputs comprise a second edit, corresponding to the first field, received via a first text entry region, of the plurality of text entry regions, corresponding to the first field, and wherein the form section indicates, for the first text entry region, that the second edit differs from the first edit;

determine, based on a three-way merge of the marked base version, the first edited version, and the second edited version, a conflict in the key portion caused by the first edited version and by the second edited version, wherein determining the conflict comprises determining the conflict based on the first edited version lacking one or more of the first marker or the second marker; and

based on determining the conflict, cause output of a display indicating the conflict in the key portion and indicating options for resolving the conflict.

10. The server of claim 9 , wherein the first marker and the second marker comprise tags indicating subject matter of the key portion.

11. The server of claim 9 , wherein the instructions, when executed by the one or more processors, cause the server to receive the first inputs by receiving an attachment to an email.

12. The server of claim 9 , wherein the instructions, when executed by the one or more processors, cause the server to determine the conflict by one or more of:

determining different edits corresponding to a field of the plurality of fields;

determining deletion of at least some of the key portion;

determining that an edit alters the template; or

determining that an edit is inconsistent with the template.

13. The server of claim 9 , wherein the instructions, when executed by the one or more processors, cause the server to at least one of:

update a location of the first marker to a beginning of the conflict; or

update a location of the second marker to an end of the conflict.

14. The server of claim 9 , wherein the instructions, when executed by the one or more processors, cause the server to:

store, in a database, a copy of the base version, a copy of the marked base version, a copy of the first edited version, a copy of the second edited version, and a copy of a merged version, wherein the stored copies are linked to nodes of a master branch, a markers branch, and a template branch, and wherein the master branch is mapped to the markers branch and to the template branch.

15. The server of claim 9 , wherein the instructions, when executed by the one or more processors, cause the server to:

modify, based on one or more of the first edited version or the second edited version, the template.

16. The server of claim 9 , wherein the first edit, corresponding to the first field of the plurality of fields, comprises a freeform edit made without using the form section of the template element interface.

17. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors of a server for processing conflicting edits, in different versions of a textual document, that result from inputs by different users to a workflow platform configured to manage creation and asynchronous editing of the textual document, cause the server to:

generate, based on a template comprising a plurality of fields for insertion of data by users, a base version of the textual document;

insert, based on receiving a selection of a key portion of the textual document, and to create a marked base version comprising first and second markers, the first marker before the key portion of the textual document and the second marker after the key portion of the textual document;

receive, from a first client device used by a first user, first inputs corresponding to a first edited version of the textual document, wherein the first edited version is different from the marked base version, wherein the first inputs comprise a first edit corresponding to a first field of the plurality of fields, wherein the first inputs comprise an input deleting a portion of the textual document comprising a second field of the plurality of fields, and wherein the key portion comprises the portion of the textual document comprising the second field;

receive, from a second client device used by a second user, and via a form section of a template element interface of the workflow platform, second inputs corresponding to a second edited version of the textual document, wherein the second edited version is different from the first edited version and different from the marked base version, wherein the form section comprises a plurality of text entry regions respectively corresponding to the plurality of fields, wherein the second inputs comprise a second edit, corresponding to the first field, received via a first text entry region, of the plurality of text entry regions, corresponding to the first field, and wherein the form section indicates, for the first text entry region, that the second edit differs from the first edit;

determine, based on a three-way merge of the marked base version, the first edited version, and the second edited version, a conflict in the key portion caused by the first edited version and by the second edited version, wherein determining the conflict comprises determining the conflict based on the first edited version lacking one or more of the first marker or the second marker; and

based on determining the conflict, cause output of a display indicating the conflict in the key portion and indicating options for resolving the conflict.

18. The one or more computer-readable media of claim 17 , wherein the first marker and the second marker comprise tags indicating subject matter of the key portion.

19. The one or more computer-readable media of claim 17 , wherein the instructions, when executed by the one or more processors, cause the server to receive the first inputs by receiving an attachment to an email.

20. The one or more computer-readable media of claim 17 , wherein the instructions, when executed by the one or more processors, cause the server to determine the conflict by one or more of:

determining different edits corresponding to a field of the plurality of fields;

determining deletion of at least some of the key portion;

determining that an edit alters the template; or

determining that an edit is inconsistent with the template.

21. The one or more computer-readable media of claim 17 , wherein the instructions, when executed by the one or more processors, cause the server to at least one of:

update a location of the first marker to a beginning of the conflict; or

update a location of the second marker to an end of the conflict.

22. The one or more computer-readable media of claim 17 , wherein the instructions, when executed by the one or more processors, cause the server to:

store, in a database, a copy of the base version, a copy of the marked base version, a copy of the first edited version, a copy of the second edited version, and a copy of a merged version, wherein the stored copies are linked to nodes of a master branch, a markers branch, and a template branch, and wherein the master branch is mapped to the markers branch and to the template branch.

23. The one or more computer-readable media of claim 17 , wherein the first edit, corresponding to the first field of the plurality of fields, comprises a freeform edit made without using the form section of the template element interface.

Assignments (2)
SECURITY INTEREST Recorded Dec 6, 2023
From: IRONCLAD, INC.
To: MUFG BANK, LTD.
Reel/Frame 065779/0375 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2022
From: LI, JASON; GOGWILT, CAI
To: IRONCLAD, INC.
Reel/Frame 059402/0733 →
Continuity (2)
Provisional Application 63105784 · Oct 26, 2020
Provisional Application 63105764 · Oct 26, 2020
Cited By (7)
US 12,387,236 US 12,417,343 US 12,511,473 US 12,524,609 US 12,536,561 US 12,574,340 US 12,725,185