cancel
Showing results for 
Search instead for 
Did you mean: 

Do you really know the Flexi task?

Workflow Hero
41 25 22K

The Flexi task is one of the most popular workflow actions and we are eagerly awaiting its arrival in the o365 version.  For something so powerful, how much of it do you really know?  How many of the options have you used?

Today I want to concentrate on the behaviour section:

1 Behaviour.PNG

What do these options actually mean?

Like most of you, I suspect we accept the default behaviour “First response applies” and carry on happily knowing that a single person is going to make a decision on an action and their decision is final.  Things, however, start to get a little trickier when multiple people are involved.

Let’s start by way of an example:

We have a situation where the flexi task is has two outcomes (Approve and Reject) and it is sent to two people.  In order to continue, we want both of these people to approve the task.  If either of the people reject the task, we want the workflow to manage the outcome as if it was rejected.  Sounds simple enough right?  Surely you just select “All must agree on a specific outcome”, set the outcome to “Approve” and away you go?

2 Approve Outcome.PNG

Let’s try it out.  I’ve configured the flexi task exactly as above and run the workflow.  When both people approve the flexi task, we get the expected outcome as per the picture below:

3 Approved.png

However when one person rejects the flexi task, something strange happens:

4 Rejected.png

What on earth is going on here?  Why didn’t it execute the tasks in the Reject branch!?  The key here is understanding the fine print and I refer to our friendly Nintex User Guide for the exact wording:

All assignees must select the outcome specified in the 'Outcome' drop down list. If any assignee chooses an alternative outcome, all pending tasks will be set to 'not required', the 'outcome achieved' variable will be set to 'no' and the overall task outcome will be blank.

That’s right - what the user guide is telling us is if the people disagree, there is no outcome.  It doesn’t default to rejected as you might have suspected.  Initially that doesn’t seem to make sense.  Surely if the outcome isn’t approved it must be rejected?

The logic only becomes apparent when you have three or more outcomes (e.g. Approve, Reject, Escalate).  If the assignees disagreed, how would Nintex know which branch to follow?  This is why the User Guide states that the overall outcome is blank.  It even provides a method of telling you that no outcome was reached by optionally setting some variables:

5 Store Outcome.PNG

With this new found information you can check the status of that outcome variable and adjust your workflow accordingly.  There are many ways of handling this depending on your exact requirements.  The Run If and Set a condition actions come in quite handy here but I’m sure many of you will have other methods you can suggest.

6 Run If.PNG

The same “no outcome” applies for the other behaviours:  You will reach no outcome under the following conditions:

Behaviour selectedFlexi task results
Majority decidesA majority is not reached.  E.g. there is an equal amount of reject and approve replies
Majority must choose a specific outcomeA majority is not reached.  E.g. there is an equal amount of reject and approve replies
All must agreeJust one person submits a different answer to the rest

As long as you are aware of the “no outcome achieved”, your life will be much easier when dealing with multi-recipient flexi tasks.

So what was the final solution for my original example where we have two outcomes to choose from (approve and reject) and if one person disagrees, we should execute the reject actions?  We could submit a request to the team at Nintex to create a default outcome field or for the next best thing: include an “other” branch which you will find in the Advanced Options and move all reject actions to this branch.  If an outcome is not achieved, the other branch (if it exists) is executed.

7 Other branch.PNG

8 Final solution.PNG

Hope this helps!

Cheers,
Chris | Provoke Solutions

25 Comments
Workflow Hero

Yes it is. You can run a parallel action. You can assign them each their task in a separate branch. Have a workflow variable that is defaulted to 0. Each time a person completes their task, add 1 to the variable. When the variable reaches the number of assignees - move the workflow on to the next step.

This can also be a state machine. You can change states when all tasks are complete.

Workflow Hero

Please note the bold text in my original message: I do not know the number of assignees in advance.

Workflow Hero

I'm having an issue, where a flexi task only has one reviewer. However, when it gets to that step, it cancels the workflow, and the task status is set to "not required".

I can not figure out, for the life of me, what is causing this.

Any thoughts on this?

Workflow Hero

It may have problems with contacting the user through email. Its happened to me. So the email address may be incorrect or something.

Workflow Hero

I actually assigned myself. The weird part is, I get an email that says, "Task assigned", and then about 2 minutes later, I get an email that says, "Response no longer required". 


The fact that I'm getting emails means the email address is correct. :/ So confusing.

Workflow Hero

Can you post your workflow?

Workflow Hero

How do I do that?

Workflow Hero

Love it love it love it.

I could have written the first bit in the exact same way - totally illogical behaviour!

Superbly written and has answered the question I had around this!

thanks so much

Workflow Hero

Glad it assisted Cassy

Workflow Hero

Hi Chris

Can you tell me how to retrieve the responder when using the '

Thanks

Joanne

Workflow Hero

Hi Joanne,

You can use the last task respondent reference to figure this out:

Capture.JPG

Some other ones that might be of use are the all approver comments and approver comments references too.

Cheers,

Chris

Workflow Hero

