1. Home
  2. Guides
  3. Power Automate
  4. How to get reminded about unread Outlook emails with Power Automate
Power Automate

How to get reminded about unread Outlook emails with Power Automate

Build a Power Automate flow that watches for important emails from chosen senders and marks them with Outlook categories (Overdue 1 Hour, 1 Day, 3+ Days) while they stay unread, then removes the category once you read them.

  • By Nur Islam
  • 19:30 video
  • 13 steps
Jump to a step (13)
Who this is for

Invoices, approvals and client emails get buried under everything else, and a day later you realize an urgent message was never opened. Outlook rules can sort mail when it arrives, but they cannot tell you how long an important email has been sitting unread.

When a new email arrives from a sender you care about and the subject contains a word like urgent, invoice, approval, payment or contract, the flow waits an hour and checks the same email again. If it is still unread, it gets the Overdue 1 Hour category. After a day it moves to Overdue 1 Day, and after three days to Overdue 3+ Days.

If the email is read at any checkpoint, the flow removes the overdue category and stops. The build uses the Office 365 Outlook connector only, including its Send an HTTP request action to call Microsoft Graph, so no premium connector is needed.

What you need

  • Microsoft 365 Business Basic or Standard with an Exchange Online mailbox
  • Power Automate
  • Three Outlook categories: OVERDUE - 1 HOUR, OVERDUE - 1 DAY and OVERDUE - 3+ DAYS
  • A list of important sender addresses and subject keywords

Step by step

0 of 13 done
  1. 01

    Create the overdue categories in Outlook

    In Outlook on the web, select the gear icon, then Accounts > Categories. Select Create new and add three categories, each with its own color:

    • OVERDUE - 1 HOUR
    • OVERDUE - 1 DAY
    • OVERDUE - 3+ DAYS (the video uses red)

    Power Automate can create categories on its own, but they all come out grey. Creating them first gives you colors you can spot at a glance.

  2. 02

    Create the flow with the new email trigger

    In Power Automate, select Create > Automated cloud flow, name it Outlook Email Reminder System, and choose When a new email arrives (V3) from Office 365 Outlook.

  3. 03

    Filter by sender

    Open the trigger, select Advanced parameters and show From. Enter the addresses of people whose emails you do not want to leave unanswered. They can be inside or outside your organization.

  4. 04

    Add a trigger condition for subject keywords

    Go to the trigger's Settings tab. Under Trigger conditions, select Add and paste a condition that checks the subject line. The flow only starts when the subject contains one of your words, so it does not run for every email from those senders. A condition that does this looks like:

    @or(contains(toLower(triggerOutputs()?['body/subject']),'urgent'),contains(toLower(triggerOutputs()?['body/subject']),'invoice'),contains(toLower(triggerOutputs()?['body/subject']),'approval'),contains(toLower(triggerOutputs()?['body/subject']),'payment'),contains(toLower(triggerOutputs()?['body/subject']),'contract'))

    To add more words, add another contains(...) line inside the or.

  5. 05

    Wait one hour

    Add a Delay action and rename it 1 Hour. Set Count to 1 and Unit to Hour.

    While testing, set the unit to Minute so you can watch the flow work in close to real time.

  6. 06

    Get the same email again

    Add Get email (V2). For Message Id, select Message Id from When a new email arrives (V3) (under See more). This fetches the current state of the exact email that started the flow.

  7. 07

    Check if the email is still unread

    Add a Condition. On the left, select Is Read from Get email (V2). Keep is equal to and type false on the right.

    True means the email is still unread after an hour.

  8. 08

    Assign the Overdue 1 Hour category

    In the True branch, add Assign an Outlook category. Set Message Id to the trigger's Message Id and Category to OVERDUE - 1 HOUR.

    The category name must match the one you created in Outlook exactly. Otherwise Power Automate creates a new grey category.

    In the False branch the email was read, so nothing else needs to happen. The video adds an optional Terminate action with Status Succeeded so the branch is not empty.

  9. 09

    Wait until the one-day checkpoint and check again

    Inside the True branch, add another Delay, rename it 1 Day, and set it to 23 hours. Together with the first delay that makes 24 hours. (For testing, use 1 minute.)

    Add another Get email (V2) with the trigger's Message Id, then a Condition with Is Read from this second Get email action is equal to false.

  10. 10

    Replace the category with Overdue 1 Day

    Assign an Outlook category adds a category but cannot remove the old one, so use a different action. In the True branch, add Send an HTTP request from Office 365 Outlook.

    • URI: https://graph.microsoft.com/v1.0/me/messages/ followed by the trigger's Message Id
    • Method: PATCH
    • Under Advanced parameters, show Body and enter {"categories": ["OVERDUE - 1 DAY"]}
    • Leave Content-Type as application/json

    This replaces the email's category list with the new category.

    In the False branch the email was read, so remove the category. Copy the HTTP request action, paste it into False, and change the body to {"categories": []}.

  11. 11

    Wait until the three-day checkpoint and check again

    Inside the True branch of the one-day check, add a Delay renamed 3 Days and set it to 48 hours. With the first two delays, that makes three days.

    Right-click the earlier Get email (V2) action, copy it, and use Paste an action here. Nothing in it needs to change. Then add a Condition with Is Read from this new Get email action is equal to false.

  12. 12

    Replace the category with Overdue 3+ Days

    Copy the HTTP request into the new True branch and change the body to {"categories": ["OVERDUE - 3+ DAYS"]}.

    Copy the remove-category HTTP request (the one with {"categories": []}) into the False branch, so the category is cleared if the email was read within three days. Save the flow.

  13. 13

    Test with a normal and an urgent email

    Select Test > Manually > Test. Send an email from one of your senders without any keyword in the subject. It arrives, but the flow does not start.

    Now send one with urgent or approval in the subject. The flow starts, and with short test delays you can watch the category change from OVERDUE - 1 HOUR to OVERDUE - 1 DAY. Open the email before the last check and the flow takes the False branch and removes the category.

    When testing is done, set the delays back to 1 hour, 23 hours and 48 hours.

