Category Archives: Office365

Other join options - Phone audio

M365 Day to Day: Teams – Phone Audio

It’s been a crazy year digging into web-based meetings with all the COVID-related circumstances individuals and organizations have been forced to adjust to. Many of us that were already working from home were, for the most part, already used to working this way. Organizations, on the other hand, may have found themselves in various states of technology or hardware readiness for the shift to remote and/or online work.

One situation workers may have found themselves in is being better equipped for phone conferencing rather than web conferencing – with headsets attached to work phones instead of directly to PCs. This led to folks needing or preferring to call into web meetings via phone rather than simply “joining” Teams meetings via the client or web interface.

So, if you’re wondering about using a phone to participate in Teams meetings:
Yes, Microsoft Teams does have the ability to join the audio component meetings via phones. This is done using the “Call me at” feature or the “dial in manually” feature. Microsoft does note that the “join call” feature via Teams is preferred for quality and availability.

User walk through:  Set up the Call me feature for your users – Microsoft Teams | Microsoft Docs

It’s also important to know that these features are managed by tenant administrators. So if users don’t see what they’d expect to see in the interface a first step is to check with their M365/O365 admins and see if settings or permissions need to be configured to see the features users are expecting.

Admin starting point: Manage Audio Conferencing settings for users – Microsoft Teams | Microsoft Docs

It’s also worth mentioning that some tenant configuration changes made my administrators can take time to show up for users – so set expectations appropriately.

M365 Message Center and Planner

I want to highlight a feature that Microsoft added to the M365 Admin Center, specifically to Message Center, and highlight why it’s important for folks – NOT just administrators – to be aware of.

I missed the announcement when this feature was released, but heard about it when listening to one of the M365Voice podcasts where Sarah mentioned it.

Overview

If you take nothing else away from this blog post, just know this:

Message Center syncs with Microsoft Planner.

This feature should be considered for a part of your M365 governance plan. It’s one of those examples where work is being done for you – work that should be setting your change management process up for success. That’s honestly the biggest reason I’m writing this. The feature isn’t getting anywhere near the exposure that it should.

Anyone that gets Message Center email digests and/or logs into the Admin Center to check the Message Center should be looking at this. Anyone that wants to keep up to date with system and service outages, with upcoming features, with feature deprecations, with feature and service updates and more should take a look.

Want to get to the details quickly? Use the links in the References section below to Microsoft’s materials.

Why

So, why is this feature so important? The short answer is “governance”. The longer explanation covers a lot of ground and gets into topics like change management. The content delivered via the Message Center is critical to organizations’ ability to manage platforms and services that orgs have come to rely on. Keeping up with those platforms is getting increasingly difficult in a world of cloud-based services where features are changing at a rate that’s challenging to keep current with. The volume of information coming through is also tough to keep up with – even Microsoft calls this out when announcing the sync feature as a way to help mitigate the issue.

Access to the Message Center has been another challenge. While updates have been made by the way of new roles and permissions, the Message Center has historically been the realm of administrators, which somewhat slowed or restricted the flow of content to everyone that needed it.

Finally, targeting or aligning Message Center content with the appropriate audience has also been a challenge both from the content creator side and from the content consumer side. When new content is released, getting it in the hands of the right folks can be critically important. Historically, responsibility for this has fallen on administrators – the folks most likely to be monitoring Message Center. While admins are certainly capable of doing this job, they’re 1) usually more than busy with their own responsibilities and 2) the “who should know what” function should really be dictated by governance planning and/or someone with the high-level vision of what the org is doing with the platforms and services they’re using.

Extra: The “crawl” investment to get this feature working is very low. It’s super easy to get the basics configured and up and running. Lots of bang for your buck.

Walk-through

While the “how” of a blog post is usually where the guts of the article are found, in this case the feature is extremely simple. The “whys” and “what’s next” are really where the interesting stuff is. But let’s step through it anyhow.

  1. Inside of Admin Center, navigate to the Message Center
    Admin (show all) –> Health –> Message Center
  2. Click “Planner syncing”
    image
  3. Click “Set up syncing”
  4. Set up your plan:
    Select an existing plan or create a new Microsoft Planner plan (will open a new browser tab) by entering a name and selecting a privacy level.
    Within the plan, create a bucket if needed, and select the bucket that Message Center content will be synced with. A “To Do” bucket is created by default with new plans. Best practices are TBD yet, but I think something like “Inbox” or “Triage” seems like a good place to start and indicates action needs to be taken on items that show up in the bucket. 
    image
  5. Choose messages to sync:
    1. All updates vs. major updates
    2. Select the types of messages
    3. Select the products or services – This is where most organizations will likely do a little filtering in terms of which products the organization is using or not using.
      image
  6. Choose which current messages to import:
    The sync does a one-time pull from existing messages in Message Center. Users can select 0-4 weeks worth of content in week increments. This is nice for bringing recent items in, or to just prove the sync and filters are working.
    image
  7. Review your selections:
    image
  8. At this point, the connection is set up. The automation is not yet, but is prompted next. Selecting to automate will create a flow using Power Automate.
    Note: Sync start date defaults to the current date. If you’d like to select an earlier time in the day, you’ll need to select a future date (tomorrow) to select an earlier time, like something in the middle of the night. Default schedule is once a day but you can schedule it for syncing further apart.
    1. Select “Create flow with Power Automate”
      image
    2. You may also need to create a connection before creating the flow. This is where you have an opportunity to select the account being used to connect to Message Center. Check the best practices in your org for setting up connections.
      image
  9. That’s it!!
    Note: Message Center shows the last sync as well as a link to Sync now in the upper right of the screen.
    image
  10. If you chose to sync existing messages, check your Planner plan to see if they’ve come across.
    image

