cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Ikaika
Frequent Visitor

Send email 30 days and when expired to an individual or a group.

I'm still new to Power Automate and SharePoint I have a SharePoint list of certificates that have an expiration date that I would like to do the following:

 

Expiry Date: Date and time
Status: Choice [Pending, Active, Revoked]
Certificate Name: Single-line text
Agent: Person or Group


Highlight the certificate yellow when the certificate is 30 days out from the Expiry Date and the Status is NOT revoked. Email an Agent (individual or group) and display in the body of the message what certificate is about to expire.

Highlight the certificate in red when it has expired and its Status is NOT revoked and email an Agent (individual or group) and display in the body of the message what certificate had expired.

2 REPLIES 2

@Ikaika 
Hello, I have a flow very similar to the one you describe. I'll walk you through it.

Let's assume you want to run this everyday, so your trigger would be a "Recurrence" with interval of 1 day.

 

Create a "Get files (properties only)" action, in the Filter Query your expression should look like this:
ExpiryDate le 'formatDateTime(addDays(utcNow(), +30), 'yyyy-MM-dd')' and Status ne 'Revoked'

AndreasN_0-1699963779312.png

 

Now I will assume that the agent column will hold the e-mails you would like to send to, furthermore, I will assume that each agent might have several different documents.
Create a select action, where you map the Agent corresponding to their e-mail. In my case, my column is called "Contact E-mail", you would pick the "Agent" column here, given that this column holds their e-mail.

AndreasN_1-1699963896500.png

 

Next we want to get all unique agents (e-mails). Create a compose, with the following expression, using your select action as the input. My select action is called "Select all agents", therefore, the expression will be:

Union(body('Select_all_agents'), body('Select_all_agents'))
AndreasN_2-1699964014314.png

 

Create a Parse JSON action using the output of your "get all unique agents" compose.

This Schema should work:

{
    "type""array",
    "items": {
        "type""object",
        "properties": {
            "email": {
                "type""string"
            }
        },
        "required": [
            "Agent"
        ]
    }
}
 
AndreasN_3-1699964087317.png

So what we have currently, we are going through all the individual files, looking for any file where the expiry date is within 30 days and the status is NOT revoked. We then select all agents, since we need to find out how many different unique agents we have. We do this by composing the agents, and then passing it through a parse JSON so that we can go through each individual agent.

 

Now we need to figure out, how many files each agent has, which fits our criteria. We do this, because if one agent has multiple documents which fits our criteria, we do not want to spam their inbox by sending an e-mail with each document, instead we want to go through each agent and attach the documents to an HTML table so we only send 1 e-mail per agent rather than 1 e-mail per document.

AndreasN_4-1699964329763.png

Create this Apply To Each, choose your parse JSON as the input for the apply to each. First compose called "Each Agent", has the following expression items('Apply_to_each_2')['Agent']

AndreasN_5-1699964444953.png

This basically creates a compose, so that the agent e-mail is isolated every time we run through each individual agent, now we want to check how many files that fits our criteria, has this agent associated with them. We do this by creating a filter array.

AndreasN_6-1699964504383.png

The input to the filter array should be the output of the "Get files" action we created to begin with, we want all documents where the agent column = the compose output we just created called "each agent". Remember, our "get files" action will only include the documents which fits our criteria of 30 days expiry and status is NOT revoked.

 

The output of this filter array will be all the documents, that fits that criteria and is associated to that agent, now we want to send the agent an e-mail. We do this by creating an HTML table.

AndreasN_7-1699964619114.png

The input of the HTML table should be your output of your filter array. I have chosen "Document" "Expiration date" and "Type", as my headers. For document I use the following expression in value:
item()?['{FilenameWithExtension}']  this gives you the full file name. 
Expiration date I have chosen item()?['ExpiryDate']

 

My flow runs for ISO certificates, so I've just hard coded "ISO", as this only runs for ISO certificates.

 

If you want to be fancy, and have a space between ExpiryDate do the following: 
Write Expiry^Date -> create a compose action with the following expression: replace(body('Create_HTML_table'), '^', ' ')

Lastly I want to format my HTML table, you can do that yourself in an HTML formatting website. This is not really necessary, I use this one:

AndreasN_8-1699964837936.png

Then you just create a "Send an email", the "To" destination should be your "Each Agent" compose, in the body of your e-mail text you want to use the dynamic content of your HTML table, or the compose if you choose to remove the "^" and create a space.

 

 

To highlight the certificate, just create a "Update file properties", use the output of your "get files", in SharePoint set the default color of e.g. "pending" to yellow. In the update file properties, just change them to "Pending" or some other choice which is yellow. This should be done through the choice column configuration in SharePoint.


Create a copy of the flow, change the filter query in the "get files" from this:
ExpiryDate le 'formatDateTime(addDays(utcNow(), +30), 'yyyy-MM-dd')' and Status ne 'Revoked' 

 

To:

ExpiryDate ge 'formatDateTime(utcNow(), 'yyyy-MM-dd')' and Status ne 'Revoked' 

 

And change the e-mail body text as well as the "update file properties" accordingly to what you need it to do.

Hope this makes sense, let me know if you need help.

 

Best regards,
AndreasN

I'll look it over and give it a try. I'll let you know how it turns out.

 

Thank you

 

Ikaika

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!    This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Community MembersNumber SolutionsSuper UsersNumber Solutions Deenuji 9 @NathanAlvares24  17 @Anil_g  7 @ManishSolanki  13 @eetuRobo  5 @David_MA  10 @VishnuReddy1997  5 @SpongYe  9JhonatanOB19932 (tie) @Nived_Nambiar  8 @maltie  2 (tie)   @PA-Noob  2 (tie)   @LukeMcG  2 (tie)   @tgut03  2 (tie)       Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 2: Community MembersSolutionsSuper UsersSolutionsPower Automate  @Deenuji  12@ManishSolanki 19 @Anil_g  10 @NathanAlvares24  17 @VishnuReddy1997  6 @Expiscornovus  10 @Tjan  5 @Nived_Nambiar  10 @eetuRobo  3 @SudeepGhatakNZ 8     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 3:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji32ManishSolanki55VishnuReddy199724NathanAlvares2444Anil_g22SudeepGhatakNZ40eetuRobo18Nived_Nambiar28Tjan8David_MA22   Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 4:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji11FLMike31Sayan11ManishSolanki16VishnuReddy199710creativeopinion14Akshansh-Sharma3SudeepGhatakNZ7claudiovc2CFernandes5 misc2Nived_Nambiar5 Usernametwice232rzaneti5 eetuRobo2   Anil_g2   SharonS2  

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (1,001)