Thanks Ben.

I'm actually sending an approval request to a sharepoint group and the last respondent only brings back the name of the group and not the person who actioned it.

I am looking at approver comments, but i'm having trouble trying to work out how to pull out the approver from them.

Kind Regards

Joanne Morris

Technology Systems Analyst

Technical Services

Thiess Pty Ltd

179 Grey Street, South Bank QLD 4101

Locked Bag 2009, South Brisbane QLD 4101

T +61 7 3002 9428

E <mailto:jmorris@thiess.com.au> jmorris<mailto:jmorris@thiess.com.au>@thiess.com.au<mailto:username@thiess.com.au>

thiess.com<http://www.thiess.com/>

<http://www.thiess.com.au/>

<http://www.facebook.com/ThiessGroup>

Workflow Hero

Hi Chris

Great post thanks. 

I have a request to replicate this process here - where the majority must agree BUT if one person disagrees it fails. Is this possible to do using flexi-task?

Thanks

James

Workflow Hero

Hi James,

If there are only two outcomes (e.g. authorise and disagree) then I'd use the option "all must agree on a specific outcome" and you make that outcome "authorise".

However if you have more than one outcome (e.g. apple, pear, disagree) then it gets trickier.  If you use the option "majority decides", Nintex will count how many people are going to respond in total and wait until a majority decision is reached.  Once it's reached this threshold, the flexitask automatically completes i.e. it does not wait for the people who haven't responded because their responses wouldn't make any difference to the outcome. 

That's exactly the behaviour we want except it won't work for your situation.  If 9 out of 10 people say "apple" and the 10th person was going to say reject, the rejection wouldn't be picked up because that person never got a chance to respond.  In this case you'd probably have to use something else like a to do task, capture all the results into a colleciton and search for any rejections.  If you don't receive any rejections then you can figure out the majority decision.

Cheers,

Chris

Workflow Hero

Awesome thanks Chris.

I ened up questioning the process the group were using and they have adopted the majority decision on outcome. Sometimes it pays to ask!

Cheers

James

Workflow Hero

Hey ‌ - question for you:

I have a parallel task where first response applies, and the "ticket" (in this situation) is then assigned to them.

With that in mind, I want - if others want to respond AFTER the first one - to get a message that says "Task has already been assigned, buzz off." 

But the default is "Task has already been completed."

I want to change that, but I can't see where to do that. Thoughts?

Workflow Hero

Hey Rhia,

I'm not sure I understand your question correctly.  Is just to tell others that someone else has already responded to a task and their input isn't required?  Is this the screen you're looking for?

There's also the default/global message settings page that you can modify via Central Admin: Nintex Workflow Management | Message Templates.

Was that what you were looking for?

Cheers,

Chris

Workflow Hero

Yes, but ... O365. That's my problem!  

Workflow Hero

Ahhh.  For o365 there is no global setting as far as I'm aware.  It's just the cancellation email options inside the task action.

That email gets sent upon any cancellation condition e.g. workflow is terminated, someone else has completed a task and we set some conditions on that workflow to end if x% has been completed etc.

Workflow Hero

See, that's what I thought as well - but - here's what that's set to: 

Yet, here's what the "You don't need to / can't do this anymore" email looks like that we get: 

"This task no longer requires you to respond. The task has already been completed."

I can't for the life of me find where to modify that, as in my client's case, we need to say assigned, not completed. 

Workflow Hero

Hmmm.  All the emails I received followed the cancellation message.  I discovered something else while testing this though - the tasks get removed once they are no longer required.  It makes for a messy error screen if someone clicks on the original task link.

Here's how I set up the task:

Here's the email sent to the person who no longer needs to respond

Workflow Hero

Hahaha, I like that email. 

So the actual scenario I have is that there is a First Response Applies flexitask - it goes to five folks in a HelpDesk ticket type situation, and the first person to respond then has the ticket assigned to them (through the workflow.) 

If someone else responds "Assign this ticket to me!" after it's already been assigned to someone else, that's when the email (text shown earlier) appears as an automated email response. 

Workflow Hero

Wanna send a screen shot of your workflow?  I think the start a task process action should do it but it will be good to see how you've got it set up.

Workflow Hero

So it seems like we can change the text of that email - but - regardless of what we do, we can not remove the

 "This task no longer requires you to respond. The task was canceled."

That appears in the bottom of it. 

I'm going to go check out UserVoice and either create / vote up an ability to modify / remove the footers. I don't even know where I could possibly do that in O365 ...

Workflow Hero

Because I don't have O365, this could be totally not useful advice, but for on premise, if you go to Central Administration -> Nintex Administration -> Messaging Templates (which is located under Workflow Environment), you can modify / toggle footers and headers for task emails. 

Buuuuut. If you don't have access to that, I wonder if there wouldn't be a way to get crafty with email CSS to hide the default text, and in turn render the things that you have placed inside of a div (or table) with a specific class... 

However, email css is the worst type of css, and depending on the target client, certain crafty thing might not work  (CSS Support Guide for Email Clients | Campaign Monitor