cancel
Showing results for 
Search instead for 
Did you mean: 

May Mission - Quick Top Tip!

cassymfreeman
Nintex Newbie
11 62 8,859

Following on from the success of January 2017 Mission‌ "What is your Nintex New Years Resolution", which was all about what bad habits you have when using Nintex that you would like to dispel of, we have created a positive spin in this months mission!

So what do you have to do to get the loot?  Simple really, share your quick top tip for any of the products in the Nintex suite, easy right?! 

top tip may

A simple couple of lines as a comment below about your top tip will do the job.  For your trouble, you pick up the badge pictured, and 100 points!

Why are we doing this?  In the hope that your top tip might be something that users in the community have never even heard about - and imagine if you could save them time and less headaches by simply sharing yours...

Here is mine:  Use the "Log in history list" action.  Simple enough I know, but for the first eight months of developing workflows I didn't know it was there and I used to bombard myself with emails trying to debug my workflow and get the values from my variables!

62 Comments
Chris_Ben
Nintex Newbie

Here's mine for SharePoint on-prem.

You know how it's really useful to graphically check a workflow status?  Well sometimes you don't want to show all the actions in the workflow.  e.g. you only want to show the core stages so you hide items such as logging, setting variables etc.

Just go to the action, click on the common button and tick "Hide from workflow status"

Cheers,

Chris

praios81
Nintex Newbie

Here's mine for Nintex Workflow

Make use of comments. Processes will change and so workflows have to change too. Even if you think you understand your workflow now, you will thank yourself if you have to come back to the workflow after a process changes.

I try to ask myself: If I had to come back to this workflow in half a year, what might I find helpful?

jackgelo
Nintex Newbie

and here is mine for Nintex Forms:

- Rename your rules! if you have to find a rules and you don't know the controls that it's applied to, you have to check the show all checkbox and then, if all the rules are named Rule 1, Rule 2, ... you don't have any clue on how to find your rule except from looking at each of them. With your naming convention (and also looking at the icon to distinguish between formatting and validation rules), it's much more easier

Giacomo

wilkies0106aw
Nintex Newbie

Coming from SPD workflows I might log to history a little too much!

Within my log to history action I number them sequentially left label: logX It would be good if it happened automatically.

My top line within the log to history action would be

***log1***

logtext, variable output result etc.

I find it easier to read the workflow history that way.

My top tip certainly when starting out is to complete each field within a control that you can, not what is only needed to complete a job/action.

i.e. for each loop, don't just fill out the options : Target collection and Store result in: Also complete Index and stop processing.

If a control has an error handling option, complete that too.


I think this is really helping me learn more about a control, its function and also by trying to figure out what a control and what a specific field does, you're learning more - holistically. It helps troubleshooting too and I think it may be a way to build your own best practice notes too.

MegaJerk
Nintex Newbie

My tip is for using the Workflow Editor's Query List action

Most examples will have you using the List ID / GUID, which is the SharePoint internal identifier for any particular List. However, I found out the hard way that this will break in the event that you migrate things from one SharePoint to another, resulting in several helpless and broken workflows

Despite that, I found that you could actually just use the List Title outright in your CAML Query, without the guid, which is a LOT easier and infinitely more convenient. 

<Query>
  <Lists>
    <List Title="Your List Title" />
  </Lists>
  <ViewFields>
    <FieldRef Name="Title"/>
  </ViewFields>
  <Where>
    <Eq>
      <FieldRef Name="ID"  />
      <Value Type="Number">{ItemPropertySmiley Frustratedome_x0020_Field}</Value>
    </Eq>
  </Where>
</Query>‍‍‍‍‍‍‍‍‍‍‍‍‍‍


Maybe this is well known, but it was certainly a lesson learned for me! 

kelliganp
Nintex Newbie

Here is my Nintex Workflow quick tip... I like to use an "Action set" to break up complex workflows into smaller sub-parts. That way, I can collapse them to give myself more real-estate on the screen and troubleshoot issues without a lot of non-related actions visible. Just be aware, if you use action sets as to provide elevated permissions to a group of actions, that feature will not be available in an action set that is nested inside of another action set.

andrewg
Nintex Newbie

