Power Platform: Custom administrator and developer role

Custom security roles on Power Platform are mostly used for Dynamics and model-driven apps, but they also work for canvas apps. By default an environment (without a Dataverse database) has two default roles (environment maker and environment admin). However if you create and environment with a Dataverse database, you get the ability to create custom security roles and 10 default roles. I strongly advise not to change the default roles.

Custom administrator role

At the moment of writing this blog it is possible to alter the default environment maker role (not system administrator), but I would not recommend it. Microsoft might push changes to the default roles and overwrite the customizations.

Creating a copy of the system administrator role or the environment maker role and making changes to the copied role, is also not an option. In the background Microsoft sets the CanEdit privilege to the administrator/environment maker role, and if you copy the role the CanEdit privilege is lost. The CanEdit privilege can only be set by Microsoft.

This practically means that creating a custom administrator role is not possible.

Note: Granting a user a role that effects the CanEdit privilege will take a non-specified amount of time to take effect. For example, if you switch from a copied role to a default role, it can take 30 minutes for the change to take effect.

Custom developer role

Creating a custom developer role is possible if you are willing to accept the following scenario. The developer gets an custom security role granting the required privileges, for example the ability to work with solutions and canvas apps but no export privileges. With only this security role the developer cannot access the environment and is missing the hidden CanEdit role.

The CanEdit role can also be granted by being an owner or a co-owner of a canvas app in the environment. If an administrator creates a canvas app and makes the developer co-owner of that app then the developer can access the environment and has the hidden CanEdit role.

Teams / Power Automate adaptive cards

When sharing information or sending out a notification on teams I like to use the adaptive card feature. Adaptive Cards are the Teams method of sharing and displaying blocks of information in an easy-to-read manor without the complexity of customizing CSS or HTML to render them. With adaptive cards you can even create polls, show weather information, and create hyperlinks.

Creating a feedback form

  • Create a Power Automate flow with the required trigger.
  • Add the Post adaptive card in a chat or channel Teams action.
  • Select the Group chat (Channel or Group Chat) or provide the chat ID.
  • Add the following JSON code for an example feedback form with a title, single line, and multi-line text input fields and two types of choice list.
{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
    {
      "type": "TextBlock",
      "size": "Medium",
      "weight": "Bolder",
      "id": "Title",
      "text": "EXAMPLE FEEDBACK FORM",
      "horizontalAlignment": "Left"
    },
    {
      "type": "Input.Text",
      "placeholder": "{acFullName}",
      "style": "text",
      "isMultiline": false,
      "maxLength": 75,
      "id": "acFullName"
    },
    {
      "type": "Input.Text",
      "placeholder": "{acComments}",
      "style": "text",
      "isMultiline": true,
      "maxLength": 200,
      "id": "acComments"
    },
    {
      "type": "TextBlock",
      "size": "Medium",
      "weight": "Bolder",
      "text": "Do you like Adaptive Cards?",
      "horizontalAlignment": "Left",
      "separator": true
    },
    {
      "type": "Input.ChoiceSet",
      "id": "acDecision",
      "value": "1",
      "choices": [
        {
          "title": "Yes!",
          "value": "Yes"
        },
        {
          "title": "Of course!",
          "value": "Of course"
        }
      ],
      "style": "expanded"
    },
    {
      "type": "TextBlock",
      "text": "Suggest follow-up discussion regarding:",
      "weight": "Bolder"
    },
    {
      "type": "Input.ChoiceSet",
      "id": "acFollowUp",
      "isMultiSelect": true,
      "value": "",
      "choices": [
        {
          "title": "Everything",
          "value": "Everything"
        },
        {
          "title": "Always",
          "value": "Always"
        }
      ]
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "Submit"
    }
  ]
}

