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
Hello @JobDone
You could use the Rules within Outlook to automatically store emails where the subject contains "UP" - see below:
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
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,
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
Hello @JobDone
The way I would most likely do it is:
This should mean your flow looks something like this:
Step 1 and 2
Step 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
----------------
substring
Return characters from a string, starting from the specified position, or index. Index values start with the number 0.
substring('<text>', <startIndex>, <length>)
<text> | Yes | String | The string whose characters you want |
<startIndex> | Yes | Integer | A positive number equal to or greater than 0 that you want to use as the starting position or index value |
<length> | Yes | Integer | 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
Hello @JobDone
Apologies, I have thought of an easier way!
Replace(triggerBody()?['subject'],"UP","DOWN")
Thanks, and what steps are these replacing?
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")
Hi
Should be
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
Hello @JobDone
I have written the below which should match the requirements:
replace(Replace(triggerBody()?['subject'],'UP','DOWN'),'RECOVERY','PROBLEM')
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
User | Count |
---|---|
91 | |
40 | |
23 | |
20 | |
16 |
User | Count |
---|---|
130 | |
49 | |
46 | |
28 | |
26 |