IP Library Granted Patent US 11,861,399
Granted Patent B2
US 11,861,399 · App. 17/656,812 · Granted Jan 2, 2024

User specific event threading

Inventors: Percy Dara Mehta (Foster City, CA); Shan-Cheng Ho (Sunnyvale, CA); Clinton Tran (South San Francisco, CA); Kshama Lalit Thacker (San Mateo, CA); Jayanth Parayil Kumarji (Burlingame, CA)
Assignee: Salesforce, Inc.
G06F9/4881G06F9/542
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,861,399
App. No.
17/656,812
Granted
Jan 2, 2024
Kind
B2
Abstract

The techniques may include maintaining a thread of events for a plurality of users, where each element of the thread corresponds to an event/activity and includes at least a next field that includes a first subset of the plurality of users and a previous field that includes a second subset of the plurality of users. These techniques may allow new events to be quickly added and prior elements may be updated to reflect the addition. Further, the thread elements may allow the thread to be quickly traversed to identify queried information such that the information may be displayed to a user.

Claims (62)

1. A method for data processing, comprising:

receiving a query for a leading edge event of a thread of events associated with a plurality of user identifiers, the query indicating a target user identifier of the plurality of user identifiers that are participants to the thread of events, wherein each element of the thread of events corresponds to a communication between two or more user identifiers of the plurality of user identifiers, and wherein one or more of the elements include a respective next field that indicates a respective subset of user identifiers from the plurality of user identifiers;

traversing respective elements of respective events of the thread of events, starting with a latest element in the thread of events arranged in a chronological order until identification of a first element that does not include the target user identifier in the respective next field of the first element;

identifying, as the leading edge event for the target user identifier, an event corresponding to the first element that does not include the target user identifier in the respective next field; and

transmitting an indication of the leading edge event of the thread of events based at least in part on the query.

2. The method of claim 1 , further comprising:

receiving an indication to expand the leading edge event for the target user identifier to a thread for a target user associated with the target user identifier;

traversing each element, prior to the first element corresponding to the leading edge event, that includes the target user identifier in the respective next field of an element until the element does not include the target user identifier in a previous field of the element; and

transmitting an indication of each element as the thread for the target user.

3. The method of claim 1 , further comprising:

receiving an indication of a new event comprising at least a subset of the plurality of user identifiers, wherein the new event is associated with the thread of events in accordance with a thread identifier;

identifying the thread of events using the thread identifier;

adding, to the thread of events, a new element corresponding to the new event, wherein the new element includes a previous field including one or more of the plurality of user identifiers that are associated with at least one prior event to the new element in the thread of events; and

updating, based at least in part on adding the new element to the new event, the respective next field of each element of the thread of events such that the respective next field of a current element includes one or more of the plurality of user identifiers that are associated with at least one subsequent event to the current element in the thread of events.

4. The method of claim 3 , wherein receiving the indication of the new event comprises:

detecting transmission of a new message between one or more of the plurality of user identifiers.

5. The method of claim 1 , further comprising:

storing a table in association with the thread of events, wherein the table includes a summary of the thread of events.

6. The method of claim 1 , wherein each event corresponds to a meeting, an email, a message, or a phone call.

7. The method of claim 1 , wherein each element of the thread of events further includes a contributor field that includes one or more of the plurality of user identifiers that includes user identifiers of the plurality of user identifiers that either contributed to an event of a current element or an event prior to the current element.

8. The method of claim 1 , wherein each element of the thread of events further includes an insight field indicating one or more of the plurality of user identifiers based on which users of the plurality of user identifiers were a contributor to an event corresponding to a current element with an insight or any prior element corresponding to an event with an insight.

9. An apparatus for data processing, comprising:

a processor;

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

receive a query for a leading edge event of a thread of events associated with a plurality of user identifiers that are participants to the thread of events, the query indicating a target user identifier of the plurality of user identifiers, wherein each element of the thread of events corresponds to a communication between two or more user identifiers of the plurality of user identifiers, and wherein one or more of the elements include a respective next field that indicates a respective subset of user identifiers from the plurality of user identifiers;

traverse respective elements of respective events of the thread of events, starting with a latest element in the thread of events arranged in a chronological order until identification of a first element that does not include the target user identifier in the respective next field of the first element;

identify, as the leading edge event for the target user identifier, an event corresponding to the first element that does not include the target user identifier in the respective next field; and

transmit an indication of the leading edge event of the thread of events based at least in part on the query.

10. The apparatus of claim 9 , wherein the instructions are further executable by the processor to cause the apparatus to:

