cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Yattering82
New Member

FLOW TO SEND EMAIL WHEN DATE APPROACHES

Hi there

 

This is the first time posting in the forum but a long time user of the forum. What I am trying to do, is to get a flow to trigger an sending an email when the date of a required audit approaches. The audit due dates are listed in a SharePoint list and you would think that this would be a simple thing to do. However, no matter how much I tinker and how much I see what others have done, I cannot get this to work.

 

This is what I have done:

 

@equals(item()?['Nextauditdue'], adddays(utcnow(),'mm-dd-yyyy')+14)

 

So basically I want this to send me an email when it is 14 days to the audit due date. 

 

If anyone can shed light on this, I would be most grateful.

112 REPLIES 112

I have tried using 'get items' instead of 'get files (properties only)' and again I do get the notification email but flow says it has failed. 

 

Here's what I see in outputs body ... I cannot see my 'Consent_x0020_End_x0020_Date' column in there as it happens. 

 

{
  "value": [
    {
      "@odata.etag""\"13\"",
      "ItemInternalId""6",
      "ID"6,
      "Personal_x0020_Info0": {
        "@odata.type""#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
        "Id"1,
        "Value""No"
      },
      "Personal_x0020_Info0#Id"1,
      "Purpose12": {
        "@odata.type""#Microsoft.Azure.Connectors.SharePoint.SPListExpandedTaxonomy",
        "TermGuid""030ec442-3c21-4d8e-bb6f-26c5d7e4735f",
        "WssId"189,
        "Label""Case study",
        "Path"null,
        "Value""Case study|030ec442-3c21-4d8e-bb6f-26c5d7e4735f"
      },
      "Purpose12#WssId"189,
      "products_x0020_and_x0020_services": {
        "@odata.type""#Microsoft.Azure.Connectors.SharePoint.SPListExpandedTaxonomy",
        "TermGuid""a67d7f16-fd3f-4f7d-8127-08d36c525c1d",
        "WssId"153,
        "Label""Benefactor",
        "Path"null,
        "Value""Benefactor|a67d7f16-fd3f-4f7d-8127-08d36c525c1d"
      },
      "products_x0020_and_x0020_services#WssId"153,
      "Organisation": {
        "@odata.type""#Microsoft.Azure.Connectors.SharePoint.SPListExpandedTaxonomy",
        "TermGuid""1a9c34ec-985b-4149-9445-ab4d2623cf56",
        "WssId"184,
        "Label""Jami & Jewish Care",
        "Path"null,
        "Value""Jami & Jewish Care|1a9c34ec-985b-4149-9445-ab4d2623cf56"
      },

 

Here is a shot of my doc library with workflow cols. Might be helpful to see these too.

doc library.png

 

Thanks again, Vicki

@Victoria

 

Hmm. I'm not sure what's going on. Your column names that show up in the picture are not showing up in the output results. To test things, I've created a new document library, put in two files and made a new column called Expiration with the type Date and Time.

 

Test Library.PNG

 

Then I made a Flow:

 

Flow.PNG

 

So it all worked with no errors. I connected to one of our SharePoint sites and a document library there under the Get File (properties only). Then I used the code we've been discussing to check the dates if the dates in the Expiration column is equal to today + 30 days:

 

@equals(formatDateTime(item()?['Expiration'], 'MM/dd/yyyy'), formatDateTime(addDays(utcNow(), 30), 'MM/dd/yyyy'))

And for me, that information showed up in the Output:

 

Output.png

 

Does any of that help?

 

Can you try renaming your Consent End Date column to just Consent and using the following code under the condition:

 

@equals(formatDateTime(item()?['Consent'], 'MM/dd/yyyy'), formatDateTime(addDays(utcNow(), 30), 'MM/dd/yyyy'))

Let me know if any of that helps! I'm using SharePoint Online with an Office 365 account.

 

Also, based on your picture below, can you double check if you have the Get Files (properties only) pointed to the right document library?

Hi again,
I've fully tested this now. The flow works perfectly if every document in the library has an end date. I added a date for all docs in the library to test.

 

So the flow definately has an issue when there is no date value in the consent end column. It does generate the email but says it fails, presumably when it gets to the records without dates.

I need to be able to run this on selected documents because not all library docs will need to be reviewed and added to the flow. Is there any way to exclude those without a date value or use my other (choice) column 'add to review'. All docs in flow would a 'yes' value in here which corresponds to those with consent end dates.

 

Thanks again for your help. Vicki

@Victoria

 

Awesome to hear that you Flow is working!

 

Okay, now we can make use of the code:

 

@not(empty(triggerBody()?['column name goes here']))

 

Just use the same column name that you used for the expiration condition and put a condition right under the Get Files (properties only).

 

So your Flow will check will check if the particular file has a date, if not it stops. If it does have a date, it'll check if the date is 30 days away from the target date in your column. If not, it stops. If yes, you get an e-mail.

 

Let me know if it works out!

Have done that. But flow still saying failed. Not sure if I am adding condition 2 in the right place?
1.png

 

2.png

@Victoria

 

I believe it should go

  • recurrence
  • get files (properties only)
  • apply to each
  • condition: if not empty
    • yes: date check
      • yes: send e-mail

 

 

Hi again, I really do appreciate you help and patience!

 

Do you mean in this format?


3.png

 

The flow now says it ran successfully however I'm no longer getting any emails. Checked 

 

4.png

Anonymous
Not applicable

Hey

 

This was extremely helpful to me! I just had a couple of additional questions to build on this.

 

In your formula, would the time be a 24hour or 12hour clock? Also would only the items within the '  ' comma's have to be replaced with actual figures?

 

 

Thanks in advance

 

 

Hi, 

Not sure what you mean about only the items within the '  ' comma's have to be replaced with actual figures.

The 'ConsentEnd' column is a 'date and time' column, although I am using it to log the date only, not time.

 

Thanks again, I really appreciate your efforts to help me.

 

Vicki

 

Anonymous
Not applicable

Hey,

 

I am sorry for not communicating my request clearly. I meant to ask which field in the following formula must be changed to make the formula useful.

 

@equals(formatDateTime(item()?['Nextauditdue'], 'MM/dd/yyyy'), formatDateTime(addDays(utcNow(), 14), 'MM/dd/yyyy'))

 

Sorry, quite new to SP and coding.

 

Thanks in advance

Hey @Anonymous,

 

This formula, as far as I know, does not care about the time or whether it's in 12 hour or 24 hour format. It just takes the date information. I have not tested what happens if you give it a Date and Time value.

 

@equals(formatDateTime(item()?['Consent'], 'MM/dd/yyyy'), formatDateTime(addDays(utcNow(), 30), 'MM/dd/yyyy'))

The code above has the word Consent in it. That is the column name that you'll want to change to your own column name. The whole original discussion is about how sometimes the name of the column that has spaces and it you need to give it this column name that SharePoint interprets it as. On page 1 and 2 of this discussion you can see that I was able to get the correct column name based on the the error that Flow returned.

 

Let me know if you have need more help!

@Victoria @Vix1

 

 

Hmm. So your first condition that is checking that things actually have values in them is returning a false value. Meaning, the Flow is not finding any values in the ConsentEnd column.

 

Where it says false in the screenshot below, can you go through and click the arrows inside the Apply to each step and see if you ever get a true?

Sorry about the delay, I was not working yesterday.

Arggh. This is driving me nuts! No, I don't have any matches in the Apply to each step.

Here is the doc library with data entries in the Consent End column...a.png

 

Here is the column name, so it is correct...

 

b.png

 

And this is the formula I've used..

@not(empty(triggerBody()?['ConsentEnd']))

 

Thanks you, Vicki

 

Hi @kristof805

Have finally got this going with help from the MS Flow team. Here's what we did.

There are some slight tweaks to the formula below.

 

condition1:@not(equals(items('Apply_to_each')?['ConsentEnd'], null))

condition2:@equals(items('Apply_to_each')?['ConsentEnd'], formatDateTime(addDays(utcNow(), 30), 'yyyy-MM-dd'))

 

flow working.png

 

Thank you for all your help. Vicki

Anonymous
Not applicable

Hey @kristof805

 

Thank you so much! You have been very helpful.

 

I was having slight issues with error messaged and I was wondering if you could clarify for me which end of the formula the current date is entered into (mm-dd-yyyy) ? I am operating under the assumption that the formula already knows that it needs to check for any items that expire within the next 30 days.

 

Also, would the date move forward everyday? Like if I set it as today's date, when the recurrence happens again tomorrow, will the code check for 30 days from tomorrows date? 

 

Thanks in advance!

@Victoria

 

So glad to hear it's working! I would not have figured out those combinations of formulas but I'm sure your post will be a good reference for others!

@Anonymous

 

The current date is entered into your columns on your SharePoint list or document library column. Then, the Flow checks if that date is exactly 30 days away (you can change this) every day. That's why it runs every day, so it checks for you, so you don't have to. On the day that your date in your column is 30 days away, you can have the Flow send an e-mail, some kind of warning, change something, etc.

Anonymous
Not applicable

@kristof805

 

Thanks! I tried running the flow and got this error message. Any suggestions?

 

Capture.PNG

@Anonymous

 

I believe that error is from the condition not finding a date. Do you have the name of your column with the right name? Do all items have a date in the date column? What do the other results say if you go forward or backward on "next failed" and "previous failed". Are they all indetical?

Anonymous
Not applicable

@kristof805

 

I have put the coloumn name where the formula earlier said Consent. The error shows all the information from the SP List so it is getting the data. All items have a date in the list. I have 60 items in the list, all have the same error message.

Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Community Calls Conversations

Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Users online (2,168)