Delay Post to Microsoft Teams

So one of the things I see requested is a delayed-post to Microsoft Teams (like, you want an announcement to go out on a Birthday, say… like April 23rd for someone special?) That functionality doesn’t exist at the moment so I figured that PowerAutomate, Microsoft’s scripting engine, should likely be able to do it.

And it works! This surprised me… It took about an hour and it’s only a rough draft but I thought I should share the outline. The Flow comes in 5 parts as shown below, but I’ll dig into the pieces.

There’s a Microsoft Form that asks for the message you want, and when you want to post it:

When the user submits the Form it kicks off the whole routine — the Flow is activated and begins by concatenating the date and the time together (since that’s what the Flow needs) and puts it into the Standard form for Flow.

The Concat details are below… there is the Date field (which gets chosen from the Forms response list) then a SPACE (‘ ‘) and then the Time field (also chosen from the Forms response list) then a Z.

concat(body('Get_response_details')?[<Date field chosen from the list>],' ',body('Get_response_details')?[Time field chosen from the list],'Z')

Then, the Flow waits until the set date and time; you can plan a post up to 30 days in advance (although I haven’t tested more than a few hours because I’m impatient!). Once the time is up, the Flow continues with the actual posting of the message:

Now, the observant amongst you will notice that the Team & Channel are hard-coded. Unfortunately, right now the Team & Channel are based on the GUID (“big long number&letter name”) of the Team & Channel so the user would have to track that down. I’m looking to see how we can get that into a drop-down on the Form, but we’ll see.

Anyways, I’ll keep poking away on it. It wouldn’t take much for someone more talented to make this a universal Flow that anyone can use.

Cal Armstrong
Cal Armstrong
Articles: 223

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.