cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Fish_mm
Regular Visitor

Get DayOfWeek from DateTimeReceived when new emails arrives

Hi All,

 

Anyone can help me on below?

 

I want to set a condition where 

if DateTimeReceived is equal to 6 (or Saturday)

Forward email to specified email address. 

 

How should i set the if DateTimeReceived is equal to 6 (or Saturday)?

 

i try with 

Compose

DayOfWeek(triggerbody()?['DateTimeReceived'])

but return this is not valid expression.

1 ACCEPTED SOLUTION

Accepted Solutions
RobElliott
Super User
Super User

Hi @Fish_mm construct your flow as in the image below.
Rob
Los Gallardos
If I've answered your question or solved your problem, please mark this question as answered. This helps others who have the same question find a solution quickly via the forum search. If you liked my response, please consider giving it a thumbs up. Thanks.

dayofWeek.png

View solution in original post

22 REPLIES 22
Pstork1
Dual Super User III
Dual Super User III

I suspect your problem is that the dayOfWeek function expects the date in the form of a Timespan string, not a dateTime value.  Try this formula instead:

dayOfWeek(formatDateTime(triggerBody()['DateTimeReceived'],'D'))



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.
RobElliott
Super User
Super User

Hi @Fish_mm construct your flow as in the image below.
Rob
Los Gallardos
If I've answered your question or solved your problem, please mark this question as answered. This helps others who have the same question find a solution quickly via the forum search. If you liked my response, please consider giving it a thumbs up. Thanks.

dayofWeek.png

View solution in original post

Capture.PNG

it returns with this error..

@Fish_mm your dayofWeek function doesn't use the same syntax that I put in my post. Try it with what I put, I didn't use formatdateTime but used a compose control with

dayOfWeek(triggerBody()?['DateTimeReceived'])

and it works fine for me. If you follow the steps in my image above you should be fine.

Rob
Los Gallardos
If I've answered your question or solved your problem, please mark this question as answered. This helps others who have the same question find a solution quickly via the forum search. If you liked my response, please consider giving it a thumbs up. Thanks.

@RobElliott 

i tried and it also returns error 

 

InvalidTemplate. Unable to process template language expressions in action 'Compose' inputs at line '1' and column '2683': 'The template language function 'dayOfWeek' expects its parameter to be a string that represents a timestamp. The provided value is of type 'Null'. Please see https://aka.ms/logicexpressions#dayofweek for usage details.'.

Could you post a screenshot of your flow as it currently is as that will make it easier for us to find out why it's not working for you.

Rob
Los Gallardos
If I've answered your question or solved your problem, please mark this question as answered. This helps others who have the same question find a solution quickly via the forum search. If you liked my response, please consider giving it a thumbs up. Thanks.

Pstork1
Dual Super User III
Dual Super User III

As I mentioned in my reply, DayOfWeek is expecting a TimeSpan string and you are giving it a DateTime value.  You need to enclose the DateTime value in a FormatDateTime() function to translate the dateTime value to a Timespan string.  Try this function.

dayOfWeek(formatDateTime(triggerBody()['DateTimeReceived'],'D'))


-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.
Pstork1
Dual Super User III
Dual Super User III

It looks from the error message that you also need to make sure that you are actually passing a DateTime value into the Flow.  The error says it is null.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

@Pstork1the flow is as below.

Did i make some mistake somewhere?

 

a.png

@Pstork1 @RobElliott 

 

I think i know what is the mistake i made. If i applied in recurrence Flow, it will returns error. But if i use automated, it works fine. 

Pstork1
Dual Super User III
Dual Super User III

Is it still throwing the error?  If it is then you need to verify that DateTimeRecieved actually contains data and is not Null.  Otherwise the function now looks to be correct



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Yes the trigger should be "When a new email arrives". The recurrence is unecessary and causing the problem. You're still not using the flow I posted but if it works that's great.

Rob
Los Gallardos
If I've answered your question or solved your problem, please mark this question as answered. This helps others who have the same question find a solution quickly via the forum search. If you liked my response, please consider giving it a thumbs up. Thanks.

@RobElliottinstead, I use your recommended query and use automated flow and it is working fine now. 

 

Thanks @RobElliott and @Pstork1 !

Hello

I know this an old post but the issue I have is relevant to this one at the moment, and I hoe you can help me with this. I have created the flow fine, the Day of Week function works and converts the date to a day of the week number (3), as it is a Wednesday the reference date relates to. However, the Condition action is to update the Case, from which the reference date was obtained. It is writing the result of the Compose function (3), to the target day of the week field. I need to be able to write it as "Wednesday". Can you show me how I can set the target field in the Update action to do this?

 

many thanks

 

Chris

Pstork1
Dual Super User III
Dual Super User III

If you use the same date that is used in the DayofWeek() function and instead put it in a format date time you can generate the day for that date.

formatDateTime('2021/04/14','dddd')

  The example uses a static date time string, but you can use the same datetime value used to get that it is day 3 of the week. 



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Hello

Thank you for this response. Is the format function an extra action in the flow, or is it added to the target day of the week field in the record update action? This field has been created as a text field of maximum length 12 characters and the flow rejects a string greater than 12.

 

Chris

Just to clarify the flow logic:

Day of the Week 1.PNG

While the flow works fine when checking for the Compose value (in this case 3), as the reference date is always changing, the Compose output cannot be written as a constant value (ie 3). So there are 2 issues with my flow:

 

1. Having a variable reference to the Compose output

2. Formatting the Compose output to a text string (ie Wednesday), to insert into the day of the week target field

 

Sorry if I wasn't clear on this.

 

Chris

Pstork1
Dual Super User III
Dual Super User III

The formula is used in the target day of the week field in the record update action.  The output will be the day name so the 12 characters shouldn't be an issue.  Enter the formula using the Expressions Tab on the dynamic content dialog.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.
Pstork1
Dual Super User III
Dual Super User III

If you use the formula I provided in place of the day of the week formula you can change the condition to check for the name of the day instead of the number.  Then use the same compose output for your update.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Users online (2,285)