IP Library Granted Patent US 11,595,327
Granted Patent B2
US 11,595,327 · App. 15/782,678 · Granted Feb 28, 2023

Method, apparatus, and computer program product for associating an identifier with one or more message communications within a group-based communication system

Inventors: Sean Rose (San Francisco, CA); Andreas Haugstrup Pedersen (San Francisco, CA); Daniel Stewart Butterfield (Vancouver, CA); Callum Henderson-Begg (San Francisco, CA); Christopher David Montrois (Redwood City, CA); Lauren Bosak Wagner (San Francisco, CA); Milo Watanabe (San Francisco, CA)
Assignee: Salesforce, inc.
H04L51/04G06F16/951G06F16/955H04L12/1822H04L51/48H04L61/301H04L61/5069H04L2101/365
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,595,327
App. No.
15/782,678
Granted
Feb 28, 2023
Kind
B2
Abstract

Embodiments of the present disclosure relate to a group-based communication server for associating an identifier with one or more message communications within a group-based communication system. In some embodiments, the group-based communication server comprises at least one processor and at least one memory including computer program code.

Claims (78)

1. A group-based communication system for processing message association requests, the group-based communication system comprising at least one processor and at least one memory including computer program code, wherein the at least one memory and the computer program code are configured to, with the at least one processor, cause the group-based communication system to:

receive a user input from a client device within a group-based communication channel of the group-based communication system, wherein access to the group-based communication channel is restricted to users with validated requests or accepted invitations to join the group-based communication channel;

determine that the user input comprises a message association request embedded in a message communication based at least in part on a mention symbol that precedes a mention recipient identifier within the user input;

determine access control parameters for the group-based communication channel in which the group-based communication system received the user input, wherein the access control parameters indicate global identifiers associated with users that are authorized to access the group-based communication channel, and wherein the global identifiers comprise 64 bit unsigned integers that uniquely identify the authorized users within the group-based communication system;

retrieve identifying information for the authorized users based at least in part on using the global identifiers to query a group-based communication repository within the group-based communication system, the identifying information comprising respective display name strings and full name strings stored in association with the 64 bit unsigned integers that uniquely identify the authorized users within the group-based communication system;

perform a plurality of Boolean comparisons between the mention recipient identifier and one or more of the display name strings or the full name strings associated with the authorized users, wherein, to perform the plurality of Boolean comparisons, the at least one memory and the computer program code are configured to, with the at least one processor, cause the group-based communication system to:

perform a first plurality of Boolean comparisons between each character in the mention recipient identifier and each character in the display name strings; and

perform a second plurality of Boolean comparisons between each character in the mention recipient identifier and each character in the full name strings;

add two or more of the authorized users to a candidate user list based at least in part on the first plurality of Boolean comparisons or the second plurality of Boolean comparisons satisfying an accuracy threshold percentage for the two or more authorized users, wherein the accuracy threshold percentage is greater than 0 and less than 100;

transmit an indication of the identifying information for the two or more authorized users on the candidate user list to the client device within the group-based communication channel;

receive, from the client device, a selection of a user from the two or more authorized users on the candidate user list;

associate the message communication with a 64 bit unsigned integer that uniquely identifies the selected user within the group-based communication system;

post the message communication in the group-based communication channel; and

transmit, to a device associated with the 64 bit unsigned integer that uniquely identifies the selected user within the group-based communication system, a notification that the selected user was mentioned in the group-based communication channel.

2. The group-based communication system of claim 1 , wherein the mention recipient identifier includes a full name string or a display name string associated with the selected user.

3. The group-based communication system of claim 1 , wherein the identifying information comprises the full name strings, the display name strings, user title values, and avatar representations of the authorized users.

4. The group-based communication system of claim 1 , wherein the mention recipient identifier comprises one or more non-ASCII characters.

5. The group-based communication system of claim 1 , wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the group-based communication system to:

generate an authorized user list that comprises a plurality of potential entries associated with the authorized users, wherein each of the plurality of potential entries comprises a global identifier, a full name string, and a display name string associated with one of the authorized users.

6. The group-based communication system of claim 5 , wherein, to perform the plurality of Boolean comparisons, the at least one memory and the computer program code are configured to, with the at least one processor, cause the group-based communication system to:

Boolean compare one or more characters in the mention recipient identifier to the full name string of each potential entry in the authorized user list; and

add, to the candidate user list, potential entries that return a threshold percentage of Boolean results with a value of true, wherein the threshold percentage is greater than 0.

