Power Automate Sample – Custom Microsoft Teams Reminder for Meeting

In this post I’ll walk through a sample workflow I created for sending out Microsoft Teams messages for a team sync meeting. This is part of my Spring 2022 Fix Hack Learn (FHL) project.

Requirements

  • Send individual reminder to teammates (35+) to capture “weekly accomplishments” for next sync meeting
  • Schedule to run weekly (Fridays)

Solution

The high-level architecture for the solution I prototyped is as follows:

  • Trigger
    • Recurrence – weekly on Fridays
  • Actions
    • Create variables for tracking date when flow is run and “next Tuesday”
    • Create copy of template file and rename to desired filename
    • Get list of team members
    • For each team member
      • Send Teams message with link to above file

Below is a sample of the Teams message that is sent.

Challenges

Dynamic links in Teams chat message

When using the HTML designer for the Teams “message”, you are only able to specify static links. In our scenario we need to include a dynamic link to the upcoming document for weekly accomplishments.

Through some investigation online (link) we found that this can be achieved using the Code View. Once in Code View, you can specify an HTML anchor element <a href=…> and include the “link to item” for the file in SharePoint.

Rename files in SharePoint Online document library

Power Automate has a SharePoint action for copying a file, but you have little control over naming the file (ex. replace, new copy with an incremented integer, etc.). Separately, there are currently no native actions for renaming a file.

Instead, I found a quick workaround (link) to copy the contents of an existing “template” file and then create a copy using the contents of the template file. In the process we can provide whichever name we desire.

Calculate date for “next Tuesday”

As part of the renaming of file, I wanted this flow to be able to dynamically calculate the date for the next Tuesday on the calendar. Aside from being an interesting calculation I was personally curious about, this would also allow sending out the reminder on any day of the week.

After much searching online, I found solutions for calculating this in Excel (example), but that made use of a different set of functions that are not available in Power Automate. In the end I decided not to spend too much time on this and instead hard coded the calculation to be Friday’s date + 4 days. See below for the formula.

formatDateTime(addDays(variables('currentDate'),4), 'yyyy-MM-dd')

Conclusion

Hopefully this example can give you inspiration if you need a similar solution for sending out customized reminders of a recurring event or meeting. I was surprised at how quickly I was able to prototype the first iteration of this (less than 1 hour) and then iterate on it with a few enhancements before the day was done. I’m a big fan of how easy Power Automate makes it to automate and simplify manual processes. If you have any suggested improvements, share them in the comments.

-Frog Out

Resources

Flow does not generate clickable links for dynamic paths
https://powerusers.microsoft.com/t5/General-Power-Automate/Flow-does-not-generate-clickable-links-for-dynamic-paths/m-p/789336#M63152

Power Automate Rename File
https://www.enjoysharepoint.com/power-automate-rename-file/

How To Round Date To Previous Or Next Specific Weekday In Excel?
https://www.extendoffice.com/documents/excel/2663-excel-roud-date-to-nearest-sunday.html

How I Use Stream Deck

In this post I’ll walk through the configurations I currently use with my Stream Deck 15 key.

Stream Deck home screen example

(Last updated 2022-03-14)

Background

For those of you who are not familiar, the Elegato Stream Deck is a device that helps automate keyboard shortcuts as well as offer integrations with many popular content creation platforms or streaming services (ex. OBS, YouTube, Twitch, XSplit, and more). Currently it is available in 6 key, 15 key, and 32 key combinations. Each of the keys is a mini LCD screen that you can customize with text, images, or even dynamic content through developer extensibility. On top of that you can nest folders within folders for additional use cases.

My Configuration