I'll give some top few that I use for most apps I build.

  • Use a configuration list. This allows manipulation of workflows while in flight, no need to republish workflows if there is a value change. Like an approver.
  • Use separate auditing lists to store key points of history for a process. DO NOT rely on workflow history alone.
  • Use Help DOCUMENTATION. It's really a great resource! Whether it's in the designer help or using help.nintex.com. There are very useful tips and concepts in the documentation, not only action descriptions. I reference help personally quite often. It's easier to memorize where to find information than memorizing all the information.
  • Use State Machines. They are like having a Force power. Trust me you will. Easy way to restart processes at a specific point. 
  • Use Bookmarks in the community. Sometimes I read blogs and get very excited about new features or scenarios, but I can't implement them right away. Bookmarks have made it very easy to relocate those treasures when the time arrives!
wilkies0106aw
Nintex Newbie

Andrew,

Just so I understand:

Configuration list - is that having a second list i.e roles per office. i.e. I have multiple offices locations and each office has an HR person, IT person etc. You reference this list of people. I've done that in SPD workflows and works a treat.

Can you demo how you use an auditing list- that's something I've not done. I do rely on workflow history.

Thanks

A

andrewg
Nintex Newbie

Yes, create a separate list that uses key value pairs. I use lists with at least three to four fields. The title field is the key, then a person group typed field, a single line of text, and a multi line text for the value fields. See a write up here  

On an auditing list, create a list where in your workflow you use a UDA or simple Create Item action that saves relevant data to a list. Data like, workflow name, site url, task name, approver name, outcome, etc. You use these fields and create a new list item each time you need to track data long term. You don't have to use all the fields, for example, just use the task related fields when saving task information. An example of this concept can also be seen in Nintex Project Server workflows Using Nintex Event-Driven Workflows to build an Audit Log for Project Server Changes  

wilkies0106aw
Nintex Newbie

Thanks, I'll check out the links

Much appreciated.

christopheraucq
Nintex Newbie

My tip for today: Bookmark this page ;-)

akrasheninnikov
Nintex Newbie

This also helps prevent flooding the WorkflowProgress database table and the subsequent timeout failures on weak hardware.

mlauer
Nintex Newbie

In a workflow using Nintex Forms same form is often used in all tasks. Therefore I create the form in a FlexiTask action and then I copy this action when I need a new Task. Copied actions are using same form, so modifications need to be made only once.

akrasheninnikov
Nintex Newbie

My tip: Give XML-friendly names (Latin only, no spaces, etc.) to form controls from the start so that you can easilty figure out what's going on in the FormData field if anything goes wrong with bindings.

courtney_shelto
Nintex Newbie

For Nintex Forms: Try to always use panels when hiding/showing controls and implementing rules. It makes the form resizing so much better. If you don't use a panel, some weird shifting can happen.

For Nintex Workflow: Being diligent with your logs is great, and so is the "change workflow status" action! Displaying that in your view can make your life easier in being able to quickly go to the logs of the active (or most recent) workflow and see at a glance where every one is.

paul_crawford
Nintex Newbie

Hi All.

Here's my quick top tip.

We have a document management system where document owners are sent a notification after a specified amount of time. Anywhere up to 3 years!! What are the chances of the owner still working for the company.......???

The way I found to get around this is to use a set a condition action where the condition is set to "Person is a valid SharePoint User". I get the Document Owner and set this to a variable of vPPLOwner. Evaluate this variable to check if the person is a valid SharePoint user. If Yes, send the notification to the user. If No, send the notification to the Owners group of the site (hopefully kept more up to date with valid users!!!)

This way the workflow will continue and the Owners can re-assign the document to a different owner and the review cycle will continue when that document is up for review.

wilkies0106aw
Nintex Newbie

Brilliant, why have I never thought about doing this before - doh!

***update***

Just done this as a test and so that I could create a snippet and use it in an existing workflow.

This is most likely my environment. Yet I had valid SP users, but they are disabled in Active Directory.

I know some users will have their email forwarded and some not (not sure why else they would be valid, but hey ho).

Yet for me a disabled AD account is perhaps more accurate:

Firstly I need the account name from my people picker control - I have to strip out various random characters and domain so I'm left with an AD account name

Query LDAP for above - userAccountControl

Set condition based on userAccountControl value next

Hope that helps somebody else.

cassymfreeman
Nintex Newbie

Having only recently discovered this thanks to Marian Hatala‌ I would like everyone to know about parselookup in Nintex Forms which allows you to manipulate the output of ID;#Value:

top highlight is expression: 

middle highlight is expression: 

bottom highlight is expression: 

emha
Nintex Newbie

‌, this need not be reliable either!

if you run sharepoint with multiple languages/locales, title might be different for every language.