Editable and Cancellable

Once the sync has been set up it can still be edited and cancelled. Clicking on the same “Planner Syncing” link will open the sync details information where settings can be updated and the sync can be cancelled.

image

Cancelling the sync will even remove the flow if one was created (nice touch!).

Tools Governance

The sync process involves Microsoft Planner at a minimum, and likely also uses Power Automate if you opted for the automatic sync. If those tools were already being used in your organization there are likely already policies, permissions, and practices to consider. If either tool is new to your org, you’ll need to take whatever steps are needed to ensure they are managed properly within the policies of your org.

The Roles of Roles

A topic often overlooked is roles from the perspective of technical platforms and services. Now, “roles” and “jobs” can be easily confused or thought of as the same thing. Sometimes they are, but often not. In many cases, a person in one job has many roles. It is important though to understand roles for platforms and services. A single person might be a user for one tool, a champion for another, or an owner for something else. Understanding who does what or who’s responsible for something is critical to determine what information – say, Message Center content – needs to get into whose hands to fulfill their role responsibilities the best they can.

It takes time and deliberate effort by an organization to identify and define tech-specific roles and to align policies and procedures around them. Performance and training are obvious reasons to make the investment, but understanding which audience needs to see what content related to change management issues is another legit reason, as is platform ROI improvement.

A topic for another time… Let me know if this is something you’re interested in as I’m working on a service offering around technical platforms, roles, and skills.

Once the sync from Message Center to Planner is set up, one hurdle has been bypassed and organizations have a lot more flexibility and options for getting the right information in the right persons’ hands – significantly improving the org’s ability to deliver for the business.

What’s Next

The initial sync configuration covered above is the “crawl” approach – getting the connection made between Message Center and Planner – making the content immediately more accessible. From there, “walk” and “run” scenarios can take several directions – depending on your organization’s change management practices, the tools available, the culture within the org, and more. A few potential areas are listed below:  

Change Management

The Message Center content is one input into a change management process in the organization – a process to “prepare, support, and help individuals, teams, and organizations in making organizational change.” – whether or not you’ve considered a formal change management process. If the org already has an established process, someone will need to figure out how this content works into the bigger picture. If you don’t have a process, the new plan could be the foundation of a new process.

Microsoft Planner

If Planner is already being used, the powers that be will want to consider which plan to use and what rules around that plan need to be implemented. There may be best practices for setting up users, which buckets to create, any automation options that can be used, etc. In the video linked below Microsoft suggests a few different bucket approaches that can be used.

Microsoft Teams

If Teams is being used in your organization (more and more likely) then you may want to consider integrating your Message Center plan one or more Teams to facilitate discussions, tasks, and more related to Message Center content, change management, etc.

Power Automate

If you’ve scheduled the sync for regular downloads, there is already a flow set up through Power Automate. If Power Automate is already being used at  your organization someone will want to make sure the flow conforms to whatever policies are in place. If Power Automate is new to the org someone will want to review its usage and potentially walk through whatever is required to add a new technology.

Let me know what you’d like to hear more about!

References

My 2 Cents: M365 Voice #28

I was particularly interested in hearing what the M365 Voice crew had to say in their latest episode as the topic is near and dear: Keeping up with the latest news, updates, changes, etc. in the technology platforms we use… more later on why I’m so interested.

Episode #28How can organizations today stay on top of changes in M365

The question asked is one many folks ask – both from an individual’s perspective and from an organization’s perspective. I’ll extend the question from the show a bit more broadly: “How do we keep up with *any* of these technical platforms that move so quickly?” Now, the M365 crew was focused on the perspective of the org – an extremely important perspective. From a slightly different angle, I think the personal perspective is also relevant and overlaps with the needs of organizations.

Why is this important?

SO many reasons.

From the organization’s perspective, it’s important to keep up:

  • to understand any risks to the org introduced by changes
  • to know when changes may require communication and training for users
  • to be aware of ways to increase ROI on platforms – using capabilities that are available and applicable to the org

