Showing results for 
Search instead for 
Did you mean: 
Regular Visitor

Moving "Duplicate" Alert Emails

I am using an Outlook folder to monitor alerts from a hardware monitoring system.


I get "DOWN" emails come through when there is a problem, and "UP" emails when the issue has been resolved.


These have very similar subject lines, for example:


PROBLEM Host Alert: Power Supply 2 is DOWN

RECOVERY Host Alert: Power Supply 2 is UP


What I want to do is, when an UP email comes through, move this as well as the corresponding DOWN email to another folder.


So that I am left with only unresolved alerts (DOWNs that haven't come back UP yet) in my main alerts folder.


I am a complete beginner to Power Automate.  Is the above possible?



Not applicable

Hello @JobDone 


You could use the Rules within Outlook to automatically store emails where the subject contains "UP" - see below:

Annotation 2020-02-06 171058.png


Unless you would like to store each error in a SharePoint List so you can report on how many times the system was reported as DOWN?





Hi Bradley,


What I want to do is move both the UP and the corresponding DOWN email as soon as the UP comes in.


If I used the provided rule the downs would all be left over in there.


What I want is for "x is down" and "y is down", when "x is up" arrives, move "x is down" AND "x is up" into another folder. 


Leaving me with only "y is down" in my main alerts folder as that is now the only outstanding issue. x is resolved and the down/up notification emails are filed elsewhere

Community Support
Community Support


Hi @JobDone ,


Could you please provide more explanations about your needs?

I'm afraid I don't understand what you mean so I can't provide you with the proper workaround.


Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hi Barry,


Thanks for your response.


I have an email folder set up to receive email alerts, that I am monitoring on a big TV screen.  I want this folder to only have active DOWN alerts in them, indicating that there is a problem.


Say for example that the Power Supply and Fan for a server both went down, the alert email box would look like this:



ALERT: Power Supply is DOWN



Now, if we fixed the fan and it came back up, the alert email box would look like this:



ALERT: Fan is UP

ALERT: Power Supply is DOWN



As soon as the "Fan is UP" email arrives, I want this email AND the "Fan is DOWN" email to be moved to some other archive,  so the alert email box looks like this:



ALERT: Power Supply is DOWN


So that the only things in the alert email box are current ongoing DOWN alerts.  I will know that the fan problem has been resolved as the DOWN email has dissapeared because the UP email arrived.


I only want my monitoring screen to show me what's currently DOWN, if it has come back UP I no longer need it in there

Not applicable

Hello @JobDone 


The way I would most likely do it is:


  1. Set a trigger for "When a new email arrives (V3)" with a subject filter of "UP".
  2. Get Emails (V3) with a subject query of "DOWN"
  3. Filter Array using the Get Emails value and where subject is equal to concat(substring(triggerBody()?['subject'],'UP'),' DOWN'). This should look for where email equals Fan is DOWN with the trigger of Fan is UP (but forcing it to appear as Fan is DOWN)
  4. Apply to each with output being Filter array values you will set Move email with the message id
  5. Final step is Move email again but for the trigger email i.e. Fan is UP


This should mean your flow looks something like this:

Step 1 and 2Step 1 and 2

Step 3, 4 and 5Step 3, 4 and 5

Hi Again,


This is definitely a step forward, but I'm not sure the function is right


When using the provided


concat(substring(triggerBody()?['subject'],'UP'),' DOWN')


We get the following error



InvalidTemplate. The execution of template action 'Filter_array' failed: The evaluation of 'query' action 'where' expression '@equals(item()?['subject'], concat(substring(triggerBody()?['subject'], 'UP'), ' DOWN'))' failed: 'The template language function 'substring' expects its second parameter 'start index' to be an integer. The provided value is of type 'String'. Please see for usage details.'.




Substring Definition from the link




Return characters from a string, starting from the specified position, or index. Index values start with the number 0.

substring('<text>', <startIndex>, <length>)
Parameter Required Type Description
<text>YesStringThe string whose characters you want
<startIndex>YesIntegerA positive number equal to or greater than 0 that you want to use as the starting position or index value

A positive number of characters that you want in the substring




It looks like 2nd and third arguments <startIndex> and <length> both need to be an integer.  But we are using triggerBody()?['subject'] and 'UP'  which are text



Not applicable

Hello @JobDone 


Apologies, I have thought of an easier way!





Thanks, and what steps are these replacing?

Not applicable

Step 3 so you would swap the concat with the replace function. 🙂



I get


"The expression is invalid."


When submitting the replace function.  I am putting this in exactly the same place as where the concat was i.e Subject -> is equal to -> replace(triggerBody()?['subject'],"UP","DOWN")

Not applicable



Should be 

Replace(triggerBody()?['subject'], 'UP', 'DOWN')
Speech marks would cause an error.
I just tried the flow and it ran successfully moving the emails to the folder i specified.
Steps 1 and 2Steps 1 and 2
Steps 3, 4 and 5Steps 3, 4 and 5
Not applicable

Hi @JobDone 


Is this all working? 🙂





Hi Bradley,


Thanks for the info, apologies for not getting back to you.


This partially works, but only for emails where the subject is the same other than the "DOWN" and "UP".


Our actual email subjects look like this:


PROBLEM Host Alert: Power Supply 2 is DOWN

RECOVERY Host Alert: Power Supply 2 is UP


So we need a second replace function in here for PROBLEM/RECOVERY as well the current DOWN/UP one.


Any idea how to do this? We have been unsuccessful trying a second Filter Array, and I cant see how to put two replace functions into a single Filter Array





Not applicable

Hello @JobDone 


I have written the below which should match the requirements:




Annotation 2020-02-12 160410.png


I don't believe you will need to change or add a filter array as it will still match the subject.


Let me know if you need anything else 😊





Helpful resources

MPA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

Learn to digitize and optimize business processes and connect all your applications to share data in real time.

New Process Advisor Capabilities carousel.png

Read the blog for the latest news

Read the latest about new experiences and capabilities in the Power Automate product blog.

PA Survey Carousel Image.png

We want to hear from you!

If you are a small business ISV/Reseller, share your thoughts with our research team.

AI Builder AMA June 7th carousel (up on May 25th, take down June 8th) (1).png

'Ask Microsoft Anything' about AI Builder!

The AI Builder team invite you to ask questions and provide helpful answers at our next AMA.

Users online (1,618)