it's even worse in that case since it breaks application functionality (list is not found by title at all)

emha
Nintex Newbie

Cassy Freeman‌, that's too easy with single lookup

what about to parse set of lookups in one go

kelliganp
Nintex Newbie

An actual blog post on this would be GREAT as it would be more easily searchable. Great stuff ‌ and ‌!

rhia
Nintex Newbie

My top tip is something that I'll be implementing henceforth:

When creating a Nintex workflow for a team of users who are not Nintex savvy and maybe will just be troubleshooting as they go, use a "Settings" list to encapsulate as MUCH of that workflow's variables as you can. 

Need an email address for a notification? They want it to go to Jenny in Accounting? Great, create a list lookup for "AccountingEmail" and put jenny@accounting.com -- so they can update it without ever going into the actual workflow. 

The same goes for multiple notification bodies - have an email wording that fits into multiple emails? (Or, even just one?) Put that in your settings list as well -- users can update that.

Basically anything you can do so that your users can change the workflow without going into it ... A+++.

rhia
Nintex Newbie

Hahahah, cheeky  

rhia
Nintex Newbie

Crap. I wrote mine and then came back and and it's the same as your first one. 

rickbakker
Nintex Newbie

Use the 'Office 365 search query' action to collect data from many subsites. I recently had a challenge in O365, and this action just made my day.

tschaef
Nintex Newbie

My top tip is similar. Use those Labels. The more information you place in them, the more time you save yourself when building, testing, and updating workflows. Then you don't have to open the Action to know what it does.

Nintes Label Example

mmatsako
Nintex Newbie

With such a great and easy to use product, its easy to rush in and start developing without giving things much thought. My tip is:  think through your project, consider the environment to know your limits, make sure you understand the business problem you are solving, architect the workflow to know how it will flow, and understand security and other business restraints.  In other words, do a bit of planning, to save a lot of time not having to redo things.   There have been countless times when someone develops a linear workflow, only to realize a state machine would have been much more appropriate.   Do this and you'll have a much better chance at getting it right the first time.

Thanks

-Mike

jml006
Nintex Newbie

I've done this and it makes life so much easier!  If someone goes on vacation, they can just update the list and I don't have to touch the workflow. 

jml006
Nintex Newbie

So many things have already been stated, but I'll mention a few simple things that have made my life easier.  In Nintex Forms, use panels for groups of fields and make sure you name your panel so you can easily find it when viewing all controls in use.  When creating a workflow, re-name your actions so that you (or someone else) can tell exactly what the workflow is doing by the names of actions.

djfox
Nintex Newbie

When using the Query List action, if you expect more than one item to be returned from the query, go ahead and populate the column values you want to collect in separate collection variables within the query.  It will save you from having to re-query the list for each column value you need for each individual item and will reduce round trips to the database to retrieve the data (improves efficiency):

Query List Action

 Remember to create a "counter"  variable so keep track of where you are in the collection variables.

djfox
Nintex Newbie

Here's a Reminder about Workflow History lists:

  • If a workflow contains any loop logic (loop/for-each/state machines) consider leaving out actions such as ‘Log to History List’ as they can quickly fill a workflow history list if left unchecked.
  • Utilize the History list during the development and testing stages of your workflow and remove or disable them prior to production release.

