Getting Started: Setting Up Nintex RPA Chrome Extension

Continuing the conversation from last time where we discussed Setting Up Nintex RPA, we will dive into another piece that may be helpful as you build out automation using Nintex RPA. This next topic of the series will cover how to install the Nintex RPA Chrome Extension, which allows you to target objects inside of Chromium-based browsers.

Installing Nintex RPA Chrome Extension

We can add the extension to both Google Chrome and Microsoft Edge if desired. First, let’s take add it to Google Chrome.

  • Launch Google Chrome and navigate to https://www.nintex.com/chrome.
  • From here, click on “Add to Chrome”.
  • You may be prompted with a pop-up, if so, simply click “Add extension”.

Now let’s add it to Microsoft Edge.

  • Start by launching Microsoft Edge
  • Click on the ellipsis in the upper right corner and then click on Extensions.
  • You will then click on Chrome Web Store to be redirected to the Chrome Web Store.
Advertisements
Advertisements
  • Click on “Allow extensions from other stores” in the banner at the top of the screen.
  • Click “Allow” to confirm your selection.
  • Navigate to https://www.nintex.com/chrome.
  • From here, click on “Add to Chrome”. Yes it says add to Chrome even in Microsoft Edge.
  • You may be prompted with a pop-up, if so, simply click “Add extension”.
Advertisements
Advertisements

Nintex RPA Extension Requirements

In order to ensure the extension works properly, there are a few things to consider and ensure are set before execution. Here is a list of requirements

  • Nintex RPA version 16.5.5 or higher.
  • Google Chrome Version 75 or higher.
  • Microsoft Edge Version 83 or higher.
  • Browser zoom set to 100%
  • Windows Display Scale and layout set to 100%
  • Windows Display Make text bigger set to 100%

For more details on Nintex RPA Chrome Extension, be sure to check out the Nintex Help files.

Getting Started: Setting Up Nintex RPA

Robotic Process Automation has been around for the better part of the last 20 years, but has really taken off and gained more attention in recent years. There are a lot of solutions out there for just about every possible need or business use case, however how do you decide what to go with or how much effort is involved in getting something built? I am not going to go into detail around all of the various options out there, however I do want to highlight how easy it is to get up and running with Nintex RPA. In this series I will be discussing how to setup everything from Nintex RPA Central to the Nintex Gateway, as well as providing steps on building out your first Nintex RPA Botflow, and then ultimately expanding the process to allow data to pass from Nintex Workflow Cloud to Nintex RPA through the Nintex Gateway. There is a lot to cover, so let’s dive in!

One thing to note before going to far, if you are looking for up-to-date information or latest release notes, please go to https://help.nintex.com/en-US/rpa/.

What You Need

In order to get started, you will need to following pieces as you follow along:

  1. Valid License Key – If needed, you can get a trial at https://www.nintex.com/trial/#rpa
  2. Latest Version of Nintex RPA Central and Nintex RPA Bot – These can be found in the Nintex Customer Portal or on the Product Release Notes Page in the Help Files.

We will get to the Nintex Gateway and Chrome Extension a bit later, but for now, this is all you need to get started.

Installing Nintex RPA Central

First, we need to start with Nintex RPA Central in order to activate the license and set the stage for Nintex RPA Bot. Log onto the computer where you wish to deploy Nintex RPA Central with an account that has local administrator rights. Keep this account handy as it will be setup as the administrator for RPA Central and will need to be used when activating the license. Launch the installer and select where you wish to install, then click install. Simple really. Nintex RPA Central does install Microsoft SQL Server 2017 Express along with .NET Core Runtime.

Once RPA Central is installed, you can enter your license key. If RPA Central does not launch automatically, you can manually start it from the Start Menu or from the Desktop shortcut. You should be presented with this screen:

Here is where you want to paste your license key and click submit to activate your license. Again, be sure that the user that is logged in, is the administrator account that installed Nintex RPA Central. Another thing to be aware of is that Nintex RPA Central will communicate with its servers to validate the key. This means that the machine will need to be able to communicate out and it will not be blocked. For a list of endpoints, please check out Nintex RPA help documentation for update details.

