IP Library Granted Patent US 11,392,878
Granted Patent B2
US 11,392,878 · App. 15/879,274 · Granted Jul 19, 2022

Method, apparatus, and computer program product for low latency serving of interactive enterprise analytics within an enterprise group-based communication system

Inventors: Diana Maria Pojar (San Francisco, CA); Colin Gibbs (San Francisco, CA); Stanislav Vyacheslavovich Babourine (Walnut Creek, CA); Fangzi Huang (San Francisco, CA)
Assignee: Slack Technologies, LLC
G06Q10/06393G06F16/288G06F16/951H04L41/14H04L51/046H04L67/306G06Q50/01H04L51/32H04L67/22
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,392,878
App. No.
15/879,274
Granted
Jul 19, 2022
Kind
B2
Abstract

Embodiments of the present disclosure provide methods, systems, apparatuses, and computer program products for generating and serving low latency enterprise interaction analytics within an enterprise group-based communication system.

Claims (58)

1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method for programmatically generating analytics for a group-based communication system comprising a plurality of group-based communication channels, the method comprising:

receiving a request from a user for a programmatically generated analytic based on interaction data associated with a plurality of channel messages of the group-based communication system;

in response to receiving the request, obtaining a first set of interaction metadata comprising association data of interactions in the plurality of group-based communication channels of the group-based communication system;

in response to receiving the request, obtaining a second set of interaction metadata comprising user identifiers associated with the plurality of channel messages;

generating a first joined set of interaction metadata comprising the first set of interaction metadata and the second set of interaction metadata;

generating a second joined set of interaction metadata comprising the first joined set of interaction metadata and a third set of interaction metadata associated with direct messages transmitted within the group-based communication system and distinct from the plurality of channel messages;

generating a filtered set of interaction metadata by filtering out unwanted data associated with the user identifiers from the second joined set of interaction metadata;

generating a plurality of analytics processing jobs based on the request;

arranging the plurality of analytics processing jobs in an order based on dependencies;

persisting filtered interaction data associated with the filtered set of interaction metadata in ephemeral clusters to decouple data storage and data processing to provide low-latency analytics;

processing the filtered interaction data from the plurality of analytics processing jobs in the order;

generating a fourth set of interaction metadata from the filtered interaction data; and

causing display of a visualization of the analytics based on the fourth set of interaction metadata, the analytics corresponding to the programmatically generated analytic.

2. The media of claim 1 , wherein the analytics are based at least in part on interaction data describing interactions comprising content not accessible to the user.

3. The media of claim 1 , wherein the first set of interaction metadata comprises at least one of: information identifying users, messages posted by the users in the plurality of group-based communication channels of the group-based communication system, messages reacted to by the users in the plurality of group-based communication channels, or messages read by the users in the plurality of group-based communication channels of the group-based communication system.

4. The media of claim 1 , wherein interaction metadata for an individual interaction of the plurality of interactions comprises at least one of: a sending user identifier, a message identifier, or a group-based communication channel identifier for the individual interaction.

5. The media of claim 1 , wherein one of the first set of interaction metadata or the second set of interaction metadata represents analyses of interaction data at a level selected from the set consisting of enterprise-level, user-level, channel-level, workspace-level, and team-level.

6. The media of claim 1 , wherein one of the first set of interaction metadata or the second set of interaction metadata represents analyses of interaction data messages posted by a specified group of users.

7. The media of claim 1 , wherein one of the first set of interaction metadata or the second set of interaction metadata represents analyses of interaction data messages associated with a criterion selected from the set consisting of location and time.

8. A method for programmatically generating analytics for a group-based communication system comprising a plurality of group-based communication channels, comprising:

receiving a request from a user for a programmatically generated analytic based on interaction data associated with a plurality of channel messages of the group-based communication system;

in response to receiving the request, obtaining a first set of interaction metadata comprising association data of interactions in the plurality of group-based communication channels of the group-based communication system;

in response to receiving the request, obtaining a second set of interaction metadata comprising user identifiers associated with the plurality of channel messages;

generating a first joined set of interaction metadata comprising the first set of interaction metadata and the second set of interaction metadata;

generating a second joined set of interaction metadata comprising the first joined set of interaction metadata and a third set of interaction metadata associated with direct messages transmitted within the group-based communication system and distinct from the plurality of channel messages;

generating a filtered set of interaction metadata by filtering out unwanted data associated with the user identifiers from the second joined set of interaction metadata;

generating a plurality of analytics processing jobs based on the request;

