In the last post I went over how to create a very simple mileage object to automatically log mileage on my car each day I have to drive it somewhere.
- It’s basic, and would need formula adjustments every time I add a new destination
- There are fail-safes to make sure I don’t screw up when entering data
- There are not fail-safes if I mess up my formula
- My goal is to have a way to quickly enter my miles on a daily basis
I went to use this today and I knew that it would take a few clicks in Salesforce1 to get what I wanted. You take for granted on a desktop just how quickly clicks can be made, but they take that much longer on a phone.
I also forget if I mentioned it, but you can always emulate Salesforce1 by adding “/one/one.app” to the end of your SF URL so that it’s something like na16.salesforce.com/one/one.app
Do enter a mileage record on Salesforce1, even after automating the actual KM calculation:
- Open Salesforce1
- Open the side menu, scroll to Mileage if it’s even there – you need to have been to that object recently.
- Open the Mileage Tab (you may have to click on Show More here as well)
- Click the New button
- Choose Location from the picklist and confirm other fields are correct
- Click Save
So that’s 6 clicks, potentially more, just to enter a mileage. Hard to do in the time it takes for an elevator to show up or a cross walk light to change. I don’t like this at all, time to see what can be done.
Steps to better mobilization
What I really need to get rid of a few clicks right off the bat is a Global Publisher Action. This will allow me to quickly create a mileage record right from the first page I see. I do this through:
Setup > Create > Global Actions > Actions and set the key fields
My Action is to create a mileage record. Pretty self explanatory. Saving this takes me to another page where I can determine what fields I want to pre-populate, and a button to change the layout:
Predefined values have in my experience been under-appreciated so far. I’m not going to use it here because I do bounce around, but if I was working with the same client for a full month, I might set the location to always be a set value. The key here is that I can always change it, but I’m pre-populating values for the 95% of cases. This is all about saving clicks. Think of it like the default value in text fields. If you noticed in the last post I used this same idea at the field level to default the date. In this case we are only defaulting on the mobile platform. Think of it as what are they most likely to be entering while on the road, not necessarily what they are most likely to be entering overall.
The other piece is adjusting the layout for the publisher action. It’s a similar idea – you don’t want to clog things up with unnecessary fields, so keep it simple. Mine is basic, and designed for one-handed operation where possible. Note that in general, everything is in line. I only move to the other side of the page if I need to enter a custom value
On a routine day where I’ve remembered to do it right after getting out of the car, all I have to enter here is the location.
Once you have your layout and your pre-defined values, you need to add to the global publisher layout. The default layout is:
In a word – cluttered. In another word – useless. Clean this up to only have what you will use. Remember, you’ll be adding your own over time, you don’t want stuff here that will never be used. It’s a dev org, who are you really going to Poll or Question?
That’s better, and I’ve now added the new publisher action for a new Mileage record.
Back to clicks again:
- Open Salesforce1
- Click on Publisher Actions and Create New Mileage. I consider this basically the same as a picklist in terms of number of actions it’s so easy
- Choose Location
- Click Save
So by adding a global publisher action and an appropriate layout we’ve managed to reduce our clicks by a third. Not just clicks, but we’ve really been able to reduce our navigation requirements. Everything is done right from the Chatter feed. Saving two clicks doesn’t sound like a lot, but try it and tell me that this isn’t now twice as fast as it was before. I just checked and even with an internet lag, from the time it took me to open the app to the time it took me to put my phone back in my pocket logging a 200km trip to Waterloo – 10 seconds.
I’m still not happy with the scalability of my object, and we’ll be addressing that in a future blog post with both a more object oriented approach, and some custom code we can use to make it even better