Skip navigation
All Places > Tech Blog > Blog
1 2 3 Previous Next

Tech Blog

232 posts

Its our birthday!

 

The community just passed three years of answering questions, finding answers and sharing knowledge.  And the monthly mission, as usual, gives the gift to you.

bday cake

It's a bit involved, and I'm asking a lot... but hopefully you'll spread the Connect birthday love.

Here's what we ask of you in a SINGLE REPLY BELOW. And DO NOT reply until you're ready to post EVERYTHING.

In your reply below post the following:

  1. A link to a UserVoice suggestion you've voted on
  2. Visit and click "actions" > follow on three sets of release notes
  3. Update your status
  4. Update your avatar (doesn't HAVE to be a real photo of you, but if it is - secret bonus points!)
  5. Tag (using "@" then their name) three people who've helped you in the community.
  6. And then post a snippet showing you on Twitter holding a cupcake, cake or treat of your choosing saying: "Happy birthday #NintexConnect! Three years of connection! #Nintex"

 

If you do those things and post the images to prove it below, you will win a present!

No. Not a real present. But you'll win this present:

And it comes with 200 very real points in the community to boost your street cred!

birthdaybadge

Thank you for three years of questions, answers and sharing! May we see many more!

Greetings!! ,

 

Finally back in South Africa from Namibia!

 

And I'm excited to bring you part 3 of my Time sheet blog series. If you guys remember in part 2 , I didn't get to cover the Time Sheet form below:

 

 

And so in this part I've included a breakdown on how the Time sheet Form has been put together as suggested by David Heineman  

 

I've done a +/- 29 minute long video explaining the form in greater detail, and also shared some tips and tricks that should help you on your Nintex journey  

 

 

 

Hope you guys enjoy this 

 

Have a great week everyone!

 

Cheers

AuthorPalesa Sikwane
Long Description

An update on Nintex® Workflow Microsoft® Dynamics Live Actions and Native CRM Actions

Affected Product(s)
  • Nintex® Workflow 2013
  • Nintex® Workflow 2016
  • Nintex® Workflow for Office 365 
Release Notes

Nintex Workflow 2013 - Release Notes 

Nintex Workflow 2016 - Release Notes 

Nintex Workflow for Office 365 - Release Notes 

ScreenshotsNintex® Workflow 2013

 

 

 

 

Nintex® Workflow 2016

 

 

Nintex® Workflow for Office 365 ®

 

 

Greetings everyone,

 

I'm pleased to announce an update on both the Microsoft® Dynamics CRM Connector as well as the Nintex® Live Microsoft® Dynamics CRM Actions  

 

So how do you get this new update?

 

On premise (2013/2016)
Download and install the latest setup files and follow the update guides below:

 

Updating Nintex - What you need to know

Product Update Process

 

Office 365

The update is deployed automatically to our Nintex® Workflow App

 

What's special about this new update?

 

Everything stays the same and works the same, but the key difference been that you can now connect to CRM 2016 on premise as well as CRM 2016 Online !

 

Enjoy!!   


Cheers

Just two months after we let the world know we passed 5 million views of correct answers, the number has jumped up over SIX million!

 

More than six million times, someone has viewed an answered question, so the community continues to speed ahead!

 

That means they may have avoided starting a support ticket. Or they learned something that saved time. Or they passed it on to a colleague and saved that person some time or spared them some frustration.  That's what community is all about!

 

You can see in this chart, the increase in views, over the last third of the community's existence.

 

6million views of answered questions

 

That's due in large part to two things:  

1. When community members remember to click "mark correct" on replies to their questions.  Sure, they could just read replies that pop into their email. But taking the time to return and mark an answer correct is so helpful for other community members.  Read more on that here: Remember To "Mark Correct" 

 

2. The efforts of the Blue Ribbon Group members of this community. They VOLUNTEER their time to help out trhe community by answering a lot of questions and by marking answers that they know are correct. It's a big help to everyone. Thank you, Blue Ribbon Group!

 

 

To learn more about how to get the most out of the community, including using search, finding your way around and earning points, check out the following posts:

 

Get Involved in the Nintex Community

Making the Most of Community Features

Quick Tip: Get the Most From Your Newsfeed

New Look To Connect!  More Bling For Your Blog!

One central function of a community is to provide useful information for others to resolve their own questions.  In Nintex Connect, a lot of people come seeking answers to questions they have about Nintex Products.  To be a helpful community member,  remember to click "mark correct" on replies to your questions when you get them.

 

What difference does it make? 

 

A lot.  Allow me to peel back the curtain a bit...

 

For starters, marking an answer correct helps that questions show up higher in search results.  That's right, a question with an accepted answer gets treated with greater value in the search algorithm in the community and shows up higher in search results.  

Take a look:

search results

 

Not even Google gives you that value.  Here's the same search from Google. Sure, it tells you there's community content, but it doesn't tell you what's the most valuable content!

search results w google only

 

Which is why I ALWAYS recommend that after you land in the community, use the search function for your question and see what results pop up. Chances are someone else has asked/answered a similar question, and you could find the info you seek.

 

And then in a visual cue, marking a correct answer changes the blue question icon to a green checkmark.  That is a quick, easy way to see at a glance that there's a correct answer!  See:

correct answer pic

 

So, even though it's convenient to read an email from the community, see a suggestion to try and then go about your business, please take a moment to click the link to the discussion and mark an answer correct if you find one.

 

Thanks!

For those of us who tried or in the process of evaluating integrating Nintex Workflow Cloud into your solution(s), eventually you will get to the question "Why should I integrate Nintex Workflow Cloud?" especially if you code your solution from scratch using platform such as .NET or Java, writing code will be the default way to support any business logic or process(es) of the solution you are building with such platform. Here is my two cents worth for that question.

 

Before we get into discussing why, let us get few more examples here. Take another solution platform for the same question - Sharepoint, which is considered as COTS (i.e. commercial out of the box solution) for intranet/collaboration portal. We do not expect lot of coding or customization, by default Sharepoint supports document management with its content type of Document Library, supports creating of custom records using Custom List, when come to automating a document or record created in Sharepoint, it is not going to be easy especially we expected it to be COTS, Nintex Workflow is just the right fit to complement the weaknesses making process automation possible on Sharepoint.

 

So now the question is when you create your solution from scratch using platform such as .NET or Java, by default you will code everything yourself and it would be much flexible and powerful to you when come to coding. Similar to if you are using Mendix for instance for your solution, it has what it called Micro-flow to support logic behind defined objects, events, etc. in Mendix solutions, why would I consider to integrate Nintex Workflow Cloud since the platform itself supports business logic?

 

Reasons to integrate Nintex Workflow Cloud to your solution(s)

Take Nintex Workflow Cloud to replace some of the building block of your .NET or Java solution, helps your saving efforts on reinventing the wheels. The building blocks of a custom built solution usually consists of different modules/blocks to handle different function groups, for examples there will be modules such as:

  • Security/Login module
  • User Management
  • UI (Portal Pages, Forms, Views, etc.)
  • Report Management
  • Business Process/Workflows
  • Document Generation/Processing
  • Electronic Signature

e.g: Solution Architecture Diagram of a custom developed solution

 

1. Workflow Module

In a solution architecture of a custom developed application/solution, we often modularized it into different module/design blocks. Some of the benefits of modular design is that modules could be reused in another solution, some of the modules could be puzzled with ready to go solution(s). The above example of a solution architecture diagram illustrates a need to include a Workflow engine, which should be handled by a ready to go solution such as Nintex Workflow Cloud, which makes a lot more sense than having to develop all the workflow functionality and management from scratch.

  

2. Document Generation

The above scenario tells us that we will need to build all these modules, of course if you have done one before you could re-use it, if not you will need to spend tremendous effort to write one. Nintex Workflow Cloud comes with some niche and unique features such as Document Generation. Automated document processes are common in today's business processes, majority of the solution requires the creation of document manually using a word template for instance, these processes could be improved by Document Generation features of Nintex Workflow Cloud. If document creation to be automated, one will find it challenging as there ain't many options of API to do that. It become more challenging if one will need to keep the solution up to date with never ending evolving technology of document API. This is a good scenario and good opportunity to pass the job to Nintex Workflow Cloud. The automation of document generation could be passed to Nintex Workflow Cloud,  once it's done, it saves the generated document to a specified shared drive where the initiation program could pick that up from there.

 

3. System Integration

One of the strength by Nintex Workflow Cloud is the capability and rich set of connectors and actions supporting integration with other systems. Further more, with the compliance to the Swagger standard, it is easy to extend to include connectors to other system that was not already included as part of the default connectors. Capability to integrate with external system is always one of the huge area in a solution, and it usually requires huge effort to build and manage, leveraging that as part of the Nintex Workflow Cloud not just saves the effort to build one, but also provides the flexibility when come to extending of connectors to other systems.

 

Again, these are just my two cents worth for the question by providing just few examples here. I believe there are many more reasons to explore, such as Public Web Form? if your solution is an Intranet based deployment, most of the time you are not going to expose your so called Intranet solution to the public facing internet, leveraging the Nintex Workflow Cloud's Anonymous web form could a a quick solution to the requirements.

 

The concept of modular design with integration of Nintex Workflow Cloud as the required Workflow module is not just saving you the effort to creating one from scratch, it helps when you left the solution to a customer after you done the development project, clears off hassles for your customers to maintain or troubleshoot the workflow module. IT platforms are being patched and updated at a fast pace today, patches and updates introduces huge bandwidth of maintenance. Getting Nintex Workflow Cloud to handle some of these functionality minimizes the risk and needs to continue maintaining the code. 

In Part 1 we explored the new Nintex SharePoint Connectors for our Domestic Animal Registration example and successfully published a Public Web Form and added our responses to SharePoint Online which triggered an internal review and approval process. 

 

Part 2 is all about our backend process to save our users even more time and effort. Remember those paper / email received forms our Chris City Council workers received. Well once they've approved them internally they need to update a central CRM (Salesforce) by adding the record. They either do this by typing directly from that paper form or copy and pasting from the email received PDF. We also need to inform the member of the public that submitted the form and provide them with a Proof of Registration which is a council generated document that we also do manually. So let's get started.

 

I'm going to create a backend process workflow in Nintex Workflow Cloud with the Start event of External start. This is going to allow me to initiate this workflow via my Office 365 internal process. It's a lot easier to connect directly to the number of SaaS application that I'm working with here as opposed to within my Office 365 tenant (however, Nintex does offer Salesforce and Dynamics CRM connectors as part of the Office 365 product). I've also replicated the variables from part 1 so I can reuse the same info throughout the process.

 

I'm going to introduce a little smarts here in case I was processing this on batch using Nintex Workflow Cloud Scheduled Start (for purposes of demos I want this to kick off as an entire process but some organisations might want this to be batch). So I'll make sure that only those items in my list that have gone through the Approval process are picked up for processing using the SharePoint Online Query a list action and because this may be a number of items greater than 1 I'll need a Collection variable declared to iterate through.

 

The next group of actions I need to do are all related to whether an Application has been marked as Approved. I need the process to - 

  • Retrieve application details
  • Generate a unique certificate number
  • Generate a document and store in an electronic file share ( e.g. Box, Dropbox, OneDrive, Google Drive)
  • Create a Salesforce record
  • Contact application via SMS and email certificate
  • Update my SharePoint Online item to Completed

 

For Each 'Approved' application let's retrieve those details from SharePoint Online and Generate a Certificate Number.

 

Now we need to Generate that Certificate. It's my pleasure to introduce you to Nintex Workflow Cloud Document Generation. Platform agnostic cloud Document Generation complete with Nintex Document Tagger capabilities. Essentially the Nintex Document Tagger is opening up all the workflow and item property references that I can merge into my cloud stored document at execute. Really clever stuff. I just copy the variable tag I want and paste it into the template. And the awesome news, Document Generation is now General Availability!

 

OK, unique document generated, simples. Next we need to put this into our structured data repository, Salesforce CRM. Could equally be Dynamics CRM as Nintex have connectors for that. I've created a custom object in Salesforce for my Domestic Animal reg records so we can even find that via our Salesforce connectors. 

 

We want to be able to attach that generated document to an email for our applications records and we need to check back in with SharePoint Online to update the status of the application now that everything is 'Completed'.

 

 

Not long to go. I just need to let me application know that they're animal has been registered with the council and to provide them the certificate of registration. With such a heavy reliance on mobile phones and the instant notification, what we'll do is SMS a note to say the animal has been registered using Twilio, and we'll email the certificate to the applicant.

 

My very last stage is to publish this workflow, grab that External Start URL so I can initiate it from my Office 365 SharePoint Online Nintex Workflow and then we're done.

 

 

Just to recap, parts 1& 2 we've covered a considerable amount of Nintex Workflow Cloud functionality to fully digitize my Chris City Council external application process - 

  • Public Anonymous Forms
  • Create an Item in Office 365 SharePoint Online
  • Initiate a Nintex Workflow Cloud workflow from Office 365 SharePoint Online
  • Referenced that Office 365 SharePoint Online list
  • Generated a document from a cloud stored template with my item data and sent that to our applicant
  • Created a Salesforce record for a custom object
  • Sent SMS and email confirmation
  • Updated an item in an Office 365 SharePoint Online list

 

Workflows do fail. External forces or unforeseen conflicts arise and force us into troubleshooting mode. Deciphering the root cause of the workflow errors can be time-consuming. When it comes to delivering materials to a support team such as Nintex Support we want the most accurate information possible and we want to get it out the door quickly.

 

To better respond to my clients needs for rapid workflow error remediation, I've come up with a PowerShell script which will process the ULS logs of an on-premises SharePoint farm, locate Nintex Workflow-specific correlation tokens, and output the series of ULS logs directly aligned to all workflow instances over the given time period, all automatically, with minimal input from you, the SharePoint/Nintex administrator.  Have a look!

 

Usage

 

Usage:

To output one ULS log file for every Nintex Workflow instance reported in the trace log by SharePoint over a given period of time.

 

Requires:

SharePoint Management Shell/SharePoint PowerShell cmdlets.

 

Parameters:

  1. StartTime - passed to Merge-SPLogFile to identify the start date and time to start searching
  2. EndTime - passed to Merge-SPLogFile to identify the end date and time to end the search
  3. Version - the Nintex Workflow version number which is logged by SharePoint in the trace log
  4. OutputFolder - where you want the ULS log files saved

 

Output:

  1. NWTokens-[Guid].txt: all Nintex Workflow events which occur between StartTime and EndTime
  2. NWTrace-[Guid].txt: one for each Nintex Workflow instance that appears in the trace log

 

PowerShell Script

 

Param (
    [Parameter(Mandatory=$true)][string]$StartTime,
    [Parameter(Mandatory=$true)][string]$EndTime,
    [Parameter(Mandatory=$true)][ValidateSet("2010","2013","2016")][string]$Version,
    [Parameter(Mandatory=$true)][string]$OutputFolder
)
Write-Host "Locating Nintex Workflow $Version instances between $StartTime and $EndTime"
$guid = [System.Guid]::NewGuid()
$guidString = $guid.ToString()
$path = "$OutputFolder\NWTokens-$guidString.txt"
Merge-SPLogFile -StartTime $StartTime -EndTime $EndTime -Area "Nintex Workflow $Version" -Path $path
$content = Get-Content $path
if($content -eq $null) {
    Write-Host "No Nintex Workflow $Version records found in the ULS logs"
} else {
    $counter = 1
    $table = @{}
    do {
        $token = $content[$counter].Substring($content[$counter].Length - 36)
        if([System.String]::IsNullOrEmpty($token) -ne $true) {
            if($table.ContainsKey($token) -ne $true) {
                $table.Add($token,$token)
            }
        }
        $counter = $counter + 1
    } while( $counter -lt $content.Length )
    foreach( $token in $table.Keys ) {
        Write-Host "Exporting Nintex Workflow $Version Log for Correlation: $token"
        $tpath = "$OutputFolder\NWTrace-$token.txt"
        Merge-SPLogFile -StartTime $StartTime -EndTime $EndTime -Correlation $token -Path $tpath
    }
}

 

This is a Rev.1 and as such could be greatly improved. Comments/suggestions welcome!

Only recently have I started using the "Document Generation" action instead of "Update Word Document" action.

 

 

 

 

I didn't realize what I had been missing out on. Suddenly, we can insert tables and images easily, as long as we have our populated variables and templates set-up correctly. And the photos can be auto-resized! AND CAPTIONED! Craziness. This is going to save coworkers a LOT of time!

 

I've taken care of the latter part (the template) for you, and it's attached to this post. The rest of this blog will teach you how to put it into use!

 

Let's focus on the idea of having an inspector out in the field, taking photos, and writing captions using a repeating section, all via Nintex Mobile - maybe on an iPad. I'll walk you through how we bring those pieces together, and if you need more detail on anything, there's a "further reading" section at the bottom.

 

 

Things of Note: 

 

 

  • Doc Gen allows 10 images per docx template
  • Doc Gen is subscription based - if you are on prem you may need to have it activated; if you are on O365 it should be there (I believe with 50 trial Doc Gens but I am not sure)
  • Resizing images requires placeholders - which is why this is offered in a template
  • This article will not cover how to build the images & captions template itself - but - that will be in a future post!
  • This article will also not cover how to deal with an unknown amount of pages - but - also, another future post. Probably part of the same one, actually. Who knows!

 

 

 

 

Before the Workflow

 

Before jumping right in, you'll need to do a bit of preparation: 

 

  • Download the template attached here and upload it into your SharePoint site
  • Download the placeholder0.jpg image and upload it into your SharePoint site
  • Set-up an image library for your photos to go into, and ensure that you have a column for a unique Form ID

 

 

 

 

Create The Workflow

 

Our workflow will have 4 main elements:

 

  1. Send the image attachments to a library;
  2. Go through the image URLs;
  3. Go through the captions;
  4. Build the document via DocGen

 

1 - Sending the Image Attachments to a Library

 

  • Use "Copy to SharePoint" action
  • Ensure that you have "Copy Item Metadata" checked
  • Select your image library as the place to copy to

 

 

2 - Going Through the Image URLs

 

  • Set up 10 single line of text variables called Image1, Image2, etc, all the way up to Image10 - however - ensure also that you set the "default value" to the URL of placeholder0.jpg (from our Before the Workflow steps.) If you don't the workflow will error!
  • Set up 1 single line of text variable called Image0 - this is just where we'll move the URLs to & from
  • Set up 1 collection variable for your image URLs
  • Set up 1 num variable for your Index

 

  • Use the "Query List" action and point it to your Photo library - filter by the unique Form ID, sort by ID, and drop the "Encoded Absolute URL" field into your collection

 

 

  • Now that we have our collection, it's time to party! Initialize your Index by setting it to 1 using the "Set Variable" action
  • Create a "For Each" action and set it as follows:
    • Target Collection: Image URLS collection
    • Store Result In: Image0 variable
  • Create a "Switch" action and base it on the Index variable you created. Create a branch for 1 through 10, and an "Other"
  • In each branch, use a "Set Variable" action to set the appropriate numbered variable (ie, Image3 in path 3). Image0 will carry the data we need in each path. The action should read: Image2 is equal to Workflow Data: Image0
  • Use a "Calculate" action to add 1 to the index variable.

 

 

 

3 - Go Through the Captions

 

This is basically the same as the Image URLs bit, with one main difference... we're dealing with a repeating section now!

 

  • Create multi line text variables for Cap1 - Cap10.
  • Create 1 multi line text variable called Cap0 (this will be our holding variable)
  • Create 1 num variable to store a count of the items (the children) in the repeating section
  • Re-initialize your num Indexing variable (from before) to 1
  • Use the Repeating Sections UDA to get captions from the repeating section of your form. (Detailed articles on this topic at the bottom of this post.) Be sure to get your caption children into the count variable!
  • Create a "Loop" action and configure it as follows:

     

     

  • Add a "Query XML" action and Query your repeating section data (from the UDA)
  • Use //Items/Item[{WorkflowVariable:numIndex}]/NameOfYourCaptionEntryField to get items from your data, and, store it in Cap0
  • Again, just as before, use a switch with paths 1 - 10 and "Other", then set each unique caption variable with the "Cap0" data being passed through.
  • Use the "Calculate" action to add 1 to the Index after each pass

 

4 - Build the Document via Doc Gen

 

  • Add the Document Generation action to your workflow
  • Choose the Generation Type of "Original File Types"
  • Click on "Add Document Template" and browse to the template you uploaded earlier
  • Use a workflow data variable for your Output File Name - I suggest using the FormID!
  • Choose an Output location for your document to go to.

 

Since the template I created for you is already tagged with Cap1 - Cap10 and Image1 - Image10, you don't need ( i think ) to make any changes to see it work with your own form attachments.  ....You probably will want to remove my logos though  

 

Save & Publish!

 

 

 

Congratulations, you now have a tidy little document with 2 resized pictures per page alongside their captions.  This simple workflow could save your colleagues up to 30 minutes per document generated. Check it out!

 

 

Further Reading

That was basically the need of my customer who is heavily working with php and he wants to automate some stuff integrating some online services (including O365...and because now the Sharepoint Online connector is available, it opens a wide new range of capabilities!)

 

Of course, you can kick an external start workflow from anywhere, any language, any platform, there is no problem with that, but maybe the syntax may not be obvious to everyone on any language.

 

php... mmm it's been years I hadn't done any code in php . but it's like cycling, you never forget !

 

You don't need any specifi libraries, like zend or Curl. You can do that with native php.

After a few tries...I got there.

So, here is how you call an NWC external start workflow, from any PHP page.

 


<?php
$url = 'https://YOUR-EXTERNAL-START-URL-GOES-HERE';

 

$data = array(
"se_param1"=> "I LOVE THE PALESA'S HIP HOP FLOW",
"se_param2"=> "I said a hip hop the hippie the hippie to the hip hip hop, a you dont stop");

$dataOpt = array(
"callbackUrl"=> "https://wwww.XXXX.fr");

 

$masterData= array(
"startData"=> $data,
"options"=> $dataOpt);

 

$options = array('http' => array(
'method' => 'POST',
'header' => "Content-Type: application/json",
'content' => json_encode($masterData)
));

$context = stream_context_create($options);
$result = file_get_contents($url.$token, false, $context);
?>

 

AND MAGIC HAPPENS... Your NWC workflow will start...

Over the past few weeks I've had the question come up and whilst not a complicated process and there is information available in the Help . I thought I'd quickly put together a blog post that goes through the process of connecting your On-Prem SharePoint environment up to Nintex Hawkeye for the first time.

 

This post assumes you already have your Nintex Hawkeye tenant provisioned, whether that is a trial or part of your subscription. If you need to get a trial head to Try Nintex for 30 Days - Free! 

  1. Firstly log into Nintex Hawkeye and navigate to the "Nintex data sources". 
    1. Select "Add Nintex data source" - My this post I'm going to add a SharePoint 2013 source
  2. Download the installer package and if you aren't on the SharePoint server, copy it there. The installer needs to be installed on it. 
  3. Extract the Zip file. in there will be 3 files. 
    1. Deployment Guide
    2. Uninstall Script
    3. Executable
  4. Run the executable (Note, if you already have the Nintex Hawkeye collector installed, you can just run the installer and it will update the already installed version. 
  5. The installer will ask for your token and discovery url. You only should need to provide the token. This token needs to be copied form the Nintex Hawkeye Portal (as you can see above)
  6. Once filled in, select next. It will prompt for an IIS reset, which you can choose to do then or later. 
  7. Assuming you let it reset IIS, it will then finish off the installer and open Central admin
  8. Click on the "Nintex Hawkeye Management" link in the menu 
  9. Click Manage database and on the Manage Database page, specify the required database settings, and click Create.
  10. In Central Administration, click "Application Management", and then "Manage services" on server under "Service Applications".In the Services column, locate the "Nintex Hawkeye Service", and click Start.

  11. In Nintex Hawkeye, click Nintex data sources on the navigation bar. You should now see your environment being displayed with a "Authorize" button. Click the Authorize button to connect the data source.

  12. Activate on the Web apps you wish to collect data from. This particular feature is to activate the Nintex Hawkeye Beacons that allow you to collect specific data within your process. But we will talk about that in a whole other post. 
  13. In Central Administration, select System Settings, Manage Farm Features. Locate the Nintex Hawkeye feature and click Activate.

  14.  

    Lastly, activate the "Nintex Hawkeye custom workflow actions" This needs to be done on the relevant web apps. Reference this link for instructions

 

And that's it. In your Nintex Hawkeye tenant now if you take a look at the "Activity Log" in the top menu you will see the status of the  data import

 

You are now ready to start creating your Lenses. But we will leave that for another post.. 

 

If you haven't already signed up for the webinar on Wednesday, June 14 10:00– 10: 45 am PST  that will go into a little more detail, head to Become a Nintex Ninja 

 

Until next time  

Since the launch of our Nintex Product Feedback Site a few years back, you—our amazing community of customers and partners—have shared lots of ideas and feedback on ways we can make our products and services even more effective in solving your workflow automation needs.

 

On behalf of our product teams, I’d like to thank you for both your passion and commitment to the Nintex Workflow Platform.

 

It’s truly appreciated.

 

However, (and, we'll be the first to admit it) we haven't necessarily done our best in letting you know what we're doing with these suggestions.

 

That’s all about to change.

 

WHAT WE'RE DOING:

As of June 1st, we've officially kicked off a revamp of our Nintex Product Feedback site. The goal is simple: make your experience better by being more transparent about what's happening with your suggestions.

 

First, we've consolidated the number of forums or places you can submit feedback. Instead of about 20, you'll find nine forums. These new forums are based on product, which addresses the feedback we had around “where should I post this idea?”

 

Old Feedback ForumNew Feedback Forum
old feedbackforumnew user voice

 

Next, we’ve updated the suggestion categories across these forums. That way, if you have an idea for more than one product, or you want to vote for one type of idea, you'll know exactly where to post it with less hunting around.

 

 

categoriesuservoice

 

WHAT TO EXPECT NEXT:

 

 

Our product managers have already started going through existing suggestions to make sure they have a current and accurate status. It won't happen all at once; they'll start with the most popular suggestions and go from there.

 

Along the same vein, you’ll see us start to merge duplicate ideas. That will make it easier for you to search and see if your idea has already been submitted (and, can give an upvote).

 

Pro Tip: We always recommend using the forum search to help you find the same or similar ideas to vote on, before submitting a net new idea or piece of feedback.

 

We remain committed to keeping these feedback forums active and current. It’s one of our best channels for connecting with you. While not every submitted idea, suggestion, or bit of feedback will result in changes to your product experience, each of these are a pathway for talking about your use cases, needs, and feature requests.

 

And, we wanna hear 'em!

 

So, if you have a feature suggestion, idea, stroke of brilliance, or even just something that has you scratching your head, let us know.

 

We look forward to it.

How to get Task Comments and more in Nintex Workflow for 365.

 

This is the first in a series of blogs that will describe useful building blocks for many automation applications. The final blog will pull these all together in a simple but illustrative example.

 

Introduction:

In SharePoint online the “Start a task process” is the action that allows assigning a task to multiple assignees. Task IDs are not available from the SharePoint online task engine for the “Start a Task Process” action. As a result Nintex “Start a Task Process” does not provide the facility for capturing task IDs. It simply returns the outcome of the task, with no information as to how that outcome was derived (who selected one outcome and with what comments etc.).

It is therefore not obvious how one can capture the task information, a need expressed by many Nintex customers.

Many users wish to capture the respondent’s comments, confirm who responded and when. All this can be done.

 

Problem statement:

Each run (instance) of the workflow will write its tasks to the same task list. Also task lists can be used by for more than one workflow design and therefore all tasks generated by those workflows are written to that task list as well. The problem is to identify which task items correspond to which instance of a workflow and also to which task action within that workflow (if there is more than one task action in the workflow design).

This problem can be further broken down into two parts:

  1. Identify all task list items that belong to the workflow instance (run).
  2. Of these, identify which ones correspond to which task action in the workflow design?

What we need is an identifier that makes the above distinctions. If we had this, then we could simply query the task list (using this identifier in the query).

 

Solution:

The 365 platform provides us with a globally unique identifier (GUID) for each workflow instance. This fits with sub-problem 1. above, the workflow GUID uniquely identifies the workflow instance. We can capture this and store it in a workflow variable (e.g. WfInstGuid) using the Nintex “Set Workflow Variable” action.

  • Variable [WfInstGuid] Value Equals [Workflow Context] [Instance ID]

 

It is up to the designer to give a name to a task action, so if we use a different name for each task action within the workflow we solve sub-problem 2.

Combining these two gives us a unique task identifier that identifies the task list items (tasks) that belong to the workflow instance and the task action of interest. What remains is to inject this into the task list item so we can query against it.

The “Start a task process” action provides two avenues for writing it to the task item, namely the task title or the task description. Either will work for our needs. I have used the task title in the example workflow.

In summary.

  • Capture the workflow instance ID using a “Set workflow variable” action – e.g. into [WfInstID].
  • Assign a distinct name (distinct in the workflow that is) to the task action. Store this in a variable using a “Set workflow variable”– e.g. into [TaskName1]
  • Combine the two (concatenate) and store into a third workflow variable – e.g. into [TaskName1ID] – the unique identifier.
  • When configuring the “Start a task process” action set the task Title to this unique identifier – e.g. [TaskName1ID].
    • Note: if you still want a descriptive Task Title then append the unique identifier to the end of your Task Title.

 

When the workflow runs the “Start a Task Process” action it will create tasks with the value stored in [TaskName1ID] included in the task name in the task list. This now identifies all tasks that belong to that workflow instance and that task action.

 

Querying the task list.

The task list is a list in SP online that can be queried using the “Query List” action. In our case, we have set up the Task name column as the column that contains the query criterion to extract the tasks (task list items) that we need. In the query, we can return any of the columns in the task list of interest e.g. Assigned to, Modified By, Comments, Completed, Due date, Outcome etc.

The Query criterion is then

  • Task Name contains {Variable:TaskName1ID} and
  • Task Status is not equal to Not Started (we only want those tasks that have been completed).
  • “Query List” returns the values for all task list items that meet the criteria, into a collection variable. This makes it easy to process the returned results in a “For each” loop.

Conclusion:

This strategy allows the workflow designer to access all the information on the task list for a workflow instance (run) and the desired task action within the workflow.

This allows a rich set of functionality that the designer can provide in the workflow design e.g.

  • Capturing comments
  • Who replied with what response?
  • The task due date verses actual date for reporting
  • Status of task responses after or before task completion (before task completion requires some additional design solutions – to be covered in a future blog)
  • Capturing audit information or reporting, management control or formal audit and record needs.
  • Detecting non-compliance i.e. if the person who completed the task was not the person who it was assigned to.

 

Word of caution: Although one can query for the Task ID using this method, writing to the Task list, e.g. to update a task, may not prove to be reliable. The workflow engine may lock the record for its processing that could cause writing to the list to fail and possibly the workflow to terminate.  This is because the SharePoint task engine is orchestrating task list updates and will lock the list item at any time. Any attempt you make to write to the task list may sometimes work and sometimes fail, depending on timing of competing task list updates from the SharePoint task engine.

 

Attached is a workflow.nwp file that illustrates the above pattern.

 

Explaining the workflow:

The example workflow is an overly simplistic expense approval for the purpose of just illustrating the querying of a task list to get details of the task respondents’ decisions and comments.

 

This first section is initiating workflow variables and updating the status of the workflow on the list. The second action is where we capture the workflow instance ID (GUID), and the third action where we assign a unique task name.

 

 

The next step is to create the task using the Start a task process” action. Start a task process assigns tasks to multiple respondents and tracks their responses to their tasks. When sufficient respondents have replied as to give an outcome (as specified in the task settings) then it will proceed down the respective outcome branch. In our configuration of the task we specify the task name as our variable that contains our unique task name and workflow instance ID. So all responses to this task in the same instance of the workflow execution will contain this unique task name. 

In this simplified example the task outcome is stored into a variable to write back to the original list item.

This task makes use of the Nintex task form for the respondents to fill in their task responses.

  

The next step is to query the task list, after the task action has completed. This is where we use our carefully constructed task title to select only those tasks in the task list that are from this workflow instance and task.

   

Also in the Query action we now store each task list column that we want into a collection variable.

Having captured the information we want for the task, the workflow now processes the collections in a For-each loop and builds up a multiline text field that records the respondents and their decision and comments. It updates the list item that is the subject of this workflow using an Update list action. And finally the outcome for the whole task is written back to the list item.

 

In this way any information that is included in the Task List is made available for presenting to users, capturing for records and management or audit review. Check all the task list columns (not just those that are displayed by the default view) for any information that you would find useful for your application.

 

Hint: for performance you may wish to create a dedicated Task list for this workflow. This will maintain query performance.

Now how can I just say that without giving you a perfectly good reason as to why ?? 

 

To explain how and why Nintex Mobile just got a little smarter, let me take a few steps backwards and explain how it worked in the past in very basic terms. 

 

When Nintex Mobile establishes a valid Internet connection, it would immediately submit any queued forms/tasks. This method was problematic however, as VPNs act in a similar way, where a valid internet connection needs to be established first and then the VPN could establish itself..  This became quite evident with customers who were regularly working with the offline capabilities of Nintex Mobile. Whether the forms were being submitted deep in a mine shaft, or in a "no cell / wifi" restricted area. When the user was back in area where they could get signal there could exist a moment when the Internet was up and for a second or so and the VPN was not. If Nintex Mobile submitted the forms / tasks before the VPN they would fall into error, due to the VPN not being established.. 

 

Now regardless of whether you are in the mining, military, aviation, health or any other industry that relies on offline data submission. Improving on the offline capabilities continues to be one of the most requested and sought out features of Nintex Mobile. With this is mind, we have made some improvements to the connection algorithm in the latest version of Nintex Mobile. We have called these improvements, Smart Connect. Smart Connect will now verify that the VPN is up before allowing Nintex Mobile to submit any forms / tasks back to the end point whether that is SharePoint, SharePoint Online or Nintex Workflow Cloud.

 

If you haven't tried out Nintex Mobile yet, get to your relevant mobile device store or try out the Windows 8 Desktop version

Mobile Workflow and Forms - Nintex  

 

Until next time  

Yo yo, greetings everyone!

 

What if you got a requirement to Start a Task Process for a Group of users in Parallel (all at once),from a matrix containing the structure of your users as well as what they should/can approve.

 

Sounds pretty simple right? But with Nintex Workflow for Office 365 you get the following Task Actions and each of them have specific functionality:

 

 

1. Start a Task Process which is aimed towards Assigning a task to a group of Users, and allows workflow designers to specify task assignment criteria(Assign tasks all at once or in serial) as well as completion criteria (Wait for all responses, Wait for first response, Wait for specific response or Wait for percentage of a response). You may read up more on this action here

2. Assign a Task which is aimed at assigning a task at an individual User. You may read up more on this action here

 

So to cater for the scenario above (involving a list we could be using as a matrix to help us determine who our approvers are and so forth) I've come up with the following approach:

 

#Step (Workflow Action)Description
1Query List

Query your list containing your list of approvers and store the result/outcome in a collection variable called collApprovers

 

Note: Remember that by using the Query List you're able to perform some filters and so forth

2Set Workflow Variable
Set a text workflow variable called (ApproverEmailAddresses) to the result returned in step 1. (i.e. the value of collApprovers)
3Regular Expression

Take the variable in step 2 (ApproverEmailAddresses) and perform a regular expression to remove the following characters:

[

]

\

"

 

By performing a replace string operation with an empty text. Store your output in ApproverEmailAddresses.

 

Note: The pattern you will use to find these characters is \[|]|"

 

 

4Regular Expression

Perform another Regular expression on ApproverEmailAddresses to replace the , (commas) with ;  (semi-colons) and store this again in ApproverEmailAddresses

 

5Start a task process
Insert a Start Task Process Nintex Workflow Action and insert ApproverEmailAddresses in the Participants field and configure the Assignment Behaviour to Parallel (All at once)

 

 

Note: The Start a task process will automatically resolve the participants and assign the task to them accordingly

 

And that's it!

 

Hope this helps someone out there, cheers