Tips and common problems

  • Category names in the flow must match the names in Outlook exactly, including capitals and spaces. A mismatch creates a new grey category.
  • The HTTP PATCH body replaces the whole category list on the email. If you already use other categories on the same emails, test carefully before running this on your main inbox.
  • Remember to change the test delays from minutes back to 1 hour, 23 hours and 48 hours. The delays add up, so the second and third are shorter than the checkpoint they represent.
  • Categories may not behave the same way in every shared mailbox setup. For a shared mailbox, use Move email (V2) to move the email into folders based on the delay instead.
  • Once several emails carry these categories, select a category in Outlook to see every email in that overdue range.
Still stuck? Ask AI to help you fix itChatGPTClaudeGeminiCopilotPerplexityGrok

Values used in this flow

CheckpointDelayAction when unreadAction when read
1 hour1 hourAssign an Outlook category: OVERDUE - 1 HOURTerminate (optional)
1 day23 hoursHTTP PATCH body {"categories": ["OVERDUE - 1 DAY"]}HTTP PATCH body {"categories": []}
3 days48 hoursHTTP PATCH body {"categories": ["OVERDUE - 3+ DAYS"]}HTTP PATCH body {"categories": []}

All HTTP requests use method PATCH and the URI https://graph.microsoft.com/v1.0/me/messages/ plus the trigger's Message Id.

Prefer folders?

If you would rather move emails than tag them, see Organize Outlook Emails into Folders with Power Automate.

Questions

Can Power Automate remind me about unread emails in Outlook?

Yes. A flow triggered by When a new email arrives (V3) can wait with a Delay, re-check the email with Get email (V2), and use its Is Read value to decide whether to mark it as overdue.

How do I remove or replace an Outlook category with Power Automate?

The Assign an Outlook category action only adds categories. To replace or clear them, use the Office 365 Outlook Send an HTTP request action with method PATCH, the URI https://graph.microsoft.com/v1.0/me/messages/{Message Id}, and a body like {"categories": ["OVERDUE - 1 DAY"]} or {"categories": []}.

Does this flow need a premium connector?

No. Every action, including Send an HTTP request, comes from the standard Office 365 Outlook connector, plus the built-in Delay and Condition actions.

Will this work on a shared mailbox?

Categories may not work the same way in every shared mailbox setup. The video suggests moving emails into folders with Move email (V2) instead of using categories in that case.

Video chapters
Ask a question in the comments Last checked 26 Sep 2026. Screens change: if a step looks different, tell me in the comments.