Computation of after-hours activities metrics

A system and method for computing a metric indicating a user operation of an application is described. The system accesses online activity data of a user operation of the application. The system filters the online activity data based on a preset time range. An after-hours activity score is calculated based on a type of activity or a duration of an activity from the filtered online activity data, and a weight assigned to the type of activity or the duration of the activity. The system computes an after-hours metric based on the after-hours activity score. A configuration setting for the application based on the after-hours metric is applied to the application.

TECHNICAL FIELD

The subject matter disclosed herein generally relates to a special-purpose machine that computes online activities metrics, including computerized variants of such special-purpose machines and improvements to such variants.

BACKGROUND

Measuring online activities of a user of an application can be difficult to determine given the millions of data point entries and the lack of context of computed metrics. Furthermore, the effectiveness and accuracy of human-driven analysis of large sets of data is increasingly low compared to machine-driven analysis. For example, if an organization needs a time sensitive analysis of a data set that has millions of entries across hundreds of variables, no human could perform such an analysis by hand or mentally. Furthermore, any such analysis may be out-of-date almost immediately, should an update be required.

DETAILED DESCRIPTION

The description that follows describes systems, methods, techniques, instruction sequences, and computing machine program products that illustrate example embodiments of the present subject matter. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the present subject matter. It will be evident, however, to those skilled in the art, that embodiments of the present subject matter may be practiced without some or other of these specific details. Examples merely typify possible variations. Unless explicitly stated otherwise, structures (e.g., structural components, such as modules) are optional and may be combined or subdivided, and operations (e.g., in a procedure, algorithm, or other function) may vary in sequence or be combined or subdivided.

The present application describes a system and a method for calculating a metric indicative of an operation of an application by a user of an enterprise and configuring the application based on the metric. An enterprise represents organizations or groups of users associated with an organization. In particular, the system provides algorithms to calculate a score representative of online after-hours activities of the user operating the application. In one example, the application is registered with the enterprise. The application can log application activities by the user in online activity data.

The system filters the online activity data based on dates and times. For example, the system filters the online activity data to include only activities that have occurred outside of typical working hours (e.g., before 9 am and after 5 pm on weekdays and all day on weekends). In another example, the system may filter based on other preset time ranges (e.g., holidays only, Sundays). The filtered online activity data may also be referred to as after-hours online activity data. In one example, the after-hours online activity data identifies the application used by the user after-hours, a type of activity of one or more applications registered with the enterprise (e.g., call, chat, meeting, reading an email, sending an email), and a duration of an activity (e.g., 5 minute chat, 10 minute meeting) that has occurred after-hours (e.g., outside the typical 9 am to 5 pm workweek hours). In another example, the system enables each user to personalize or specify their working hours in addition to the default typical working hours (e.g., 9 am to 5 pm).

The system retrieves weights/points corresponding to each type of application, type of activity, and/or a duration of the activity. For example, an after-hours voice call of more than 10 minutes via a voice network communication application may count as 4 points. Reading an email using an email application after-hours may count as 1 point. The system computes the score of a user based on the weighted activities. The system then calculates a metric (e.g., quiet hour metric) based on the score of the user. For example, the metric includes a trend of the score over the last four weeks. In another example, the metric includes a breakdown of types of activities by time over the last four weeks. In another example, the metric can include a combination of the weighted activities (e.g., after-hours load metric is based on the after-hours email time, after-hours meeting, and after-hours voice call).

The system generates a graphical user interface that includes graphical elements illustrating an after-hours score, metrics, types of activities, and duration of each type of activities of the user. The graphical user interface includes a graph illustrating a trend of the metrics for the user. In another example, the graphical user interface includes graphical elements illustrating an after-hours score, metrics, types of activities, and duration of each type of activities of other users of the same enterprise. The graphical user interface includes a graph illustrating a comparison of the metrics of the user with the other users of the enterprise. In another example, the graphical user interface includes graphical elements illustrating an after-hours score, metrics, types of activities, and duration of each type of activities of other users of the other enterprises using the same application(s). The graphical user interface includes a graph illustrating a comparison of the metrics of the users of the enterprise with the metrics of users of the other enterprises.

The system determines a configuration setting for the application of the user based on the after-hours metric of the user. For example, the system determines that an after-hours metric exceeds a threshold for a user. The system retrieves an application configuration corresponding to the threshold. The system then applies the application configuration to the settings of the application of the user. For example, the system may prevent the user from accessing a particular feature of the application on weeknights and weekend. In another example, the system identifies documents that are frequently accessed after-hours and presents those identified documents to the user the next day when the user logs into the application.

The system accesses data points from the application registered with users of the enterprise. For example, devices associated with the enterprise communicate with a remote server hosting the enterprise application. In other examples, the devices associated with the enterprise include a local copy of the enterprise application and communicate user activities of local copy to the remote server. The data points include user activities associated with the enterprise application of the enterprise. Examples of data points include dates and times of users operating the enterprise application, types of documents being accessed or shared by users of the enterprise application, users calendar data from the enterprise application, communication data between users of the enterprise application, and enterprise organization data. Examples of enterprise applications include email applications, document editing applications, document sharing applications, and other types of applications used by enterprises.