Creating a Poll

  • Create a Power Automate flow with the required trigger.
  • Add the Post adaptive card in a chat or channel Teams action.
  • Select the Group chat (Channel or Group Chat) or provide the chat ID.
  • Add the following JSON code for an example Poll with a title, header line, header, text, and a short poll.
{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "TextBlock",
            "text": "Example Poll Request",
            "id": "Title",
            "spacing": "Medium",
            "horizontalAlignment": "Center",
            "size": "ExtraLarge",
            "weight": "Bolder",
            "color": "Accent"
        },
        {
            "type": "TextBlock",
            "text": "Example Header Tagline Text",
            "id": "acHeaderTagLine",
            "separator": true
        },
        {
            "type": "TextBlock",
            "text": "Example  Poll Header",
            "weight": "Bolder",
            "size": "ExtraLarge",
            "spacing": "None",
            "id": "acHeader"
        },
        {
            "type": "TextBlock",
            "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer vestibulum lorem eget neque sollicitudin, quis malesuada felis ultrices. ",
            "id": "acInstructions",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "Example Poll Question",
            "id": "acPollQuestion"
        },
        {
            "type": "Input.ChoiceSet",
            "placeholder": "Select from these choices",
            "choices": [
                {
                    "title": "Choice 1",
                    "value": "Choice 1"
                },
                {
                    "title": "Choice 2",
                    "value": "Choice 2"
                }
            ],
            "id": "acPollChoices",
            "style": "expanded"
        }
    ],
    "actions": [
        {
            "type": "Action.Submit",
            "title": "Submit",
            "id": "btnSubmit"
        }
    ]
}

Creating a hyperlink

  • Create a Power Automate flow with the required trigger.
  • Add the Post adaptive card in a chat or channel Teams action.
  • Select the Group chat (Channel or Group Chat) or provide the chat ID.
  • You can use dynamics content for the hyperlink text and the hyperlink itself.
{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
       {
            "type": "TextBlock",
            "text": "This is example 1 [Hyperlink Texts](https://powerautomate.microsoft.com/)",
            "id": "acHeader",
            "wrap": true
        },
       {
            "type": "TextBlock",
            "text": "This is example 2 [@{triggerOutputs()['headers']['x-ms-user-name-encoded']}](https://powerautomate.microsoft.com/)",
            "id": "acHeader",
            "wrap": true
        }
    ]
}

Finding the chat ID

  • There are multiple ways to find the chat ID, I like to use the following way.
  • Open teams in the browser and open the chat
  • In the URL you can see the ID of the chat. You need to copy the code after conversations including the @ and that is after the @.
  • In my first example the ID is: 19:de13fe3a9cae407ba31abc84421e9ab4@thread.v2
  • In my second example the ID is: 19:95b0d2cb-aa0c-4e0c-8fcf-2f7b77c5afdb_d523c084-0c04-41d0-81d2-943ad42abe9a@unq.gbl.spaces
  • The action in Power Automate with find the chat and show the name of that chat.
https://teams.microsoft.com/_#/conversations/19:de13fe3a9cae407ba31abc84421e9ab4@thread.v2?ctx=chat
https://teams.microsoft.com/_#/conversations/19:95b0d2cb-aa0c-4e0c-8fcf-2f7b77c5afdb_d523c084-0c04-41d0-81d2-943ad42abe9a@unq.gbl.spaces?ctx=chat

Power Automate: Custom Flow loging

When managing multiple Power Automate Cloud Flows it can easily become a big task to figure out what went wrong and where. My client has more than 10 Cloud Flows that run multiple time per day or per hour. The solution is to create a log table (dataverse) or list (SharePoint) where all the runs are stored. The log table contains all the data an administrator needs to maintain the Cloud Flows. In my example I create a Dataverse table.

The Dataverse log table

In the log table we store the following data.

The Cloud Flow

In every Cloud flow a try and catch scope is added. All the main actions are in the try scope, if one of these actions fails than the catch scope will be used.

  • Add a Scope with the name Try.
  • Add the action the Dataverse Add a new row action.
  • Select the log table by Table name.
  • Select the Log status Processing, I use Processing, Failed and Successful.
  • Add the Cloud Flow name to Process name.
  • Add the following code to the Environment field.
workflow()?['tags']?['environmentName']
  • Add the following code to External URL, use the code snippets for the fx code.
    This creates a link to the actual flow run.
workflow()?['tags']?['environmentName']
workflow()?['name']
workflow()?['run']?['name']
  • Set the Status Reason to Active.
  • Add the end of the try scope add the Dataverse Update a row action.
  • Select the log table by Table name.
  • Add the ID of the create log in the Row ID field.
  • Select Successful in the Log status field.
  • Add a Scope with the name catch.
  • Add the Filter Array action.
  • Add the result of the try scope in the From field.
result('Try')
  • Add the following filter Status is equal to Failed
item()?['status']
  • Add the Dataverse Update a row action.
  • Select the log table by Table name.
  • Add the ID of the create log in the Row ID field.
  • Select Failed in the Log status field.
  • Select Inactive in the Status field.
  • Add the following text to the Log details: Flow log action(s):
  • Add the following code to the Log details, to show the error message from the try scope.
