SharePoint Calendar Cleanup: Use one workflow to remove Outlook “Copy:” prefixes, standardize location names and delete canceled events

headercalendar.PNG

We’ve all been there. One location on a shared calendar will be referred to by multiple people as 20 different things. Johnson Building Room 214 can be entered as “214,” “Johnson 214,” or “J214” to name a few. Canceled events stay on the calendar, sucking up real estate and waiting for someone to delete it manually. Items copied from another calendar make you pay for the convenience of a simple copy and paste by adding the “Copy: ” prefix to the item.

But with a single workflow, we can fix all of these and make our SharePoint calendars look more professional and polished without making more work for end users. This post will cover how we can use workflow to standardize naming of locations with workflow, delete events once they’ve been canceled and get rid of Outlook’s “Copy: ” prefix. You will need SharePoint Designer and appropriate permissions to create workflows to complete the following steps:

Continue reading “SharePoint Calendar Cleanup: Use one workflow to remove Outlook “Copy:” prefixes, standardize location names and delete canceled events”

Sending emails via SharePoint Designer workflow to external recipients using Gmail, Yahoo, Hotmail, etc. addresses

notbevalid

SharePoint Designer 2013 workflows verify email recipients as valid SharePoint users. If they’re not on your site they likely won’t be able to receive an email from a 2013 workflow depending on your setup. Even though the workflow publishes, the recipient could be removed before the message is sent. You may also get this error message when creating the workflow:

“The selected user(s) may not be valid on the site this workflow is published on. If a recipient is not a valid SharePoint user, he or she will not receive workflow emails.”

More often than not, this will be triggered by any yahoo, gmail, hotmail, etc. address but can also sometimes occur with addresses within your organization if they’re not in your AD and properly part of your site. I recommend copying yourself in testing to be sure the message is sent to external users if you think you’ve successfully made external addresses valid SharePoint users.

But to be certain you get around this 2013 obstacle, simply use a 2010 workflow. SharePoint Designer workflows built on the 2010 platform do not verify addresses. And if you’ve already built a complicated masterpiece in 2013, no need to fret. You can always create a 2010 workflow just for the email and start it within your 2013 workflow.

Update 9/1/17: If that still doesn’t work…

Most likely your recipients, then, aren’t being looked up in an item field (perhaps the same address will be used for all workflow instances). In your workflow before the email step, “Create a workflow variable” and set it to the person(s’) email address(es). If multiple, type as semi-colon delimited. Set the variable type to string. Then for the To: line in the email, use a workflow lookup to that new variable.

Use BCC field in SharePoint Designer workflow email actions

bcc20102

Yes, you can have a BCC field in your SharePoint Designer workflow emails. I didn’t know this until recently, and was pleasantly surprised. It’s quick and simple, so let’s get started.

Note: You can do this in both 2010 and 2013 SharePoint Designer workflows, using the exact same steps.

Continue reading “Use BCC field in SharePoint Designer workflow email actions”

Alerts/notifications for SharePoint site newsfeed webpart posts & replies

newsfeed3.png

One of the greatest business value features of a site newsfeed webpart would obviously be to know when people are participating, asking questions, etc. This way moderators or other interested parties could go in and respond in a timely manner. And while there’s no straightforward way to get these notifications from the webpart itself, there’s a workaround. Follow these steps once you have a newsfeed webpart on your site (by default, most team sites have them already).
Continue reading “Alerts/notifications for SharePoint site newsfeed webpart posts & replies”

Embedding or publishing Power BI reports in SharePoint so non-licensed individuals can view

Note: This, like many O365 things, is rapidly evolving. If you’re aware of better practices or new updates to licensing, feel free to mention it in comments.

I’m currently at SharePoint Fest Seattle where Chris McNulty, Sr. Product Manager for Office 365 and SharePoint at Microsoft, mentioned (as I understand) there could be changes coming to licensing that would allow more people to consume Power BI reports in a friendlier (more affordable) licensing structure. This would be amazing because currently:

I can create reports. People can’t view data in those reports in a secure way because the entire organization isn’t licensed for Power BI per person above the “free” license.

Specifically I, with a Power BI Pro license, can create reports and place those in SharePoint’s new page experience Power BI web parts (in Preview) but other people (with free or without Pro licenses) cannot view them. They see the following:

powerbiviewerror.PNGOf course, to me as the creator and properly-licensed individual, I see the report perfectly embedded as it should be. And not every organization can afford to license every single user appropriately to be able to simply view embedded reports. Especially if consuming reports (not sharing or building) is the only function they need in the Power BI realm.

In this post, I’ll cover:

  • How to embed Power BI reports the normal, easy (but license-exclusive) way
  • Why the webpart (normal, easy way) is cooler than embedding a script
  • How to embed the report in a (less secure) way so that non-licensed or free-license individuals can actually view and manipulate the data