(https://community.nintex.com/community/build-your-own/blog/2014/10/13/defensive-workflow-design-part...)

courtney_shelto
Nintex Newbie

The same goes for multiple notification bodies - have an email wording that fits into multiple emails? (Or, even just one?) Put that in your settings list as well -- users can update that.

I love this....the only thing is we put a lot of list item info in our emails, typically, so we could at least have them edit the "intro" bit.....this seems interesting.

As in, we could put in the WF:

Hello [[User]],

[[Email Fluff]]

The details are as follows:

Thing: [[Thing]]

Stuff: [[Stuff]]

And the end users could edit [[Email Fluff]] in the "settings" list!

courtney_shelto
Nintex Newbie

Ohh, I've done this. My problem is, even when I plan, I come up with like 3 valid ways of executing something and only realize part way through why the one I picked is subpar :I I suppose better planning comes with experience!

plamping
Nintex Newbie

My top tip - remember use Commit Pending Changes at the appropriate place to make sure your workflow step finishes writing to an item before another step attempts to read from it.

Hopefully most of you already know that.  In that case, I will add this extra tip that I found when reviewing our own workflows.  I did not write this workflow, but I thought it was neat that it can set up an Outlook meeting to a shared calendar.  It appears to use "Exchange Impersontation" as described here,

https://msdn.microsoft.com/en-us/library/office/dn722379(v=exchg.150).aspx

The workflow reads to see if a "SendToOutlook" column is set to Yes or No.  If Yes, it sets workflow variables such as Message, Email, etc.  It then performs a Web Request which is set up like this

URL = your Exchange.asmx location

Username & Password = an account that is created to access that calendar.

Select "SOAP 1.1"

Here is the SOAP code:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Body>
    <CreateItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
                xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
                SendMeetingInvitations="SendToAllAndSaveCopy" >
      <SavedItemFolderId>
        <tSmiley Very HappyistinguishedFolderId Id="calendar"/>
      </SavedItemFolderId>
      <Items>
        <t:CalendarItem xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
          <Subject>{WorkflowVariable:Title}</Subject>
          <Body BodyType="Text">{WorkflowVariable:Message}</Body>
          <ReminderIsSet>true</ReminderIsSet>
          <ReminderMinutesBeforeStart>60</ReminderMinutesBeforeStart>
          <Start>{WorkflowVariableSmiley FrustratedtartString}</Start>
          <End>{WorkflowVariable:EndString}</End>
          <IsAllDayEvent>false</IsAllDayEvent>
          <LegacyFreeBusyStatus>Busy</LegacyFreeBusyStatus>
          <Location>My Desk</Location>
          <RequiredAttendees>
            <Attendee>
              <Mailbox>
                <EmailAddress>{WorkflowVariable:Email}</EmailAddress>
              </Mailbox>
            </Attendee>
          </RequiredAttendees>
        </t:CalendarItem>
      </Items>
    </CreateItem>
  </soap:Body>
</soap:Envelope>

To finish, it updates the item to set the "SendToOutlook" column to No.

jesse_mchargue
Nintex Newbie

This is a great way to move larger pieces of the process around as well. Put everything into an Action Set and then you can grab the single action and drag it to where you want to place it!

jesse_mchargue
Nintex Newbie

This is the one tip I tell everyone when it comes to Nitnex Workflow and Form development; replace what you have, the improvements will come naturally.

 

All too often we rush into a project with wild ideas on how to improve an existing form or process, but rarely do we take the time to understand how and why it is the way it is currently. This is along the same lines at what mentioned above; you have to take the time to plan out what you are going to do. I approach everything as a conversion from "X" to Nintex. From there, we can quickly identify improvements and issues that may arise. Since we are approaching the development with how the current form or process is built, we gain the knowledge that was poured into already. We can learn from other's mistakes and understand how they overcame issues that came up (and we will most likely face as well).

 

Nintex gives us speed to market already, but speed to market is only as good as the product that you are putting out. If you rush through it and do not capture all that is required for the process or form, you are going to doing a lot of re-work.

kmccool
Nintex Newbie

My top tips would be; get involved in the community, and don't be afraid to ask questions. I come here daily to find answers. I do know what I would do without the Nintex community.

kelliganp
Nintex Newbie

Aye! Great point ‌!

mlysgaard
Nintex Newbie

I wanna go completely opposite on you , use "Message to log on completion" which exists for most actions...

I used log in history a lot, but the "bad habit" was to forget and remove these as my workflows went into production or I debugged my workflow. Log in history is great, and somewhat needed if you need before and after values, but "Message to log..." get the job done and keeps down the number tasks in a single workflow.... :-)

greenawayr
Nintex Newbie

For clarification, this is what ‌ was referring to in the first point of his post too, so this expands a little further on it.

I refer to them as "Configuration Lists". The .NET developer in me likes to call everything I create in Nintex, an application. As a result, applications have configuration menus for the future administrators of the app to manipulate as needed rather than hard coding them into a workflow or form which would require the developer to change them.

greenawayr
Nintex Newbie

My tip is more of a generic development tip, but applies more to working with SharePoint and Nintex.

Be aware of limitations before starting work.

This involves understanding the potential scope of the application you are working on, not just what the customer expects it to be when it goes live. So you want to consider list thresholds, form limitations and how it impacts performance (i.e. many repeating sections with lookups in them etc, how will the form perform if a user adds 100 sections???).

Only if you're aware of limitations and performance impacting designs, can you give the customer realistic expectations of the end product.

If they want all that complicated design in there, it will come at a performance cost, are they willing to live with that?

natgimm
Nintex Newbie