From an individual’s perspective, they’ll want to:

  • keep up with changes in order to maintain skill sets (marketability, etc.)
  • know their tool set in order to be the best resource they can be for their org

And many more…

My 2 cents

  1. So first of all, I find Microsoft does a pretty good job with documentation and communication around many of its products, better than most companies in my experience. For context, my experience has been primarily in the areas of SharePoint, O365, and now Power Platform, so keep that in mind. Do they cover everything to everyone’s satisfaction on the timeline everyone expects? No. Set your expectations realistically and provide feedback where you can – they do listen and act on it.
  2. The ideas, examples, and summary the M365 Voice crew gave are right on – great places to be if you’re in the know, deep in the technology. As was mentioned several times, it’s also important to keep everyone else (beyond IT – hence the reason for governance boards, etc.) in the loop as well, which is somewhat more challenging.
  3. The Message Center and feeds from it are an excellent place to start. While I personally don’t go to the Admin area and check Message Center directly right now, I do get regular emails with updates from the Message Center that provide me enough info to get an overview of changes and find what I need by digging in when I want to know more.The “digging in” part is where things start to go sideways a bit.

    As the crew touched on – if you’re invested in the technology and community, finding additional info is doable. You’ve built a list of channels to follow and are familiar with the terms that get you the search results you need. If you’re not dug in yet or are coming from more of the business side of the organization than the IT side, then there are challenges in going deeper:

    1. Who do you follow on social media?
    2. How do you know which channels produces reliable content, opinions, experience, or conclusions which don’t?
    3. What is your preferred content? Video, podcasts, documentation, etc.? Folks learn in different way

    Bottom line for me is that Message Center is a great starting point but it would be nice to have more “where to go now” direction when needed.

  4. I LOVE the Message Center syncing with Planner. Thanks for the heads-up on that Sarah – I hadn’t caught wind of that capability before now. From a governance perspective, this feature is huge. Not only giving us a source of information, but enabling administrators a way to facilitate a process of review and communication. A few links below but I’m shocked there isn’t more out there (yet?) about this feature.

Why do I care? What am I working on?

Well, the reason I care about this topic is because of a project I’m working on – a potential service and resource for bringing technical platform capabilities together with an approach to tracking individuals’ technical skills as well as collections of resources to learn about these capabilities. The subject matter covered today touches on all of these.

  • What roles do you recognize in your organization when it comes to tech tools?
    More than ever, this is different than job titles. You might have traditional IT roles like IT Pros/admins, Developers, etc. You might also have someone on a business team that’s also a Microsoft Teams owner, or a channel owner. You might have a power user that’s building Power Apps or flows in Microsoft Automate. These are all legit use cases, both traditional roles and newer ones.
  • What pain points are each of those roles finding when it comes to keeping up to date with today’s tech platforms?
  • Do those folks have challenges or are they getting what they need with the processes you have in place?
  • How does your organization facilitate or help folks skill up and/or keep up? How do individuals or teams do what they need on their own?
  • On-boarding new folks, rolling out new products and capabilities – use-cases that in an ideal world will come with training for all the relevant roles. But training often is a one-time shot. How do folks at your organization keep up with these products *after* the initial training?

I’d love to chat if you’re willing – to hear about your specific pain points. Send me an email, respond to this post, whatever you’re comfortable with.
I know what I’ve seen, but I’m just a single data point. Smile 

Links and References

Sarah also followed up with a post with additional content and references.

Message Center connector

Sync Message Center posts to Microsoft Planner

SharePoint Saturday Twin Cities – What would have been… Spring 2020

With the ongoing COVID situation we had to cancel our Spring SharePoint Saturday event scheduled for tomorrow 5/30 (we did this a while ago). Today I’m bummed – seeing calendar reminders for when we would have been setting up for the event and having our speaker dinner tonight – with the actual event and follow-up events tomorrow and tomorrow night.

It’s unfortunate and sad that we won’t be hosting speakers, sponsors, attendees and friends here in the Twin Cities today and tomorrow. I and others are missing our friends at a time we could really use those visits and quality time with the community we’re all a part of.

Stay safe! We’re looking forward to seeing you all again soon!

SPC20 – Extending and Enriching Collaboration Platforms with Power Apps

The Event

The SharePoint Conference is the premier SharePoint and Office365 content event – held in Las Vegas, NV May 19-21 and will include a TON of awesome speakers, sessions, workshops, and vendors. It’s the largest SharePoint conference around and a unique opportunity to visit with Microsoft folks that are building the software tools we use every day. It’s also typically an event where Microsoft makes major announcements on new features, new products, and more!  Not only do you get the opportunity to hear those announcements first-hand, you can chat with Microsoft product team members to dig into details and provide your feedback.

The Session