arranging the plurality of analytics processing jobs in an order based on dependencies;

persisting filtered interaction data associated with the filtered set of interaction metadata in ephemeral clusters to decouple data storage and data processing to provide low-latency analytics;

processing the filtered interaction data from the plurality of analytics processing jobs in the order;

generating a fourth set of interaction metadata from the filtered interaction data; and

causing display of a visualization of the analytics based on the fourth set of interaction metadata, the analytics corresponding to the programmatically generated analytic.

9. The method of claim 8 , wherein the analytics are based at least in part on interaction data describing interactions comprising content not accessible to the user.

10. The method of claim 8 , wherein each item of a first plurality of items of interaction metadata comprises at least one of: information identifying users, messages posted by the users in the plurality of group-based communication channels of the group-based communication system, messages reacted to by the users in the plurality of group-based communication channels, or messages read by the users in the plurality of group-based communication channels of the group-based communication system.

11. The method of claim 8 , wherein interaction metadata for an individual interaction of the plurality of interactions comprises at least one of: a sending user identifier, a message identifier, or a group-based communication channel identifier for the individual interaction.

12. The method of claim 8 , wherein one of the first set of interaction metadata or the second set of interaction metadata represents analyses of interaction data at a level selected from the set consisting of enterprise-level, user-level, channel-level, workspace-level, and team-level.

13. The method of claim 8 , wherein one of the first set of interaction metadata or the second set of interaction metadata represents analyses of interaction data messages posted by a specified group of users.

14. The method of claim 8 , wherein one of the first set of interaction metadata or the second set of interaction metadata represents analyses of interaction data messages associated with a criterion selected from the set consisting of location and time.

15. A system for programmatically generating analytics for a group-based communication system comprising a plurality of group-based communication channels, the system comprising:

at least one processor; and

one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the at least one processor, perform a method comprising:

receiving a request from a user for a programmatically generated analytic based on interaction data associated with a plurality of channel messages of the group-based communication system;

in response to receiving the request, obtaining a first set of interaction metadata comprising association data of interactions in the plurality of group-based communication channels of the group-based communication system;

in response to receiving the request, obtaining a second set of interaction metadata comprising user identifiers associated with the plurality of channel messages;

generating a first joined set of interaction metadata comprising the first set of interaction metadata and the second set of interaction metadata;

generating a second joined set of interaction metadata comprising the first joined set of interaction metadata and a third set of interaction metadata associated with direct messages transmitted within the group-based communication system and distinct from the plurality of channel messages;

generating a filtered set of interaction metadata by filtering out unwanted data associated with the user identifiers from the second joined set of interaction metadata;

generating a plurality of analytics processing jobs based on the request;

arranging the plurality of analytics processing jobs in an order based on dependencies;

persisting filtered interaction data associated with the filtered set of interaction metadata in ephemeral clusters to decouple data storage and data processing to provide low-latency analytics;

processing the filtered interaction data from the plurality of analytics processing jobs in the order;

generating a fourth set of interaction metadata from the filtered interaction data; and

causing display of a visualization of the analytics based on the fourth set of interaction metadata, the analytics corresponding to the programmatically generated analytic.

16. The system of claim 15 , wherein the analytics are based at least in part on interaction data describing interactions comprising content not accessible to the user.

17. The system of claim 15 , wherein each item of a first plurality of items of interaction metadata comprises at least one of: information identifying users, messages posted by the users in the plurality of group-based communication channels of the group-based communication system, messages reacted to by the users in the plurality of group-based communication channels, or messages read by the users in the plurality of group-based communication channels of the group-based communication system.

18. The system of claim 15 , wherein interaction metadata for an individual interaction of the plurality of interactions comprises at least one of: a sending user identifier, a message identifier, or a group-based communication channel identifier for the individual interaction.

19. The system of claim 15 , wherein one of the first set of interaction metadata or the second set of interaction metadata represents analyses of interaction data at a level selected from the set consisting of enterprise-level, user-level, channel-level, workspace-level, and team-level.

20. The system of claim 15 , wherein the of the first set of interaction metadata or the second set of interaction metadata represents analyses of interaction data messages posted by a specified group of users.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
MERGER Recorded Jul 29, 2021
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057475/0404 →
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 →
PATENT SECURITY AGREEMENT Recorded May 30, 2019
From: SLACK TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049332/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2018
From: POJAR, DIANA MARIA; GIBBS, COLIN; BABOURINE, STANISLAV VYACHESLAVOVICH; HUANG, FANGZI
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 046770/0572 →