7. The group-based communication system of claim 6 , wherein, to perform the plurality of Boolean comparisons, the at least one memory and the computer program code are configured to, with the at least one processor, cause the group-based communication system to:

Boolean compare each subsequent character in the mention recipient identifier to the full name string of each potential entry in the authorized user list; and

add, to the candidate user list, potential entries that return a threshold percentage of Boolean results with a value of true, wherein the threshold percentage is greater than 0.

8. The group-based communication system of claim 6 , wherein, to perform the plurality of Boolean comparisons, the at least one memory and the computer program code are configured to, with the at least one processor, cause the group-based communication system to:

Boolean compare each subsequent character in the mention recipient identifier to the full name string of each potential entry in the authorized user list; and

add, to the candidate user list, potential entries that return a threshold percentage of Boolean results with a value of true, wherein the threshold percentage is greater than 80.

9. The group-based communication system of claim 8 , wherein the threshold percentage is 100.

10. The group-based communication system of claim 5 , wherein, to perform the plurality of Boolean comparisons, the at least one memory and the computer program code are configured to, with the at least one processor, cause the group-based communication system to:

Boolean compare one or more characters in the mention recipient identifier to the display name string of each potential entry in the authorized user list; and

add, to the candidate user list, potential entries that return a threshold percentage of Boolean results with a value of true, wherein the threshold percentage is greater than 0.

11. The group-based communication system of claim 10 , wherein, to perform the plurality of Boolean comparisons, the at least one memory and the computer program code are configured to, with the at least one processor, cause the group-based communication system to:

Boolean compare each subsequent character in the mention recipient identifier to the display name string of each potential entry in the authorized user list; and

add, to the candidate user list, potential entries that return a threshold percentage of Boolean results with a value of true, wherein the threshold percentage is greater than 0.

12. The group-based communication system of claim 10 , wherein, to perform the plurality of Boolean comparisons, the at least one memory and the computer program code are configured to, with the at least one processor, cause the group-based communication system to:

Boolean compare each subsequent character in the mention recipient identifier to the display name string of each potential entry in the authorized user list; and

add, to the candidate user list, potential entries that return a threshold percentage of Boolean results with a value of true, wherein the threshold percentage is greater than 80.

13. The group-based communication system of claim 12 , wherein the threshold percentage is 100.

14. A method for processing message association requests in a group-based communication system, comprising:

receiving a user input from a client device within a group-based communication channel of the group-based communication system, wherein access to the group-based communication channel is restricted to users with validated requests or accepted invitations to join the group-based communication channel;

determining that the user input comprises a message association request embedded in a message communication based at least in part on a mention symbol that precedes a mention recipient identifier within the user input;

determining access control parameters for the group-based communication channel in which the group-based communication system received the user input, wherein the access control parameters indicate global identifiers associated with users that are authorized to access the group-based communication channel, and wherein the global identifiers comprise 64 bit unsigned integers that uniquely identify the authorized users within the group-based communication system;

retrieving identifying information for the authorized users based at least in part on using the global identifiers to query a group-based communication repository within the group-based communication system, the identifying information comprising respective display name strings and full name strings stored in association with the 64 bit unsigned integers that uniquely identify the authorized users within the group-based communication system;

performing a plurality of Boolean comparisons between the mention recipient identifier and one or more of the display name strings or the full name strings associated with the authorized users, wherein performing the plurality of Boolean comparisons comprises:

performing a first plurality of Boolean comparisons between each character in the mention recipient identifier and each character in the display name strings; and

performing a second plurality of Boolean comparisons between each character in the mention recipient identifier and each character in the full name strings;

adding two or more of the authorized users to a candidate user list based at least in part on the first plurality of Boolean comparisons or the second plurality of Boolean comparisons satisfying an accuracy threshold percentage for the two or more authorized users, wherein the accuracy threshold percentage is greater than 0 and less than 100;

transmitting an indication of the identifying information for the two or more authorized users on the candidate user list to the client device within the group-based communication channel;

receiving, from the client device, a selection of a user from the two or more authorized users on the candidate user list;

associating the message communication with a 64 bit unsigned integer that uniquely identifies the selected user within the group-based communication system;

posting the message communication in the group-based communication channel; and

transmitting, to a device associated with the 64 bit unsigned integer that uniquely identifies the selected user within the group-based communication system, a notification that the selected user was mentioned in the group-based communication channel.

15. The method of claim 14 , wherein the mention recipient identifier includes a full name string or a display name string associated with the selected user.