This 60-minute session will dig in deeper than my 20-minute session on “7 Quick Wins”. I’ll be talking about opportunities within SharePoint and Microsoft Teams where extending the content, solutions, and interfaces with Power Apps enables users to be more productive and utilize more of the tools available to them in the workplace.

Why am I talking about this topic?

For years we’ve had SharePoint around and organizations have found varying degrees of success. In many ways their success depended on how invested they were with the platforms – how far adoption went in both breadth and depth. Some teams used document libraries instead of file shares, but never made use of things like metadata or views. Some organizations dug into SharePoint lists, built solutions, and took a few organizational steps forward, but rarely were platforms embraced holistically within organizations. Now, we have Microsoft Teams – which arguably is taking on the mantle of the monarch of the collaboration space. For organizations embracing Microsoft Teams it is becoming the one-stop-shop for where to work, where to find critical info or a path to other systems that maintain important information or functionality. One thing that’s been consistent is that there has almost always been a lot of functionality, capability, and ROI left on the table. This session is addressing some of that technical debt – helping people understand what capabilities are available or how those capabilities can be implemented for business benefit and ROI. In most cases that ROI comes from employee time, but it can easily extend into things like preventing or managing expenses or even preventing regulatory lapses or fines.    

What will be covered in this session?

The Power Platform – Power BI, Power Automate (aka “Flow), Power Apps, and Power Virtual Agents all have a lot to offer, but this session will focus on what Power Apps brings to the collaboration space. From my perspective that means access to information – visibility or accessibility to information – getting the information from whatever source (we’ll be talking mostly about SharePoint list data) to whoever needs the data, in the form that they can best consume the data, and on the platform that makes the most sense.

  • We can use Power Apps to build better SharePoint list forms
  • We can build Power Apps using SharePoint libraries or lists as data sources, building better user experiences, connecting to additional data sources, and still surface the solution in SharePoint
  • We can take SharePoint data solutions with Power Apps to the Microsoft Teams surface
  • We can take data mobile with Power Apps

With SharePoint we’ve been building single-page and multi-page solutions for a long time by stitching together the out of the box list interfaces and SharePoint pages and then extending them by customizing views, forms, and other controls. When Power Apps was first integrated into the SharePoint and O365 space it was pitched as all about forms – something we’d been wanting and needing for years. That scenario is still valid and relevant – finally allowing list owners to build interfaces within the SharePoint context. As SharePoint itself continues to evolve, both form and view solutions enter a bit of a gray area as SharePoint features start to overlap with capabilities that Power Apps also offer. Power Apps allows us to build apps, using one or more lists (or other data sources) and continuing to present those solutions via SharePoint pages, though Power Apps can also be used directly in the browser as well. Those same apps are also available via mobile devices in either phone or tablet layouts.

With the addition of Microsoft Teams to our suite of choices, we have another surface to make apps and solutions available. Tabs within Teams allow both surfacing of SharePoint lists and Power Apps. Power Apps are, in fact, easier to add to a Team than they are to a SharePoint page (though neither are difficult). 

The short story is that our toolbox as consumers of business data and builders of business solutions continues to expand within the Microsoft Office space by using Power Platform tools like Power Apps and its partner technologies.

Session Abstract

As SharePoint team sites move to Team sites, mobile workers demand solutions, and makers run into the limitations of lists, organizations look to Power Apps to deliver added value and capabilities to both traditional and emerging collaboration platforms. Explore approaches and strategies for Power Apps with SharePoint and Teams.

Still working in the cross section of Power Apps and other tools and platforms we’ve been working with in the collaboration space… SharePoint, Teams, O365

My speaker page

SPC Registration and Discount

Use code “PRESTON” when registering to save $50. (or click the image below)

SPC_SpeakerBanners_PRESTON_thumb2_th

Keep an eye out for more content and announcements on SharePointTV and the SharePoint Conference video page.

Conference Schedule 2020

OK. Apparently I need to re-up my blog game as last year’s “conference schedule” post is only a few posts down on my site. It is time to get things ramped up again with a bunch of conferences to attend and present at, with lots of news and platform changes, and tons of great information out there. So here’s what’s coming up so far:

April 2-3 – North American Collaboration Summit 2020 – aka “SharePointalooza”, Branson, MO

This is PAIT Group and Microsoft MVP Mark Rackley’s event. He does a fantastic job pulling together a multi-day workshop and conference event down in Branson that includes over 60 speakers including Microsoft folks, MVPs and MCMs. If you’re from the upper Midwest, this is a drivable event and one that in addition to all the great content and networking, gives those of us living in Winter wonderland a taste of the Spring weather to come. If you want a more personal-sized event that’s not as overwhelming as some larger events but still gets awesome content, speakers, and networking, check it out! Come for the content and networking – and get the weather as a bonus!

Save $50 using coupon code: “PRESTON”. Registration starts at $100.
NEW – Save 50% using coupon code: “SPSTC” 

