IP Library Granted Patent US 11,139,993
Granted Patent B2
US 11,139,993 · App. 16/590,808 · Granted Oct 5, 2021

Method, apparatus, and computer program product for generating a predicted channel add object in a group-based communication system

Inventors: Renaud Bourassa-Denis (New York City, NY); John Gallagher (New York City, NY); Michael Montazeri (New York, NY); Paul Rosania (San Francisco, CA); Jerry Talton (New York City, NY)
Assignee: Slack Technologies, Inc.
H04L12/1818
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,139,993
App. No.
16/590,808
Granted
Oct 5, 2021
Kind
B2
Abstract

Embodiments of the present disclosure provide methods, systems, apparatuses, and computer program products that are configured to generate a predicted channel add object in an improved system of networked computing devices. The embodiments disclose an apparatus and system that provide channel invite suggestions. The channel invite suggestions comprise recommendations of users to invite to group-based communication channels. To provide the channel-invite suggestions, the group-based communication system generates a user-channel data structure that stores a plurality of values that capture relationships between users and group-based communication channels. The values may capture information regarding membership of a user in a group-based communication channel, starring of a group-based communication channel by a user, a level of activity of a user in a group-based communication channel, and a user's word usage in a group-based communication channel.

Claims (62)

1. An apparatus associated with a communication platform, the apparatus comprising at least one processor and at least one memory including a computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to:

receive, from a user computing device associated with a first user of the communication platform, a channel creation request comprising a first user identifier associated with the first user:

compare a first channel array associated with the first user to a second channel array associated with a second user to determine a similarity score between the first channel array and the second channel array; and

in response to determining that the similarity score between the first channel array and the second channel array is above the threshold score, generate a predicted channel add object for inviting the second user to join a new channel associated with the channel creation request.

2. The apparatus of claim 1 , wherein the computer program code is further configured to cause the user computing device associated with the first user to render a predicted channel add interface to an interface of the communication platform based at least in part on the predicted channel add object.

3. The apparatus of claim 2 , wherein the predicted channel add interface comprises a channel invite component associated with a second user identifier, the channel invite component being configured, upon user engagement, to execute a channel invitation protocol that is configured to add the second user identifier to a channel access registry associated with the channel creation request.

4. The apparatus of claim 1 , wherein the first channel array comprises a first channel access weight parameter determined based on first user-channel access recency data associated with the first user and the second channel array comprises a second channel access weight parameter determined based on second user-channel access recency data associated with the second user.

5. The apparatus of claim 1 , wherein the first channel array comprises a first channel access weight parameter determined based on first user-channel access frequency data associated with the first user and the second channel array comprises a second channel access weight parameter determined based on second user-channel access frequency data associated with the second user.

6. The apparatus of claim 5 , wherein the first user-channel access frequency data comprises first user-channel read frequency data and the second user-channel access frequency data comprises second user-channel read frequency data.

7. The apparatus of claim 5 , wherein the first user-channel access frequency data comprises first user-channel write frequency data and the second user-channel access frequency data comprises second user-channel read frequency data.

8. The apparatus of claim 5 , wherein the first user-channel access frequency data is determined based on a first logarithm of first user-channel write frequency data and first user-channel read frequency data and the second user-channel access frequency data is determined based on a second logarithm of second user-channel write frequency data and second user-channel read frequency data.

9. The apparatus of claim 1 , wherein the first channel array comprises a first channel access weight parameter determined based on first channel word count data associated with the first user and the second channel array comprises a second channel access weight parameter determined based on second channel word count data associated with the second user.

10. A machine-implemented method for generating a predicted channel add object in a communication platform, the method comprising:

receiving, from a computing device associated with a first user of the communication platform, a channel creation request comprising a first user identifier associated with the first user;

comparing a first channel array associated with the first user to a second channel array associated with a second user to determine a similarity score between the first channel array and the second channel array; and

in response to determining that the similarity score between the first channel array and the second channel array is above a threshold similarity score, generating the predicted channel add object for inviting the second user to join a new channel associated with the channel creation request.

11. One or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions for performing a method for generating a predicted channel add object in a communication platform, the method comprising:

receiving, from a computing device associated with a first user of the communication platform, a channel creation request comprising a first user identifier associated with the first user;

comparing a first channel array associated with the first user to a second channel array associated with a second user to determine a similarity score between the first channel array and the second channel array; and

in response to determining that the similarity score between the first channel array and the second channel array is above a threshold similarity score, generating the predicted channel add object for inviting the second user to join a new channel associated with the channel creation request.

12. An apparatus configured to generate a predicted channel add object in a communication platform, the apparatus comprising at least one processor and at least one memory including a computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to:

store channel data associated with a plurality of channels of the communication platform in a plurality of data structures, wherein the channel data comprises at least channel membership data that represents user identifiers associated with each channel of the plurality of channels;

generate comparison criteria data based at least in part on the channel data and store the comparison criteria data in a user-channel data structure, wherein a first user identifier of the communication platform is associated with a first channel array of the plurality of channels and a second user identifier of the communication platform is associated with a second channel array;

determine, based at least in part on the comparison criteria, that a similarity score between the first channel array and the second channel array is within a threshold similarity score; and