16. The method of claim 14 , wherein the identifying information comprises the full name strings, the display name strings, user title values, and avatar representations of the authorized users.

17. The method of claim 14 , wherein the mention recipient identifier comprises one or more non-ASCII characters.

18. The method of claim 14 , wherein the global identifiers are inaccessible to users of the group-based communication system.

19. A method for processing message association requests at a group-based communication system, comprising:

receiving a user input from a client device within a group-based communication channel of the group-based communication system, wherein access to the group-based communication channel is restricted to users with validated requests or accepted invitations to join the group-based communication channel;

determining that the user input comprises a message association request embedded in a message communication based at least in part on a mention symbol that precedes a mention recipient identifier within the user input;

determining access control parameters for the group-based communication channel in which the group-based communication system received the user input, wherein the access control parameters indicate global identifiers associated with users that are authorized to access the group-based communication channel, and wherein the global identifiers comprise 64 bit unsigned integers that uniquely identify the authorized users within the group-based communication system;

retrieving identifying information for the authorized users based at least in part on using the global identifiers to query a group-based communication repository within the group-based communication system, the identifying information comprising respective display name strings and full name strings stored in association with the 64 bit unsigned integers that uniquely identify the authorized users within the group-based communication system;

performing a plurality of Boolean comparisons between the mention recipient identifier and one or more of the display name strings or the full name strings associated with the authorized users, wherein performing the plurality of Boolean comparisons comprises:

performing a first plurality of Boolean comparisons between each character in the mention recipient identifier and each character in the display name strings; and

performing a second plurality of Boolean comparisons between each character in the mention recipient identifier and each character in the full name strings;

adding one or more of the authorized users to a candidate user list if the first plurality of Boolean comparisons or the second plurality of Boolean comparisons satisfy an accuracy threshold percentage for the one or more authorized users, wherein the accuracy threshold percentage is greater than 0 and less than 100; and

in response to determining that there are no valid entries in the candidate user list:

querying the group-based communication repository to determine whether the mention recipient identifier exists within the group-based communication system;

retrieving, from the group-based communication repository and responsive to determining that the mention recipient identifier exists outside of the group-based communication channel, identifying information for a user associated with the mention recipient identifier;

transmitting, to the client device, an indication of the identifying information for the user associated with the mention recipient identifier; and

receiving a confirmation message from the client device in response to the indication.

20. The method of claim 19 , further comprising:

in response to the confirmation message indicating a positive confirmation:

transmitting, to a second client device associated with an administrator of the group-based communication system, a request to add a global identifier associated with the mention recipient identifier to a list of global identifiers that have permission to access the group-based communication channel; and

receiving, from the second client device, a response that indicates an approval or denial of the request.

21. The method of claim 19 , further comprising:

in response to the confirmation message indicating a negative confirmation:

transmitting, to the client device, an error message and a request to provide an updated mention recipient identifier for the message association request.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2025
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 070001/0469 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NEWLY MERGED ENTITY'S NEW NAME, AND TO REMOVE THE PERIOD PREVIOUSLY RECORDED AT REEL: 057254 FRAME: 0738. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 9, 2021
From: SKYLINE STRATEGIES II LLC; SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057514/0930 →
MERGER AND CHANGE OF NAME Recorded Aug 2, 2021
From: SKYLINE STRATEGIES II LLC; SLACK TECHNOLOGIES, INC.; SLACK TECHNOLOGIES, LLC
To: SLACK TECHNOLOGIES, LLC.
Reel/Frame 057254/0738 →
MERGER Recorded Aug 2, 2021
From: SLACK TECHNOLOGIES, INC.; SKYLINE STRATEGIES I INC.
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 057254/0693 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 49332/0349 Recorded Jul 19, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 057649/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2020
From: ROSE, SEAN; PEDERSEN, ANDREAS HAUGSTRUP; BUTTERFIELD, DANIEL STEWART; HENDERSON-BEGG, CALLUM; MONTROIS, CHRISTOPHER DAVID; WAGNER, LAUREN BOSAK; WATANABE, MILO
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 054289/0828 →
PATENT SECURITY AGREEMENT Recorded May 30, 2019
From: SLACK TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049332/0349 →
Continuity (3)
Provisional Application 62556606 · Sep 11, 2017
Provisional Application 62408670 · Oct 14, 2016
Related Publication 20180212903A1 · Jul 26, 2018
Cited By (2)
US 12,288,190 US 12,535,934