receive an indication to expand the leading edge event for the target user identifier to a thread for a target user associated with the target user identifier;

traverse each element prior to the first element corresponding to the leading edge event that includes the target user identifier in the respective next field of an element until the element does not include the target user identifier in a previous field of the element; and

transmit an indication of each element as the thread for the target user.

11. The apparatus of claim 9 , wherein the instructions are further executable by the processor to cause the apparatus to:

receive an indication of a new event comprising at least a subset of the plurality of user identifiers, wherein the new event is associated with the thread of events in accordance with a thread identifier;

identify the thread of events using the thread identifier;

add, to the thread of events, a new element corresponding to the new event, wherein the new element includes a previous field including one or more of the plurality of user identifiers that are associated with at least one prior event to the new element in the thread of events; and

update, based at least in part on adding the new element to the new event, the respective next field of each element of the thread of events such that the respective next field of a current element includes one or more of the plurality of user identifiers that are associated with at least one subsequent event to the current element in the thread of events.

12. The apparatus of claim 11 , wherein the instructions to receive the indication of the new event are executable by the processor to cause the apparatus to:

detect transmission of a new message between one or more of the plurality of user identifiers.

13. The apparatus of claim 9 , wherein the instructions are further executable by the processor to cause the apparatus to:

store a table in association with the thread of events, wherein the table includes a summary of the thread of events.

14. The apparatus of claim 9 , wherein each event corresponds to a meeting, an email, a message, or a phone call.

15. A non-transitory computer-readable medium storing code for data processing, the code comprising instructions executable by a processor to:

receive a query for a leading edge event of a thread of events associated with a plurality of user identifiers that are participants to the thread of events, the query indicating a target user identifier of the plurality of user identifiers, wherein each element of the thread of events corresponds to a communication between two or more user identifiers of the plurality of user identifiers, and wherein one or more of the elements include a respective next field that indicates a respective subset of user identifiers from the plurality of user identifiers;

traverse respective elements of respective events of the thread of events, starting with a latest element in the thread of events arranged in a chronological order until identification of a first element that does not include the target user identifier in the respective next field of the first element;

identify, as the leading edge event for the target user identifier, an event corresponding to the first element that does not include the target user identifier in the respective next field; and

transmit an indication of the leading edge event of the thread of events based at least in part on the query.

16. The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the processor to:

receive an indication to expand the leading edge event for the target user identifier to a thread for a target user associated with the target user identifier;

traverse each element prior to the first element corresponding to the leading edge event that includes the target user identifier in the respective next field of an element until the element does not include the target user identifier in a previous field of the element; and

transmit an indication of each element as the thread for the target user.

17. The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the processor to:

receive an indication of a new event comprising at least a subset of the plurality of user identifiers, wherein the new event is associated with the thread of events in accordance with a thread identifier;

identify the thread of events using the thread identifier;

add, to the thread of events, a new element corresponding to the new event, wherein the new element includes a previous field including one or more of the plurality of user identifiers that are associated with at least one prior event to the new element in the thread of events; and

update, based at least in part on adding the new element to the new event, the respective next field of each element of the thread of events such that the respective next field of a current element includes one or more of the plurality of user identifiers that are associated with at least one subsequent event to the current element in the thread of events.

18. The non-transitory computer-readable medium of claim 17 , wherein the instructions to receive the indication of the new event are executable by the processor to:

detect transmission of a new message between one or more of the plurality of user identifiers.

19. The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the processor to:

store a table in association with the thread of events, wherein the table includes a summary of the thread of events.

20. The non-transitory computer-readable medium of claim 15 , wherein each event corresponds to a meeting, an email, a message, or a phone call.

Assignments (3)
CHANGE OF NAME Recorded Oct 10, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065192/0329 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA TO SALESFORCE.COM, INC. PREVIOUSLY RECORDED ON REEL 059416 FRAME 0669. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 6, 2023
From: MEHTA, PERCY DARA; HO, SHAN-CHENG; TRAN, CLINTON; THACKER, KSHAMA LALIT; PARAYIL KUMARJI, JAYANTH
To: SALESFORCE.COM, INC.
Reel/Frame 062961/0419 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2022
From: MEHTA, PERCY DARA; HO, SHAN-CHENG; TRAN, CLINTON; THACKER, KSHAMA LALIT; PARAYIL KUMARJI, JAYANTH
To: QUALCOMM INCORPORATED
Reel/Frame 059416/0669 →
Continuity (3)
Continuation 16801965 · Feb 26, 2020
Provisional Application 62937206 · Nov 18, 2019
Related Publication 20220222110A1 · Jul 14, 2022