April 13-17 – SharePoint Fest D.C. – Washington, D.C.

SharePoint Fest is a great opportunity for a week of intense training with 2 days of workshops, 3 days of sessions, and lots of opportunities to network with speakers, sponsors, and attendees. We usually see 3 SharePoint Fest events throughout the year and this is the first, with Seattle in late Summer and Chicago in December.

Join us for great Spring event in D.C.! If you do, use the code PRESTON100 when signing up for $100 off your registration.

Preston

April 19 – 23 – MicroConf – Minneapolis, MN

I’m just attending this one – no speaking. I’m really excited to check it out though as this is a conference that’s been around for a few years and had rave reviews from others in the community. It’s been in Vegas for a while and just this year is moving to Minneapolis – where one of the founders is from and conveniently is where I’m also located – so hard to pass up the opportunity to check it out. If you’re an entrepreneur or are thinking about it, make sure to check this out. They’re also expanding to more regional events going forward.

May 19-21 – SharePoint Conference – Las Vegas, NV

Still the premier Microsoft produced and partnered event focused on Office365, SharePoint, and all the tech that extends and supports it. Expect to see big announcements, lots of product team presenters, big names in the community and executives from the Microsoft teams that bring you these great tools.

Use code “PRESTON” when registering to save $50.

SPC_SpeakerBanners_PRESTON

May 30 – SharePoint Saturday Twin Cities [New Name??] – Minneapolis, MN

One of the biggest and best SharePoint Saturday events around. We’ve been going for over 10 yrs with over 20 events. It’s not just about SharePoint anymore. We cover Office365, Microsoft365, SharePoint, Microsoft Teams, the Power Platform, Azure, and lots of other platforms and apps that support and extend the O365 space. The last few years we’ve been averaging about 400 attendees and have a wonderful collection of sponsors and volunteer speakers from the local area, region, greater US and sometimes international folks. Join us for a wonderful free event!

No need for a coupon code because it’s FREE !!

July 22-23 – Enterprise Rising Conference 2020 – Minneapolis, MN

This is another local entrepreneur and startup conference here in the Twin Cities doing a lot to bring the startup community here together.

August 24-28 – SharePoint Fest Seattle – Washington, D.C.

More info will be available as we get closer.

September 21-25 – Microsoft Ignite – New Orleans, LA

It moved! Both the date and location. Microsoft’s ultimate tech conference event. More info as we get closer but you can pre-register already.

TBD – Fall – SharePoint Saturday Twin Cities – Minneapolis, MN

Just want to keep this on your radar. We won’t have a date until after our Spring event but we will be back for the Fall with lots of info and announcements fresh from Ignite.

SPC20 – 7 Quick Collaboration Wins with Power Apps

The Event

The SharePoint Conference is the premier SharePoint and Office365 content event – held in Las Vegas, NV May 19-21 and will include a TON of awesome speakers, sessions, workshops, and vendors. It’s the largest SharePoint conference around and a unique opportunity to visit with Microsoft folks that are building the software tools we use every day. It’s also typically an event where Microsoft makes major announcements on new features, new products, and more!  Not only do you get the opportunity to hear those announcements first-hand, you can chat with Microsoft product team members to dig into details and provide your feedback.

The Session

This 20-minute session will highlight and some quick wins, as examples or demos, that you can walk away with and use in your own environments. The plan is to show 7 scenarios, on a fairly quick pace with an average of a little more than 2 minutes per example. Don’t worry though, I’ll stick around after the session for any questions and follow-up the session with posts walking through examples as needed.

Why am I talking about this topic? I’m covering this material and these concepts because there are a LOT of folks using SharePoint, using Teams, even using Power Apps that haven’t seen the capabilities or don’t understand the value these platforms provide and how they can be potentially leveraged together. Sometimes, especially in the cases I’ll be highlighting, solutions can provide a lot of business value for relatively little effort and without additional licensing. There are even organizations out there licensed to use these products and not using them because the organizations don’t realize what capabilities they have available, how to use them, or what the benefits could be! Unfortunately, some of those folks have features or even whole platforms turned off because they’re afraid of what users may do or the organization doesn’t have the controls or governance in place to let them loose on the organization. This session may might illustrate a few reasons – via business value – why features should be enabled…  If they see some examples in action maybe a few will take that back home and make a difference.

So what examples are we talking about? There are so many options available and maybe even new scenarios that will pop up between now and the conference, so I’m holding off on finalizing the top 7 until we get a bit closer. The nature of online platforms and the rapid rate of change gives us new and evolving options all the time. My plan is to stay within the products and licensing covered under Office 365, SharePoint, Microsoft Teams, and Power Apps so if you’re already using SharePoint, you won’t need additional licensing to gain the benefits of the examples you’ll see.

