Log Your Flows

A Custom Object and reusable sub-flow to capture data about how peopel use your Visual Flow interviews. Also can be used to gamify data entry and create automatic high level chatter posts about data entry activities.

I’m a big fan of wizards. This is a Visual Flow interview that guides data entry. Wizards can include search-before-add and all the other great tips you wish people would use. They can greatly reduce user frustration by combining complex multiple steps into one guided interview. But how to do you know they work?

I created this little Flow Log App some time ago, and it’s become my favorite piece of reusable code. You add the subflow at the start your own flow and update it each time someone repeats a repetitive or incremental step (e.g., each time they enter a new contact, meeting held, and follow-up needed). You get the total amount of time the flow was in use, how many repetitions were run, and even whatever status information you send to the logger.
I introduced a client contact data entry wizard some months back. My staff said it was getting slower. And it was. The data showed it. And by running reports, I could tell you how many hours per month we spend entering data using wizards. This was very helpful in figuring out what we needed to speed up. In fact, we just replaced it with a new wizard and we’ll see in a few months if it’s really a lot faster. So far, the new system is much faster. (It wasn’t a matter or programming, it was a matter of reevaluating our system and taking data entry to a higher level.)
In addition, we are able to give feedback in teach looping wizard to the user about how many items they have done and how many minutes per loop they spend. This results in a little bit of gamification. And I am able to tell some staff that they simply take much longer than other staff to enter their data. It’s not necessarily bad, but when they say it takes them too long, I can come back with real data to show they could be doing it faster.
And one more benefit… I have a process builder set to monitor flow logs. I’ve included it in the unmanaged package but you’ll want to customize your process. One hour a flow is was created, it adds chatter automatically if the flow name matches some specific values. It does so by launching another flow to handle the details of creating the chatter feed item. This way everyone sees that Terry captured 8 client contact for Feb 23rd Monday Prayer Time in 6 minutes. Or that Terry created a new client named Marcus who is 23 years old and likes playing guitar. I call the rule a “chatter box.”
The log has gone through many iterations to reduce coding needed to use it. Here’s how it goes:
1) Call Upsert Flow Log with name of flow (I always have a constant called FlowName in each flow). You get back the ID of a new Flow Log. Pass along any big picture information you want in the status field, such as date and human-friendly name of the item the wizard is operating on.
2) Inside your loop, call Upsert Flow again after each item is processed. Pass in the ID so it updates the log instead of creating a new one. Pass in new status information if you like. You can set a boolean flag called Append if you want to append each status message (up to 255 characters); otherwise the newest status overwrites the oldest one. I like to post stats for the user so Upsert Flow Log can return a count and timer value. Count increments by one (or you can pass in another value if that makes more sense) and timer represents the amount of time since you started the flow divided by the counter. So you can display things like 6 items process so far; 1.2 minutes per item.
That’s it. Enjoy!


Leave a Reply

Your email address will not be published. Required fields are marked *