There are huge benefits to be gained by implementing SharePoint Workflow and automation. But to ensure you benefit from them, you need to make sure you’ve established a fully-baked plan before you dive headfirst into architecting and building out your workflow. Take a step back and ask yourself and your team “what do we truly want to accomplish?” and “what do we hope to gain?” These questions will put you in the right mindset to begin each of these major steps:
- Identify What you Hope to Accomplish
- Understand and Evaluate Your Process
- Architect Your Workflow
- Plan for Technical Constraints
- Design for Analyses
Identify what you hope to accomplish
Establishing your goals will help your team to identify the appropriate process, and likewise, will help you decide if SharePoint is the right tool. As simple as it sounds, it is also going to help you validate that you should be taking on the project to begin with. Start by discussing and understanding your goals.
Goals that align well with SharePoint Workflow
- Improved project visibility
- Better adherence to timelines
- More effective prioritization and communication
- History and timestamping of decisions for auditing purposes
- Decreased administrative overhead
- Improved reporting capability
Goals that don’t align well with SharePoint Workflows
- Highly custom / branded task approval interfaces
- Approval points that require more than affirmative or negative
- Systems where more than 1,500 tasks need to be assigned per month
- Systems where a single flow needs to extend beyond 6 months
There are certainly workarounds for the items that don’t align well. However, if your process relies heavily on any of the misalignments above, consider exploring other tools.
Understand and Evaluate Your Process
Often, we try to recreate what we currently have; there’s a lot of comfort to be had in familiarity. But don’t fall into the trap of “this is how we’ve always done it”, this is your opportunity to streamline and improve! Begin by understanding and evaluating your process.
- Review your organization’s goals to ensure the process in question is aligned with the future
- Map the entire process at a high level so that everyone involved can see the big picture
- Identify the critical parts of the process so that you can focus your attention
- Identify and remove any unnecessary or low-value elements
After fully reviewing (and hopefully streamlining) your process you should begin to map your workflow and automation elements.
Architect Your Workflow
Identifying which user should be taking an action is critically important. A workflow needs to know to whom an email should be sent or a task should be assigned before that action takes place.
- Should it always go to the same individual?
- Does it need to go to someone with a certain title in Active Directory?
- Should it go to a shared mailbox?
- Can it be assigned to a group of individuals?
- Do you need to notify external users?
A notification is typically sent via email and contains a message and/or link. The purpose is to alert a user or users that an event has either occurred or is about to take place. Typically, a notification is used to communicate milestones or conditions, but does not stop a process or require a response.
- The Event begins tomorrow
- The TPS report has been approved
- The invoice is past due
- There has been a change in the record
- The files have been uploaded
A task is an assignment to a user or group of users to take action. Typically in SharePoint, this task can have an “Approval” or a “Rejection”, a due date, and will come with email reminders and notifications. Tasks can also be synced to show up in Outlook’s task pane.
Tasks are typically leveraged to:
- Approve or Reject a document or decision
- Request a user to take action and confirm that it has been completed
- Halt progression of a process until an action has taken place
- Log the date, time, and individual taking action on a task
When certain actions take place, or certain conditions are met, SharePoint workflow can take actions on your behalf. SharePoint comes with a broad range of actions it can take on your behalf right out of the box. For example:
- Create, Update, Edit, or Delete an item
- Do a calculation
- Send an Email
- Assign a task
- Wait for a Date or Event
- Call an HTTP Web Service
Because there are often things we want to automate that don’t come out of the box, the ability to call an HTTP Web Service is the most powerful. Using that, a developer can build or communicate with a freestanding application that lets you extend functionality and interact with other systems and software.
Beware of Information Overload
Take great care when identifying key points in your process to determine where visibility or engagement is critical. It is all too easy to create a workflow that automates a process and inundates its users with an inordinate number of emails. Focus on only the alerts that add value to the process. For example, you may want to set a management alert when a group of tasks have been completed or when they’re in danger of missing a deadline vs. sending an alert blindly each time a task is complete.
Plan for Technical Constraints
As with any software development, a SharePoint Workflow must be planned defensively to avoid common pitfalls and limitations. Most of the more troublesome limitations can be avoided with good up-front architecture and integration with Azure or other database resources.
Workflow history deletion
SharePoint cleans up after itself, deleting the history of task approvals and timestamps within 60 days of workflow completion. This prevents the list that contains the data from exceeding limits, but is bad news if you need to report on that data in the future. Consider copying this data to a persistent location such as SQL Azure at workflow completion to build a repository of approval / rejection history.
5,000 Item List Limits
SharePoint limits lists (specifically views of lists) to 5,000 records. This means that if you’re going to have more than 5,000 tasks issued in a period of 60 days + (the length of your workflow/process), you’ll need to identify a way to record the history and clear tasks. If you’re looking at a process that requires far more than this, SharePoint may not be the right choice.
Similarly, this also means that each instance of your process needs a means by which it can be archived. Even at low throughput, it’s likely that you’ll eventually exceed 5,000 items. As such, you need to think through how you want to keep that number below 5,000.
Keep Workflows Short
If a workflow can logically be broken into several smaller workflows, take advantage of it. This allows for a more dynamic experience and doesn’t lock the values into variables until the last possible moment. From a defensive development perspective, if the workflow does encounter an error, that error only applies to a small piece of the workflow instead of the entire process.
Minimally Customizable Task Interactions
SharePoint does a great job at providing everything you need to approve and reject tasks out of the box. If you need to add comments or rejection reasons to tasks, that’s fairly easy to extend as well. However, SharePoint is not geared toward providing custom responses beyond Accept and Reject. It’s possible, but along with it comes significant development and maintenance costs. If the majority of your tasks can’t be quantified as Accepted or Rejected, you may need to look for a more customizable solution.
Design for Analyses
Along with the tasks and history log of the workflow comes approval outcomes, timestamps, and a record of users taking action on these items. This information is great from an operations perspective, but there’s even more value from a business intelligence perspective. Once you have a chunk of this process data to work with, you can begin to analyze critical metrics and learn more about your processes. For example:
- What types of projects miss deadlines?
- Which employees do well at which process?
- Where can you add efficiency?
By thinking through this upfront, you can ensure you’re capturing the necessary data points. Using SSRS or PowerBI, you can turn that analytical data into visual reports that are easily consumable by business management.
There’s ton to be gained by adding automation and workflow to support your processes. With the right attention and investment in upfront planning, you’ll get a reliable solution that does far more for your business that just “automating” a process.