Nintex workflow: When creating a new item, use the "Store new item ID in" field to store the ID in a variable to use later in the workflow. This variable must be an "Integer" in order for it to appear in the "Store new item ID in" drop down. (Note this option has always been in SharePoint Designer, not just Nintex).

So, instead of 3 actions, you only need 1:

I've seen the above used in workflows I've inherited. Note: you may still need the "commit pending changes" depending on what you are using the new ID for (eg. if you're just building a link in a notification email, it's not necessary).

sakhatri
Nintex Newbie

My Top Tip would be :

Use "Nintex Forms Rules" to set the column as mandatory rather than setting it up from SharePoint column settings.

In this way you end up managing a single source (Nintex form) rather than both SharePoint and Nintex

ryan_oleary
Nintex Newbie

I love this idea! My pro tip is for Document Generation:

Always keep formatting on when creating your template, this will really help you debug any weird formatting that may happen after data is merged into the document.

kelliganp
Nintex Newbie

I know I already posted a tip in here but I just remembered one tip that was a HUGE time saver for me when I was just getting started in Nintex Workflow.

Go into the workflow and craft a great email layout. Get it looking just like you want with all of the formatting bells and whistles. Then, while your cursor is in the body section of the email, from the "FORMAT TEXT" ribbon, select "Edit Source". There you will see the HTML of your email. Copy this and save it in a .txt file for later use. You can go back and use this as a starting point to build your emails in the future giving a sense of uniformity to your workflow communications without all of the manual formatting. You will of course have to adjust context and content for each email down the road but the templated html you saved will give you a great place to start.

patrickabel
Nintex Newbie

Great points Ryan Greenaway‌ – along a similar thread, my top tip would be to thrash early.

Here’s what happens on almost every software project. Someone comes up with a software idea to make. They hire programmers and they start building it. Then about three months before the project ships, other people start to get involved. Other people want to look at the UI. Other people start weighing in. About two months before it ships, thrashing occurs, people start pulling things out, and putting things in. And the closer you get to deadline, the more thrashing occurs. The more cycles get extended, the more work gets put into it. Until eventually you ship not on time and not on budget. What smart programming shops like Microsoft have adopted, is that they must thrash in the beginning, when it’s cheap and easy. They insist on thrashing early. Because they know their job is to ship. – Seth Godin

  In my mind, one of Nintex's most valuable asset's is it's low cost to change (both in terms of dollars and time). Take advantage of this as a workflow/forms designer! Prototype early and mitigate as much risk as possible with a given project. Evaluating platform limitations (on-prem vs. O365) and quickly building out proof-of-concepts for sake of gathering early feedback can do wonders for you and your customer.

Every business process has it's own dose of complexity and targeting these areas up front can be pivotal to making wise design/architecture decisions.

bamaeric
Nintex Newbie

For Nintex Workflow, use Workflow Constants whenever possible.  In particular, using the Credential type is a great practice and huge time saver.  Designers can securely save a username and password combination that can be used in workflow actions that require credentials.  If the account password changes, it can be updated quickly in one place instead of having to update it in multiple actions in multiple workflows.  Designers can also wrap permissions around Workflow Constants, allowing only specified users and groups to see and use them when designing a workflow.

NOTE: Unfortunately Workflow Constants only exist in Nintex Workflow on premise.  This functionality does not exist in Nintex Workflow for Office 365 at the time of this post.

NWF 2013 - Web Service with Workflow Constant

patrickabel
Nintex Newbie

Cassy Freeman‌ I can't agree more with the reminder to leverage the "Log to history list" action.

Now that the "disable action" functionality is supported on-prem and on O365, it's always wise to give yourself additional context in the log for troubleshooting. Even if these entries are intended for the workflow designer (not end users) the disable action functionality is a nice clean way to preserve your testing harness when moving to production.

fhunth
Nintex Newbie

For me is a good practice to do it every day >>>  

kelliganp
Nintex Newbie

Thanks ‌! Considering limitations, when I first got Nintex workflows, we had a doozie of a time figuring out a phantom issue that ended up being the size limitation of a SharePoint workflow. I think it is roughly anything aver .5-.6 MB will start to behave inconsistently odd. It seemed that the errors were never the same  and never failed on the same actions. It would have saved me about 6 weeks of pain if I had known the limitations.

That might be a great post/thread/mission... come up with a limitation with SharePoint and or Nintex that users need to be aware of with a list of issues that ensue. Sort of a "best practices" from another perspective.