I am trying to solve a long-standing problem: how can I use Jive DES to measure the number of inactive members in my community? Not only is the inactive percentage a key metric we want to track, it’s an essential component of many other common measures. You need it for a Participation Ladder, for example, and any time you ask the question, “what percentage of users did _____?” you need to be able to calculate the denominator, the number of users, which includes inactive users.
It’s easy to count the active users in any time period with Jive DES: count the unique actors among all the records in Jive DES for that period. By definition, if they did something in Jive, they are active users, and if they did something there is a record of it in Jive DES.
The problem is identifying inactive users, which are defined as enabled (their Jive account has not been de-activated) and registered users, who are enabled users who have logged into the system at least once. Let’s take these issues in turn.
I can query a user’s enabled status in the present: 0 means deactivated and 1 means enabled. But Jive DES has no record of when that status was changed. It has no way to tell whether a user was enabled or not at a specific time in the past. It only shows the present state at the time of the query.
I can also look at the user’s last login date, and if it’s a non-valid date then infer that the user has never logged in. So if I know the user is enabled and there is a valid last login date, then the user is registered. But this, too, exists only for the present state.
Jive DES Current Capability
Is there something in Jive DES currently that can provide the enabled and registered status at any given point in time in the past? Not to my knowledge, and when I asked (former) Jive engineer, Dirk McNealy, he acknowledge that it was not available to me (although he had an idea of how it could be calculated, but he never created that solution).
Jive Needs to Solve This
So, in thinking about this critical reporting need, I first want to call out Jive and ask them to create a solution. I believe this falls under Udit Shah's domain. This is a significant gap in Jive DES reporting capability that should be addressed.
Can We Hack This?
But I recognize that whatever solution Jive might develop will take time and I don’t want to wait. That’s why I am posting this in the Developer space instead of where I usually post about reporting questions (the Jive Advanced Customer Measurement space). I want to hack together a solution quickly.
Is there a way to automatically:
- Execute some action that Jive DES already tracks (to create a Jive DES record)
- That will not impact the user in any disruptive way (e.g., it can’t trigger sending the user a message)
- Once every day
- By (so we can query on Actor) or for (so we can query on Object ID) every user account that is
- Enabled on that day (a record for this scenario = Enabled)
- And has a valid date in the Last Logged In field (a separate record for this scenario = Registered)?
Create an Add-on
What I’m thinking about would ideally be a simple add-on that runs a process daily at a set time and thereby takes actions that are captured in Jive DES for every enabled and registered user for that day. Then we can query those specific records and know the enabled and registered status of each user on each day.
I’m not sure what that action should be, as it can’t be intrusive. I’d be willing to accept something slightly intrusive, such as awarding each user one Rewards point if that would accomplish the objective of creating a record. Ideally it would be something completely invisible to the user, such as granting permission to something that is not actually used for anything, or removing permission for that same thing. Maybe enabled users are granted permission to something and deactivated users get that permission removed. So long as you remain enabled, you get the permission assigned again every day. And if you’re not enabled, then the process skips you. Perhaps we could leverage StreamOnce and generate activity in a space/group that only sys admins see, so as not to disrupt any users?