A cloud-based service included in Microsoft 365, delivering scalable messaging and collaboration features with simplified management and automatic updates.
Hi CTschida
Thank you for reaching out via the Microsoft Q&A forum.
I understand you are looking for a way to apply Outlook rules to emails only after you have read them. I would like to share some information on how rules are processed in Exchange Online that there is no built-in rule condition in Outlook or Exchange Online that says "when a message is marked as read." Standard email rules, whether they run on the server (Exchange Online) or in the Outlook client, are designed to trigger on arrival. They evaluate the properties of an email like the sender, subject, or content - the moment it hits your inbox. The "read" or "unread" status is a state that changes after arrival, which is an event that rules are not designed to monitor.
However, you can achieve your goal by changing your workflow slightly. Here are some recommended solutions you can try:
Manually Initiating Rules
Some users find it effective to use a manual process to organize their inbox after reading messages. This approach involves preparing a rule but keeping it inactive until it is manually triggered.
For your reference, the steps for this method in the Outlook Desktop application are as follows:
For additional technical details on this functionality, the following Microsoft article may be helpful: Manage email messages by using rules in Outlook - Microsoft Support (The section titled "Run one or more rules manually" describes the feature mentioned above, stating that after creating a rule, you can apply it using the "Apply rules to:" option, which includes "Read messages"
Microsoft Graph or Power Automate
You can achieve a similar outcome using Microsoft Graph or Power Automate by checking the isRead property of messages and applying actions accordingly. Example query: Use the $filter query parameter to filter a collection of objects - Microsoft Graph | Microsoft Learn
In Power Automate, you can create a scheduled flow to run at regular intervals, such as every 15 minutes. Within this flow, add the “Get emails (V3)” action or use a Graph API request filtered with isRead eq true to retrieve read messages. You can then include additional actions to process these emails, such as moving them to a folder, categorizing them, or flagging them. To avoid processing the same messages multiple times, you can optionally tag them with a category like “Processed”. You can find more detailed information at: Office 365 Outlook - Connectors | Microsoft Learn
I hope the information I provided is helpful. If you have any questions, please feel free to ask.
If the answer is helpful, click "Accept Answer" and kindly upvote. If you have additional questions about this answer, click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.