Quick things I like to make sure folks are familiar with when combining these platforms and potential “wins” for the session:

  • Editing SharePoint forms with Power Apps. You can do lots of really powerful things and leverage the full power of Power Apps, but you can also make the quick and easy form changes that users have been requesting for years. Change the order of fields, change the formatting, add some text or even links to things like help pages, and more!
  • Take your SharePoint list data to the mobile platform.
    Yep, list data is available today via the SharePoint mobile app, but there are advantages to using a Power App instead…
  • Insert a Power App in Microsoft Teams
  • Add a Power App to a SharePoint page
  • Utilize the Power Apps graphing components. Not a replacement for Power BI, but maybe the “good” in a “Good, Better, Best” scale with other graphing options available.
  • Quick data views with the Data table control
  • Connecting multiple SharePoint lists for *real* relational data…
  • Something with Microsoft Automate integration? Eh… maybe, maybe not…
  • Create “action” buttons for your SharePoint list data. Instead of the old: Edit an item, change the status field value, click save steps. Use Power Apps to access and manage data in one (or more!) SharePoint lists and build an interface with buttons that change the status to what you want rather than using the SharePoint list manipulation methods.
  • Display a map to display an address on a page, form, app. I always thought this was cool.

What do *you* want to see?

Most of the content will be for folks new to Power Apps, but experienced with SharePoint and/or Microsoft Teams.  Although new users to SharePoint and Teams will also benefit.

Session Abstract

Quick take-away examples using Power Apps to extend user engagement and data availability with SharePoint, Office365, and Microsoft Teams, and more.

My speaker page

SPC Registration and Discount

Use code “PRESTON” when registering to save $50. (or click the image below)

SPC_SpeakerBanners_PRESTON_thumb[2]_thumb

Keep an eye out for more content and announcements on SharePointTV and the SharePoint Conference video page.

PowerApps for SharePoint Users – Quick Getting Started Resources

A few quick links to trials, sites, and step-by-step details on a few key things

Key PowerApps scenarios for SharePoint users:

Back at it: Spring Conference Schedule

Well, it’s been a nice little break for a few months, but time to ramp it up again:

North American Collaboration Summit, aka ‘SharePointalooza’

Preston - PowerApps New Approaches to the Traditional SharePoint List View

Branson, MO – March 14-15

http://www.collabsummit.org/ – Use code: Microsoft

 

SharePoint Saturday Twin Cities

Bloomington, MN – April 6

www.spstc.com
Register here: https://www.eventbrite.com/e/sharepoint-saturday-twin-cities-spring-2019-tickets-55007874032

What? You’d like to sponsor? Awesome! Contact me at sponsors@spstc.com

 

SharePoint Fest DC

DC19Banner728x90SPSTC15
Washington D.C. – April 29 – May 3
https://www.sharepointfest.com/DC/ – Use code: SPSTC15

https://www.sharepointfest.com/DC/index.php/ourspeakers

 

The SharePoint Conference

Wes Preston-Preston Social Banner-254
Las Vegas, NV – May 21-23

https://sharepointna.com – Use Speaker Code: PRESTON when you register.

https://sharepointna.com/#!/speaker/Wes%20Preston/1913

Using PowerApps to Solve SharePoint’s Column-Level Security Puzzle

Overview and Business Need

Users want to collect and manage data – be it an upgrade from a spreadsheet or something more formal like a request process. It’s still a need and where SharePoint (online or on-premises) continues to excel. While more and more SharePoint-specific features and capabilities have spun off into separate products, SharePoint Lists thus far continue to be core to the platform and something power users still use as a go-to solution for their business needs.

So power users spin up a SharePoint list. They identify the information that needs to be collected and often review the list of fields to find that it would be preferable if not all fields were available to all users: sensitive data. Some of the data, for one reason or another, is business sensitive but is still required and needs to be viewed and managed only by specific users.

Even with these requirement limitations, the power user keeps plugging away with a SharePoint list and looks to the interface and controls – either out of the box or via customizations – to limit access to the sensitive data. This is ‘security by obscurity’. At the end of the day, if data is in a SharePoint list and users have read or view access to that list – they have access to all the data in the list. Period. No matter how hard you try to hide it with configured forms and views.

Enter PowerApps and another path – one that allows for true security of data in SharePoint lists. No more ‘security by obscurity’.

Spoiler: The Short Version

If you want to jump to the guts of it, the solution I’m suggesting can be outlined as follows:

  1. Use two SharePoint lists (Simple version. You can have more lists as needed). Use a main/parent list to hold most of your columns and put sensitive data into a second list.
  2. Configure specific permissions for each list (They will be different). In a typical intake form example, requesters will have contribute access to the main list and no access to the second list. Process approvers, managers, admins will have contribute access to both lists.
  3. Create a PowerApps app based on the parent list
  4. Add the second SharePoint list as an additional data resource to the PowerApps app
  5. Add your sensitive data fields to the PowerApp screens – Detail and Edit screens for now
  6. Update the Save button on Edit screen as needed
  7. When publishing your App, only give access to your management group – the one with access to all data