My “homescreen” is split up into the following folders (with sub-actions) and actions.

  • Folders
    • Time zones
      • (5 different time zones corresponding to various teams that I work with regularly)
    • Recording
      • OBS Studio
      • Clipchamp
      • Descript
      • Carnac (app to show keystrokes on screen)
      • Scene switcher for OBS Studio (3x)
      • TikTok
      • File Explorer launch to folder for editing videos
      • Record (start / stop)
    • Community call admin
      • (various hotkeys and launchers related to community calls I co-host)
    • Media
      • Spotify
      • Windows Weekly (locally downloaded episodes)
      • Player.fm (podcatcher app)
      • Xbox Cloud Gaming
      • Goodreads
      • Play / pause control
      • Mute / unmute control
    • OneNote
      • (links to various OneNote notebooks I use through my week)
    • Text snippets
      • (multiple text snippets that I use on a regular basis)
    • Microsoft Teams
      • (keyboard shortcuts to control Microsoft Teams meetings / presentations / etc.)
      • Sysinternals ZoomIt (draw on screen, zoom screen, timer, and more)
  • Home screen actions
    • Microsoft stock ticker (custom app)
    • Dice Roller (for fun)
    • Elegato Key Light controls (on / off, brightness +/-)

Plugins

I primarily use out of the box (or installed by default) actions, but there are a few useful plugins that I do use (all from the same developer BarRaider. You can search for these and more in the Stream Deck Store as part of the configuration app.

  • Plugins
    • Advanced Launcher (BarRaider)
      • Launch Microsoft Store apps and additional customizations for launching processes
    • Games (BarRaider)
    • Stock Ticker (BarRaider)
    • World Time (BarRaider)

Extra tips

Launch browser profiles

For many years I have been using browser profiles in Microsoft Edge, Google Chrome, and Firefox. Each implements them slightly differently, but the general idea is that you can have different “profiles” for different personas. This includes a separate instance of saved credentials, home pages, favorites, and more. I use these extensively to test out Microsoft 365 sandbox tenants as various users, personal vs. work profiles for myself, and more.

Thankfully my friend Paul Schaeflein already blogged about launching browser sessions with different profiles. Read more on his post How I use Stream Deck – Browser Profiles.

Conclusion

In this post I overviewed the general configuration I use with my 15 key Stream Deck. I I’ve only been using my Stream Deck for a few months, but hopefully this post gives you a few insights into what / how you can use your own. Depending on future configuration changes I will update this post for major updates.

-Frog Out

Retrospective for 2021

Continuing my tradition of writing a retrospective (2020, 2016, 2015, 2013, 2012, 2011, 2010) or look ahead (2019, 2014, 2013, 2012, 2011, 2010), in this post I’ll recap 2021 and share goals for what is ahead in 2022.

Retrospective

When the COVID-19 pandemic hit full scale in the US in 2020, I didn’t know that we would still be dealing / struggling with this throughout all of 2021. I’ve heard others describe 2021 as “a year that just was”. Some have even joked about COVID Standard Time being a continual extension of 2020 (today is Tuesday, March 674th, 2020 by the way).

For my family, we adapted as best as possible and found ways to shake things up. We had a few notable events and updates that I’ll cover in the following sections. Overall, my feelings for the year were a blend of 1) being thankful for all of the blessings, friends, and support that we have received and 2) consciously needing to let go of some things in order to focus on the happy / positive side of things.

Promotion

One of the biggest events of 2021 was my promotion to Principal Program Manager (level 65) at Microsoft. I found out in late November and it was made official in December. As I mentioned in my LinkedIn post, promotion to from level 64 to level 65 at Microsoft is a rather big jump (compared to previous promotions). This includes new responsibilities and invitation to larger opportunities for continued impact internally and externally.

I’m thankfully to everyone that has helped me to get to this point, especially my mentors, team leads, and peer teams across Microsoft. I look to pay forward whatever and whenever I can all that these people have extended to me.

Reading books

In the past I’ve enjoyed reading books, but usually didn’t make / find the time to read more than 2 books a year (usually all compressed into the few days around big holiday breaks). In 2021, I set a goal to read 4 books. I also took the advice of a coworker to track it on Goodreads (link).