based at least in part on the similarity score being within the threshold similarity score, generate the predicted channel add object to be rendered via a predicted channel add interface.

13. The apparatus of claim 12 wherein the computer program code is further configured to cause the apparatus to generate and store a similarity-scores data structure based on the user-channel data structure.

14. The apparatus of claim 13 wherein, to generate and store a similarity-scores data structure based on the user-channel data structure, the computer program code is further configured to cause the apparatus to:

generate and initialize a similarity-scores data structure with a plurality of null elements;

retrieve a similarity-scores-data-structure row storing a first null element;

determine that the first user identifier is associated with the retrieved similarity-scores-data-structure row and designate it as a selected user identifier;

retrieve, from the user-channel data structure, the first channel array associated with the selected user identifier, and designate the first channel array as a selected channel array;

determine that the second user identifier corresponds to a second null element in the retrieved similarity-scores-data-structure row;

retrieve, from the user-channel data structure, the second channel array associated with the second user identifier; and

generate and store, in the similarity scores data structure and in the retrieved similarity-scores-data-structure row, the similarity score based on the selected channel array and the second channel array associated with the second user identifier.

15. The apparatus of claim 13 wherein, to generate the predicted channel add object to be rendered via the predicted channel add interface, the computer program code is further configured to cause the apparatus to:

receive a channel creation request associated with a channel-creator user identifier;

identify a predetermined number of most-similar user accounts to a user account associated with the channel-creator user identifier;

identify a first user accounts set, wherein each user account associated with the first user accounts set has a similarity score that exceeds the threshold score;

generate the predicted channel add object based at least in part on the first user accounts set;

generate, based at least in part on the predicted channel add object, a predicted channel add interface data configured to cause a rendering of the predicted channel add interface that comprises one or more channel invite components;

transmit, to a client device associated with the channel-creator user identifier, the predicted channel add interface data;

receive a first user selection of one or more users to invite to a communication channel associated with the channel creation request; and

in response to receiving the first user selection, execute a channel invitation protocol that is configured to add one or more user accounts corresponding to the one or more users to a channel access registry associated with the communication channel.

16. The apparatus of claim 15 wherein, the computer program code is further configured to cause the apparatus to:

receive a second user selection of users to invite to a group-based communication channel;

find a predetermined number of additional most-similar user accounts based on the second user selection;

wherein to find the predetermined number of additional most-similar user accounts, the computer program code is further configured to cause the apparatus to:

identify, for a first user account associated with the first user selection, a second user accounts set corresponding to a predetermined number of most-similar user accounts to the first user account;

identify, for a second user account associated with the second user selection, a third user accounts set corresponding to a predetermined number of most-similar user accounts to the first user account; and

find an intersection of the first user accounts set, the second user account sets and the third user accounts set.

17. The apparatus of claim 12 , wherein the similarity score is determined based on a cosine similarity.

18. The apparatus of claim 12 wherein, to generate the predicted channel add object to be rendered via the predicted channel add interface, the computer program code is further configured to cause the apparatus to determine a center-of-mass array.

19. A machine-implemented method for generating a predicted channel add object in a communication platform, the method comprising:

storing channel data associated with a plurality of channels of the communication platform in a plurality of data structures wherein the channel data comprises at least channel membership data that represents user identifiers associated with each channel of the plurality of channels;

generating comparison criteria data based at least in part on the channel data and store the comparison criteria data in a user-channel data structure, wherein a first user identifier of the communication platform is associated with a first channel array of the plurality of channels and a second user identifier of the communication platform is associated with a second channel array;

determining, based at least in part on the comparison criteria, that a similarity score between the first channel array and the second channel array is within a threshold similarity score; and

based at least in part on the similarity score being within the threshold similarity score, generating a predicted channel add object to be rendered via a predicted channel add interface.

20. One or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions for performing a method for generating a predicted channel add object in a communication platform, the method comprising:

storing channel data associated with a plurality of channels of the communication platform in a plurality of data structures wherein the channel data comprises at least channel membership data that represents user identifiers associated with each channel of the plurality of channels;

generating comparison criteria data based at least in part on the channel data and store the comparison criteria data in a user-channel data structure, wherein a first user identifier of the communication platform is associated with a first channel array of the plurality of channels and a second user identifier of the communication platform is associated with a second channel array;

determining, based at least in part on the comparison criteria, that a similarity score between the first channel array and the second channel array is within a threshold similarity score; and

based at least in part on the similarity score being within the threshold similarity score, generating a predicted channel add object to be rendered via a predicted channel add interface.

Assignments (4)
MERGER Recorded Jan 11, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE.COM, INC.
Reel/Frame 062354/0073 →
CHANGE OF NAME Recorded Jan 11, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062354/0100 →
MERGER AND CHANGE OF NAME Recorded Oct 1, 2021
From: SLACK TECHNOLOGIES, INC.; SLACK TECHNOLOGIES, LLC
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057683/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2020
From: BOURASSA-DENIS, RENAUD; GALLAGHER, JOHN; MONTAZERI, MICHAEL; ROSANIA, PAUL; TALTON, JERRY
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 052109/0750 →
Continuity (2)
Provisional Application 62740208 · Oct 2, 2018
Related Publication 20200106630A1 · Apr 2, 2020
Cited By (1)
US 12,348,475