The Nintex LazyApproval gives end users the ability to automatically complete Nintex workflow tasks from their email without having to complete tasks in SharePoint. This feature is awesome, and from what we have seen is often underutilized.
I am assuming the SMTP service has been configured and setup on the SharePoint servers and the incoming email settings have been configured in SharePoint. These are both prerequisites for Nintex LazyApproval to work.
Nintex Workflow Global Settings
As a first step to setup LazyApproval, review the Nintex Global Settings. (In Central Administration -> Nintex Workflow Management -> Global Settings):
Take note of the From Address and the Reply To Address
Nintex Workflow LazyApproval Settings
Enabling Nintex LazyApproval will not affect existing workflows. You will still have to go into each workflow and enable Nintex LazyApproval on the tasks.
To enable LazyApproval (In Central Administration -> Nintex Workflow Management -> LazyApproval Settings):
The Reply To (under the Global Nintex Settings) and the email alias are connected to the same setting. All you have to do is make it the same email address.
After selecting OK, additional options are available to you:
- Editing the LazyApproval notification footer
- Create a new LazyApproval term for the current server farm
- Configure phrases to ignore
Note: How this works is there is a hidden document library in Central Admin called NintexWorkflowEmailResponses. This is an email enabled document library and the email address is configured to the email alias, i.e. email@example.com. I am assuming there is an event receiver that runs when a new email gets added to the library. The event receiver processes the email and deletes it.
Editing the LazyApproval notification footer
The default message for approval tasks is: LazyApproval enabled. Reply with a recognized term on a line by itself at the top of the return email. This does not make any sense to an end user. We recommend clearing out all settings and instead defining a template that you would use in the body of the task email instead inside the workflow.
As an example we have used something like the following in the message body of a flexi task:
A task has been assigned to you as a subject matter lead in the ABC Document Library.
To complete this task:
1. Review the request here: Content Item Display Name
2. Complete this task by either:
- clicking here and approving or rejecting the request
- responding to this email with the word approved or rejected on a line by itself at the top of the email (not the subject line). Please note, adding ANY other words on the same line other than approved or rejected will not complete the task.
Create a new LazyApproval term for the current server farm
Only two outcomes are supported “Approve” and “Deny”. The phrases are also case insensitive, i.e. Approve is the same as approve. The phases that have been provided are comprehensive, but if you needed to add phrases, you can do it here (affects the whole farm), at the site collection or site level.
Configure phrases to ignore
The phrases to ignore are typically used for automated messages (like an out of office), the reason for this is if Nintex does not recognize a response it will send an email to the user saying the response was unrecognized (more on this later).
Create a new Nintex LazyApproval email constant
Our clients often have the default From Address configured as firstname.lastname@example.org. For users that receive a LazyApproval enabled email this is confusing. You want me to respond to a “do-not-reply” email? For this purpose and for consistency create a Nintex constant that you can use in all LazyApproval enabled tasks where you can change the “From Address” to this constant.
Create a constant (In Central Administration -> Nintex Workflow Management -> Manage workflow constants)
The value can be whatever you whatever email address you want the user to see. Depending on how your email server is configured, this may need to be a valid email address. When a user responds to the email, this value will be replaced with the “Reply To Address” under the Nintex global settings.
Demonstration through a sample workflow
Now that we have everything configured, let’s build a sample workflow with an email notification and a flexi task with LazyApproval enabled:
Our flexi task has the option to Allow LazyApproval now.
In the flexi task change the From email address:
Under Lookup the new workflow constant will be available
When this workflow is run, I get two emails:
The notification email and as expected the from address is still the “do not reply” email address
The LazyApproval enabled task:
Notice that this email has the “reply-to” from address we want, we also get a Nintex tag: [#EEEJCLDKCLDLCLD#] that it uses to identify what task this email is related to.
If I reply to this email, the correct Reply To Address is populated as defined in the Nintex global settings.
If I try to respond to email with an incorrect response as above (LazyApproval expects the word “Approved” on a line by itself). I get the following response:
Your response was not able to be interpreted. Please try again with a clear indication of your chosen outcome.
Valid outcomes for this task are:
Even though the message says the valid outcomes are approve or reject, all other phrases could be used as well. Unfortunately there is no option to configure this message yet.
It is important to note that inside the flexi task if you were to change the outcome to something else you will need to create the same matching Nintex LazyApproval phrase.
For example, if I change the Reject outcome to Send for rework:
I would need to create a matching Nintex LazyApproval phrase in Site Settings -> Nintex Workflow -> LazyApproval Settings.
The person responding to the task via email would need to type “send for rework” on a line by itself for this to work.
When should I not use Nintex Lazy Approval?
When you want to use more than two outcomes, because LazyApproval only supports two outcomes.
When you need to collect additional information from users. There is no easy way for allowing users to complete a task from email and require them to fill in additional information.
In summary, Nintex LazyApproval is very easy to setup and you should use it. Users that travel or have work email on their phones will love you for it.
In short, when enabling Nintex LazyApproval for a workflow task
- Create a template for the message you will to describe to the user how they can complete their task via email.
- Use a Nintex workflow constant to configure the email From Address
- Give the user all the information that is relevant to make an informed decision in the email body. The last thing you want is for them to have to go to SharePoint to review information before they can approve via email!
If you have any questions, please leave a comment.