I am a huge fan of all the Nintex products including Nintex Workflow, Nintex Live, Nintex Forms and the new Nintex Mobile. We have been using Nintex Workflow 2010 and 2013 for a number of our Dynamic Owl clients over the years and with this experience have developed some internal good practices around how to develop workflows.
Now this isn’t anything that is officially sanctioned by Nintex but we find that it has helped us create some really interesting solutions that are robust, scalable and consistent. Nintex Workflow in particular is great because you can create workflows so easily but that also means that without any governance people create solutions in different ways. So here is a selection of best practices that we use that might help you!
Use Action Sets to Group Related Actions
We use a lot of Action Sets inside our workflows to keep everything cleaner. An Action Set doesn’t really do that much but it does allow you to group, expand and collapse actions that are contained within it. So for instance instead of having a bunch of unrelated actions such as:
We can use an Action Set to group them together, give them a name and then expand/collapse the Action Set when authoring the workflow (which makes things a lot easier):
Now we can also minimize (hide the action contained within), disable or do some other action.
In my mind Action Sets are the best way to break up a workflow into nice manageable pieces so make sure you use them.
Use Comments in all your actions
Since I come from a development background I understand the value of properly documented solutions. In Nintex Workflow you have the same ability to comment your steps and when you come back six months latter to change said workflow you will find how valuable these comments are.
So we make sure that we comment each and every action that we have:
Every time we set a variable we also title the action with the variable name and what we are setting the value to (if it is static):
For any action sets we also label them correctly:
See nice and readable! Please do this in your Workflows because I can ensure you that coming in and looking at a workflow with 300 actions without any comments will make you fall to your knees and cry :(
Hide actions from Workflow Status
Nintex Workflow has this wonderful capability to be able to visualize your workflow progress so that end user can see the status in a graphically nature at any time:
Now this can be greatly beneficial but you have to remember that the workflow visualization is for the end user! What this means is that any actions that don’t make sense to end users shouldn't appear. Therefore what we do is hide ANY actions that don’t directly show the user easily the status of their workflow. This includes:
- Setting any variables
- Most integration activities
- Any calculations like converting values, logging of workflow data, calculating dates and so forth
To do this simply open up any action, click on the common label and select the option “Hide from workflow status:
But another, and better, way to do this is to simply put your actions in an Action Set and then choose to hide the action set, this will hide all the actions within it:
Now the visualization with the Action Set declared as hidden. Notice how all actions within the set are hidden, much nicer for the end user:
So there we go some simple things to improve your workflows for your team and end users. In the next blog post I will cover why you should always have a catch all state in your state machine workflows, why use SharePoint groups to manage task assignments and some other items.
As always lets me know if you would like me to add anything else by leaving a comment!