web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Emailing excel reminde...
Power Automate
Unanswered

Emailing excel reminders to two seperate email addresses using power automate

(1) ShareShare
ReportReport
Posted on by 6
Hi, I have created a flow to send out a Due Date email reminder and everything is functioning properly. I would like to add each employee's manager to be copied in the email. How do I add? I have a column in my spreadsheet table labeled "manager" with their email addresses. 
Categories:
I have the same question (0)
  • creativeopinion Profile Picture
    10,502 Super User 2025 Season 2 on at
    It's hard to offer any recommendations without seeing the logic behind your flow. In edit mode, click on each action to expand it. Upload a screenshot of your full flow.
    However, from the screenshot you have uploaded it looks like you have the Send an Email (V2) action nested inside an Apply to Each action. It looks like you are looping through each row of your spreadsheet. If that is the case, in the CC field, insert the dynamic content from the List Rows Present in a table action that has the Manager's email address.
    In the meantime, you might be interested in the YT Tutorials linked below:
     
    How to Send a SINGLE EMAIL ✉️ with multiple SharePoint list items | Build THIS Power Automate Flow
     
    Building a Power Automate flow that will send an email with multiple SharePoint items can be a bit complex. In this video tutorial I’ll cover how to build a flow that will send a single email to each user with tasks that have been assigned to them. The logic in this flow can be applied to many different scenarios. Although this tutorial covers how to send an email with multiple SP items—the same logic can be applied when you want to send multiple rows of Excel data.
     
    First, I’ll show you how to use a Filter Query to return items from your SharePoint list that meet your criteria. Then I’ll show you how to return a list of unique email addresses so that each user receives a single email. Lastly I’ll show you how to compose an email that will contain an HTML table with a list of tasks for each user.
     
    IN THIS VIDEO:
    ✅ How to send multiple list items in a single email with a Power Automate Flow
    ✅ How to create a dynamic date range
    ✅ How to use the Convert Time Zone action
    ✅ How to use a Filter Query in the Get Items action
    ✅ How to count number of items in an array
    ✅ How to use the Select action to extract a users display name and email address
    ✅ How to create a unique list of email addresses
    ✅ How to use the Create HTML Table action
    ✅ How to customize the HTML Table with CSS styles
    ✅ How to use the Send an email (V2) action
    ✅ How to use the Append to String Variable action
    ✅ How to create a custom list of items for an email
    ✅ How to use the Send an email (V2) action
    ✅ How to display singular or plural text based on the number of items returned
     
    ----
     
    Send Emails Based on a 📆 Date Column in SharePoint with Microsoft Power Automate
     
    In this Microsoft Power Automate tutorial, I’ll show you how to build a flow that will send a Happy Birthday email to a user based on a date column in a SharePoint list. The SharePoint list also contains a column with a Manager’s name which we’ll use to send a three-day and day of reminder to the user’s manager.
     
    This automation will use the Filter Array action to filter out all SharePoint list items where the user’s birthday is today or in three days. This flow can apply to a variety of scenarios such as:

    📅 Student Birthdays
    📅 Project Due Dates
    📅 Contract/Membership Renewals
    📅 License Expirations
    📅 Client Anniversaries
     
    IN THIS VIDEO:
    ✅ How to Send an Email based on a Date Column in SharePoint
    ✅ Using the Recurrence Trigger in Power Automate
    ✅How to Use the Filter Array Action with multiple conditions
    ✅ How to Get Dynamic Content from a Filter Array Action
    ✅How to Get a Date Three Days from Today
    ✅ How to Create a Dynamic Date Based on utcNow()
    ✅ How to Return a Count of Items
    ✅ How to initialize and set a variable
    ✅ How to use the Send an Email (V2) action
    ✅ How to send test emails
     
     
    Hope this helps!

    Consider giving me a ❤️ if you liked my response!

    👉 Level up your Power Automate skills by checking out my tutorials on YouTube
    👉 Tips and Tricks on TikTok and Instagram
  • MM-02081623-0 Profile Picture
    6 on at
    Hi! Thank you so much for your feedback. Please see screenshots of my flow below. I tried entering the dynamic content in the CC field as you suggested prior to submitting my question and it cc'd all managers for each employee. What I need is it to CC to the employee's manager, not ALL managers. So, the flow ran on August 1st and sent each manager reminders for all employees on the spreadsheet. The managers received emails for their employees and employees they don't manage. 
    This is a screenshot of my column headers from the spreadsheet I'm using. 
     
  • creativeopinion Profile Picture
    10,502 Super User 2025 Season 2 on at
    The logic of you flow needs to be adjusted. However, before you tackle this I would recommend adding a few additional actions to your current flow.

    Return Count of Rows

    Whenever I use a Filter Query in a List Rows Present in a Table action, I always like to return the count of items returned in a Compose action. This is helpful when building a flow and can also be used to troubleshoot your flow.

    Insert a Compose action. Add an Expression. Use the length() function.

    creativeopinion_3-1707837383661.png

    Select the Dynamic content tab and insert the body dynamic content from the Filter Array action into the length() function.

    Condition Check

    Add a Condition action to your flow. If items have returned (aka there is number stored in the Compose action—that is not equal to 0), add the rest of your actions to the Yes branch. If not, do nothing. 

    Send an Email (V2)

    Currently, the Send an Email (V2) action is nested inside a second Apply to Each action. I'm assuming the reason you've done this is so that you can insert the Manger dynamic content into the CC field. However, if you look at what the Apply to Each action is looping through—it's looping through every row returned from the List Rows Present in a Table action.
     
     
    If you refer to this section of the tutorial I previously linked, you'll see that the Send an Email (V2) action is nested inside the Apply to Each action that is looping through the array of unique email addresses.
     

    Getting the Manager

    In your case, you will need to either:
    • Adjust the Select action in your flow to pull the email address of the user and their manager. Note: There will need to be slight adjustments made to the Apply to Each action. 
    • Create a table of user email addresses and their managers. Use this table as a look up to pull the appropriate manager's email address based on the current user's email address being looped through. Add a List Rows Present in a Table action outside of the Apply to Each action—use a Filter Array action to pull the Manager's email address. Reason you want to put this action OUTSIDE of the Apply to Each action is so that it only runs once. It makes your flow more efficient. Since the Filter Array action will always return an array of items (even if it's a single item) you'll need an expression to avoid the Apply to Each action (to get the Manager's email address). I've linked a tutorial below that you might be interested in.

    3 Mistakes YOU 🫵 are Making with the Apply to Each Action in your Microsoft Power Automate Flow


    In this video tutorial I’ll go over how to avoid these common mistakes when using the Apply to Each action in a Power Automate flow:
    1️⃣ Looping through a Single Item
    2️⃣ Creating Unnecessary Nested Loops
    3️⃣ Looping through an Unfiltered Array

    At the end of the video I share a few helpful insights when it comes to using the Apply to Each action in your flow.

    IN THIS VIDEO:

    ✅ How to avoid the Apply to Each action with a single item array

    ✅ How to use the item() function to access dynamic content in an array

    ✅ How to prevent unnecessary nested Apply to Each action loops

    ✅ How to use the Select action

    ✅ How to convert an array to a string with the Select action

    ✅How to use the Filter Query field

    ✅ How to count the number of items in an array

    ✅ How to use a condition control

    ✅ How to use the concurrency control

    ✅ How to set a top count

    ✅ How to use Compose actions for troubleshooting

     
    Hope this helps!
  • MM-02081623-0 Profile Picture
    6 on at
    If I am opting to try the first option, you suggested (see below), how do I add the manager in addition to the email address? 

    Getting the Manager

    In your case, you will need to either:
    • Adjust the Select action in your flow to pull the email address of the user and their manager. Note: There will need to be slight adjustments made to the Apply to Each action.
    I tried adding Manager from the dynamic content list, but I am receiving the message as seen below. 
     
  • creativeopinion Profile Picture
    10,502 Super User 2025 Season 2 on at
    You cannot use the Select action in this way. If you are using the text mode (shown below) you need to provide valid JSON or insert a single dynamic content item.
     
    In your case, you need to use the Map mode. Note: Customize the key to suit your preference. The text entered in the key field can be ANYTHING.
    Run a test to review the outputs. It should look something like this:
    [
        {
            "Employee": "employee1@example.com",
            "Supervisor": "supervisor1@example.com"
        },
        {
            "Employee": "employee2@example.com",
            "Supervisor": "supervisor2@example.com"
        },
        {
            "Employee": "employee1@example.com",
            "Supervisor": "supervisor1@example.com"
        },
        {
            "Employee": "employee3@example.com",
            "Supervisor": "supervisor3@example.com"
        },
        {
            "Employee": "employee4@example.com",
            "Supervisor": "supervisor4@example.com"
        },
        {
            "Employee": "employee2@example.com",
            "Supervisor": "supervisor2@example.com"
        }
    ]

    Compose Unique List

    The Select action will output an array of the employee email address and their supervisor. You'll need to gather a unique list. Use a Compose action and the union() function. 
     
    The union() function takes two arrays. It'll combine them and remove any duplicates. Insert an expression and use the union() function.
    Click on the Dynamic Content tab and insert the output from the Select action above. Add a comma and insert the output from the Select action above again.
     
    The output would looks something like this:
    [
        {
            "Employee": "employee1@example.com",
            "Supervisor": "supervisor1@example.com"
        },
        {
            "Employee": "employee2@example.com",
            "Supervisor": "supervisor2@example.com"
        },
        {
            "Employee": "employee3@example.com",
            "Supervisor": "supervisor3@example.com"
        },
        {
            "Employee": "employee4@example.com",
            "Supervisor": "supervisor4@example.com"
        }
    ]
    
    Run a test and review the outputs.

    Apply to Each

    Use the Apply to Each action to loop through each of the "unique pairs" (the output from the Compose action above)
    To help you better understand what you are looping through. Add a Compose action and insert the Current Item into the Compose action. Run a test.
     
    Review the output of the Compose action. It should look like this:
    {
        "Employee": "employee1@example.com",
        "Supervisor": "supervisor1@example.com"
    }
    
    To output the employee email address and the supervisor email address separately you need to use an expression. The item() function is what you'll need to use along with the dynamic content key (text in red).
     
    item()?['dynamic content key here']
     
    For example—to return the employee email address I will use the Employee dynamic content key. Your dynamic content key may be different. Ensure you are using the correct dynamic content key. 
    item()?['Employee']
     
    This expression will return the employee email address of the current item being looped through. Insert a Compose action and the expression and run a test.
     
    Repeat this for the Supervisor email address. Now you can use the outputs of these Compose actions in the Send an Email (V2) action.
     
    Hope this helps!
     
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Automate

#1
Michael E. Gernaey Profile Picture

Michael E. Gernaey 525 Super User 2025 Season 2

#2
Tomac Profile Picture

Tomac 324 Moderator

#3
abm abm Profile Picture

abm abm 232 Most Valuable Professional

Last 30 days Overall leaderboard