body('Filter_results_with_failed')[0]?['outputs']

Office 365: What’s new from Microsoft Ignite

During Microsoft Ignite many innovations that transform the workplace communications have been announced. Its impossible to name them all, so instead I will share with you my favorite innovations. Note that some of these features are already live, being rolled out or still being developed.

SharePoint app bar

The SharePoint app bar might even be my favorite announcement from Ignite. The app bar will be visible on every site on your intranet providing a consistent navigation experience. But it’s not only for navigation, that is just the beginning. The app bar also shows personal relevant sites, news feed and the files.
The SharePoint app bar will appear after you set a SharePoint site as a home site.

thumbnail image 1 of blog post titled 
	
	
	 
	
	
	
				
		
			
				
						
							Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation
							
						
					
			
		
	
			
	
	
	
	
	

	
	
	 
	
	
	
				
		
			
				
						
							Re: Introducing a SharePoint app bar that features global navigation

Home site in Teams

Your intranet (home site) is coming to Microsoft Teams. With the home site app for Microsoft Teams users gain direct access to the SharePoint Home site in Teams. The home site app in Teams gives your users global navigation across sites, communities, and teams; quick access to sites they use regularly; and a personalized news feed.

thumbnail image 1 captioned The home site app for Teams brings the power of your SharePoint-based intranet home site seamlessly into Microsoft Teams.

SharePoint: News boost

Microsoft listened to our request; we are getting the ability to boost news! With this feature you wil be able to boost the visibility of your important news articles. You can boost a news post until it has been read, for a set number of impressions, or until a given date.

thumbnail image 3 of blog post titled 
	
	
	 
	
	
	
				
		
			
				
						
							Innovations for workplace communications and employee engagement in Microsoft 365

SharePoint: news digest 

Keeping up with all the all the news and information can be harder than it seems. With the automatically generated news digest you will receive an email summary of the news articles you have missed. This will ensure that everybody will be well informed. The news digest can be customized with your organization’s branding.

thumbnail image 5 of blog post titled 
	
	
	 
	
	
	
				
		
			
				
						
							Innovations for workplace communications and employee engagement in Microsoft 365

Teams: Dynamic view

Dynamic view makes uses of AI to optimize shared content and video participant, it intelligently arranges the elements of your meeting for an optimal viewing experience. The viewing experience will change when people join, turn on video, start to speak or when starting to present. You will still be able change the layout based on your preference.

thumbnail image 1 of blog post titled 
	
	
	 
	
	
	
				
		
			
				
						
							What's New in Microsoft Teams | Microsoft Ignite 2021

SharePoint spaces 

SharePoint spaces is a very powerful new tool for 3D interactions. SharePoint spaces enables you to make immersive and engaging mixed reality experiences for 3D content, models and 360° imagery.

Office 365: What’s new?

The updates for Office 365 keep coming and coming, Microsoft is not sitting still! I am very excited for the following new features. Note that some of these features are already live, being rolled out or still being developed.

Microsoft Viva

Microsoft Viva is an employee experience platform, helping you create a work environment that puts people first, driving better business results.

It consists of Topics, Connections, Learning and Insights which are (partly) modules based on Microsoft Project Cortex technology. It brings together people, knowledge, e-learning using Microsoft Teams and SharePoint. And it also brings a Viva Insights app into Teams, utilizing data from Workplace Analytics.

Teams: Virtual Breakout Rooms

The virtual break out rooms are here! The meeting owner can create break out rooms to be used by the meeting participants for smaller group discussion. Participants can be assigned to a room and call them back to the larger group when the breakout is complete.

Teams: End-of-meeting notification

Microsoft Teams will notify the meeting participant when there is 5 minutes left in the scheduled meeting time. This will help users to be on time for the next meeting or shorting meetings that might drag on for too long.

Teams: Attendee Dashboard

Download the attendance list with a simple button.

Teams: Spotlight

It’s now easier to see if you are in the spotlight and to remove yourself from the spotlight.

SharePoint: 250GB file size support

The new upload limit for large files is now 250 GB for Teams, SharePoint, and OneDrive

SharePoint: Image Lightbox

Users can click on an image web part while in view mode, to see a larger version of the image.

Teams: 20 Tips and tricks

Most of use have been working from home for months and use Teams on a daily basis. Working remotely can be challenging especially if you just started working with Teams. The following 20 tips and tricks should help you get more out of Teams even if you are an experience user.

This blog post is an extension of the older Teams: Tips and tricks post.