Advertisements
Advertisements

Now that Nintex RPA Central is activated, you can assign it to a URL, add a port number, and select a security certificate. To do this, click on Settings in the top navigation bar and then License and Subscription side navigation menu. Click on the ellipsis next to the Nintex RPA Central URL (defaulted to http://localhost).

From here, you can set the hosted URL, add a port, and select your security certificate. When updating the URL, keep the new URL handy as it will be needed to connect Nintex RPA Bot to Nintex RPA Central. For more details, check out Nintex Help files.

Install Nintex RPA Bot

If you do not have Nintex RPA Bot already downloaded, you can go to the Dashboard within Nintex RPA Central and click on the Bots side navigation menu.

Click on Add Nintex Bot in the upper right corner and then the blue Nintex Bot button to download it. Once downloaded, click to run the installer.

When installing Nintex RPA Bot, you can update the directory where it is installed. Also, .NET Framework and MS Access Database Engine 2016 will be deployed during installation. For more details, check out the Product Release Notes. Once installed, Nintex RPA Bot will start and you will need to provide the URL for your installation of Nintex RPA Central. This can be done by clicking the gear in the bottom right corner of Nintex RPA Bot. Simply give your bot a name and provide the URL to Nintex RPA Central and click Request Access.

Advertisements
Advertisements

Back in Nintex RPA Central, click on the Bots side navigation menu to see your list of bots within your environment. Find your newly requested bot and click on the ellipsis for that machine to grant access. That’s it! You can now start building automation with Nintex RPA.

Final Thoughts

Installing Nintex RPA Central and Nintex RPA Bot is straightforward but there are a few things to be aware of while setting everything up. Here is a quick list of common things that I see a lot and you should be aware of:

Save and Continue Your Nintex Workflow Cloud Forms

This feature has been asked for countless times and for good reason. There are times when a form is too long or you need to gather other data to provide within the form, and need the ability to save it in it’s current state and come back to it later. Well, now you can do exactly that with minimal effort. Let’s take a look at how to set this feature up and where your saved forms go.

Setting Up Save and Continue

First and foremost, you will need to have your Nintex Workflow Cloud workflow have a start event set to a form. You can also set the form to only be accessible by authenticated users or anyone with the URL. Keep in mind that if a user wants to take advantage of the Save and Continue feature, they will need to be an authenticated user (more on that below). The form, however, does not need to be set to authenticated users in the tenant. This means that an anonymous user cannot save the form. The reason for this is because saved forms will appear in the My Nintex tab within the Nintex Workflow Cloud tenant, which the user will have to have access to in order to complete and submit the form.

Enabling Save and Continue

In your form where you want to enable the Save and Continue feature, click on the action panel where the submit button is located.

Advertisements
Advertisements

This will open up the action panel settings and allow you to toggle Save and Continue for this particular form. That’s it!

My Nintex Tab

Setting up Save and Continue for Nintex Workflow Cloud forms is not difficult, but where do the save forms go? This is where the My Nintex tab within Nintex Workflow Cloud comes in. Once you have a form filled out and wish to save it for a later time, click the Save and Continue button. This will save the form, but not close it.

Advertisements
Advertisements

In order to get to your saved forms, simply click on the My Nintex tab in the upper right corner within Nintex Workflow Cloud. From here you can easily see all of your draft forms and continue filling out the remaining controls.

Final Thoughts

This new feature allows users to begin filling out forms and save them in their current state for a later time, and this ask comes up countless times! There are a few things worth noting. The draft form is only stored for 30 days. This means after that time, the form is deleted and would need to be filled out from the beginning again. Another piece to remember is that you will need to be logged in as an authenticated user in order to save your form. Even if it is an anonymous form, if you want to save it, you need to log in.

How Easy Are Repeating Sections in Nintex Workflow Cloud?

A while back I wrote a blog about Creating List Items from a Repeating Section with Nintex Forms. The idea was to have a single form collection multiple items and then through querying XML, send each item to an itemized list. This is something that I see a lot of in SharePoint Online, but with the recent update to Nintex Workflow Cloud, I wanted to look at how easy it would be to accomplish the same thing in Nintex Workflow Cloud.

Scenario

Same as before, I want to create a form to collect my items and then send each item to a list within SharePoint Online to be processed further. If you followed along last time, we can use the same list. Here are the columns I created for my list:

  • Date of transaction (Date)
  • Description (Single Line Text)
  • Amount (Number)
  • Vendor (Single Line Text)

As you can imagine, these are the same controls I put on my form in Nintex Workflow Cloud. Just keep in mind that all the controls you want to repeat, must be in the Repeating Section. Here is my form for reference:

Advertisements
Advertisements

The Workflow

When I did this in Office365, I had to use a combination of Query XML and Collection actions to get the data into a workable format and then into the Create Item action. Not overly difficult, but begs the question of can we make this easier? The simple answer, yes, we can! With Nintex Workflow Cloud the workflow is much more straightforward because we can use the data object that is created by the Repeating Section right in the Loop for each and Create an Item action!

How does that work? In your Create an item action we will be navigating to the site and list where we want to data to go, and then select the data points we want to populate.

Once we have all of data points selected, we can insert the corresponding variable. This is done by selecting “Loop for each” to the left on the Insert variable pane and then selecting the object, current item, and finally the variable you need.

That’s it! Really! No querying the data object, no get item from collection, none of that. Once everything is mapped to the correct column in SharePoint, we can test out our form and workflow to see if we can replace the old Nintex for Office365 form with the shiny new Nintex Workflow Cloud form! Here is my test form and corresponding dataset in SharePoint Online.

Advertisements
Advertisements
NWC Form
Data in SharePoint Online

Final Thoughts

As always, there are many ways to approach this, but I wanted to showcase how we can take an existing solution in Nintex and make it even better with some of the cool new features in Nintex Workflow Cloud. This approach also opens the door to pushing itemized data into a variety of other platforms through the out-of-the-box connectors or a custom built Xtension. Nintex Workflow Cloud allows your processes to be automated no matter where they need to go.

How To: Delete A Nintex For Office 365 Workflow

There are many reasons that we may need to delete a workflow from our environment but most of the time it is just not needed anymore. Perhaps it was used for a test or even a single use effort to mass update data. Whatever the reason, removing the workflow from your environment is best practice as it frees up resources and keeps your environment clean.

Finding the Workflow

In order to delete your workflow, simply locate the site and list or library that is resides on and navigate to it. In the list or library ribbon, you will see Nintex Workflow. You want to start here and click into it to see your workflows for that object.

If you are looking for a Site Workflow, you just need to navigate to the Site Contents and scroll down to the Nintex Workflow for Office 365 app and click on that.

Advertisements
Advertisements

Deleting the Workflow

Once you have navigated to the object of where your workflow resides, click on the ellipsis to the right of the workflow and select delete from the options.

You will be prompted to confirm your selection just to be sure you really want to delete it. Keep in mind that this is permanent!

That’s it! You’ve successfully deleted your workflow.

Advertisements
Advertisements

Final Thoughts

Keep in mind that deleting a workflow is permanent. Meaning that you cannot get it back once it has been deleted. I would recommend that you take an export of the workflow and any corresponding task forms in the event that you need to reinstate everything.

Leveraging Nintex Workflow Cloud Component Workflows

When it comes to automation, many times we must streamline processes by removing repetitive steps. We do it all the time by grouping similar functions into a single group of concerted efforts. We can do the same thing when it comes to our workflows that we create with Nintex by using Component Workflows.

If you are unfamiliar with Component Workflows within Nintex Workflow Cloud, take a moment to check out this help file. If you don’t want to read that article, just know that component workflows are workflows that can be called from another workflow or from an HTTP-capable service or application. This means I can call this workflow from many different sources and leverage it in multiple processes. That is exactly what we are going to do!

Scenario

Request for Information (RFI) is a simple process where one user or group requests information from another user or group. This process may occur in a variety of other processes such as project work, reviews, onboarding, just about any process where clarification may be asked or required. Now we could simply add the logic into our existing processes, but what about creating a simple, straightforward RFI process that can be called at any time? This would allow us the ability to manage parts of the process much more effectively and allow for any process or application to leverage this as well.

The Approach

Like all good processes, let’s start by defining what we need before jumping into the designer! So, what do you need? User information? The question? What about supporting documentation? Your process may be different, but let’s start with these:

  • Question – what we are asking
  • Email Question To – email address of the user that will provide the information
  • Your Email Address – in case there are follow-up questions
  • File Upload – so we can share any documents for clarity

Again, you may want to add in more for your scenario, but this will be enough for now.

The Workflow

Let’s start with the Start Event (obvious choice here) of Nintex Component Workflow. We are going to need to create start event variables to catch the elements that will be passed in. I am going to create the four that I listed above:

  • Question – Text
  • RequesterEmail – Text
  • Approver1Email – Text
  • FileUpload – Collection

I am also going to create a variable for all the responses (we’ll call it allResponses) as well as another email address (ResponsibleEmailAddress) variable just in case there is a change. These two variables will be workflow variables and setup as an output for this workflow. That’s right, you can setup outputs for your component workflows to pass back once they are completed. Think about that for a minute! This means you have break up larger workflows into more manageable pieces and then use each, dare I say, component, wherever it is needed, even if it is within other workflows!

I have my RFI workflow setup with a State Machine to assist with the back and forth between the user(s) asking the question and those that are meant to answer it. I even set it up to all for changes to the responsible party if that changes.

Request for information

With these sorts of requests, there times where the two parties involved have a back and forth conversation and this is where the state machine comes into action. I can capture each response, from both the requester and the submitter and display that in both email notifications as well as on the task form. This allows me to present all the information to both parties so that they can quickly respond with the correct information. Here is what the form would look like after a few rounds for responses:

Task form with multiple responses

Connecting it to other workflows

Simple Start Form

For this simple use case, I created a responsive form to capture all the details needed to kick off this process. You could have this as a standalone solution or process, or a part of a larger process that leverages the RFI component workflow to manage the back and forth conversation. In either case, you can see how easy and powerful component workflows can be in building out your processes in a more manageable way.

Final Thoughts

There are a lot of ways you could approach this, and component workflows are just one of the ways. Component workflows allow for other workflows as well as HTTP-capable services and even other applications to communicate with it, thus extending your processes to include more within your organization!

How To: Get Date Without Time in Nintex Workflow for Office 365

Another question multiple times means another blog! There seems to be no clear directions on how to accomplish this, so I decided to put it down on (digital) paper so we can all benefit!

If you have worked with SharePoint ever, and tried to do something with dates, you understand that pain that comes along with a date column… the time stamp. I am not going to go into details on why SharePoint insists that everything has a time, but simply focus on how to remove the time piece within a workflow.

For this scenario, I took a super simple approach. I am getting the current date (Add Time to Date) and then formatting a string to only contain the date (Build String). Keep in mind that if you already have a date variable, you can use that variable and skip the first step. So, let’s go!

Step 1 – Get Today

Here we simply use the Add Time to Date action to get the current date and time (when the action is executed) and that’s it. I told you it was simple 🙂

Get Today

Step 2 – Remove Time

No, I am not a wizard, I can’t remove the passage of time…but I can remove the time stamp from the variable using a Build String action! In your action, click on Advanced Lookup, the Workflow Variables (in the dropdown) and then select your variable you need. At this point, if you already had a variable in place, you can use it, just select it via the Advanced Lookup and not the Insert Reference to the right. 

The reason we do it this way is so we can specify how we return the data out of the variable. Click on the “X” to the right of the variable dropdown and you can change the date format. Here we want to select “Short Date” in order to get MM/DD/YYYY

Return Short Date

So now we have our current date without the time stamp that SharePoint insists giving us! This is great for doing date comparisons or adding date values into a document generation action.

How To: Populate Repeating Section with SQL Data

There are plenty of reasons that we would want to view data on a form but pulling that data from other sources can be difficult. Not only that but formatting that data so that it is readable by the end user is just as important! With Nintex Forms for SharePoint we can easily pull back SQL data, but we can also pull back multiple records and then present them in a way that an end user can easily consume. Let’s look at how we can achieve this.

Form Setup

In your form, you will need a Repeating Section control that will be used to add each record from the SQL query. Within the Repeating Section, you can add as many controls that you need as they correspond to the columns you will be getting from your SQL query. For this example, I will be querying for “property_ID” and “state”, so I will need two controls in my Repeating Section.

For each control in your Repeating Section, you will need to update the Control CSS Class with a unique name so that we can push the SQL data to it. In mine, I set the control for Property ID as “rs_propertyid” and State as “rs_state”.

We will also need to make sure that the Repeating Section itself has the proper CSS classes. Some of these are set by default, but to be sure, make sure your Repeating Section looks like this:

Advertisements
Advertisements

Now that we have where the data is going all setup and configured, we should go and get that data! For this we will use the SQL Request control. Place the SQL Request control anywhere on your form. If you have not setup this control in the past and need some assistance, check out the Nintex Help Files and specifically look for the SQL Request. You will need to select the server and database where you want to pull from and then add your query. For the query, we want to be sure that it returns in a format that we can easily work with in the form. This would be XML, so here we can add FOR XML PATH (‘record’) and return the data in XML. Here is a sample:

SELECT TOP(1) ( 
SELECT 
property_ID, 
state 
FROM TABLE_NAME 
WHERE agent_ID = 'XXXX' 
ORDER BY property_ID 
FOR XML PATH('record')) 
as datatable FROM TABLE_NAME

Final steps for this control are to be sure to set the Value field and Display field within the SQL Request control as “datatable” and enable the data to be stored as a JavaScript Variable. This is important as it allows us to grab the data and then do something with it!

If you perform a “Run Now” you should get a result like this:

So now we have the SQL control getting the data, and the Repeating Section setup to receive the data, but we need to push the data from the SQL control to the Repeating Section. We do this via adding a custom script to the form.

Advertisements
Advertisements

The Script

If you are unfamiliar with JavaScripting, that is ok. I took a simplistic approach to this so that anyone can easily add more data points if needed. That said, I am sure that there are more eloquent ways to accomplish this. For now, we know this works! I will break this down a bit and walk through it but if you want to skip over this and get right to the script, the full script is as the end.

The first function that we need to build out is to process the data. We need to pull the SQL XML data into the something that we can work with. From there, we will match each record using RegEx and create a new array to hold all of our parsed data. I added comments for placeholders if you want to add more data points to query. You may notice there is a line to delete the last row in the Repeating Section, this is to clean up the form a bit and only present the queried data.

function processData() {
	/*Get XML Data*/
    var sqlXML = NWF$("#" + xmlData).val();
    /*Break XML apart for each record using RegEx*/
    sqlXML = sqlXML.match(/<record>(.*?)<\/record>/g);
    /*Create new array for all parsed data*/
    var parsedData = new Array();
    
    /*For Each Record, pull out the Property ID and State*/
    NWF$.each(sqlXML, function(i, val) {
        var xmlRowData = NWF$.parseXML(val);
        var NWF$xmlRowData = NWF$(xmlRowData);
    	var tempArray = new Array();
    	
    	/*Here you can add or remove as many data points you may need*/
        var tempPropertyID = NWF$xmlRowData.find("property_ID").text();
        var tempState = NWF$xmlRowData.find("state").text();
        /*EXAMPLE: var tempYourVariable = NWF$xmlRowData.find("YourDataFromSQL").text();*/

        tempArray.push(tempPropertyID);
        tempArray.push(tempState);
        /*EXAMPLE: tempArray.push(tempYourVariable);*/

        parsedData.push(tempArray);
    });
    processArray(parsedData);
    /*Delete Last Row In Repeating Section*/
    NWF$('.repeatingSection .nf-repeater-row:last').find('.nf-repeater-deleterow-image').click();
}

Now that we have the data in an array, we can process the array and add it to our Repeating Section. We do this by pulling out each data point we added to the array and putting it into the corresponding control within the Repeating Section. We also remove the “Delete Row” image to avoid data being deleted from the form. Lastly, we add another row to the Repeating Section and loop back through the array.

function processArray(array) {
	function addRow() {
		var currentRow = 0;
		while (currentRow < array.length) {
			var i = currentRow;
			/*Add data to Repeating Section*/
			/*Here you can add or remove as many data points you may need. Be sure to increment 'n' in array[i][n]*/
			NWF$(".repeatingSection .nf-repeater-row:last").find(".rs_propertyid").val(array[i][0]);
			NWF$(".repeatingSection .nf-repeater-row:last").find(".rs_state").val(array[i][1]);
			/*EXAMPLE: NWF$(".repeatingSection .nf-repeater-row:last").find(".YourControlCSSClass").val(array[i][2]);*/

			/*Remove image for row deletion if you want to not allow delete*/
			NWF$(".repeatingSection .nf-repeater-row:last").find(".nf-repeater-deleterow-image").css("visibility", "hidden");
			/*Create next row*/
			NWF$(".repeatingSection").find("a").click();
			currentRow += 1;
		}
	}
	addRow();
}
Advertisements
Advertisements

Putting it All Together

Now that we have the form setup to query the SQL data and capture it in a XML datatable, as well as the script to handle parsing the data and placing it into the Repeating Section, we just need to trigger it! This could be done in a variety of ways such as when another control is filled in or even when the form is loaded. I decided to do something a bit more direct and added a button. When you want to have the script execute, just push a button! To do this, we add a button control to the form and set the action type to JavaScript. Give it a label and then set the client click to our processData() function.

Advertisements

End Result

Form with SQL Query before JS Executed
Form with SQL data populated within the Repeating Section

Final Thoughts

I am not a JavaScript wiz by any means, so I am sure there are plenty of more “eloquent” ways to approach this, but it does work! From here, we can take the Repeating Section XML and perform a variety of actions with it. I wrote some other articles about this over in my Nintex Blogs, so be sure to check them out if you want to take this solution further and build a workflow to automate more!

Entire Script

function processData() {
	/*Get XML Data*/
	var sqlXML = NWF$("#" + xmlData).val();
	/*Break XML apart for each record using RegEx*/
	sqlXML = sqlXML.match(/<record>(.*?)<\/record>/g);
	/*Create new array for all parsed data*/
	var parsedData = new Array();

	/*For Each Record, pull out the Property ID and State*/
	NWF$.each(sqlXML, function(i, val) {
		var xmlRowData = NWF$.parseXML(val);
		var NWF$xmlRowData = NWF$(xmlRowData);
		var tempArray = new Array();

		/*Here you can add or remove as many data points you may need*/
		var tempPropertyID = NWF$xmlRowData.find("property_ID").text();
		var tempState = NWF$xmlRowData.find("state").text();
		/*EXAMPLE: var tempYourVariable = NWF$xmlRowData.find("YourDataFromSQL").text();*/

		tempArray.push(tempPropertyID);
		tempArray.push(tempState);
		/*EXAMPLE: tempArray.push(tempYourVariable);*/

		parsedData.push(tempArray);
	});
	processArray(parsedData);
	/*Delete Last Row In Repeating Section*/
	NWF$('.repeatingSection .nf-repeater-row:last').find('.nf-repeater-deleterow-image').click();
}

function processArray(array) {
	function addRow() {
		var currentRow = 0;
		while (currentRow < array.length) {
			var i = currentRow;
			/*Add data to Repeating Section*/
			/*Here you can add or remove as many data points you may need. Be sure to increment 'n' in array[i][n]*/
			NWF$(".repeatingSection .nf-repeater-row:last").find(".rs_propertyid").val(array[i][0]);
			NWF$(".repeatingSection .nf-repeater-row:last").find(".rs_state").val(array[i][1]);
			/*EXAMPLE: NWF$(".repeatingSection .nf-repeater-row:last").find(".YourControlCSSClass").val(array[i][2]);*/

			/*Remove image for row deletion if you want to not allow delete*/
			NWF$(".repeatingSection .nf-repeater-row:last").find(".nf-repeater-deleterow-image").css("visibility", "hidden");
			/*Create next row*/
			NWF$(".repeatingSection").find("a").click();
			currentRow += 1;
		}
	}
	addRow();
}

Process Automation: Where to Begin

When it comes to the process automation phase of an organization’s transformational journey, it can be a struggle to pinpoint which process to automate first. Would it be better to jump in and automate a process that is high profile and one that everyone in the organization uses on a daily basis, or perhaps on that is only used a few times a year by a select few? Should organizations only look to new processes that need to be automated or use one that is already automated but needs to be updated? Here are some things to consider when starting the automation journey.

Ask Around

If you are looking for processes to automate, why not ask those that are performing the tasks of a given process everyday! This is one area that is not considered until after automation efforts have begun or are about to rollout. Getting people to provide their insights and feedback allows organizations to have a holistic view of the process rather than what is perceived. This not only helps understand the full scope of what the process is, but also gets people involved in the ongoing efforts to improve their processes.

Advertisements
Advertisements

Another reason to get people involved early on is to avoid tension later when changes are rolled out. No one likes it when changes happen to a process and they were never told. Getting people involved early helps adoption of any changes as everyone has the ability to voice their concerns and provide feedback. This is a great time to uncover areas that are not well documented.

What Are The Benefits (Drawbacks)?

If your organization is struggling to find where to begin, you may need to look at the benefits of automating a given process. Are there gains to be made that will lead to revenue, time saved, or even employee happiness? What about the impact on the organization? Is the process one that reaches everyone within the company or just a small team? Is the process one that occurs once a year or every week?

Not only should you figure out benefits or automating a process but to also consider the repercussions of not automating a process. This could lead to things such as missed deadlines, delays in approvals, or even processes not starting in a timely manner. Think about an employee off-boarding process. If this process is not automated in some way, the organization runs the risk of an employee, that is not longer employed, having access to company assets and information. It is important to consider both the positive gains as well as potential losses when it comes to automating a process.

If It Ain’t Broke, Do Fix It!

Many times organizations jump into automation efforts and pick a process that is already in place and working. While this may be a good starting place because it is a well known, documented processes, it does not get anyone thinking differently about it. Often the process will be automated just as is and never improved or even questioned. Even the ones that are automated in some fashion should be reimagined and thought about from the standpoint of “what more could be done to improve this process”.

Advertisements
Advertisements

How to Measure

This is a difficult one as every organization will (should) measure their success criteria differently. Many times it falls into one of two buckets: cost and speed to market. While each of these aspects are important, your organization needs to look at each automation candidate or effort individually as well as the tool set that will be applied. For example, when looking at cost, it is easy to go with a solution that will save money or a solution that is rolled out very quickly. However, the drawbacks to that line of thinking could lead to missing functionality in the solution or having to go back again and again to fine tune the solution.

Speed to market is another aspect that comes up a lot as well when determining which processes to automate. This is because organizations want to see ROI on any technology or services they may have procured to automate their processes. While this is a great thing to see, it should not be the only area that drives decisions. Approaching automation with only this in mind can force decisions or cut corners to get a solution in place and rolled out.

Ultimately your organization needs to determine what your success criteria is and how to measure it before you dive into automation. If this step is skipped, it is almost impossible to determine if what was done to improve the process was worth it.

Advertisements

Final Thoughts

There is a lot of information out there regarding automation, which tools to use, what to consider when going through digital transformation, and all of the other buzzwords people love to throw around. I think that in the end, it is crucial to get your users involved early in the documenting of their processes and how to improve, as well as determine how to measure success within your organization.

Would love to hear your thoughts or ideas. What has worked or perhaps has not worked?

How To: Save Task Attachments to Current List Item

If you are using SharePoint Online tasks, you have probably run into the need to have users attach additional documents that are related to the task. While these attachments will be stored with the task, many times there is a greater need to attachment them to the original list item. This allows for all the associated documents and attachments to be together on one item rather than on related task items in separate lists. Let’s look at how we can achieve this in a few steps using Nintex.

Getting Started

Before we dive in, be sure that you have access to a Nintex Workflow Cloud (NWC) tenant. If you do not have one today, you can go to the Nintex and grab a free 30 day trial. The reason we are using Nintex Workflow Cloud is because it is a simple four (4) step workflow that is used with any of you existing workflows in Office 365. We are also going to use Nintex Workflow for Office 365 on the list that will generate the task.

SharePoint Online

For the SharePoint Online piece, you will need to have a list where you are using a task. In your list workflow you will need to setup the workflow so that there is a Start workflow in Nintex Workflow Cloud action on the outcome you wish to use. For this example, I have it on the Approve outcome branch, but could very easily copy and paste the action onto the Reject branch.

Simple task workflow

You will also need to create a workflow variable for the TaskID. The TaskID will be used to identify which task attachments to move into the list item in the NWC workflow. Now, let’s setup the Assign a task action in the workflow. Configuring the task action is straightforward, but I want to focus in on the TaskID section towards the bottom of the action. This is where you want to store the ID of the task that is going to be generated.

Assign a task action

Once the rest of the Assign a task action is configured, save it and we can move on. At this point, we have not created the workflow in Nintex Workflow Cloud, so we will need to go do that. Be sure note where your tasks (task list name) will be created, as that will be important later. Save your workflow in O365!

Advertisements
Advertisements

Creating the Nintex Workflow Cloud Workflow

In Nintex Workflow Cloud we will want to create a new workflow. For the start event, we will select Component Workflow, which allows us to call this workflow from O365. Let’s setup our variables to match the data that we will be getting from the workflow in O365. You will need at least the following:

  • ContextItemID Integer
  • TaskID Integer

You may want to pass more data, but to accomplish the moving of the task attachments, this is all we will need. Here is a look at the workflow and the steps needed:

  • SharePoint Online > Get attachment names
  • Logic and flow > Loop for each
  • SharePoint Online > Get attachment by name
  • SharePoint Online > Add attachment to an item
Move SPO Task Attachments

Let’s step through each of these actions. First up, the Get attachment names (1), is where we will target the item with the TaskID in the Workflow Tasks list and get the collection of AttachmentNames. I also store the NumberofAttachments just in case I need it in the future. Next, the Loop for each (2) item in the collection action is to loop through the collection of attachments and store the AttachmentName in a variable one at a time. Now that we have the attachment name, we can Get attachment by name (3) from the Workflow Task list by matching on the TaskID and the AttachmentName. Here we will store the result in a file variable called AttachmentToMove. Lastly, we Add attachment to an item (4) by targeting the list name where the Context Item is matching on the ContextItemID. Everything within the loop will execute each time for every item in the collection, or in other words, for each attachment on the task item.

For all your SharePoint Online actions, you will need to make a connection into that tenant. Once the connection is made, the action will ask for the SharePoint site URL. This will be the URL for the site that the list or workflow task list resides on. From there, simply select the list name from the drop-down and configure the required pieces. Once you have the workflow all setup and configured, go ahead and publish it to see the URL with the token needed to call it. It will look something like this:

Published Component Workflow in Nintex Workflow Cloud

Back to SharePoint Online

Last bit is to update the Start workflow in Nintex Workflow Cloud action in O365. Paste your URL from the workflow you just created and click connect. Once connected, you should see the variables that will be passed to the workflow via the web call. These will need to be configured but are straightforward. One is the Item ID of the current item the workflow is running on, and the other is the TaskID that we created and are logging in the Assign a task action. That’s it! You are all set now and any task attachments that are added to the task item, will be moved to the context list item.

Start workflow in Nintex Workflow Cloud

Final Thoughts

Through some simple steps, we can easily move SharePoint task attachments to the list item the task is associated to. This make keeping track of attachments and supporting documentation easy as they will always be on one item. We also built this process with Nintex Workflow Cloud, which opens the door to a lot of other possibilities when it comes to pushing and pulling data into various other platforms. Imagine if we had to push these attachments into Salesforce or do some sort of document generation from these. With Nintex Workflow Cloud, each of these scenarios are achievable with ease.