In one example embodiment, a system and method for computing a metric indicating a user operation of an application is described. The system accesses online activity data of the application operated by a user. The system filters the online activity data based on a preset time range. An after-hours activity score is calculated based on a type of activity or a duration of an activity from the filtered online activity data, and a weight assigned to the type of activity or the duration of the activity. The system computes an after-hours metric based on the after-hours activity score. A configuration setting for the application based on the after-hours metric is applied to the application. In one example, the configuration setting is specific to the user of the application (e.g., the user associated with the online activity data of the application).

As a result, one or more of the methodologies described herein facilitate solving the technical problem of determining enterprise metrics of an enterprise application. As such, one or more of the methodologies described herein may obviate a need for certain efforts or computing resources. Examples of such computing resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, network bandwidth, and cooling capacity.

FIG.1is a diagrammatic representation of a network environment in which some example embodiments of the present disclosure may be implemented or deployed. One or more application servers104provide server-side functionality via a network102to a networked user device, in the form of a client device106. A user130operates the client device106. The client device106includes a web client110(e.g., a browser), a programmatic client108(e.g., an email/calendar application such as Microsoft Outlook (™), an instant message application, a document writing application, a shared document storage application) that is hosted and executed on the client device106. In one example embodiment, the programmatic client108logs interaction data from the web client110and the programmatic client108with the service application122. In another example embodiment, the service application122logs interaction data between the web client110, the programmatic client108, and the service application122. The interaction data may include for example, communication logs of communications (e.g., emails) between users of an enterprise or communications between users of the enterprise and outside users of the enterprise. Other examples of interaction data include and are not limited to email communications, meeting communications, instant messages, shared document comments, and any communication with a recipient (e.g., a user from or outside the enterprise).

An Application Program Interface (API) server118and a web server120provide respective programmatic and web interfaces to application servers104. A specific application server116hosts the service application122and an online activities computation engine124. Both service application122and online activities computation engine124include components, modules and/or applications.

The service application122may include collaborative applications (e.g., a server side email/calendar application, a server-side instant message application, a document authoring application, a shared document storage application) that enable users of an enterprise to collaborate and share document, messages, and other data (e.g., meeting information, common projects) with each other. For example, the user130at the client device106may access the service application122to edit documents that are shared with other users of the same enterprise. In another example, the client device106accesses the service application122to retrieve or send messages or emails to and from other peer users of the enterprise. Other examples of service application122includes enterprise systems, content management systems, and knowledge management systems.

In one example embodiment, the online activities computation engine124communicates with the service application122and accesses activity data from users of the service application122. In another example embodiment, the online activities computation engine124communicates with the programmatic client108and accesses interaction data (of after-hours activities) from the user130with other users of the enterprise. In one example, the web client110communicates with the online activities computation engine124and service application122via the programmatic interface provided by the Application Program Interface (API) server118.

The online activities computation engine124computes metrics based on after-hours interaction data collected by the service application122, the web client110, or the programmatic client108. In one example, the online activities computation engine124computes after-hours user metrics based on after-hours online activities data of the user130of the service application122. In another example, the online activities computation engine124computes after-hours user metrics based on after-hours online activities data of the other users of the same enterprise. In yet another example, the online activities computation engine124computes after-hours enterprise metrics based on after-hours online activities data of the other users of other enterprise(s).

In one example embodiment, the online activities computation engine124generates a dialog box pre-populated with information based on the recommended action (e.g., pre-filled with parameters of a feature of the service application122). The user130only has to click on one button to configure the programmatic client108with the new parameters. For example, the pre-filled parameters configure the programmatic client108to prevent from retrieving or sending emails after-hours (e.g., between 10 pm and 6 am on weekdays and all day on weekends). Such configuration results in a change of in the after-hours metric of the user130. An example embodiment of the online activities computation engine124is described further below with respect toFIG.2.

The application server116is shown to be communicatively coupled to database servers126that facilitates access to an information storage repository or databases128. In an example embodiment, the databases128includes storage devices that store information to be processed by the service application122and the online activities computation engine124.

Additionally, a third-party application114may, for example, store another part of the service application122, or include a cloud storage system. For example, the third-party application114stores other metrics related to the other applications and other enterprises. The metrics may include size of the enterprises, industry classification, and updated revenue. The third-party application114executing on a third-party server112, is shown as having programmatic access to the application server116via the programmatic interface provided by the Application Program Interface (API) server118. For example, the third-party application114, using information retrieved from the application server116, may supports one or more features or functions on a website hosted by the third party.

FIG.2is a block diagram illustrating an online activities computation engine in accordance with one example embodiment. The online activities computation engine124comprises an enterprise application interface202, a third-party metrics database interface204, an after-hours computation module206, a configuration setting recommendation engine218, and an application configurator220.

The enterprise application interface202communicates with the service application122. For example, the enterprise application interface202accesses application usage data of the service application122from client devices associated with an enterprise. The service application122includes a server-side application that monitors and validates operations of a client-side application (e.g., programmatic client108). The application usage data includes data related to communication log of operations of the service application122from client devices of the enterprise. In another example, the service application122includes one or more enterprise applications (e.g., communication application, document sharing application, document editing and authoring application). The application usage data can also indicate frequency and types of interactions between a user account of the enterprise with the service application122.