The tips and tricks

  1. Pin favorite chats
  2. Pop out chat
  3. Pop out list
  4. Use mentions in chat messages
  5. Turn on do not disturb
  6. Create rich-text messages
  7. Send urgent chat message
  8. Save / bookmark a post for later
  9. Mute a chat
  10. Slash commands
  11. Shortcuts
  12. Expand tabs
  13. Send an email to a channel
  14. Change the order of the teams
  15. Hide teams or channels
  16. Pin a channel
  17. Record meetings
  18. Mark messages as read
  19. Mark messages as unread
  20. Change channel notifications

Pin favorite chats

By default, the most recent chats are shown under chats. This means that all the chats with users and your meetings are mixed together. This can be a bit confusing since is changes all the time. You can pin frequent conversations to the top of your chat list, to create a clear and use full overview.

  • Open the chats in Teams.
  • Click on the … or right click on the chat you want to pin.
  • Click on Pin.
  • The pinned chats will be grouped above the recent chats.

Pop out chat

When working with Teams you might feel stuck with one screen, but this is not the case. When you hover over one of your chats, you’ll see the Pop out icon. Choose that option and the chat will be opened in a new pop out window.

Pop out chat window screenshot

Pop out list

When working in Teams you might feel stuck with one screen, but this is not the case. You can pop out a connected SharePoint list.

  • Select the pop out icon.

Use mentions in chat messages

To make sure a specific colleague in a group chat or channel reads your message, use the mention option.

  • In a chat window type @ and fill in or select the correct colleague.
@mention with suggested people

Turn on do not disturb

Constant messages and alerts are a productivity killer when you’re trying to focus. You can turn off those messages by enabling the do not disturb mode. 

  • Click in teams on your profile picture.
  • Click on the > next to the current availability.
  • Select Do not disturb.

Create rich-text messages

Some messages need rich formatting to be more effective. In a chat message click on the format icon for all the options.

Format a message in Teams.

Send urgent chat message

If you need an immediate reply on a message, tag the message as urgent.
The recipient will get notifications every two minutes for the next 20 minutes or until it’s read.

Save / bookmark a post for later

No time to read an important post? Save the message to make sure it does not get lost. Use the slash command /saved to access all the saved messages.

  • Click on the … of a message and select Save this message.

Mute a chat

Chat messages from meetings can be a bit noisy, mute them if you are not involved in the conversation. When you mute a chat, you’ll still be included in the conversation, but won’t get notifications from it. 

  • Click on the … of the chat and select Mute.

Slash commands

Slash commands are command you use in the search bar and all start with you quested it a / (slash). These commands will help you be as efficiency as possible.

  • Type / in the search box to see all the available commands.

Shortcuts

Microsoft Teams has a lot of useful shortcuts. Use the slash command /keys to see all the options.

Expand tabs

Most tabs can be expanded to focus on the content and hide the navigation.

  • Click on the expand icon, the two arrows.
This image has an empty alt attribute; its file name is image-12.png

Send an email to a channel

If you want to send an email to a channel in Teams, you can use the channel email address. Once an email is part of a channel, anyone can reply to it to start a conversation.

  • Click on the … of the channel and select Get email address.
  • Click on copy in the popup window.

Change the order of the teams

The order of the teams can be changed, simply drag and drop the teams in the preferred order.

Image of teams list

Hide teams or channels

If you don’t want a team or channel to show in your teams list, because you almost never use it you can hide it.

  • Click on the … of the channel or team and select Hide.

Pin a channel

Pin your favorite channels for fast and easy access. Pinned channels stay at the top of the list so you don’t have to hunt them down.

  • Click on the … of the channel and select Pin.

Record meetings

Recording meetings can be incredibly helpful. You can watch the discussions, find out what the decisions where, listen to the training again or watch a meeting you missed (recorded by someone else).

  • During a meeting click on the … followed by Start recording.

Mark messages as read

Chat messages from meetings or chat conversions you did not take part in or from a while back might not be that interesting. You can simply mark them all as read and ignore them.

  • Click on the … of the chat and select Mark as unread.

Mark messages as unread

In Teams you can mark a message as unread so you can come back to it later. Use the slash command /unread to see all the unread messages.

  • Click on the … of the channel and select Mark as unread.

Change channel notifications

Not all channels are equally important. Reduce the notification noise by customizing the notifications for specific channels.

  • Click on the … of a channel.
  • Click on the > next to the Channel notifications.
  • Select the preferred option.