There are variations and details of course, that I’ll discuss below.

Background: SharePoint Security

SharePoint security has flexibility and multiple levels of granularity. A notable limitation, however, is that you can’t secure individual fields. You can set permissions on a list, and have some control (Item-level permissions) over individual items if you like. If you have content in a specific field or column that you only want certain users to have access to, you’re out of luck without building a custom solution to handle it.

If you want to store sensitive data in a second SharePoint list and have some sort of parent child relationship between the lists, you could make that work, though you’ll still need to stitch together some of the interface. SharePoint is pretty effective at handling single lists, but isn’t great at interfaces with data from multiple lists. From a page and view perspective, Modern SharePoint is starting to catch up to Classic functionality with connected web parts and even then the experience is a bit kludgy depending on how you are trying to build the relationships.

Start with the Data

What fields does the solution need to capture and how do you need to structure your data? Can it all be in a single SharePoint list? Should SharePoint be the container at all?  For the purpose of this post we’ll assume SharePoint is where we’re storing our data. We’ll also assume that most of the data being collected is accessible by most of the folks using the system with the exception of a few fields we’d like to limit to a smaller group of users – usually admins, approvers, or the like.

To avoid the ‘security by obscurity’ issue, we need to pull the sensitive data out of the main list and put it in a second list. For those not familiar with database design, this is called a ‘Parent Child Relationship’.  With the data organized as such we can set permissions on each list separately, granting appropriate permissions to each list so that no matter how a user accesses the system they’re only seeing what they should.

image

image

A simple example of a request of some sort. Obviously missing typical fields like status, requester, etc. but enough to demonstrate our point. RequestList1 includes the columns requester users complete. RequestList2 has an Estimate field that folks have decided is sensitive data. In order to make our connection between RequestList1 and RequestList2 we need a column in List2 to reference List1. Two typical options for handling this connection – the parent/child thing – are to:

  1. Use a Lookup column in RequestList2 connected to the ID column in RequestList1
  2. Use a Number column in RequestList2 that also uses the ID column in RequestList1

There are pros and cons to using either approach (Some are listed below in ‘Decision Points’. Pick one. You don’t need both) but they do both work.

With the connection between lists established, we’re now confronted with a user interface issue. SharePoint does great with a single list, creating default forms and views for us. Outside of a Lookup column, SharePoint is NOT designed for relational data. So we need to find a better way to handle this shortcoming.

Creating Child Data

With the lists and relationship configured and users making requests (RequestList1), how does data get into RequestList2? Again, we’re faced with a number of options.

  1. You could have folks that manage the sensitive data create the data manually by adding items via the SharePoint interface to RequestList2 and manually selecting (Lookup column) or inserting (Number column) the ID value, but this is not realistic or good UX design.
  2. Use Microsoft Flow to create a list item in RequestList2 every time a new item is added to RequestList1.
  3. Add functionality to the PowerApps app to create and update items in RequestList2

Option 1 is not an acceptable production approach to our solution. It might be useful during design and testing, not beyond that.

Option 2 seems like an easy solution. Personally I’m not a fan though. When everything works as expected it may seem fine. However, adding a Flow to create list items introduces unnecessary complexity and unreliable delays when the same outcome can be delivered using PowerApps without adding Flows (possible licensing issue depending on scale) and a time delay because you don’t know how long a Flow may take to complete.

Option 3 uses PowerApps and gives the solution designer the most control. Child items in RequestList2 don’t need to be created immediately, but can be added to the list as the process demands – like when an estimate value is being added. PowerApps can handle there being no child item gracefully. There’s no time delay when items are created. Overall this seems like the best approach.

Create the PowerApp

For the sake of simplicity, I created an app from inside of SharePoint for the RequestList1 list. This automatically creates a 3 screen phone app.

Note: The same 3 screen functionality can be created as a tablet/PC layout that might be more appropriate to use cases.

There are lots of options available and plenty of technical ‘how-to’ details for how to create the PowerApp. I am not going to cover all of these here as I’m primarily talking about an approach. Regardless of the options selected the primary data source for the app will be RequestList1. RequestList2 will be added as a secondary data source. This is done at the app level – selecting ‘View’ and then ‘Data Sources’ in the top menu nav bars.

Again, for the sake of simplicity I’m limiting the number of fields displayed on each screen. There appears to be a technical limitation when using more than one Form control on a single PowerApps screen that requires scrolling. So, we’ll just avoid that for now by keeping the number of fields displayed to a minimum.

Note: More details about the field/form/scrolling limitation are available below in ‘Notes, etc.’.

By default, depending on the fields you choose to display, the DetailScreen (for RequestList1) starts out looking something like this:

image

We want to add a second form to a screen – corresponding to the additional Data Source.

On the screen, insert a new Form (Edit form on the EditScreen, Display form on the DetailScreen…). Set the DataSource to RequestList2.

The key here (yep, sort of a database pun…) is to sync up the selected item in RequestList1 with the correct item in RequestList2.

Set the Item on the new Form control to the following (assuming the ParentNumber column in SharePoint is a Number column type):
LookUp(RequestList2,ParentNumber = BrowseGallery1.Selected.ID)

Note: See alternate in notes below for an Item value using a Lookup column

If there is a matching item in the child table – RequestList2 – the data should be displayed, as seen below.

image

If there isn’t a matching record, the new Form control itself will not be displayed and a message will be shown in it’s place as seen here:

image

The form for the second data source can be included on either the DetailScreen (Display) or the EditScreen, or both. If changes are allowed (EditScreen), you’ll also need to add a ‘Save’ button or update the existing one.

The existing Save button is shown below:

image

By default, the OnSelect action is set to: SubmitForm(EditForm1)

If a second Form control is added to the screen and allows updates, the OnSelect action for the button will need to be changed to:
SubmitForm(EditForm1); SubmitForm(Form1)

With ‘Form1’ being the name of the new Form control. This will trigger both forms to save their data to their respective data sources.

Share the App

Finally, when sharing the PowerApp app, the system will show the data sources being used and remind the app creator to set permissions correctly.

Create the app only for folks that have access to both lists – the Admins, Managers, Approvers, etc.

You may need, or want, to create a separate app for the other users depending on your solution requirements.

image

That’s It!

I’d summarize what we’re doing but I covered that in the Spoiler section above to save folks time. I hope this is helpful. Please let me know if you have thoughts or questions via email, social media, or in the comments below. Thanks!

Notes, Nuances, and Decision Points

Loose Ends

As with any solution there may be other details and loose ends to tie up. This post doesn’t cover details that would need to be addressed with relational databases solutions such as:

  • If you delete a parent list item how do you make sure the child items are destroyed so orphans aren’t left over.
  • If you don’t automatically create a child list item when the parent is created (using a Flow, etc.), how do you handle it in PowerApps…
    • Check to see if a child item exists
    • If it doesn’t yet exist, display a button to create an item
  • etc.

Do you use Lookup columns to connect the lists, or straight Number fields populated with parent IDs?

What are the pros and cons? Personally, I find Lookup columns to be irritating for this type of solution. There are going to be a LOT of records in your main list (RequestList1). If you use a Lookup column the primary control in SharePoint is a dropdown of all items – which will be large. The Lookup column also comes with some baggage in what is actually being stored – a display value, an index value, etc. vs. a Number field that stores… a number.

Ultimately for what we’re doing here – they both technically work.

Using the Number column:
DataSource = RequestList2
Item = LookUp(RequestList2,ParentNumber = BrowseGallery1.Selected.ID)

Using a Lookup column:
Item = LookUp(RequestList2,Value(ParentLookup.Value) = BrowseGallery1.Selected.ID)

For either: Works pretty gracefully – if there’s no match it gives a ‘No item to display’ by default. This is one of the areas where a loose end could be tied up. If there’s a way in PowerApps to test for the existence of a child item, you could hide the Form control and show an ‘Add New’ button or something like that.

Scrolling Issues

There seems to be a technical limitation when using more than one Form control on a single PowerApps screen that requires scrolling.

You are not able to merge the scrolling action of a screen with two forms controls… Under the current limitations best practices would probably suggest that from both the DetailScreen and EditScreen that additional screens be added to allow for display and editing of the data in ResultList2. This forces the use of additional screens, but provides the cleanest UX. Limitations on scrolling prevent having multiple forms on the same screen, but if the screen is large enough (tablet format) that doesn’t require scrolling, both forms (and their fields) could be displayed at once.

Alternative: There are ways data from the second form could be displayed within the initial form as well by creating text fields in the existing form cards and setting them to values of the second form… easier on the displayscreen and requiring more setup on the editscreen to enable saving of updated values.

One-to-one or One-to-many

Is your sensitive data One-to-one or One-to-many?
The example shown here is one-to-one. If you want to do one-to-many you’d need to change your approach to using a gallery when displaying the child items and likely specific detail and edit forms for the child items.

Others

  • When first testing app sharing if a user didn’t have access to certain data a message of “Getting your data…” was displayed – which seemed a fairly graceful way to fail. After a longer period the same app was tested and had a blatant “You don’t have permission to view this data…” error plastered across the screen.
  • Note: With PowerApps and the rest of the Power Platform entering the picture with all the connectors available including custom connectors – whether or not SharePoint is the best platform for data is a question we need to ask ourselves again. Something for another time…
  • Special thanks to Sarah Haase for input on the title of this post. Smile

References