cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
JobDone
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?

 

Thanks

 
 
14 REPLIES 14
Anonymous
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?

 

Thanks

 

Bradley

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

v-bacao-msft
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:

 

Inbox:

ALERT: Power Supply is DOWN

ALERT: Fan is DOWN

 

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

 

Inbox:

ALERT: Fan is UP

ALERT: Power Supply is DOWN

ALERT: Fan 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:

 

Inbox:

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

Anonymous
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 https://aka.ms/logicexpressions#substring for usage details.'.

-------------------------

 

 

Substring Definition from the link 

https://docs.microsoft.com/en-gb/azure/logic-apps/workflow-definition-language-functions-reference#s...

 

----------------

substring

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

Copy
 
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
<length>YesInteger

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

 

 

Anonymous
Not applicable

Hello @JobDone 

 

Apologies, I have thought of an easier way!

 

Replace(triggerBody()?['subject'],"UP","DOWN")

 

replace.png

Thanks, and what steps are these replacing?

Anonymous
Not applicable

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

Hi,

 

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")

Anonymous
Not applicable

Hi

 

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
Anonymous
Not applicable

Hi @JobDone 

 

Is this all working? 🙂

 

Thanks

 

Bradley

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

 

Thanks

 

 

Anonymous
Not applicable

Hello @JobDone 

 

I have written the below which should match the requirements:

 

replace(Replace(triggerBody()?['subject'],'UP','DOWN'),'RECOVERY','PROBLEM')

 

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 😊

 

Thanks

 

Bradley

Helpful resources

Announcements
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)