Hi all,
I am trying to wrap my head around this but can't seem to get it working..
Sample Data (this data is stored in a sharepoint list):
Name | Email address | Physical address | Deployment date | DeviceID | Confirmed |
Jon | Jon@me.com | 123 fake street | May 4th 2022 | 12345 | Yes |
Jon | Jon@me.com | 123 fake street | May 4th 2022 | 12346 | Yes |
Jane | Jane@me.com | 123 fake street | May 15th 2022 | 12347 | Yes |
Dave | Dave@me.com | 123 fake street | May 5th 2022 | 12348 | No |
Essentially the flow logic needs to work like this:
1. run automatically Every weekday (mon-fri)
2. If Confirmed = yes and deployment date = Today +2 working days
3. Send email to employee with confirmation containing deployment date, device ID, address..etc
Some users have multiple devices like Jon so i want to group information into 1 instead of sending multiple emails to the same user:
Name | Email address | Physical address | Deployment date | DeviceID | Confirmed |
Jon | Jon@me.com | 123 fake street | May 4th 2022 | 12345 | Yes |
Jon | Jon@me.com | 123 fake street | May 4th 2022 | 12346 | Yes |
Hope i explained it correctly, and thanks in advance for helping a newbie like myself!
Solved! Go to Solution.
I built out your Flow. The first part of my Flow (down to Get items) can be see in my previous post.
Let me know if you have any questions. I could have added a parse JSON action but I didn't think it was necessary. Also, I am using a Select along with a Compose action containing a union expression to create the array of unique email addresses - I like this way more than creating a variable and looping. Use the output of the Create HTML table in your email. My apply to each action points to the output of the Unique Emails Compose action - this loops you through each unique email address.
Note: In my filter array action I am point to the output of the Select 2 action - not the first select action - I could have labeled that better...
Where is your data stored? SharePoint?
Yes, all the data is store in a sharepoint list.
This will be a reasonably complicated Flow.
First, you need to make sure that today plus 2 days is a week day. If not, add days to get to the next Monday:
Next, you need to retrieve only the items that meet your criteria. You'll use a filter query in your Get items action for that.
Then, you need to create an array of unique emails, select the items associated with those emails and group them into an HTML table and email.
Here is a link that will explain this part of your Flow.
If you get stuck, please let me know.
Ive managed to build the flow that you've outlined and i sort of understand what it's doing. however when i go to the link to build an array of unique emails, i'm lost. The example is filtering based on due date but i've already filtered out the sharepoint list to only show items i want to mail out and I just need to group all lines that contain the same email address field and send that out.
Can you post screen shots of what you have so far?
Here is what you need to do next:
The link that I provided details one way to approach what I have just outlined.
the first part seems to be working well to gather the dates and ensure it's weekdays only +2.
However i'm still getting unwanted results on the automated email. For example, as test data i put 2 rows of deployment dates to employee A and 2 deployment dates to employee B. Total of 4 lines in the dataset. All 4 are confirmed and abide by the rule of weekday +2.
it SHOULD be sending 1 email to each employee containing both deployment dates for that respective employee, however i am getting 1 email sent out to each employee with both employeeA and employeeB in the To field of the email as well as both user's data in the actual email content
Here is how i have it set up:
Any idea where i went wrong?
I built out your Flow. The first part of my Flow (down to Get items) can be see in my previous post.
Let me know if you have any questions. I could have added a parse JSON action but I didn't think it was necessary. Also, I am using a Select along with a Compose action containing a union expression to create the array of unique email addresses - I like this way more than creating a variable and looping. Use the output of the Create HTML table in your email. My apply to each action points to the output of the Unique Emails Compose action - this loops you through each unique email address.
Note: In my filter array action I am point to the output of the Select 2 action - not the first select action - I could have labeled that better...
I've configured as you have, and am receiving 1 email per user with multiple rows.
the problem i'm facing now is that the body of the HTML table is only giving me the email address, even though i've selected multiple fields under Select2:
Great Job! You're almost there!
Please verify that the output that you are referencing in the email body is the output of the Create an HTML table action.
Also, add the email to the Select 2 Action - it needs to be there so that you can filter on it. If you don't want it to appear in the HTML table, select Custom rather than Automatic in the HTML action and select only the columns that you want using the item() expression - see my screen shot below. You can't have spaces in the HTML header - you can use an underscore.
@ScottShearer Yes! i can sense how close we are.
I've added the email as you mentioned. the output in the email is from the Create HTML Table
Unfortunately, it still only shows the email address from the Output of the Create HTML table
I believe the issue is that your Filter array action is drawing from Select rather than Select 2. It is pointing to the first select action and not the one inside the loop. Make that change and you might be there!
User | Count |
---|---|
93 | |
45 | |
19 | |
19 | |
15 |
User | Count |
---|---|
137 | |
54 | |
42 | |
42 | |
30 |