There were a number of quiet days of contemplation as I wrapped up 2016. I spent that time building the first iteration of my RPG (Role Playing Game) #AwesomeAdmin App. This post is meant to briefly describe how this app has come together. Even better, all of this was developed in Lightning! Your thoughts and feedback will be a huge help as I develop this further. My goal is to have something solid and perhaps used by a few people at Dreamforce this year.
Before I get into the mechanics, let me introduce you to the concept. I have been employing a productivity technique inspired by Chris Hardwick’s “The Nerdist Way”. The idea is to treat your life as a Role Playing Game. By that, I mean you gain Experience points (EXP) for all actions. The accumulation of experience builds to higher and higher levels in six separate categories. The gamifying aspect is the increasing volume of experience points required to continue leveling up. These categories are where the app gets subjective, and I’m completely interested in discussing other’s interpretation.
So what are these categories that make up a well-rounded #AwesomeAdmin? I’m so glad you asked. In no particular order, an Admin levels up in Work, Career, Family, Self, Giving-Back and Ohana. Some of these are obvious and others tend to overlap. What I find interesting is how an Admin Action can be interpreted in a number of different ways, and in turn can be manipulated for greatest gain; but in the end you are accountable only to yourself.
At the core of this application are two Objects. Level Up and the Child Object AdminAction. Each AdminAction Record is where we are logging basic tasks completed. These records calculate how many Experience points are gained based on a few variables. I’ll get to that formula shortly. The Master-Detail Relationship is important because we want to get Roll-Up Summaries to the Level Up record.
So what fields are important for calculating the EXP Points you gain? We want to be able to quickly create these AdminAction records, so the number of fields need to be reduced to the bare minimum. At the same time we want to give more credit for actions that demand more effort. For example, an Awesome Admin should get more Experience for writing a blog over reading a blog. Let’s take a look at the input fields.
There are two other Input fields to help with review and reporting. Date simply defaults to Today() and Description allows us to… well that’s pretty obvious isn’t it?
Now we can get into the fun stuff! Let’s talk about Formulas!!!
Start with 10 points per Admin Action. Time Expended is a direct variable, but the longer we spend on one task returns a lower multiplier. The idea behind this is that we grow less productive the longer we stay on a task. The Outcome of “Consume” or “Create” returns a separate multiplier at a 4 to 10 ratio. Read over my formula and let me know how you would build it. Are my numbers fair?
The Attribute Experience Points are separated into six fields at the AdminAction level for easier reporting. Here is the basic formula that is repeated for each attribute: Career, Family, Giving Back, Ohana, Self & Work.
Moving up the ladder, we see these Experience Points rolled up into the Level Up Parent record. We have six fields that simply roll up the EXP for each Attribute. Once we have the total EXP for an Attribute, we can figure out our Level in that particular area. Just like in Dungeons & Dragons, each level gets progressively harder to reach. My formula here only gets you to level 30. Do I need to go further? Is the progression too harsh?
So now we have six attributes and six separate Levels. By the way, when you Level Up… Celebrate! You deserve it. So how do we figure out our absolute Admin Level? This one is simple, or at least it should be. Just take the average of each of your Attribute Levels. If only it were so easy.
FIE! FIE ON YOU, COMPILED FORMULA CHARACTER LIMIT!!!!!
Alright, let’s calm down. There is always a way around an obstacle. We just need to step back and the path will appear. How about a Process Builder?
- Start the Process when an AdminAction is created or edited.
- Criteria to Execute is when this formula evaluates to be true:
- ISCHANGED([AdminAction__c].Attribute__c) ,
- ISCHANGED([AdminAction__c].Outcome__c ) ,
- ISCHANGED([AdminAction__c].Time_Expended__c ))
- Criteria to Execute is when this formula evaluates to be true:
- Update the Level Up record.
- Admin Level = ([AdminAction__c].Level_Up__c.Career_Level__c + [AdminAction__c].Level_Up__c.Family_Level__c +
- [AdminAction__c].Level_Up__c.Giving_Back_Level__c + [AdminAction__c].Level_Up__c.Ohana_Level__c +
- [AdminAction__c].Level_Up__c.Self_Level__c + [AdminAction__c].Level_Up__c.Work_Level__c ) / 6
Pretty Straight forward. We will need to create the single Level Up record to attach all of our AdminActions. Be as silly here as your grown-up self will allow. Mine is called “THE BIG GAME”. This new record will give us our Admin Level. When you level up here, a real Celebration is justified. If you think leveling up an attribute gets tough, it is immeasurably more difficult to bump up the Admin Level. Actually, it is not immeasurable. It is very measurable. It is exactly 6 times harder. Looks like I got busted speaking in hyperbole again.
So we have the guts to the app pieced together. Let’s polish up this Tin Man into a shiny UX. We want to be able to quickly log an AdminAction, preferably from our Salesforce1 app. Here are some steps I took to get the best bang for our buck.
- Set up a List View for the Level Up Object. Unless you are getting creative, you will only need one Level Up Record, so the list view filter can be as simple as you like. The important thing is to include all the Level Fields as columns on this list view.
- Create an Action on the Level Up Object. This Action will create an AdminAction. Keep it simple by only including the required fields for the AdminAction: Outcome, Attribute, Time Expended and the Description. I got fancy by including an Icon (a D20, of course) and an encouraging message to myself every time I log a new AdminAction.
- For a bit of extra knowledge, we need a report, or more specifically, a chart to show us our progress. I built one showing my total time expended throughout the week. I LOVE how we can set a reference line, by the way. It gives me a goal to aim for each day.
- Now we need to piece it altogether on a Lightning Page. Add a Filter List component for the Level Up list view. Also add Report Chart using the pretty report you set up showing your progress. Set the Page up as your default when you log into your org.
So how does it look? Anything like mine? I assume not. I’ve used this Dev Org for a while and there has been some additional branding that I’ve applied. One of the aspects that I didn’t know about immediately was a quick action slide. If you slide your Level Up record to the left, you have access to your Actions, including the Create AdminAction you made earlier.
I truly hope this was a fun exploration for you. I have loved building it and I’m eager to see it evolve into something larger. I want to know what you would do different. I want to know what you would add to make yourself a better #AwesomeAdmin. Do you have questions about what constitutes a Career Action over a Work or even Ohana Action? Let’s talk. Let’s create something. Let’s all Level Up!