The third-party metrics database interface204communicates with the service application122. For example, the third-party metrics database interface204accesses application usage data of the service application122from client devices associated with other enterprises. The service application122includes a server-side application that monitors and validates operations of a client-side application (e.g., programmatic client108) installed on client devices associated with other enterprises. The application usage data includes data related to communication log of operations of the service application122from client devices of the other enterprises. In another example embodiment, the third-party metrics database interface204communicates with the third-party server112to access application usage data or metrics related to user operations of the service application122by users of other enterprises.

The after-hours computation module206comprises a user after-hours metrics computation module208, an enterprise after-hours metrics computation module210, a benchmark after-hours indices computation module212, an enterprise-benchmark relative metrics computation module214, and a user-enterprise relative metrics computation module216. The user after-hours metrics computation module208and the enterprise after-hours metrics computation module210are coupled to the user-enterprise relative metrics computation module216. The enterprise after-hours metrics computation module210and the benchmark after-hours indices computation module212are coupled to the enterprise-benchmark relative metrics computation module214.

The user after-hours metrics computation module208computes after-hours metrics related to the user130based on online user activities (e.g., application usage data) of the user130(of an enterprise) operating on the service application122(via web client110or programmatic client108) associated with the enterprise during after-hours (e.g., 9 am and after 5 pm on weekdays and all day on weekends).

Examples of metrics include:quiet day metric/score (e.g., a metric that counts a day as quiet when a score based on after-hours activities does not exceed a threshold),after-hours load metric (e.g., a metric that measures after-hours email time, after-hours meetings, after-hours chats, and after-hours calls),after-hours mobile interruptions (e.g., a metric that measures after-hours email activity on a mobile device),after-hours root cause (e.g., a metric that identifies a significant cause of after-hours time),after-hours top collaborator (e.g., a metric that identifies user(s) most often interacted with after-hours),after-hours impact email (e.g., a metric that measures a user's impact of email during after-hours on a recipient),after-hours impact meeting (e.g., a metric that measures a user's impact of email during after-hours on a recipient),after-hours timeframe (e.g., a metric that measures actual or true working hours of a user),after-hours control (e.g., a metric that measures the percentage of after-hours activities that are within control of a user).

It is noted that the metrics are not limited to the above examples and that other metrics can be measured based on the after-hours user activities. An example embodiment of the user after-hours metrics computation module208is described in more detail below with response toFIG.3.

The enterprise after-hours metrics computation module210computes metrics based on online user activities (e.g., application usage data) of other users of the same enterprise (as user130) operating on the service application122associated with the enterprise during after-hours (e.g., before 9 am and after 5 pm on weekdays and all day on weekends). The enterprise after-hours metrics computation module210may calculate the same metrics as the user after-hours metrics computation module208but for other users of the same enterprise.

The benchmark after-hours indices computation module212communicates with the third-party metrics database interface204and calculates metrics based on the after-hours user activity data from the data retrieved from third-party metrics database interface204. In one example embodiment, the benchmark after-hours indices computation module212computes metrics based on online user activities (e.g., application usage data) of other users of the other enterprises operating on the service application122associated with the other enterprises during after-hours (e.g., 9 am and after 5 pm on weekdays and all day on weekends). The benchmark after-hours indices computation module212may calculate the same metrics as the user after-hours metrics computation module208but for other users of the other enterprises. In another example embodiment, the benchmark after-hours indices computation module212communicates with a third party database (e.g., third-party server112) that stores periodically updated profiles of the other enterprises (e.g., enterprise size, revenue, industry, etc.). In one example embodiment, the third-party metrics database interface204retrieves the periodically updated profiles data from the third-party server112.

Examples of metrics obtained by the third-party metrics database interface204include revenue, industry classification, and size classification. By using the revenue data, industry classification, and size classification, the benchmark after-hours indices computation module212can generate benchmarks or indices for the metrics based on other enterprises. In another example, the benchmarks may be based by grouping the companies with similar industry classification and size classification.

The user-enterprise relative metrics computation module216compares a metric from the user after-hours metrics computation module208for the user130with a same metric from the enterprise after-hours metrics computation module210for other users of the same enterprise. The user-enterprise relative metrics computation module216generates a ranking of the user130based on the metric comparison from the user-enterprise relative metrics computation module216. For example, the user130may be in the top 10% of users (of the enterprise) with a quiet day metric exceeding a threshold score.

The enterprise-benchmark relative metrics computation module214compares a metric from the enterprise after-hours metrics computation module210for users of the enterprise with a same metric from the benchmark after-hours indices computation module212for users of the other enterprises. The enterprise-benchmark relative metrics computation module214generates a ranking of the enterprise (of the user130) based on the metric comparison from the enterprise-benchmark relative metrics computation module214. For example, the enterprise (of the user130) may be in the top 20% of other enterprises with a quiet day metric exceeding a threshold score.