Surprisingly, not only did I hit my goal, but I doubled it by reading 8 books! I’m thankful to my many peers (Jennifer, Kristin, Sara, Mike, Ken, and more) sharing book recommendations and giving continual encouragement to keep up with reading. Many of their recommendations turned out to be great books with useful concepts and lessons that I am already applying to my personal and work life. Feel free to review my book list and / or suggest new ones (in comments or find me on Goodreads and share there).

Disney World trip

While my family took some smaller trips in 2020, our trip to Disney World in Orlando, Florida is the biggest (duration, cost, amount of activities, etc.) we’ve taken in a few years. We had originally planned the trip in December 2020 but those plans were changed due to the pandemic.

Initially I was apprehensive of traveling and being around so many people, but I was appreciative of the health and safety efforts that Disney has implemented. Our 3 young kids (7, 5, and 2) each loved different aspects of the trip, but for sure having rest days in between park days and a decent sized house to relax helped. I look forward to taking them back when they are older and can ride more rides and appreciate other parts of Disney World.

Dance lessons

For me, exercise during the pandemic has been a challenge. While we’ve been able to take bike rides, walks, park visits, etc. in the warm months, these aren’t always possible, especially when the weather is bad.

With that in mind, my wife has always talked about taking dance lessons at a ballroom dance studio. I’m not one to shy away from dancing, but I knew this could be a big commitment from a time and money perspective. For my wife’s birthday I decided to get a Groupon for a small set of dance lessons to see if it is something we would like.

We’ve been taking lessons 3-5 times a month now for the past few months. We cover many styles of dance including rumba, cha cha, tango, waltz, swing, and more. I’m happy to say it has been fun and also a great way for us to spend 1 on 1 time together without other interruptions.

TikTok videos

As I mentioned in my Weekly Tips and Experimenting with New Mediums and In Search of Creativity posts, I started sharing short #PSAforTheDay tips and tricks. First it was Twitter posts with static images, then animated GIFs, and finally short form videos on TikTok. This was primarily a creativity outlet but also enabled me to learn new technology and processes (ex. creating GIFs, editing videos efficiently, adding subtitles to video, etc.)

The key through it all though was I was curious to learn and driven to share. I’ve always enjoyed the quote:

“Knowledge learned that is not shared is knowledge lost.”

This felt like a great way to ensure that knowledge I’ve picked up over many years (and still learning) is not lost.

PSAforTheDay posts on Twitter

BrianTJackett videos on TikTok

Looking ahead

I have a few high-level goals for 2022. I like to document them publicly to help hold me accountable throughout the year.

  • Read 6 books (started book 1 this week already)
  • Walk 5 miles per week (treadmill delivering this week)
  • Compete in a dance competition (signed up for March)

Conclusion

How about you? How was your 2021? I hope it was a good and fruitful year and that you can appreciate the positive parts. Now that we’re a few days into 2022 I challenge you to reflect on your past year and set SMART goals for the year ahead.

-Frog Out

Sources

Header Image by bertvthul from Pixabay: link

Weekly Tips and Experimenting with New Mediums

