“I’d like to send a sequence of 5 emails to users, one email every 2nd day, can I use Power Automate to do it for me?”
Doing tasks manually requires more time on your side with every new input. If you’re for example sending emails, each new contact means another email in your queue. The more contacts you have, the more time you’ll spend processing them, and the higher the chance of making a mistake or forgetting somebody.
That’s the situation where you should consider automation. Instead of manually preparing emails and sending them, you might delegate the work to a Power Automate flow. If there’s a new contact, send him automatically a whole email sequence – every 2nd day a new email. And this post will show you how to do that.
Create a SharePoint list to keep the information
Before you start with the flow, you’ll need a place to store the required information, e.g. a SharePoint list. It needs at least 3 columns – the email address (Title), date of the last sent email (date), and the sequence number of the last email (single line of text).
The list will serve as an evidence of each contact and its status. Once you add a new contact to the list, the whole sequence will start.
Send the first email
Each sequence will start with a creation of a new entry in the SharePoint list. Start from the trigger ‘When a new item is created’ (without modified!) and add the ‘Send an email’ action with the first email. Finish the flow by updating the item with today’s date and the number 1 – the first email was sent on the creation date.
Send the following emails in the sequence
You have the flow that’ll send the first email, now you can build the second flow to send the rest of the sequence. Since it should send an email every 2nd day, the principle will be similar to a reminder flow. Start with the ‘Recurrence’ trigger that’ll run every day, and search for items with the ‘LastEmailSent’ date two days ago AND with the ‘LastEmailSequenceNumber’ not equal to the the last email. If there’re 5 emails in the sequence, ignore the items with the number 5 – that sequence is finished.
LastEmailSent eq '@{addDays(utcNow(),-2,'yyyy-MM-dd')}' and LastEmailSequenceNumber ne 5
The ‘Get items’ will return all the items from the SharePoint list that are ready for the next email.
Add a ‘Switch’ action to decide what email it should send next based on the sequence number. It’ll add ‘Apply to each’ automatically which is fine, you want to process all the items one by one.
Convert the ‘LastEmailSequenceNumber’ into a number using the int(…) expression to avoid errors.
int(items('Apply_to_each')?['LastEmailSequenceNumber'])
Create a new case for each email in your sequence and add the ‘Send an email’ action inside. If the current number is 1, you want to send the 2nd email. If the number is 2, send the 3rd email and so on.
The last step is to update the new information to the item – set the date of the last email to ‘today’ and increment the email sequence number by 1.
add(int(items('Apply_to_each')?['LastEmailSequenceNumber']),1)
That’s it. The flow will run every day, check for the addresses ready for the next email, send them the corresponding email, and update the values for the next runs.
Summary
The solution to send an email sequence using Power Automate has three components – 2 flows and 1 SharePoint list. With the 3 pieces of information in the SharePoint list you can make the flow quite simple – just filter the relevant items, send the email, and update the items for the next flow run.
Cool! Is there a way we only send the sequenced email if someone doesn’t reply? Or stop the flow from moving?
Hello Elizabeth,
there is if you build another flow. Add some checkbox to the list, e.g. DontSend column and check it if you don’t want to send an email. You can then filter only the items that don’t have this column checked in the ‘Get items’ action.