The configuration setting recommendation engine218generates a recommended configuration setting of the service application122for the user130based on one or more metrics of the user130relative to a threshold metric set for the user130, a threshold metric based on a same metric from other users of the same enterprise, a threshold metric based on a same metric from other users of the other enterprises, a ranking of the user130relative to other users of the same enterprise, or a ranking of the user130relative to other users of other enterprises. For example, if the quiet day metric for the user130exceeds a preset threshold (e.g., the user130's online activities are relatively still high even after-hours), the configuration setting recommendation engine218retrieves one or more configuration setting for the service application122of the user130on how to decrease the quiet day metric.

In one example embodiment, the configuration setting recommendation engine218accesses a lookup table based on the quiet day metric/score, a quiet day metric ranking of the user130(within the enterprise), with other users from other enterprises, or users from a team/group associated with the user130of the service application122. The lookup table may specify different types of configuration settings based on the value of a margin threshold (e.g., difference between a quiet day metric for the user130and a quiet day metric for all users of the enterprise).

In another example embodiment, the configuration setting recommendation engine218applies a first configuration setting (corresponding to a first quiet day metric threshold) to the service application122to prevent the user130from operating an email application of the service application122between midnight and 6 am on weekdays. In another example, the configuration setting recommendation engine218applies a second configuration setting (corresponding to a second quiet day metric threshold) to the service application122to prevent the user130from operating an email application and a messaging application of the service application122between 9 pm and 6 am on weekdays. In another example, the configuration setting recommendation engine218applies a third configuration setting (corresponding to a third quiet day metric threshold) to the service application122to prevent the user130from operating the service application122between 5 pm and 9 am on weekdays and weekends. In another example, the configuration setting recommendation engine218applies a fourth configuration setting (corresponding to a fourth quiet day metric threshold) to the service application122to generate a reminder to the user130when the service application122detects online activities from the user130between 5 pm and 9 am on weekdays. In other examples, the configuration setting recommendation engine218applies a configuration setting to the service application122associated with the user130based on a combination of metrics of the user130from user after-hours metrics computation module208, a user-enterprise metrics comparison for the user130from user-enterprise relative metrics computation module216, and/or an enterprise relative metrics comparison for the user130from the enterprise-benchmark relative metrics computation module214.

Other examples of application configuration settings include:identifying documents edited after-hours and caching those documents in a cache associated with the service application122/programmatic client108/web client110(for faster loading during work hours);identifying documents edited after-hours and suggesting those documents when the user starts the service application122/programmatic client108/web client110(the next day);minimizing notifications during their quiet hours (e.g., hours designated as “do not disturb” by the user or after-hours);delaying delivery of emails sent after-hours;generating reminders about holiday/Out of office/events of their colleagues in case to delay any non-urgent work communications;for users who are spending a lot of time outside of work catching up on email, booking time for them in their working hours to catch up on work and minimize “after hour” burn out;adjusting meeting to working hours by notifying users if meeting hours misalign with working hours and proactively find time within every user's working hour to reschedule the meeting; andproviding a plan for a user to enroll to “automatically” assist the user as compared to waiting for their input. For example, a user can enroll in an email delay delivery plan which will automatically deliver outbound emails such that his/her colleagues see his/her emails during their working hours only.

The application configurator220applies the configuration setting from configuration setting recommendation engine218to the corresponding application (e.g., service application122, web client110, programmatic client108) associated with the user130. In another example, the application configurator220generates a function call to an application (e.g., email application) corresponding to the configuration setting recommended by the configuration setting recommendation engine218. For example, if the user130accepts the email configuration setting recommended by the configuration setting recommendation engine218, the application configurator220launches the email application (e.g., programmatic client108) at the client device106of the user130and applies the email configuration setting to the email application.

The graphical user interface222generates a graph that indicates the metrics for the user130as computed by the user after-hours metrics computation module208, the user-enterprise relative metrics computed by the user-enterprise relative metrics computation module216, the enterprise-benchmark relative metrics as computed by the enterprise-benchmark relative metrics computation module214, the application configuration settings as recommended by the configuration setting recommendation engine218. An example of a graph is described below with respect toFIG.9.

FIG.3is a block diagram illustrating a user after-hours metrics computation module in accordance with one example embodiment. The user after-hours metrics computation module208comprises an after-hours definition module302, a weight module304, a scoring computation module306, and a metrics computation module308.

The after-hours definition module302accesses after-hours metric definitions. Examples of after-hours definitions include:quiet day metric/score (e.g., a metric that counts a day as quiet when a score based on after-hours activities does not exceed a threshold).after-hours load metric (e.g., a metric that measures after-hours email time, after-hours meetings, after-hours chats, and after-hours calls),after-hours mobile interruptions (e.g., a metric that measures after-hours email activity on a mobile device),after-hours root cause (e.g., a metric that identifies a significant cause of after-hours time),after-hours top collaborator (e.g., a metric that identifies user(s) most often interacted with after-hours),after-hours impact email (e.g., a metric that measures a user's impact of email during after-hours on a recipient),after-hours impact meeting (e.g., a metric that measures a user's impact of email during after-hours on a recipient),after-hours timeframe (e.g., a metric that measures actual or true working hours of a user),after-hours control (e.g., a metric that measures the percentage of after-hours activities that are within control of a user).

The weight module304assigns a weight/points based on a duration and/or type of activity. For example, the quiet day metric is computed on a calendar day. An example threshold for identifying an impacted day is when the score exceeds at least 2 points within one hour threshold. For example, the following illustrates examples of weights/points:Send Mails: 2 PointsRead Mails: 1 PointsMeeting: 4 points (only meetings more than 10 minutes)Chats: 2 points/5 minutes (only send messages, read messages are ignored)Call: 4 points (only calls more than 10 minutes, including voice network-based calls).

In another example embodiment, the weight may be assigned based on a further specific type of activity (e.g., 1 points for reading a chat message, 2 points for sending a chat message).

The scoring computation module306determines the number/duration/frequency of activities based on metrics definitions from after-hours definition module302and assigns a weight based on the weight module304. For example, the after-hours activities of the user130include sending an email at 6 pm and attending a meeting at 6:30 pm. The score for the quiet day metric for the hour (6 pm to 7 pm) is 6 points (e.g., 2 points for sending an email +4 points for meeting from 6:30 pm-7 pm). As such, the hour is impacted but is still below a threshold of 2 hours within the hour.

In another example, the scoring computation module306computes a score for every hour (that take place after-hours). In another example, the scoring computation module306computes a cumulative score based on activities during every hour (that take place after-hours for a weekday, a week, or any other timeframe).

The metrics computation module308computes a metric based on the activities, types of activities, durations of each type of activities that take place after-hours. In one example, the metrics computation module308computes a metric based on the score from the scoring computation module306. In another example, the metrics computation module308computes the following one or more of the following example metrics:quiet day metric/score (e.g., a metric that counts a day as quiet when a score based on after-hours activities does not exceed a threshold).after-hours load metric (e.g., a metric that measures after-hours email time, after-hours meetings, after-hours chats, and after-hours calls); the metric is triggered if any of the following is true:Absolute: weekly average greater than 4 hours for the past 4 weeksBenchmark: 150% greater than company averageRelatively to load: 25%+ of all collaboration time (meeting+email+messaging)after-hours mobile interruptions metric (e.g., a metric that measures after-hours email activity on a mobile device); interruption is defined a read within 1 minute of email delivery or a reply/forward within 5 minutes of email delivery. This metric is based on user activity was from a mobile client. The metric is triggered if any of the following is true:Absolute: Weekly interruptions average greater than 5Absolute: Average nights with 1+ interruptions in a week is over 3 daysRelative to load: 40%+ of after-hours email reads and sent are interruptionsafter-hours root cause metric (e.g., a metric that identifies a significant cause of after-hours time); after-hours email, after-hours meeting, after-hours chats & calls. The metric is triggered if any of the following is true:All values are above 10 minutes (4 week rolling average)Range between smallest and largest area are at least 30 minutes differentafter-hours top collaborator metric (e.g., a metric that identifies user(s) most often interacted with after-hours); the metric is triggered based on both of the following being true:Top collaborator (top ranking (above a preset threshold score) for collaboration activity time working on shared documents, attending meetings, communications)After-hours total time in collaboration is at least 60 minutes a weekafter-hours impact email metric (e.g., a metric that measures a user's impact of email during after-hours on a recipient), the metric is based on:For starters of email thread:Score (Afterhours Email Impact)=2.5 minutes*[Count(after-hours Recipients)+Count(Direct after-hours Responses)+Count(Additional after-hours Responses)]For other users:Score (Afterhours Email Impact)=2.5 minutes*[Count(after-hours Recipients)+Count(Direct after-hours Responses)]The triggers for the after-hours impact email metric include:[Significant impact] Either one must be true:After hours impact greater than 1.5 hour per week for the past 4 weeksAt least 3 different after hour direct responses from user's after-hours email & after-hours impact greater than 1 hour per week for the past 4 weeks[Congratulations]After hours impact has trended down within the past 4 weeks and absolute decrease is greater than 2 hoursafter-hours impact meeting metric (e.g., a metric that measures a user's impact of email during after-hours on a recipient); the metric is based on:User organized & is marked as busyNot all-day meetingAttendee <12 peopleFor each attendee that accepted, the metric adds up the duration of the meeting that occurred in the attendee's after-hours including users who have joined the meeting; the units of this metric is person-hours.after-hours timeframe metric (e.g., a metric that measures actual or true working hours of a user); for each working day:Before work as the 3-hour time period before working hoursRight after work as the 3-hour time period after working hours“Night” as the 3-8 hours after working hoursWeekend as the non-working daysafter-hours control metric (e.g., a metric that measures the percentage of after-hours activities that are within control of a user); There are three components to after-hours control metric:Email: Email control is the % of email actions that the user does in their after-hours that is within their “control”.Total actions=emails the user read+emails the user sent% control=(Email control actions)/(Total actions)Email control actions=Reads and sends in new threads started in the user's after hoursReads and sends in threads where mail was first received in the user's working hoursReads and sends in threads where the action was in responses to an after-hours interruption.Meeting:After hours Meeting hours that the user organizes.Chats & calls:message chats the user originates.

FIG.4is a flow diagram illustrating a method400for determining a recommended configuration setting in accordance with one example embodiment. Operations in the method400may be performed by the online activities computation engine124, using components (e.g., modules, engines) described above with respect toFIG.2. Accordingly, the method400is described by way of example with reference to the online activities computation engine124. However, it shall be appreciated that at least some of the operations of the method400may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at the client device106.

At block402, the user after-hours metrics computation module208accesses online user activities from the service application122. At block404, the user after-hours metrics computation module208accesses after-hours definitions from database servers126. At block406, the user after-hours metrics computation module208computes after-hours activities score based on the definitions. At block408, the user after-hours metrics computation module208computes after-hours metrics based on the score. At block410, the configuration setting recommendation engine218determines a recommended configuration setting based on the after-hours metrics. At block412, the application configurator220applies the recommended configuration setting to the service application122(for the user130).

FIG.5is a flow diagram illustrating a method for identifying an application configuration setting in accordance with one example embodiment. Operations in the method500may be performed by the online activities computation engine124, using components (e.g., modules, engines) described above with respect toFIG.2. Accordingly, the method500is described by way of example with reference to the online activities computation engine124. However, it shall be appreciated that at least some of the operations of the method500may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at the client device106.

At block502, the configuration setting recommendation engine218accesses a table of mapped user after-hours metrics to application configuration settings. At block504, the configuration setting recommendation engine218identifies an application configuration setting based on the after-hours metrics of the user from the table. At block506, the application configurator220applies the application configuration setting to the service application122

FIG.6is a flow diagram illustrating a method for computing after-hours metrics in accordance with one example embodiment. Operations in the method600may be performed by the online activities computation engine124, using components (e.g., modules, engines) described above with respect toFIG.2. Accordingly, the method600is described by way of example with reference to the online activities computation engine124. However, it shall be appreciated that at least some of the operations of the method600may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at the client device106.

At block602, the user after-hours metrics computation module208accesses aggregate enterprise performance metrics (e.g., enterprise application usage data). At block604, the user after-hours metrics computation module208accesses a third party metrics data (e.g., financial data, enterprise profile) from a third party metrics database. At block606, the user after-hours metrics computation module208computes performance benchmark metrics by industry and size based on the aggregate enterprise performance metrics and the third party metrics data. At block608, the user after-hours metrics computation module208periodically updates the performance benchmarks based on updated third party metrics data and updated aggregate enterprise performance metrics.

FIG.7is a flow diagram illustrating a method for identifying an application configuration setting based on a mapping in accordance with one example embodiment. Operations in the method700may be performed by the online activities computation engine124, using components (e.g., modules, engines) described above with respect toFIG.2. Accordingly, the method700is described by way of example with reference to the online activities computation engine124. However, it shall be appreciated that at least some of the operations of the method700may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at the client device106.

At block702, the enterprise after-hours metrics computation module210computes after-hours metrics of users of an enterprise. At block704, the user after-hours metrics computation module208computes after-hours metrics of the user130. At block706, the user-enterprise relative metrics computation module216ranks the after-hours metrics of the user130relative to the after-hours metrics of the enterprise users. At block708, the configuration setting recommendation engine218accesses a mapping of after-hours metrics ranking to application configuration settings. At block710, the configuration setting recommendation engine218identifies an application configuration setting based on the mapping. At block712, the application configurator220applies the application configuration setting to the service application122associated with the user130.

FIG.8is a flow diagram illustrating a method for identifying an application configuration setting based on a mapping in accordance with another example embodiment. Operations in the method800may be performed by the online activities computation engine124, using components (e.g., modules, engines) described above with respect toFIG.2. Accordingly, the method800is described by way of example with reference to the online activities computation engine124. However, it shall be appreciated that at least some of the operations of the method800may be deployed on various other hardware configurations or be performed by similar components residing elsewhere. For example, some of the operations may be performed at the client device106.

At block802, the enterprise after-hours metrics computation module210computes after-hours metrics of enterprise users. At block804, the benchmark after-hours indices computation module212accesses after-hours metrics of a benchmark (e.g., an average metric of other users from other enterprises). At block806, the enterprise-benchmark relative metrics computation module214ranks the after-hours metrics of the enterprise relative to the after-hours metrics of the benchmark. At block808, the configuration setting recommendation engine218accesses a mapping of after-hours metrics rankings to application configuration settings. At block810, the configuration setting recommendation engine218identifies an application configuration setting based on the mapping. At block812, the application configurator220applies the application configuration setting to the service application122associated with all users of the enterprise.

FIG.9illustrates a screenshot900of a graphical user interface indicating after-hours metrics in accordance with one example embodiment. The screenshot900illustrates a quiet day metric902, quiet hours disruptions904, four-week trend graph906, and quiet hours documents908. The quiet day metric902indicates a graph representing a streak of quiet days. The four-week trend graph906indicates quiet days on a calendar. The quiet hours documents908indicate cloud-based documents that have been edited/read/authored outside working hours.

FIG.10is a diagrammatic representation of the machine1000within which instructions1008(e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine1000to perform any one or more of the methodologies discussed herein may be executed. For example, the instructions1008may cause the machine1000to execute any one or more of the methods described herein. The instructions1008transform the general, non-programmed machine1000into a particular machine1000programmed to carry out the described and illustrated functions in the manner described. The machine1000may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine1000may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine1000may comprise, but not be limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a PDA, an entertainment media system, a cellular telephone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions1008, sequentially or otherwise, that specify actions to be taken by the machine1000. Further, while only a single machine1000is illustrated, the term “machine” shall also be taken to include a collection of machines that individually or jointly execute the instructions1008to perform any one or more of the methodologies discussed herein.

The machine1000may include processors1002, memory1004, and I/O components1042, which may be configured to communicate with each other via a bus1044. In an example embodiment, the processors1002(e.g., a Central Processing Unit (CPU), a Reduced Instruction Set Computing (RISC) processor, a Complex Instruction Set Computing (CISC) processor, a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), an ASIC, a Radio-Frequency Integrated Circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor1006and a processor1010that execute the instructions1008. The term “processor” is intended to include multi-core processors that may comprise two or more independent processors (sometimes referred to as “cores”) that may execute instructions contemporaneously. AlthoughFIG.10shows multiple processors1002, the machine1000may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiples cores, or any combination thereof.

The memory1004includes a main memory1012, a static memory1014, and a storage unit1016, both accessible to the processors1002via the bus1044. The main memory1004, the static memory1014, and storage unit1016store the instructions1008embodying any one or more of the methodologies or functions described herein. The instructions1008may also reside, completely or partially, within the main memory1012, within the static memory1014, within machine-readable medium1018within the storage unit1016, within at least one of the processors1002(e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine1000.

Communication may be implemented using a wide variety of technologies. The I/O components1042further include communication components1040operable to couple the machine1000to a network1020or devices1022via a coupling1024and a coupling1026, respectively. For example, the communication components1040may include a network interface component or another suitable device to interface with the network1020. In further examples, the communication components1040may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), WiFi® components, and other communication components to provide communication via other modalities. The devices1022may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a USB).

The various memories (e.g., memory1004, main memory1012, static memory1014, and/or memory of the processors1002) and/or storage unit1016may store one or more sets of instructions and data structures (e.g., software) embodying or used by any one or more of the methodologies or functions described herein. These instructions (e.g., the instructions1008), when executed by processors1002, cause various operations to implement the disclosed embodiments.

The instructions1008may be transmitted or received over the network1020, using a transmission medium, via a network interface device (e.g., a network interface component included in the communication components1040) and using any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)). Similarly, the instructions1008may be transmitted or received using a transmission medium via the coupling1026(e.g., a peer-to-peer coupling) to the devices1022.

Although an overview of the present subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present invention. For example, various embodiments or features thereof may be mixed and matched or made optional by a person of ordinary skill in the art. Such embodiments of the present subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or present concept if more than one is, in fact, disclosed.

EXAMPLES

Example 1 is a computer-implemented method comprising: accessing online activity data of a user operation of an application; filtering the online activity data based on a preset time range; computing an after-hours activity score based on a type of activity or a duration of an activity from the filtered online activity data, and a weight assigned to the type of activity or the duration of the activity; computing an after-hours metric based on the after-hours activity score; forming a configuration setting for the application based on the after-hours metric; and applying the configuration setting to the application.

Example 2 includes example 1, wherein computing the after-hours activities score further comprises: identifying a weight corresponding to the type of activity or the duration of the activity; multiplying the weight corresponding to the type of activity by the number of the type of activity in the filtered online activity data, or the weight corresponding to the duration of the activity by the duration of the activity in the filtered online activity data; and computing the after-hours activity score based on the weighted number of the type of activity or the weighted duration of the activity.

Example 3 includes any of the above examples, wherein identifying the weight further comprises: assigning a first weight to a network voice communication activity; assigning a second weight to a network messaging activity; assigning a third weight to a network meeting activity; assigning a fourth weight to reading an email activity; and assigning a fifth weight to sending an email activity.

Example 4 includes any of the above examples, wherein accessing online activity data of the user operation of the application further comprises: accessing first online activity data of a user operation of a first application; and accessing second online activity data of a user operation of a second application, wherein filtering the online activity data comprises: filtering the first and second online activity data based on the preset time range, wherein computing the after-hours activity score comprises: assigning a first weight to the first application; assigning a second weight to the second application, wherein computing the after-hours activity score further comprises: determining a first number of activities or a first duration of an activity of the first application from the filtered first online activity data; applying the first weight to the first number of activities or to the first duration of the activity of the first application; determining a second number of activities or a second duration of an activity of the second application from the filtered second online activities data; applying the second weight to the second number of activities or to the second duration of the activity of the second application; and combining the first weighted first number of activities or the first weighted duration of the activity of the first application with the second weighted second number of activities or the second weighted duration of activity of the second application.

Example 5 includes any of the above examples, wherein computing the after-hours metric comprises: calculating a combination of weighted activities from the filtered online activities data, wherein the weighted activities comprise weighted types of activities and weighted duration of activities.

Example 6 includes any of the above examples, further comprising: determining a second configuration setting for a second application based on the after-hours metric of a user of the application; and applying the second configuration setting to the second application, the second configuration setting being specific to a user of the second application, the user of the second application being the same the user of the application.

Example 7 includes any of the above examples, wherein determining the configuration setting comprises: mapping a first range of an after-hours metric to a first configuration setting; mapping a second range of the after-hours metric to a second configuration setting; determining that the after-hours metric of the user is within the first range, and wherein applying the configuration setting comprises: applying the first configuration setting to the application of the user.

Example 8 includes any of the above examples, further comprising: computing after-hours metrics of other users of the application based on the after-hours activity score of the other users, the other users and the user being part of an enterprise registered with the application; comparing the after-hours metric of the user with the after-hours metrics of the other users; determining an enterprise configuration setting based on the comparison; and applying the enterprise configuration setting to the application for the user.

Example 9 includes any of the above examples, further comprising: computing after-hours metrics of other enterprise users of the application based on the after-hours activities score of the other enterprise users, the other enterprise users being from other enterprises distinct from the enterprise of the user; comparing the after-hours metric of the user with the after-hours metrics of other enterprise users; determining an enterprise-benchmark configuration setting based on the comparison; and applying the enterprise-benchmark configuration setting to the application for the user.

Example 10 includes any of the above examples, further comprising: forming a graphical user interface that indicates the after-hours metric of the user; and causing a display of the graphical user interface at a client device of the user, wherein the online activity data indicate a type of activity of the application and a time associated with the type of activity, wherein the preset time range indicate weekends and time outside preset working hours.

Example 11 is a computing apparatus comprising: a Processor; and a memory storing instructions that, when executed by the Processor, configure the apparatus to perform operations comprising: access online activity data of a user operation of an application; filter the online activity data based on a preset time range; compute an after-hours activity score based on a type of activity or a duration of an activity from the filtered online activity data, and a weight assigned to the type of activity or the duration of the activity; compute an after-hours metric based on the after-hours activity score; form a configuration setting for the application based on the after-hours metric; and apply the configuration setting to the application.

Example 12 includes example 11, wherein computing the after-hours activities score comprises: identify a weight corresponding to the type of activity or the duration of the activity; multiply the weight corresponding to the type of activity by the number of the type of activity in the filtered online activity data, or the weight corresponding to the duration of the activity by the duration of the activity in the filtered online activity data; and compute the after-hours activity score based on the weighted number of the type of activity or the weighted duration of the activity.

Example 13 includes any of the above examples, wherein identifying the weight comprises: assign a first weight to a network voice communication activity; assign a second weight to a network messaging activity; assign a third weight to a network meeting activity; assign a fourth weight to reading an email activity; and assign a fifth weight to sending an email activity.

Example 14 includes any of the above examples, wherein accessing online activity data of the application comprises: access first online activity data of the user operation of a first application; and access second online activity data of the user operation of a second application, wherein filtering the online activity data further comprises: filter the first and second online activity data based on the preset time range, wherein computing the after-hours activity score further comprises: assign a first weight to the first application; assign a second weight to the second application, wherein computing the after-hours activity score further comprises: determine a first number of activities or a first duration of an activity of the first application from the filtered first online activity data; apply the first weight to the first number of activities or to the first duration of the activity of the first application; determine a second number of activities or a second duration of an activity of the second application from the filtered second online activities data; apply the second weight to the second number of activities or to the second duration of the activity of the second application; and combine the first weighted first number of activities or the first weighted duration of the activity of the first application with the second weighted second number of activities or the second weighted duration of activity of the second application.

Example 15 includes any of the above examples, wherein computing the after-hours metric comprises: calculate a combination of weighted activities from the filtered online activities data, wherein the weighted activities comprise weighted types of activities and weighted duration of activities.

Example 16 includes any of the above examples, wherein determining the configuration setting comprises: map a first range of an after-hours metric to a first configuration setting; map a second range of the after-hours metric to a second configuration setting; determine that the after-hours metric of the user is within the first range, and wherein applying the configuration setting further comprises: apply the first configuration setting to the application of the user.

Example 17 includes any of the above examples, wherein the instructions further configure the apparatus to: compute after-hours metrics of other users of the application based on the after-hours activity score of the other users, the other users and the user being part of an enterprise registered with the application; compare the after-hours metric of the user with the after-hours metrics of the other users; determine an enterprise configuration setting based on the comparison; and apply the enterprise configuration setting to the application for the user.

Example 18 includes any of the above examples, wherein the operations further comprise: compute after-hours metrics of other enterprise users of the application based on the after-hours activities score of the other enterprise users, the other enterprise users being from other enterprises distinct from the enterprise of the user; compare the after-hours metric of the user with the after-hours metrics of other enterprise users; determine an enterprise-benchmark configuration setting based on the comparison; and apply the enterprise-benchmark configuration setting to the application for the user.

Example 19 includes any of the above examples, wherein the operations further comprise: form a graphical user interface that indicates the after-hours metric of the user; and cause a display of the graphical user interface at a client device of the user, wherein the online activity data indicate a type of activity of the application and a time associated with the type of activity, wherein the preset time range indicate weekends and time outside preset work hours.

Example 20 is a non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to perform operations comprising: access online activity data of a user operation of an application; filter the online activity data based on a preset time range; compute an after-hours activity score based on a type of activity or a duration of an activity from the filtered online activity data, and a weight assigned to the type of activity or the duration of the activity; compute an after-hours metric based on the after-hours activity score; form a configuration setting for the application based on the after-hours metric; and apply the configuration setting to the application.