Continue reading “Embedding or publishing Power BI reports in SharePoint so non-licensed individuals can view”

SharePoint workflow “access denied” error sp.utilities.utility.SendEmail solution

If you’ve found this post by search, you’ve likely already gone into the workflow settings for a particular list or document library item and have clicked the info icon (infocon) next to “Internal status” and found that your workflow is “in progress”, but has an error: “Access Denied. You do not have permission to perform this action or access this resource.” Peering into the bulk of the message, you see a helpful tidbit that includes sp.utilities.utility.SendEmail. This could be from a number of causes, but here are the summaries of three possible solutions. Note that the first solution is still required even if you try B or C below. I’ve only included the second and third solutions as additional possibilities if the first doesn’t solve your problem.

A common question, before we begin, is what level of permissions any individual needs to be able to send an email or start a workflow generally. It doesn’t matter so much if you’re using Impersonation or App Steps, but the quick answer is a minimum of Contribute level permissions is good.

Continue reading “SharePoint workflow “access denied” error sp.utilities.utility.SendEmail solution”

Starting a SharePoint Designer 2010 workflow within a SharePoint Designer 2013 workflow

startaworkflow

Sometimes you’ll into situations where a SharePoint Designer (SPD) 2010 workflow is the only way to go in order to make something work. In May 2017, I gave a presentation at SharePoint Saturday Baltimore and shared the following slide of functions only possible by using a SharePoint Designer 2010 format workflow.

SPSBaltimore2017-Workflows.jpg

Unfortunately, you may have loads of conditions and stages already built in a SPD 2013 workflow by the time you realize you need some of this 2010-exclusive functionality. No need to fret, however, because we can start that necessary 2010 workflow from wherever we need to within our 2013 workflow, as if it were just another ordinary step.

Continue reading “Starting a SharePoint Designer 2010 workflow within a SharePoint Designer 2013 workflow”

Solution: Converting lookup values to text and working around SharePoint error “lookup list is in another web”

notsupportedinquery.PNG

Lookup columns aren’t friendly to a lot of things. Power BI reports, calculated columns, creating new items via workflow when both lists have lookup columns, if/then statements, etc. Especially when your lookup column is looking up to a list from another site, not the same subsite in which you’re working.

A previous scenario required that I create a new item in a different site’s list when conditions were met in the origin site’s list item. Both lists used the same lookup column, and I received the “lookup is in another web” error when trying to do a direct copy via workflow, from lookup column to lookup column. The solution ended up being creating a new item in a temporary, lookup-free list that received the lookup values just as text. Then SharePoint Designer copied those over to the final list, which received the text and happily converted it back to the appropriate lookup values. See the full solution here.

This post will focus on the same error message, but this time is triggered by a SharePoint Designer workflow in a different scenario where we just want to convert our lookup values to text so we can use them for various purposes.

To save you time, I also tried (and failed) at these potential solutions before finding success:

  • Setting workflow variables to the lookup values and trying to set the variables to text values, or use the variables in my if/then statements to create new text values (this defeats the purpose of using lookup columns, of course)
  • Using a number of combinations of Microsoft Flow and SharePoint Designer to get the data from the lookup column extracted then “pasted” back in as text

So let’s get to the solution. Feel free to comment with your scenario specifics – I’ve had a lot of experience with this error, and would be happy to help.

Continue reading “Solution: Converting lookup values to text and working around SharePoint error “lookup list is in another web””

Automatic, regular data refreshing for Power BI reports

refreshsettings.png

One of my favorite features of Power BI is the ability to have published reports automatically refresh data on a schedule. This is great for “setting and forgetting” your reports, knowing wherever you publish them they will be showing the most recent data for your clients. I feel like it used to be depending on your license, you could be limited to how frequently you can refresh (max of once per day), but you can refresh nonetheless. And this may have changed, as I couldn’t find (in my brief search) any confirming statement.

Let’s set up that scheduled refresh!

Continue reading “Automatic, regular data refreshing for Power BI reports”

Automating item-level permissions in SharePoint document libraries and lists

workflowitemlevelpermissions

Item-level permissions come in handy for a number of situations. Here are some examples and food for thought:

  • Travel plans are submitted to a list, but only those in people columns (supervisor, director, traveler) are allowed to see or find the plan by search.
  • Allow “content owners” to edit documents, and everyone else to view only.
  • Allow non-admin individuals to set editing permissions for documents or list items by populating a people column

Using a SharePoint Designer 2010 Workflow and an impersonation step, we can:

  • Add list item permissions
  • Inherit list item parent permissions
  • Remove list item permissions
  • Replace list item permissions

This tutorial will use the “replace list item permissions” action. Whenever you’re replacing permissions, you must remember to INCLUDE YOURSELF or admin individuals in the replacement permissions or you won’t be able to access the content or help with troubleshooting. Let’s begin!

Continue reading “Automating item-level permissions in SharePoint document libraries and lists”