For the past ~9 months, I have been posting a weekly #PSAforTheDay tip or trick. These have spanned a number of areas including developer productivity, Windows / Office, Windows Subsystem for Linux (WSL), PowerShell, presentation tips, remote work, and more. Here are a few things I’ve learned since I started.

  • Format
    • I originally posted all tips on Twitter as static images with simple edits using Paint.Net.
    • Then I moved to creating short GIFs with software called LICEcap for added animation.
    • Next I started recording short-form videos (1-3 mins) with narrated audio using OBS Studio and edited in Video Editor (Win 10/11 native app). Videos are posted to TikTok (and sharing out on Twitter and LinkedIn).
    • Currently, I am creating <1 min videos and doing post-processing in ClipChamp (edit clips, add visual effects, and add 1st layer of titles or callout text) and also Descript (convert audio to text and add captions).
  • Timing
    • Tips are recorded and published on Thursdays.
    • My goal from the beginning has been to keep the entire process per tip produced under 10 mins. With the addition of adding captions (increased accessibility among other reasons) it now takes closer to 20 mins, but I think that is an acceptable reason to budget more time.
  • Benefits
    • On a weekly or monthly basis, a co-worker will see something I do or ask about something that I have a tip for. Having a quick and sharable tweet / video makes it easy to show them (and for them to share with others).
    • Adding captions to videos (efficiently) was something I always wanted to learn how to do. Picking up skills like this has been personally gratifying and now I can re-use that on numerous opportunities in the future.
  • Challenges
    • Now that I have 9 months of weekly tips, it is getting more difficult to find a specific tip and send them a link to the tweet / video. I’m considering a simple page on my blog with an index / search box for the tips.
    • Embedding videos into Twitter and LinkedIn can be problematic, especially when the video comes from an external service like TikTok. I’m still trying to figure out the right approach here.
  • Tools

Take a look at all #PSAforTheDay tips and tricks:

PSAforTheDay posts on Twitter

BrianTJackett videos on TikTok

Tips on Email Signatures

In this post I’ll share tips and questions to ask yourself when creating an email signature. The instructions will be specific to Outlook, but the concepts apply to any email program.

Background

This week a peer of mine asked me:

“Do you have any tips or advice for creating an email signature? I interact with external customers quite a bit and would like to appear more professional over email.”

For those of you who are not familiar with email signatures, you can create a templatized signature at the bottom of your emails to include text, images, your electronic business card, a logo, and more. You can set up Outlook (or your favorite email client of choice) so that signatures are automatically added to all outgoing messages (replies and / or new messages) or add it to emails manually on a case-by-case basis.

Questions to ask yourself

Before you create your signature, take some time to think about who is the audience that will be reading your email signature. What things might they want to know about you, the work you do, how to find you (calendar, blog, etc.), etc.? The following are a series of items you may want to consider:

  • LinkedIn profile link
  • GitHub profile link
  • personal / work blog link
  • links to documentation or projects you work on
  • link to schedule a meeting with you (could be your work calendar availability or a scheduling service)
  • email address for sharing feedback (ex. manager, group alias, etc.)
  • upcoming OOF (you need to update regularly)
  • time zone / working hours
  • inspirational quote
  • …and more

An additional thought is to look at signatures that you can seen from other people and ask them if it is ok to borrow / copy / adapt it. I’ve done this many times in the past and my current signature was adapted from a colleague at Microsoft.

Example

The following is my current signature as an example:

Brian T. Jackett
Sr. Program Manager | Microsoft Graph CPx
Blog: BrianTJackett.com | Microsoft Teams (Chat) | Calendar availability (EST/EDT)
If you have any feedback about my work, please share with me or my manager, <redacted>.

How to add your email signature to Outlook

  • Copy your email signature
  • Open a new email message in Outlook
  • On the Message menu, select Signatures, then New, and type in a nickname for this signature
  • Paste in your new signature
  • Select OK to save and exit the email signature editor

Detailed instructions:​

Conclusion

Hopefully this post gives you some inspiration on what you would like to include. If you have suggestions or would like to share your own signature(s) please post in the comments.

-Frog Out

Microsoft Graph team on the Hello World show

Last week, a number of my fellow teammates (Darrel Miller, Fabian Williams, Sebastian Levert, Beth Pan, Vincent Biret, and Walkdek Mastykarz) from the Microsoft Graph team joined the Hello World show for a special episode. We covered a number of great topics like getting started with Microsoft Graph, using Microsoft Graph Toolkit, and learning about SDK support. Check out the recording or jump to specific segments of the show!

Generic Image

Hello World: Microsoft Graph (recorded 2021-09-16)

Generic Image

-Frog Out