Systems and methods for measuring and reporting collaboration parameters
Methods, systems and computer program products for recommending remediation actions to selected users of collaboration systems. Certain disclosed techniques commence upon observing user-to-object interactions and user-to-user interactions raised by users of a collaboration system. A first specialized data structure is populated with activity values that characterize user-to-object interactions raised by individual users. A second specialized data structure is populated with sharing values that characterize observed sharing events over shared content objects. The values of the first data structure are correlated to the values of the second data structure to calculate a total contribution amount for each of the users of the collaboration system. A small set of communication recipients is identified by ranking the individual users based on a calculated total contribution amount. To avoid wasteful messaging to all users of the collaboration system, messages are sent only to the small set of recipients. The messages contain recommended remediation actions.
1 . A method for reducing computer resource demands in a collaboration system having shared content objects, the method comprising:
maintaining and providing access to one or more shared content objects hosted by a collaboration system for individual users to perform user-to-object interactions within the collaboration system on the one or more shared content objects, wherein the individual users comprise a first set of users and a remaining set of users, and maintaining and providing the access to the one or more shared content objects comprises:
receiving, at a network interface of the collaboration system, a data stream representing at least the user-to-object interactions in which the individual users that collaborate on the one or more shared content objects over a time period;
tracking and writing, from within the data stream, a first set of values that characterizes user-to-object interactions of the individual users of the collaboration system into first respective memory locations for a first data structure;
reducing, by the collaboration system remote from access devices of the individual users, a list of recipient address data entries respectively corresponding to the individual users into a list of reduced recipient address data entries respectively corresponding to the first set of users based at least in part upon the first set of values stored at the first respective memory locations for the first data structure, wherein
the list of reduced recipient address data entries has a first smaller size than the list of recipient address data entries; and
tracking and writing, from within the data stream, a second set of values that characterizes a set of sharing events over the one or more shared content objects into second respective memory locations for a second data structure, wherein
the one or more shared content objects are shared between a given user and one or more other users of the individual users; and
sending, by executing a sequence of instructions at the collaboration system, a plurality of packets for an electronic communication to a targeted subset of users determined from the first set of users while avoiding broadcast of the electronic communication from the collaboration system to all of the first set of users at least by:
accessing the second respective memory locations in the memory to respectively obtain and rank the second set of values stored at the second respective memory locations in the memory based at least in part upon a first criterion, wherein the second set of values is used to determine the first set of users from the individual users;
writing a correlation relation into the memory, the correlation relation correlating the first set of values of the first data structure at the first respective memory locations with the second set of values at the second respective memory locations for the second data structure;
ranking the first set of users based at least in part upon the correlation relation;
reducing, by the collaboration system remote from the access devices of the first set of users based at least upon ranked information pertaining to the first set of users in the memory, the list of reduced recipient address data entries into a list of targeted recipient address data entries for the target subset of users at least by selecting one or more users from the first set as the targeted subset of users based at least in part upon a result of ranking the first set of users and a threshold, wherein
the list of targeted recipient address data entries has a second smaller size than the first smaller size of the list of first reduced recipient address data entries; and
respectively sending, from the network interface, the electronic communication to the list of targeted recipient address data entries for the targeted subset at least by:
composing one or more software features provided by the collaboration system into the electronic communication; and
transmitting the plurality of packets for the electronic communication via the network interface to the list of targeted recipient address data entries for corresponding access devices of the targeted subset of users within the first set of the individual users while avoiding the broadcast of the electronic communication to the list of recipient address data entries for the individual users or the reduced list of recipient address data entries for the first set of users.
2 . The method of claim 1 , further comprising:
codifying specific content and a characteristic pertaining to the user-to-object interactions and the set of sharing events into the electronic communication prior to sending the electronic communication to the targeted subset of users, wherein the electronic communication comprises a recommendation of an action that pertains to at least one of the one or more software features and is directed to at least one of the targeted subset of users.
3 . The method of claim 1 , further comprising predicting a usage pattern of the one or more software features, wherein sending the electronic communication to the targeted subset of users comprises narrowcasting the electronic communication only to the targeted subset of users that is determined from the first set of users of the individual users, and a total number of users of the individual users is greater than a total number of users of the targeted subset of users.
4 . The method of claim 3 , wherein the usage pattern corresponds to at least one of a predicted increase in collaboration system usage, or a predicted decrease in collaboration system usage, and the targeted subset of users pertains to at least one of the one or more software features that comprise a disused feature provided by the collaboration system and is not used by at least one of the first set or the targeted subset of users of the individual users.
5 . The method of claim 1 , maintaining and providing the access to the one or more shared content objects further comprising:
extracting first data for the at least one first interaction of a first interaction type or second data for the at least one second interaction of a second interaction type from the data stream, wherein
the first interaction type corresponds to the user-to-object interactions, and
the second interaction type corresponds to user-to-user interactions;
transforming the first data in the data stream into a first element in a first table or list structure in the memory or second data in the data stream into a second element in a second table or list structure in the memory;
transforming the first element or the second element into a vector for storage in the first data structure in the memory, using one or more interaction parameters that are determined at least by traversing a network model that is constructed from the data stream; and
tracking collaboration contributions based at least in part upon data in the second data structure, wherein the second data structure is constructed from a plurality of collaboration parameters comprising at least one of a company index, or a time, or a first time period and a second time period, and the data in the second data structure pertains to one or more interactions raised by at least one of the individual users upon the one or more shared content objects.
6 . The method of claim 5 , wherein a derivative of the second data structure corresponding to a first time period is persisted before creating another second data structure corresponding to a second time period.
7 . The method of claim 5 , wherein the plurality of collaboration parameters comprises at least one of an individual productivity, a file sharing quantity, a productivity measure for a user of the individual users, or a productivity measure for a collaborator group.
8 . The method of claim 1 , further comprising tracking individual contributions of the individual users based at least in part upon a total number of interactions and a total number of types of the interactions raised by the individual users; and storing a result of tracking the individual contributions in the first data structure, wherein at least one of user-to-user interactions or user-to-object interactions comprises at least one of a file open transaction, or a file preview transaction, or a download transaction.
9 . A non-transitory computer readable medium having stored thereon a sequence of instructions which, when stored in memory and executed by one or more processors causes the one or more processors to perform a set of acts for reducing computer resource demands in a collaboration system having shared content objects, the set of acts comprising:
maintaining and providing access to one or more shared content objects hosted by a collaboration system for individual users to perform user-to-object interactions within the collaboration system on the one or more shared content objects, wherein the individual users comprise a first set of users and a remaining set of users, and maintaining and providing the access to the one or more shared content objects comprises:
receiving, at a network interface of the collaboration system, a data stream representing at least the user-to-object interactions in which the individual users that collaborate on the one or more shared content objects over a time period;
tracking and writing, from within the data stream, a first set of values that characterizes user-to-object interactions of the individual users of the collaboration system into first respective memory locations for a first data structure;
reducing, by the collaboration system remote from access devices of the individual users, a list of recipient address data entries respectively corresponding to the individual users into a list of reduced recipient address data entries respectively corresponding to the first set of users based at least in part upon the first set of values stored at the first respective memory locations for the first data structure, wherein
the list of reduced recipient address data entries has a first smaller size than the list of recipient address data entries; and
tracking and writing, from within the data stream, a second set of values that characterizes a set of sharing events over content objects into second respective memory locations for a second data structure, wherein
the one or more shared content objects are shared between a given user and other users of the individual users of the collaboration system; and
sending, by executing a sequence of instructions at the collaboration system, a plurality of packets for an electronic communication to a targeted subset of users determined from the first set of users while avoiding broadcast of the electronic communication from the collaboration system to all of the first set of users at least by:
accessing the second respective memory locations in the memory to respective obtain and rank the second set of values stored at the second respective memory locations in the memory based at least in part upon a first criterion, wherein the second set of values is used to determine the first set of users from the individual users;
writing a correlation relation in the memory, the correlation relation correlating the first set of values of the first data structure at the first respective memory locations with the second set of values at the second respective memory locations for the second data structure;
ranking the first set of users based at least in part upon the correlation relation;
reducing, by the collaboration system remote from the access devices of the first set of users based at least upon ranked information pertaining to the first set of users in the memory, the list of reduced recipient address data entries into a list of targeted recipient address data entries for the target subset of users at least by selecting one or more users from the first set as the targeted subset of users based at least in part upon a result of ranking the first set of users and a threshold, wherein
the list of targeted recipient address data entries has a second smaller size than the first smaller size of the list of first reduced recipient address data entries; and
respectively sending, from the network interface, the plurality of packets for the electronic communication to the list of targeted recipient address data entries for the targeted subset at least by:
composing one or more software features provided by the collaboration system into the electronic communication; and
transmitting the electronic communication via the network interface to the list of targeted recipient address data entries for corresponding access devices of the targeted subset of users within the first subset of the individual users while avoiding the broadcast of the electronic communication to the list of recipient address data entries for the individual users or the reduced list of recipient address data entries for the first set of users.
10 . The non-transitory computer readable medium of claim 9 , the set of acts further comprising:
codifying specific content and a characteristic pertaining to the user-to-object interactions and the set of sharing events into the electronic communication prior to sending the electronic communication to the targeted subset of users, wherein the electronic communication comprises a recommendation of an action that pertains to at least one of the one or more software features and is directed to at least one of the targeted subset of users.
11 . The non-transitory computer readable medium of claim 9 , further comprising instructions which, when stored in memory and executed by the one or more processors causes the one or more processors to perform acts of predicting a usage pattern of the one or more software features, wherein sending the electronic communication to the targeted subset of users comprises narrowcasting the electronic communication only to the targeted subset of users that is determined from the first set of users of the individual users, and a total number of users of the individual users is greater than a total number of users of the targeted subset of users.
12 . The non-transitory computer readable medium of claim 11 , wherein the usage pattern corresponds to at least one of a predicted increase in collaboration system usage, or a predicted decrease in collaboration system usage, and the targeted subset of users pertains to at least one of the one or more software features that comprise a disused feature provided by the collaboration system and is not used by at least one of the first or the targeted subset of users of the individual users.
13 . The non-transitory computer readable medium of claim 9 , the set of acts further comprising:
extracting first data for the at least one first interaction of a first interaction type or second data for the at least one second interaction of a second interaction type from the data stream, wherein
the first interaction type corresponds to the user-to-object interactions, and
the second interaction type corresponds to user-to-user interactions;
transforming the first data in the data stream into a first element in a first table or list structure in the memory or second data in the data stream into a second element in a second table or list structure in the memory;
transforming the first element or the second element into a vector for storage in the first data structure in the memory, using one or more interaction parameters that are determined at least by traversing a network model that is constructed from the data stream; and
tracking collaboration contributions based at least in part upon data in the second data structure, wherein the second data structure is constructed from a plurality of collaboration parameters comprising at least one of a company index, or a time, or a first time period and a second time period, and the data in the second data structure pertains to one or more interactions raised by at least one of the individual users upon the one or more shared content objects.
14 . The non-transitory computer readable medium of claim 13 , wherein a derivative of the second data structure corresponding to a first time period is persisted before creating another second data structure corresponding to a second time period.
15 . The non-transitory computer readable medium of claim 13 , wherein the plurality of collaboration parameters comprises at least some of an individual productivity, a file sharing quantity, a productivity measure for an employee, or a productivity measure for a collaborator group.
16 . The non-transitory computer readable medium of claim 9 , the set of acts further comprising tracking individual contributions of the individual users based at least in part upon a total number of interactions and a total number of types of the interactions raised by the individual users; and storing a result of tracking the individual contributions in the first data structure, wherein at least one of user-to-user interactions or user-to-object interactions comprises at least one of a file open transaction, or a file preview transaction, or a download transaction.
17 . A system for reducing computer resource demands in a collaboration system having shared content objects, the system comprising:
a non-transitory storage medium having stored thereon a sequence of instructions; and
one or more processors that execute the sequence of instructions, execution of the sequence of instructions causes the one or more processors to perform a set of acts, the set of acts comprising:
maintaining and providing access to one or more shared content objects hosted by a collaboration system for individual users to perform user-to-object interactions within the collaboration system on the one or more shared content objects, wherein the individual users comprise a first set of users and a remaining set of users, and maintaining and providing the access to the one or more shared content objects comprises:
receiving, at network interface of the collaboration system, a data stream representing at least the user-to-object interactions in which the individual users that collaborate on the one or more shared content objects over a time period;
tracking and writing, from within the data stream, a first set of values that characterizes user-to-object interactions of individual users of the collaboration system into first respective memory locations for a first data structure;
reducing, by the collaboration system remote from access devices of the individual users, a list of recipient address data entries respectively corresponding to the individual users into a list of reduced recipient address data entries respectively corresponding to the first set of users based at least in part upon the first set of values stored at the first respective memory locations for the first data structure, wherein
the list of reduced recipient address data entries has a first smaller size than the list of recipient address data entries; and
tracking and writing, from within the data stream, a second set of values that characterizes a set of sharing events over the shared content objects into second respective memory locations for a second data structure, wherein
the one or more shared content objects are shared between a given user and other users of the individual users of the collaboration system; and
sending, by executing a sequence of instructions at the collaboration system, a plurality of packets for an electronic communication to a targeted subset of users determined from the first set of users while avoiding broadcast of the electronic communication from the collaboration system to all of the first set of users at least by:
accessing the second respective memory locations in the memory to respectively obtain and rank the second set of values stored at the second respective memory locations in the memory based at least in part upon a first criterion, wherein the second set of values is used to determine the first set of users from the individual users;
writing a correlation relation into the memory, the correlation relation correlating the first set of values of the first data structure at the first respective memory locations with the second set of values at the second respective memory locations for the second data structure;
ranking the first set of users based at least in part upon the correlation relation;
reducing, by the collaboration system remote from the access devices of the first set of users based at least upon ranked information pertaining to the first set of users in the memory, the list of reduced recipient address data entries into a list of targeted recipient address data entries for the target subset of users at least by selecting one or more users from the first set as the targeted subset of users based at least in part upon a result of ranking the first set of users and a threshold, wherein
the list of targeted recipient address data entries has a second smaller size than the first smaller size of the list of first reduced recipient address data entries; and
respectively sending, from the network interface, the plurality of packets for the electronic communication to the list of targeted recipient address data entries for the targeted subset at least by:
composing one or more software features provided by the collaboration system into the electronic communication; and
transmitting the electronic communication via the network interface to the list of targeted recipient address data entries for corresponding access devices of the targeted subset of users within the first subset of the individual users while avoiding the broadcast of the electronic communication to the list of recipient address data entries for the individual users or the reduced list of recipient address data entries for the first set of users.
18 . The system of claim 17 , the set of acts further comprising: codifying specific content and a characteristic pertaining to the user-to-object interactions and the set of sharing events into the electronic communication prior to sending the electronic communication to the targeted subset of users, wherein the electronic communication comprises a recommendation of an action that pertains to at least one of the one or more software features and is directed to at least one of the targeted subset of users.
19 . The system of claim 17 , further comprising instructions which, when stored in memory and executed by the one or more processors causes the one or more processors to perform acts of predicting a usage pattern of the one or more software features, wherein sending the electronic communication to the targeted subset of users comprises narrowcasting the electronic communication only to the targeted subset of users that is determined from the first set of users of the individual users, and a total number of users of the individual users is greater than a total number of users of the targeted subset of users.
20 . The system of claim 19 , wherein the usage pattern corresponds to at least one of a predicted increase in collaboration system usage, or a predicted decrease in collaboration system usage, and the targeted subset of users pertains to at least one of the one or more software features that comprise a disused feature provided by the collaboration system and is not used by at least one of the first or the targeted subset of users of the individual users.