Skip to content

Commit 881cd03

Browse files
Adding New Sample Flow
1 parent 820b744 commit 881cd03

12 files changed

+758
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# Demonstration flow on how to process incoming excel email attachments, to group work items by EmailAddress for employees and email them their tasks
2+
3+
## Summary
4+
5+
This sample demonstrates how to receive an Excel File over email, download the file, save it to SharePoint, then process the file by grouping by value EmployeeEmail and then emailing each employee their work items in an HTML Table.
6+
There are instructions and details in the assets folder, in a file called Excel GroupBy Example Phase I.docx
7+
8+
![Flow overview part 1](./assets/Flow_Image_1.jpg "Flow overview part 1")
9+
![Flow overview part 2](./assets/Flow_Image_2.jpg "Flow overview Part 2")
10+
![Flow overview part 3](./assets/Flow_Image_3.jpg "Flow overview Part 3")
11+
![SharePoint Folder Details](./assets/Flow_Image_4.jpg "SharePoint Folder Details")
12+
13+
14+
## Applies to
15+
16+
![Power Automate](https://img.shields.io/badge/Power%20Automate-Yes-green "Yes")
17+
18+
## Compatibility
19+
20+
![Premium License](https://img.shields.io/badge/Premium%20License-Not%20Required-green.svg "Does not use Premium license")
21+
![On-Premises Connectors](https://img.shields.io/badge/On--Premises%20Connectors-No-green.svg "Does not use on-premise connectors")
22+
![Custom Connectors](https://img.shields.io/badge/Custom%20Connectors-Not%20Required-green.svg "Does not use custom connectors")
23+
24+
## Contributors
25+
26+
* [Michael Gernaey](https://github.com/MichaelGernaey)
27+
28+
## Version history
29+
30+
Version|Date|Comments
31+
-------|----|--------
32+
1.0|June 20, 2025|Initial release
33+
34+
## Prerequisites
35+
36+
### Instructions
37+
38+
* Review the Excel GroupBy Example Phase 1.docx that covers the entire flow from a functional and technical perspective
39+
* Update the Flow based on the configuration details below, setting up your SharePoint Library and Folders, and Email addresses to use.
40+
* If you want the Emails to work, go into the workitems.xlsx file in your assets and update the emails to point to real people
41+
* If you do not you will simply get failed to send emails in your own mailbox
42+
* Please use the workitems.xlsx in the assets folder for your Attachment
43+
* Please use the term workitems for your Emails Subject. This is the email that you will send yourself(or whatever emai you configure) to trigger your flow
44+
* Change the Connections and Folder pointers in the Flow to point to your own SharePoint
45+
* Note: Image Flow_Image_4.jpg shows the folder structure I am using, you can use whatever you like as long as you configure it in the flow that way
46+
* Change the Outlook Trigger Details pointing to the correct folder and account
47+
* Change the Outlook Send Email, Email Addresses in the Catch, Success and if no (false) condition/action areas to send to whomever you like.
48+
* These are emails that are intended to tell operations the status of the flow as part of the "business requirements in the document"
49+
* NOTE: the 10 minute delay is due to the Excel locking issue it will go from seconds to upwards of 10 minutes when used with SharePoint
50+
* The flow triggers when you send the attached workitems.xlsx, with a subject of workitems. Once triggered the flow will validate and then save
51+
* the file in the SharePoint document library and folder you specify in the actions
52+
* It will then process the excel file, grouping by unique Employee Email Address, and then emailing the employee only their workitems
53+
54+
## Minimal Path to Awesome
55+
56+
### Import Solution
57+
58+
* [Download](./solution/flow-excel-groupbyemail-notification-example.zip) the `.zip` from the `solution` folder
59+
* [Import](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/import-update-export-solutions) the `.zip` file using **Solutions** > **Import Solution**.
60+
61+
### Using the source code
62+
63+
You can also use the [Power Apps CLI](https://docs.microsoft.com/powerapps/developer/data-platform/powerapps-cli) to pack the source code by following these steps:
64+
65+
* Clone the repository to a local drive
66+
* Pack the source files back into a solution `.zip` file:
67+
68+
```bash
69+
pac solution pack --zipfile pathtodestinationfile --folder pathtosourcefolder --processCanvasApps
70+
```
71+
72+
Making sure to replace `pathtosourcefolder` to point to the path to this sample's `sourcecode` folder, and `pathtodestinationfile` to point to the path of this solution's `.zip` file (located under the `solution` folder)
73+
* Within **Power Apps Studio**, import the solution `.zip` file using **Solutions** > **Import Solution** and select the `.zip` file you just packed.
74+
75+
## Features
76+
77+
This sample illustrates the following concepts:
78+
79+
* Reusablility
80+
* Use of using Excel
81+
* Use of using Outlook Triggers
82+
* Email Attachment Processing
83+
* Creating a Unique Email by Grouping Excel Rows by Value
84+
* Terminating Flows to capture Success or Failure into the Flow Detail 28 day Run Logs
85+
86+
## Help
87+
88+
We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues.
89+
90+
If you encounter any issues while using this sample, you can [create a new issue](https://github.com/pnp/powerapps-samples/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=bug-report.yml&sample=utility-flow-for-aggregrate-operations-on-array&authors=@Solanki-Manish&title=utility-flow-for-aggregrate-operations-on-array).
91+
92+
For questions regarding this sample, [create a new question](https://github.com/pnp/powerapps-samples/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=question.yml&sample=utility-flow-for-aggregrate-operations-on-array&authors=@Solanki-Manish&title=utility-flow-for-aggregrate-operations-on-array).
93+
94+
Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/powerapps-samples/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=suggestion.yml&sample=utility-flow-for-aggregrate-operations-on-array&authors=@Solanki-Manish&title=utility-flow-for-aggregrate-operations-on-array).
95+
96+
## Disclaimer
97+
98+
**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**
99+
100+
<img src="https://m365-visitor-stats.azurewebsites.net/powerplatform-samples/samples/flow-excel-groupbyemail-notification-example" aria-hidden="true" />
Binary file not shown.
133 KB
Loading
70.2 KB
Loading
102 KB
Loading
26.9 KB
Loading
Binary file not shown.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<ImportExportXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" OrganizationVersion="9.2.25062.200" OrganizationSchemaType="Standard" CRMServerServiceabilityVersion="9.2.25062.00200">
3+
<Entities />
4+
<Roles />
5+
<Workflows />
6+
<FieldSecurityProfiles />
7+
<Templates />
8+
<EntityMaps />
9+
<EntityRelationships />
10+
<OrganizationSettings />
11+
<optionsets />
12+
<CustomControls />
13+
<EntityDataProviders />
14+
<connectionreferences>
15+
<connectionreference connectionreferencelogicalname="gsllc_sharedexcelonlinebusiness_055aa">
16+
<connectionreferencedisplayname>Excel Online (Business) PowerAutomateSamples</connectionreferencedisplayname>
17+
<connectorid>/providers/Microsoft.PowerApps/apis/shared_excelonlinebusiness</connectorid>
18+
<iscustomizable>1</iscustomizable>
19+
<promptingbehavior>0</promptingbehavior>
20+
<statecode>0</statecode>
21+
<statuscode>1</statuscode>
22+
</connectionreference>
23+
<connectionreference connectionreferencelogicalname="gsllc_sharedoffice365_d6869">
24+
<connectionreferencedisplayname>Office 365 Outlook PowerAutomateSamples</connectionreferencedisplayname>
25+
<connectorid>/providers/Microsoft.PowerApps/apis/shared_office365</connectorid>
26+
<iscustomizable>1</iscustomizable>
27+
<promptingbehavior>0</promptingbehavior>
28+
<statecode>0</statecode>
29+
<statuscode>1</statuscode>
30+
</connectionreference>
31+
<connectionreference connectionreferencelogicalname="gsllc_sharedsharepointonline_7584d">
32+
<connectionreferencedisplayname>SharePoint PowerAutomateSamples</connectionreferencedisplayname>
33+
<connectorid>/providers/Microsoft.PowerApps/apis/shared_sharepointonline</connectorid>
34+
<iscustomizable>1</iscustomizable>
35+
<promptingbehavior>0</promptingbehavior>
36+
<statecode>0</statecode>
37+
<statuscode>1</statuscode>
38+
</connectionreference>
39+
</connectionreferences>
40+
<Languages>
41+
<Language>1033</Language>
42+
</Languages>
43+
</ImportExportXml>
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<ImportExportXml version="9.2.25062.200" SolutionPackageVersion="9.2" languagecode="1033" generatedBy="CrmLive" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" OrganizationVersion="9.2.25062.200" OrganizationSchemaType="Standard" CRMServerServiceabilityVersion="9.2.25062.00200">
3+
<SolutionManifest>
4+
<UniqueName>flowexcelgroupbyemailnotificationexample</UniqueName>
5+
<LocalizedNames>
6+
<LocalizedName description="flow-excel-groupbyemail-notification-example" languagecode="1033" />
7+
</LocalizedNames>
8+
<Descriptions />
9+
<Version>1.0.0.1</Version>
10+
<Managed>2</Managed>
11+
<Publisher>
12+
<UniqueName>GernaeySoftwareLLC</UniqueName>
13+
<LocalizedNames>
14+
<LocalizedName description="Gernaey Software L.L.C." languagecode="1033" />
15+
</LocalizedNames>
16+
<Descriptions />
17+
<EMailAddress xsi:nil="true"></EMailAddress>
18+
<SupportingWebsiteUrl xsi:nil="true"></SupportingWebsiteUrl>
19+
<CustomizationPrefix>gsllc</CustomizationPrefix>
20+
<CustomizationOptionValuePrefix>88103</CustomizationOptionValuePrefix>
21+
<Addresses>
22+
<Address>
23+
<AddressNumber>1</AddressNumber>
24+
<AddressTypeCode>1</AddressTypeCode>
25+
<City xsi:nil="true"></City>
26+
<County xsi:nil="true"></County>
27+
<Country xsi:nil="true"></Country>
28+
<Fax xsi:nil="true"></Fax>
29+
<FreightTermsCode xsi:nil="true"></FreightTermsCode>
30+
<ImportSequenceNumber xsi:nil="true"></ImportSequenceNumber>
31+
<Latitude xsi:nil="true"></Latitude>
32+
<Line1 xsi:nil="true"></Line1>
33+
<Line2 xsi:nil="true"></Line2>
34+
<Line3 xsi:nil="true"></Line3>
35+
<Longitude xsi:nil="true"></Longitude>
36+
<Name xsi:nil="true"></Name>
37+
<PostalCode xsi:nil="true"></PostalCode>
38+
<PostOfficeBox xsi:nil="true"></PostOfficeBox>
39+
<PrimaryContactName xsi:nil="true"></PrimaryContactName>
40+
<ShippingMethodCode>1</ShippingMethodCode>
41+
<StateOrProvince xsi:nil="true"></StateOrProvince>
42+
<Telephone1 xsi:nil="true"></Telephone1>
43+
<Telephone2 xsi:nil="true"></Telephone2>
44+
<Telephone3 xsi:nil="true"></Telephone3>
45+
<TimeZoneRuleVersionNumber xsi:nil="true"></TimeZoneRuleVersionNumber>
46+
<UPSZone xsi:nil="true"></UPSZone>
47+
<UTCOffset xsi:nil="true"></UTCOffset>
48+
<UTCConversionTimeZoneCode xsi:nil="true"></UTCConversionTimeZoneCode>
49+
</Address>
50+
<Address>
51+
<AddressNumber>2</AddressNumber>
52+
<AddressTypeCode>1</AddressTypeCode>
53+
<City xsi:nil="true"></City>
54+
<County xsi:nil="true"></County>
55+
<Country xsi:nil="true"></Country>
56+
<Fax xsi:nil="true"></Fax>
57+
<FreightTermsCode xsi:nil="true"></FreightTermsCode>
58+
<ImportSequenceNumber xsi:nil="true"></ImportSequenceNumber>
59+
<Latitude xsi:nil="true"></Latitude>
60+
<Line1 xsi:nil="true"></Line1>
61+
<Line2 xsi:nil="true"></Line2>
62+
<Line3 xsi:nil="true"></Line3>
63+
<Longitude xsi:nil="true"></Longitude>
64+
<Name xsi:nil="true"></Name>
65+
<PostalCode xsi:nil="true"></PostalCode>
66+
<PostOfficeBox xsi:nil="true"></PostOfficeBox>
67+
<PrimaryContactName xsi:nil="true"></PrimaryContactName>
68+
<ShippingMethodCode>1</ShippingMethodCode>
69+
<StateOrProvince xsi:nil="true"></StateOrProvince>
70+
<Telephone1 xsi:nil="true"></Telephone1>
71+
<Telephone2 xsi:nil="true"></Telephone2>
72+
<Telephone3 xsi:nil="true"></Telephone3>
73+
<TimeZoneRuleVersionNumber xsi:nil="true"></TimeZoneRuleVersionNumber>
74+
<UPSZone xsi:nil="true"></UPSZone>
75+
<UTCOffset xsi:nil="true"></UTCOffset>
76+
<UTCConversionTimeZoneCode xsi:nil="true"></UTCConversionTimeZoneCode>
77+
</Address>
78+
</Addresses>
79+
</Publisher>
80+
<RootComponents>
81+
<RootComponent type="29" id="{da8884b2-4e60-f011-bec2-6045bdef61ca}" behavior="0" />
82+
</RootComponents>
83+
<MissingDependencies />
84+
</SolutionManifest>
85+
</ImportExportXml>

0 commit comments

Comments
 (0)