“I want to setup email “reminder” that goes to the person that needs to do a task, is it possible using Power Automate flow?”
“Users should review a document before expiration date, how can I send them reminder using Power Automate flow?”
Building a flow to send reminder(s) is one of the most common usage of Power Automate. It can be reminder to complete a task, to review a document, input some information or something else. If you want to keep your processes running smoothly, or you just don’t want to think about all the dates, reminder flow is the way. The output of this post will be a reminder flow you can use and reuse in many situations.
Prerequisites
You must have the date and user information somewhere. It can be a SharePoint list/library, or it can be an Excel file in OneDrive. But for this post let’s take SharePoint list, and this list will contain 2 columns:
- ‘SendTo’: user, who should get the reminder notification. It could be any people or group column, even the Created By user.
- ‘Date’: date column, configured as ‘Date Only’, no time. It can be date when a task was assigned, or a review date.
Building the flow
It should be a scheduled flow, running daily. Once a day it’ll filter all items that need the reminder and send it. All notifications will be distributed at the same time.
Start from the scheduled flow trigger.
The next step is to add ‘Get items’ action, which is the key part of the flow. In this action you’ll filter out all the items that require a reminder with the Filter Query. Since our flow is sending reminders based only on date, the filter will be quite straightforward. You can use utcNow() and addDays() expressions to calculate proper date and format it. You can learn more about the date formatting in this post.
Don’t forget that the filter query needs the internal name of the date column, and that there’s a default limit of 100 items unless you change it.
Date is in the past (e.g. task reminder after 3 days), use negative number
addDays(utcNow(),-3,'yyyy-MM-dd')
Date is in the future (e.g. review reminder 3 days before), use positive number
addDays(utcNow(),3,'yyyy-MM-dd')
Note: if you’re not sure about the date calculation, I went a bit deeper in a post on using SharePoint calculated column for the reminders.
The last step is to process output from the ‘Get items’ action and distribute the emails. The ‘Apply to each’ action will be added automatically once you use any of the ‘Get items’ output in the ‘Send an email’ action.
Summary
As you can see, the flow is quite simple: run each day, get items, send an email. You can take it as a baseline. You can have multiple different reminders for different dates, all with just a small adjustment or extension of the flow above. You can even combine multiple reminders in a single flow or send one reminder per user.
The only point where you can get have problems is the ‘Get items’ step. Your environment could use different time format and then you’d need to adjust it. In such case, try to save the date into variables to see what format you should use.
And if you don’t want to send all emails from your email address, you can change it, e.g. to shared mailbox.
What if the ‘date’ column has blanks? Meaning some dates are not entered yet but a a later time/date, will this flow still work?
Hello Jeremy,
if the Date column is empty the whole item will be skipped.
Hi Jeremy,
Trust you are doing well.
Seeking your guidance while I am motivating young developers in the ICT & QA team in achieving a needful feature in the Weekly Call Tree List, they have created with MS Power Automate. The staff receives an outlook email that has link to the Power Automate List on Sharepoint where one has to create a new listing with certain mandatory information on each Monday which is monitored by the security for the staff welfare during the lockdown working from home.
As staff members might not act on this mail instantly on a hectic Monday, I understand there is a need to put to “enforced Flag for Recipient Reminders tick marked” just like we can do in Outlook mail under Message > Follow Up tab inputting a certain time like 4PM staff must come open this mail weekly call tree mail and take requested action. I believe this reminder is achievable in Power Automat generated weekly call tree mail. as much I read your articles on the subject. I would be delighted to receive your contextual guidance which will be of great inspiration to my colleagues not to give up.
Warm Regards,
Mohamed Rashid
United Nations-RSC Entebbe Uganda
Hello Mohamed,
I believe this comment was meant for me, so I’ll reply.
Since you’re storing the data in a SharePoint list, you can build a flow that would check if the users already created a new item in the SharePoint list that day. The prerequisite is that you must have a list of the users, but I believe you’ve got one since you’re sending them the email. Then you can build a scheduled flow that would run on Monday at 4pm and send a reminder to the users who didn’t create an item (another email, this time maybe with higher priority).
The points 2, 3 and 4 would look similar to the section ‘Compare the items’ in the post on comparing two lists.
hi i am having failed runs of the flow using below Filter Query. i already used the internal name of the Due Date column and the Status. But i am still having errors.
Filter Query Formula:
Due%5Fx0020%5FDate eq ‘@{variables(‘varReminderDate’)}’ and (Status ne ‘Remediated’ or Status ne ‘Resolved’)
varReminderdate = addDays(utcNow(), variables(‘varNumDays’), ‘yyyy-MM-dd’)
is the date formating needs to be tied to something? thanks! 🙂
Hello ASV,
without knowing the actual error it shows you it’s hard to guess what’s wrong. My only guess is that the Due Date internal name seems strange, I’d expect it to be Due_x0020_Date.
hello Tom,
i did build flow that remind the user 2 day before the approval date. if the approval date is a Monday or a Tuesday. the would be sent in the weekend. how can i build the flow in way that he sent the email in Friday instead of the weekend
Hello ouss,
you can check the dayOfWeek(utcNow()) in the flow, and if it’s 5 (=Friday), get also items with due date today+3 and today+4, and send a reminder.
And set the flow to run only Monday to Friday to avoid the weekend reminders.
Hello Tom,
I am new to Power automate and coding all together.
Thank you for this, very helpful. However when sending the reminder email, I want to include link of the original email that was sent ( part of separate flow) and I cant find that option. Please help how I can include the original email link from the other flow to this.
Hi Tom,
Just went through the post again and looks like you have already called this out that the task email cannot be sent.
Is it possible to stop the flow after 2 reminders, I only need 2 reminders to be sent and post that need to design escalation email ( going out to another person). Please let me know if thats possible
Hello Anita,
as you found out, it’s not possible to reference the original email. The reminders are based on a specific days difference so if you want 2 reminders and then escalation then just add another ‘Get items’ with modified Filter Query. ‘Get items’ for 1st reminder -> send it, ‘Get items’ for 2nd reminder -> send it, ‘Get items’ for escalation -> send it.
Hi Tom,
How would this work if my data source is dataverse tables? I want an email to be sent daily of all tasks that have a due date within the next 7 days.
Hello SP,
I didn’t use it over Dataverse, but I think it’ll be the same, filter the rows using the Filter rows field in the ‘List rows’ action and send the reminder for the returned rows.
Hi. will it work if reminder to be send if the status still pending after certain days of request created?
Hello nora,
yes, that’s the basic use case for the reminder flow – get items where status = pending and created = few days ago and send a reminder.
Great content Tom!! what is the correct expression to use if I wanted to send a PAST DUE reminder daily until the item is complete?
Recourrence set for Daily
Query Filter: (Status_field_value eq ‘Not Started’) and (Date_field eq ‘varPastDue’)
varPastDue: addDays(utcNow(),-1, ‘MM/dd/yyyy’)
Hello Chris,
you’re using ‘eq’ = equals condition that means it’ll send the reminder only on that specific day when Date_field = today-1 = yesterday. If you want to send it every day you must use ‘le’ = less or equals operator: Date_field <= today-1. Date_field le ‘varPastDue’ and you should always use the ISO date format yyyy-MM-dd when working with dates. varPastDue: addDays(utcNow(),-1, ‘yyyy-MM-dd’)