09-28-2022 06:44 AM
Want to create one source of truth for an entire project or initiative of projects using only standard Power Platform applications?
This template set-up combines a project log, kanban board, GANTT chart, RACI (role & workload tracking), and project update notifications system into one SharePoint list that is also embedded in a Teams channel.
It does not require the hassle of provisioning premium or other additional services like MS Project.
It is a mobile-device accessible set-up.
It is very Agile project management friendly.
Teams Tab Kanban View Example
Teams Tab GANTT Example
Automatic Notifications Example
Teams Tab RACI PBI Report Example
Set-Up
Pre-requisite: You will want to be an Owner of the SharePoint/Teams site where you want to set up this project tracker. Design or Edit permissions may be sufficient for many things, but you will probably have the easiest set-up experience with an Owner role.
Import The Template List & Channel
Download the Project Tracker Files zip at the bottom of the post. Extract the zip file.
Navigate to Power Automate (https://make.powerautomate.com/) in the environment you want to set up this project tracker. Then select the import option. Select the TemplateProjectTrackerList zip to import.
An import screen should eventually load where you will need to replace the flow connections with your own authorized connection credentials. You may need to create new connections for some pieces. For those new connections you'll click Create new, then New connection, then search for the connector from the import list in the top right search-bar & create the connection. Then hit the refresh button on the import pop-up menu for that connector.
Once all the connections are replaced & it is done loading, you can follow the link that appears to get to the actual flow.
Once in the flow, you can follow the notes to replace the default values in Settings to match your desired ListName, SiteURL, & Teams Channel name. To get the SiteURL you can visit the homepage of the site you want to import the tracker to and copy the URL. It is usually something like (https://<Org Name>.sharepoint.com/sites/<Site Name>/). But pay attention to the example site, you may need to add an extra forward slash to the url you got for your site. You will also need to replace the default value in the Get a team action to match the associated Teams site where you want to import the Tracker list. Save the flow.
After saving the flow, you will want to navigate out to the front page of the flow, make sure it is turned on, navigate back to the edit menu, click Test, & keep following the menu prompts until you can initiate the flow run so it can set up the template list & channel for you.
And that should generate the initial template SharePoint list & Teams channel!
Additional List & Teams Configurations
-Add Kanban View to Teams Channel
Navigate to the site where you imported the list. You should now have the list in your content and a navigation pane option should have been created for the list. Navigate to the list and go to the Kanban view. Copy the url for the webpage with the Kanban view.
Go to the Teams channel created for the project tracker, add a tab, select website, fill in the url field with the url from the Kanban view webpage.
That will make an easy-access tab available for the project Kanban board in Teams.
-Adjust fields & add filters
Navigate to the site where you imported the list. You should now have the list in your content and a navigation pane option should have been created for the list. Navigate to the list and go to the All Items view.
Go to the Notes column, open the edit menu, & save. This refreshed that column with the rich text settings so users can add hyperlinks & other formatting to their notes.
Next go to any columns you would like to filter on and pin them to the filter pane. I suggest pinning at least the following columns:
GoalLevel
ProjectAreas (Optional, better for larger initiatives / multi-area projects)
ParentGoals
Predecessors
Accountable
Responsible
-Better configure the default form layout
Next we can better organize the default form view using Configure layout options in an item menu of the Kanban view. Create a dummy item & open the edit menu on that dummy item. Navigate to the Configure layout menu, then copy the contents of the ConfigureLayoutBodyJSON txt file into the Body of the menu's field.
(If you later change the name of a column or want to add new columns to the form sections, then you will need to adjust & add the field names in this Configure layout menu.)
ConfigureLayoutBodyJSON:
{
"sections": [
{
"displayname": "General",
"fields": [
"Title",
"Status",
"Priority",
"GoalLevel",
"ParentGoals",
"Predecessors",
"ProjectAreas",
"StartDate",
"DueDate",
"EstimatedDuration",
"CompletedDate",
"ActualDuration"
]
},
{
"displayname": "Deliverable Info",
"fields": [
"As_a",
"I_want",
"So"
]
},
{
"displayname": "Assigned People",
"fields": [
"Accountable",
"Responsible",
"Consulted",
"Informed"
]
},
{
"displayname": "",
"fields": [
"Notes",
"Attachments"
]
}
]
}
-Customize Card fields
To adjust the fields displayed on the Kanban cards, navigate to the views menu, then to the Customize Card menu. I suggest using something like the following fields on the display cards...
GoalLevel
Title
Priority
ProjectAreas (Optional, better for larger initiatives / multi-area projects)
Accountable
Refresh the Kanban page url to reset the view formatting with the new settings.
-Add mobile experience options
To set the Kanban for mobile experiences, go to List settings, then Kanban (In the views section at the bottom of the page), then select the Enable for mobile & Make default for mobile options (bottom of the page) & select OK.
The Kanban view will then be accessible from the SharePoint app & mobile browsers:
Apple App Store SharePoint App:
https://apps.apple.com/us/app/microsoft-sharepoint/id1091505266
Google App Store SharePoint App:
https://play.google.com/store/apps/details?id=com.microsoft.sharepoint
-Adding a GANTT view
There is a built-in GANTT view for SharePoint lists, but it takes a little work to make it more accessible on modern sites & Teams.
Go to List settings > Create view > Start from existing > GANTT-Template then scroll to the end of the url on the create view page to add &Gantt=True to the end of the url. Then refresh & fill in the View Title, Title, Start Date, Due Date, & Predecessors fields. Then select OK to save the view.
If you were not directed to a classic SharePoint type of GANTT view, then go back to the List settings, go to the new GANTT view you just created, & click OK again.
Now from the classic SharePoint GANTT view page, copy the page URL.
Go to the Teams channel created for the project tracker, add a tab, select website, fill in the url field with the classic SharePoint GANTT chart url.
That should give you a relatively easy way to get to a GANTT view of your data based on the StartDate & DueDates anyone enters for the items. These GANTT views could also be grouped by other fields like Accountable.
Automatic project item update notifications
To give everyone involved in the project a type of routine digest of all the items involving them that were recently updated, we can use the Project Tracker Notifications flow provided.
Go back to Power Automate (https://make.powerautomate.com/) and import the ProjectTrackerNotifications flow zip file just like the List Template flow zip file. Change out all the connections. And once it is done loading, follow the same pop-up link to the imported flow.
Change out the Site address & List name to match your chosen site & project tracker list name. Save the flow. Then make sure the flow is turned on.
(Optional) If you want to further customize the recipients, subject, message body, reply-to, etc, then go into the last Apply to each loop and open all the sections, then the last action should be an Email action where you can make those changes:
Now by default anyone added to any of the assigned roles will receive a daily digest email with all the items involving them that were updated in the past 24 hours.
Note: If you will be listing many stakeholders or people in the project assignment roles who do not usually have access to this site, then I highly recommend adding some All Users type of group as a visitor / read-access member of this list. Then someone doesn’t have to manually approve each person to view items from these update notifications.
RACI Workload Tracking in Power BI
To get a better view of everyone's roles & workloads on a project, we can use the pbix file included & integrate it into another Teams tab.
Open the pbix file in the Project Tracker Files folder.
Go to Transform data, then double click the Source step to get the SP datasource menu. Go to the site home page where you imported the Project Tracker list, copy the site url usually something like https://<Org Name>.sharepoint.com/sites/<Site Name>/, and paste that into the Site url field of the PBI menu, click OK.
Click Refresh Preview to make sure the new list shows in the options. Double click the Navigation step, then double click the list name you used, like ProjectTracker, & hit the enter key.
Select Close & Apply. Click Publish. Publish to a workspace all the project members have permission to see and/or follow the link to the report on the Publish pop-up menu to (https://app.powerbi.com/). Find the datasource for the ProjectTracker-RACI, click the 3 dots on the datasource & go to Manage permissions, click add user & add an Office365 user group with all the project members in it.
After adding everyone's permissions, go back to the datasource menu & select the Schedule refresh option. You may need to refresh your credentials on this new automatic refresh menu for it to work. Then turn on automatic refresh and adjust the settings to auto-update the report from the list at least every day.
Now go back to the project Teams channel and add another tab. Select the Power BI tile, find & select the report you just set-up. Click save.
Now people will begin to appear in the report as they are added to project item roles. And you can hover over each block in their bar chart to see each item they are assigned to:
If anyone has trouble importing the Power Automate flows using the standard legacy flow import, the Project Tracker Files zip now includes a Power Apps solution package that once can import & then find the flows in the solution Flows section.
Or see this other method: https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Project-Tracker-SharePoint-and-Teams/m-p...
Microsoft deprecated the Groups connector that was used to automatically add the Kanban view tab to the Teams channel. I have removed the deprecated action from the list set-up flow & above I have included instructions on how to manually add the Kanban view to the Teams channel.
Thanks for any feedback,
Please subscribe to my YouTube channel (https://youtube.com/@tylerkolota?si=uEGKko1U8D29CJ86).
And reach out on LinkedIn (https://www.linkedin.com/in/kolota/) if you want to hire me to consult or build more custom Microsoft solutions for you.
watch?v=yPVSNxpLeKQ
Current Challenges & Workarounds
-Concurrent edits cause the SharePoint Kanban / Board View to revert to a weird format where the headers/buckets are messed up.
Until Microsoft patches this, you will just need to refresh the page when this happens & it will go back to normal.
-Configure Layout & SP Form
If you need to add new fields to the default form & you want the enhanced Configure layout view with sections, then you will want to learn to add column names to the Configure layout JSON. Also with new field additions there are sometimes bugs with field order or recognizing the field in the desired section. You can use the Edit columns menu from the same dropdown as Configure layout to show/hide fields & drag or manually move up/down to reorganize. There you could also click on the dots next to a field to add conditional formatting like showing/hiding a field based on other fields. So you could just set it to =false to also hide a field.
If one method of reorganizing a field or hiding a field encounters a glitch, then try the other methods of telling SP to do what you want and it will eventually work.
Alternatively, you could also create a Power App custom form for the list to replicate the form view without these potential challenges.
-Conditional formatting of columns resets Customize Card settings
If you apply a conditional formatting rule, like making all Epics yellow highlighted & all User Stories green highlighted, then it will often revert to the original Customize Card settings & not show the card fields you selected on the Kanban view. I recommend not using the built-in conditional formatting rules.
Instead I edit the actual JSON code formatting to change the color of the entire cards in the Kanban view based on a formula like here: https://techcommunity.microsoft.com/t5/sharepoint/configure-conditional-formatting-for-sharepoint-li...
This both avoids the glitches & looks much cooler. But it does require manually changing code, creating a conditional formula within the code, & finding the correct HTML color codes you want to use in that formula.
-No pre-built resource tracking beyond personnel
Other than tracking peoples’ workloads, this template does not include any more advanced resource tracking of things like major assets.
You would need to edit the list to add those fields & capabilities as needed.
-No default option for a menu check-list
There is not a checklist feature built into this template. However, if you want a low-effort way to get some of this functionality, you can always add a text checklist to the text editor...
[x] Checkmark to-do line 2
[_] Checkmark to-do line 3
@thumbsupy
It should be this connection:
If for some reason it doesn't exist in your tenant, then below is a copy of the template list flow without the Office 365 Groups Connector. That action was just automatically adding the Kanban view of the SP list to the Teams tab. Without that action you will need to add that tab manually.
Hi! Im fairly new to PowerAutomate but your solution looks exactly as what our team has been looking for. Also, the set up guide seems doable. You dont happen to have a youtube step by step explanation, do you?
However, Im running into below issue. Any way I can circumvent or resolve this?
Thanks in advance and keep up the great work!
Mmm 🫤
I specifically used this method of importing to avoid the need for people to involve IT / Admins to install it. But it looks like your organization may have certain policies turned on to prevent most users from using certain actions.
You’ll probably need to reach out to IT so they can…
-Set it up themselves on an admin account
Or
-Give you any required permissions / security level to use these items
Or
-Change their policy settings
BUT if those are the only type of error with the Office365 Groups connector, then you may also be able to remove that action or download the version I responded with earlier that removes that action. That may also work.
@vheer
If you delete the Office 365 Groups HTTP connector from the flow, do you still get some errors?
If it works without that action, then you will just need to manually add the Kanban tab to the Teams channel. It should be similar to the instructions for adding the GANTT tab to the Teams channel.
This works perfectly, many thanks!
If anyone has trouble importing the flows through the standard flow import method, you can also try this back-up method...
For this, you'll need to copy the code below to your clipboard. It contains the code for a Power Automate Scope action that contains the entire flow. You can then go to a new action in any flow, go to the "My clipboard" tab of the new action menu and control + v paste it into that tab menu so you can select it to add it to the flow. The extra hurdle with this method is the longer expressions sometimes get removed when you paste from the clipboard & import this way. You will have to double check all the action expressions to make sure nothing was erased or left greyed out. Also this method can't copy variables as they can not go into the Scope action. So you will need to re-add the initialization actions for those variables.
Template Project Tracker List flow code to copy & paste into the "My clipboard" tab of a new action menu:
{"id":"ed26c3b2-4248-4ecc-b34a-389677eb6877","brandColor":"#8C3900","connectionReferences":{"shared_teams":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_teams/connections/shared-teams-8112094b-7e7a-41be-97f4-1297c30cbf15"}},"shared_sharepointonline_1":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/shared-sharepointonl-60d1f27e-bd8b-43f2-a8ad-a7be60200f79"}},"shared_office365groups":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_office365groups/connections/shared-office365grou-6b448f0a-690e-4dcc-b18d-e1826734525f"}},"shared_sharepointonline":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/shared-sharepointonl-60d1f27e-bd8b-43f2-a8ad-a7be60200f79"}}},"connectorDisplayName":"Control","icon":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KIDxwYXRoIGQ9Im0wIDBoMzJ2MzJoLTMyeiIgZmlsbD0iIzhDMzkwMCIvPg0KIDxwYXRoIGQ9Im04IDEwaDE2djEyaC0xNnptMTUgMTF2LTEwaC0xNHYxMHptLTItOHY2aC0xMHYtNnptLTEgNXYtNGgtOHY0eiIgZmlsbD0iI2ZmZiIvPg0KPC9zdmc+DQo=","isTrigger":false,"operationName":"Create_Project_Tracker_Template_List","operationDefinition":{"type":"Scope","actions":{"Settings":{"type":"Compose","inputs":{"ListName":"ProjectTracker","SiteURL":"https://contoso.sharepoint.com/sites/sitename","TeamsChannelName":"Project Tracker@{utcNow('mmss')}","LineBreak":"@{decodeuricomponent('%0A')}"},"runAfter":{},"description":"Replace the ListName, SiteURL, & TeamsChannelName values with the name you want for the list, the homepage or site section of the SharePoint & Teams site url where you want the project tracker, & the name you want for the project teams channel.","metadata":{"operationMetadataId":"87afdceb-8ffd-4137-8b54-80f7a5fa08a0"}},"Fields_JSON_array":{"type":"Compose","inputs":[{"__metadata":{"type":"SP.FieldNumber"},"FieldTypeKind":1,"Required":"@false","Title":"Priority","Description":"1 to 10 ranking of the item's importance"},{"__metadata":{"type":"SP.FieldChoice"},"FieldTypeKind":6,"Required":"@false","Title":"Status","Choices":{"results":["Planning","In-Progress","On-Hold","Complete"]}},{"__metadata":{"type":"SP.FieldChoice"},"FieldTypeKind":6,"Required":"@true","Title":"GoalLevel","Description":"Is it a main objective like a Theme, a sub-objective like an Epic, or a small team/individual deliverable like a User Story?","Choices":{"results":["1-Theme","2-Epic","3-Story"]}},{"parameters":{"__metadata":{"type":"SP.FieldCreationInformation"},"FieldTypeKind":7,"Title":"ParentGoals","LookupListId":"@{outputs('ListGUID')}","LookupFieldName":"Title"}},{"parameters":{"__metadata":{"type":"SP.FieldCreationInformation"},"FieldTypeKind":7,"Title":"Predecessors","LookupListId":"@{outputs('ListGUID')}","LookupFieldName":"Title"}},{"__metadata":{"type":"SP.FieldMultiChoice"},"FieldTypeKind":15,"Title":"ProjectAreas","Description":"The sub-projects or project areas involved in a larger initiative.","Choices":{"results":["Area1","Area2","Area3"]}},{"__metadata":{"type":"SP.FieldDateTime"},"FieldTypeKind":4,"Required":"@false","Title":"StartDate"},{"__metadata":{"type":"SP.FieldDateTime"},"FieldTypeKind":4,"Required":"@false","Title":"DueDate","Description":"Date it is planned to be complete."},{"__metadata":{"type":"SP.FieldCalculated"},"FieldTypeKind":17,"Required":"@false","Title":"EstimatedDuration","Description":"Number of days between start & due date.","Formula":"=MAX(DueDate-StartDate, -1)","OutputType":9},{"__metadata":{"type":"SP.FieldDateTime"},"FieldTypeKind":4,"Required":"@false","Title":"CompletedDate","Description":"Date it is actually completed."},{"__metadata":{"type":"SP.FieldCalculated"},"FieldTypeKind":17,"Required":"@false","Title":"ActualDuration","Description":"Number of days between start & completed date.","Formula":"=MAX(CompletedDate-StartDate, -1)","OutputType":9},{"__metadata":{"type":"SP.FieldText"},"FieldTypeKind":2,"Required":"@false","Title":"As_a","Description":"The user persona or category of person who wants the deliverable."},{"__metadata":{"type":"SP.FieldMultiLineText"},"FieldTypeKind":3,"Required":"@false","Title":"I_want","Description":"What the person wants."},{"__metadata":{"type":"SP.FieldMultiLineText"},"FieldTypeKind":3,"Required":"@false","Title":"So","Description":"Why the person wants it."},{"__metadata":{"type":"SP.FieldUser"},"FieldTypeKind":20,"Required":"@true","Title":"Accountable","Description":"The person with final decision-making authority & accountability for an item.","SelectionMode":0},{"__metadata":{"type":"SP.FieldUser"},"FieldTypeKind":20,"Required":"@false","Title":"Responsible","Description":"The people directly working on a task or deliverable.","AllowMultipleValues":"@true","SelectionMode":1},{"__metadata":{"type":"SP.FieldUser"},"FieldTypeKind":20,"Required":"@false","Title":"Consulted","Description":"Advisers, subject matter experts, or stakeholders consulted on item activities. They may also actively review items & point out potential opportunities or misunderstandings.","AllowMultipleValues":"@true","SelectionMode":1},{"__metadata":{"type":"SP.FieldUser"},"FieldTypeKind":20,"Required":"@false","Title":"Informed","Description":"Must be informed of decisions or actions.","AllowMultipleValues":"@true","SelectionMode":1},{"__metadata":{"type":"SP.FieldMultiLineText"},"FieldTypeKind":3,"Required":"@false","Title":"Notes","RichText":"@true","AllowHyperlink":"@true","RestrictedMode":"@false"}],"runAfter":{"SiteURL":["Succeeded"]},"metadata":{"operationMetadataId":"9afec9dc-c3a8-4a20-8059-e9088c13a840"}},"Apply_to_each_Add_fields":{"type":"Foreach","foreach":"@outputs('Fields_JSON_array')","actions":{"Condition_Is_Lookup_field":{"type":"If","expression":{"contains":["@string(items('Apply_to_each_Add_fields'))","\"__metadata\":{\"type\":\"SP.FieldCreationInformation\"}"]},"actions":{"SP_HTTP_Add_field_2":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"@outputs('Settings')?['SiteURL']","parameters/method":"POST","parameters/uri":"_api/lists/getbytitle('@{outputs('Settings')?['ListName']}')/fields/addfield","parameters/headers":{"accept":"application/json;odata=verbose","content-type":"application/json;odata=verbose"},"parameters/body":"@items('Apply_to_each_Add_fields')"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{},"description":" if(contains(string(items('Apply_to_each_Add_fields')),'\"__metadata\":{\"type\":\"SP.FieldCreationInformation\"}'), '/addfield', '')","metadata":{"operationMetadataId":"992d78b2-f0ac-4b6f-9ffc-3f1244fd60ac"}},"SP_HTTP_Set_multiselect":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"@outputs('Settings')?['SiteURL']","parameters/method":"POST","parameters/uri":"_api/lists/getbytitle('@{outputs('Settings')?['ListName']}')/fields('@{body('SP_HTTP_Add_field_2')?['d']?['id']}')","parameters/headers":{"accept":"application/json;odata=verbose","content-type":"application/json;odata=verbose","X-HTTP-Method":"MERGE"},"parameters/body":"{ \n\"__metadata\": {\n\"type\": \"SP.FieldLookup\"\n}, \n\"AllowMultipleValues\": true\n}"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{"SP_HTTP_Add_field_2":["Succeeded"]},"metadata":{"operationMetadataId":"992d78b2-f0ac-4b6f-9ffc-3f1244fd60ac"}}},"runAfter":{},"else":{"actions":{"SP_HTTP_Add_field":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"@outputs('Settings')?['SiteURL']","parameters/method":"POST","parameters/uri":"_api/lists/getbytitle('@{outputs('Settings')?['ListName']}')/fields","parameters/headers":{"accept":"application/json;odata=verbose","content-type":"application/json;odata=verbose"},"parameters/body":"@items('Apply_to_each_Add_fields')"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{},"description":"if(contains(string(items('Apply_to_each_Add_fields')),'\"__metadata\":{\"type\":\"SP.FieldCreationInformation\"}'), '/addfield', '')","metadata":{"operationMetadataId":"992d78b2-f0ac-4b6f-9ffc-3f1244fd60ac"}}}},"metadata":{"operationMetadataId":"8c95985b-493e-4bd9-99d5-e44216274e6b"}}},"runAfter":{"Fields_JSON_array":["Succeeded"]},"metadata":{"operationMetadataId":"0574de78-bd75-4af3-bd0d-f46a3075759f"}},"Apply_to_each_Add_fields_to_views":{"type":"Foreach","foreach":"@outputs('Fields_JSON_array')","actions":{"Apply_to_each_Add_to_view":{"type":"Foreach","foreach":"@split(outputs('Views_names'), outputs('Settings')?['LineBreak'])","actions":{"SP_HTTP_Add_field_to_view":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"@outputs('Settings')?['SiteURL']","parameters/method":"POST","parameters/uri":"_api/web/lists/GetByTitle('@{outputs('Settings')?['ListName']}')/views/getbytitle('@{items('Apply_to_each_Add_to_view')}')/ViewFields/AddViewField('@{if(contains(string(items('Apply_to_each_Add_fields_to_views')),'\"__metadata\":{\"type\":\"SP.FieldCreationInformation\"}'), items('Apply_to_each_Add_fields_to_views')?['parameters']?['Title'], items('Apply_to_each_Add_fields_to_views')?['Title'])}')","parameters/headers":{"accept":"application/json;odata=verbose","content-type":"application/json;odata=verbose"}},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{},"metadata":{"operationMetadataId":"96ca4c5e-973f-497e-b02a-0ef6763da64f"}}},"runAfter":{},"metadata":{"operationMetadataId":"a7ebd90f-404b-44d7-9b65-dda07fd445fd"}}},"runAfter":{"Views_names":["Succeeded"]},"metadata":{"operationMetadataId":"0574de78-bd75-4af3-bd0d-f46a3075759f"}},"SP_HTTP_Add_Kanban_view":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"@outputs('Settings')?['SiteURL']","parameters/method":"POST","parameters/uri":"_api/web/lists/GetByTitle('@{outputs('Settings')?['ListName']}')/Views/Add","parameters/headers":{"accept":"application/json;odata=verbose","content-type":"application/json;odata=verbose"},"parameters/body":"{\n\"parameters\": {\n\"__metadata\": {\n\"type\": \"SP.ViewCreationInformation\"},\n\"Title\": \"Kanban\",\n\"ViewTypeKind\": 1,\n\"ViewType2\": \"KANBAN\",\n\"ViewData\": \"<FieldRef Name=\\\"Status\\\" Type=\\\"KanbanPivotColumn\\\" />\",\n\"Query\": \"<OrderBy><FieldRef Name='GoalLevel' Ascending='TRUE' /><FieldRef Name='Priority' Ascending='FALSE' /></OrderBy>\",\n\"SetAsDefaultView\": true,\n\"PersonalView\": false,\n\"RowLimit\": 500\n}\n}"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{"Apply_to_each_Add_fields":["Succeeded"]},"metadata":{"operationMetadataId":"96ca4c5e-973f-497e-b02a-0ef6763da64f"}},"Send_HTTP_Create_Kanban_Teams_tab":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_office365groups","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_office365groups"},"parameters":{"Uri":"https://graph.microsoft.com/v1.0/teams/@{outputs('Get_a_team')?['body/id']}/channels/@{outputs('Create_a_channel')?['body/id']}/tabs","Method":"POST","Body":"{\n \"displayName\": \"Kanban\",\n \"teamsApp@odata.bind\" : \"https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/com.microsoft.teamspace.tab.web\",\n \"configuration\": {\n \"contentUrl\": \"@{outputs('SiteURL')}@{body('SP_HTTP_Add_Kanban_view')?['d']?['ServerRelativeUrl']}\",\n \"websiteUrl\": \"@{outputs('SiteURL')}@{body('SP_HTTP_Add_Kanban_view')?['d']?['ServerRelativeUrl']}\"\n }\n}","ContentType":"application/json"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{"SP_HTTP_Add_Kanban_view":["Succeeded"]},"metadata":{"operationMetadataId":"b33db865-fb81-4515-b4dd-e73eb010f493"}},"SP_HTTP_Add_GANTT-Template_view":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"@outputs('Settings')?['SiteURL']","parameters/method":"POST","parameters/uri":"_api/web/lists/GetByTitle('@{outputs('Settings')?['ListName']}')/Views","parameters/headers":{"accept":"application/json;odata=verbose","content-type":"application/json;odata=verbose"},"parameters/body":"{\n \"__metadata\": {\n \"type\": \"SP.View\"\n },\n \"ViewType\": \"Gantt\",\n \"Title\": \"GANTT-Template\",\n \"DefaultView\": false,\n \"PersonalView\": false,\n\"ViewQuery\": \"<GroupBy Collapse=\\\"TRUE\\\" GroupLimit=\\\"100\\\"><FieldRef Name=\\\"GoalLevel\\\" /></GroupBy><OrderBy><FieldRef Name=\\\"StartDate\\\" /><FieldRef Name=\\\"DueDate\\\" Ascending=\\\"FALSE\\\" /></OrderBy>\"\n}"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{"Send_HTTP_Create_Kanban_Teams_tab":["Succeeded"]},"description":"Go to List settings > Create view > Start from existing > GANTT-Template then scroll to the end of the url on the create view page to add &Gantt=True to the end of the url. Then refresh & fill in the Title, Start Date, & Due Date fields.","metadata":{"operationMetadataId":"96ca4c5e-973f-497e-b02a-0ef6763da64f"}},"SiteURL":{"type":"Compose","inputs":"@split(body('SP_HTTP_Create_list')?['d']?['__metadata']?['id'], '/sites/')[0]","runAfter":{"ListGUID":["Succeeded"]},"metadata":{"operationMetadataId":"288fb96b-f8c7-4acf-98e9-eeaec94759ce"}},"ListGUID":{"type":"Compose","inputs":"@body('SP_HTTP_Create_list')?['d']?['id']","runAfter":{"SP_HTTP_Create_list":["Succeeded"]},"metadata":{"operationMetadataId":"170b1cf2-3ee2-4b4d-a9ee-d88f902c0955"}},"SP_HTTP_Create_list":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline_1","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"@outputs('Settings')?['SiteURL']","parameters/method":"POST","parameters/uri":"_api/web/lists","parameters/headers":{"accept":"application/json;odata=verbose","content-type":"application/json;odata=verbose"},"parameters/body":"{\n\"__metadata\": {\n\"type\": \"SP.List\"\n},\n\"BaseTemplate\": 100,\n\"Description\": \"SP list for a project log, RACI assignments, kanbans, and GANTT charts\",\n\"Title\": \"@{outputs('Settings')?['ListName']}\"\n}"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{"Create_a_channel":["Succeeded"]},"metadata":{"operationMetadataId":"c10f68da-abe3-4c1d-8b46-bb3a616e8770"}},"SP_HTTP_Add_list_navigation":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline_1","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"@outputs('Settings')?['SiteURL']","parameters/method":"POST","parameters/uri":"_api/Web/Navigation/QuickLaunch","parameters/headers":{"accept":"application/json;odata=verbose","content-type":"application/json;odata=verbose"},"parameters/body":"{\n\"__metadata\": { type: \"SP.NavigationNode\" },\n\"IsExternal\": false,\n\"Title\": \"@{outputs('Settings')?['ListName']}\",\n\"Url\": \"@{outputs('SiteURL')}@{body('SP_HTTP_Add_Kanban_view')?['d']?['ServerRelativeUrl']}\"\n}"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{"Apply_to_each_Add_fields_to_views":["Succeeded"]},"metadata":{"operationMetadataId":"c10f68da-abe3-4c1d-8b46-bb3a616e8770"}},"Get_a_team":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_teams","operationId":"GetTeam","apiId":"/providers/Microsoft.PowerApps/apis/shared_teams"},"parameters":{"teamId":"https://contoso.sharepoint.com/sites/sitename"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{"Settings":["Succeeded"]},"metadata":{"operationMetadataId":"00fe6b19-9142-4568-9197-eddcca12c772"}},"Create_a_channel":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_teams","operationId":"CreateChannel","apiId":"/providers/Microsoft.PowerApps/apis/shared_teams"},"parameters":{"groupId":"@outputs('Get_a_team')?['body/id']","body/displayName":"@outputs('Settings')?['TeamsChannelName']"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{"Get_a_team":["Succeeded"]},"metadata":{"operationMetadataId":"74e753df-64a5-4a60-bbe4-cd0cf0cbe10b"}},"Views_names":{"type":"Compose","inputs":"All Items\nKanban\nGANTT-Template","runAfter":{"SP_HTTP_Add_GANTT-Template_view":["Succeeded"]},"description":"Name of each SharePoint view separated by a line-break","metadata":{"operationMetadataId":"b2bf0b49-26fd-4a03-ba86-cae8455b86b6"}}},"runAfter":{},"description":"Replace the values in Settings for your use-case. Replace the Team value in Get a team with the related team where you want the project channel to be built.","metadata":{"operationMetadataId":"8b82ff0a-e68e-466e-9de8-ead88347db3b"}}}
Project Tracker Notifications flow code to copy & paste into the "My clipboard" tab of a new action menu:
{"id":"3dc08341-1b1f-4ddd-bd80-6a3f4c6888bf","brandColor":"#8C3900","connectionReferences":{"shared_office365users":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_office365users/connections/88b73cab99bd4598bfce9895cb9a47b2"}},"shared_office365":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_office365/connections/shared-office365-67f10a94-c084-4840-baf8-1be9-5c063787"}},"shared_sharepointonline":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/shared-sharepointonl-60d1f27e-bd8b-43f2-a8ad-a7be60200f79"}}},"connectorDisplayName":"Control","icon":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KIDxwYXRoIGQ9Im0wIDBoMzJ2MzJoLTMyeiIgZmlsbD0iIzhDMzkwMCIvPg0KIDxwYXRoIGQ9Im04IDEwaDE2djEyaC0xNnptMTUgMTF2LTEwaC0xNHYxMHptLTItOHY2aC0xMHYtNnptLTEgNXYtNGgtOHY0eiIgZmlsbD0iI2ZmZiIvPg0KPC9zdmc+DQo=","isTrigger":false,"operationName":"Project_Tracker_Notifications","operationDefinition":{"type":"Scope","actions":{"Notification_intervals":{"type":"Compose","inputs":24,"runAfter":{},"description":"If you change the Recurrence frequency in the trigger above, then change the number of hours below for each interval to match the new trigger values","metadata":{"operationMetadataId":"00183665-1a3b-4fff-a749-374d8848e1e5"}},"Get_items_Recently_modified_from_tracker":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"GetItems","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"https://contoso.sharepoint.com/sites/sitename/","table":"@outputs('Notification_intervals')","$filter":"Modified gt '@{addhours(utcNow(), sub(0, outputs('Notification_intervals')))}'"},"authentication":"@parameters('$authentication')"},"runAfter":{"Notification_intervals":["Succeeded"]},"description":"Choose your site address & list name below","metadata":{"operationMetadataId":"71fbe682-d66a-4498-bb0d-791007482581"}},"Get_my_profile_(V2)_2":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_office365users","operationId":"MyProfile_V2","apiId":"/providers/Microsoft.PowerApps/apis/shared_office365users"},"parameters":{},"authentication":"@parameters('$authentication')"},"runAfter":{"Get_items_Recently_modified_from_tracker":["Succeeded"]},"metadata":{"operationMetadataId":"a3755966-98b9-4f9a-8247-accb384cacb6"}},"Apply_to_each":{"type":"Foreach","foreach":"@outputs('Get_items_Recently_modified_from_tracker')?['body/value']","actions":{"Compose_Single_array_of_stringified_objects":{"type":"Compose","inputs":"@{items('Apply_to_each')?['Accountable']}@{if(empty(items('Apply_to_each')?['Accountable']), '', ',')}@{join(items('Apply_to_each')?['Responsible'], ',')}@{if(empty(items('Apply_to_each')?['Responsible']), '', ',')}@{join(items('Apply_to_each')?['Consulted'], ',')}@{if(empty(items('Apply_to_each')?['Consulted']), '', ',')}@{join(items('Apply_to_each')?['Informed'], ',')}@{if(empty(items('Apply_to_each')?['Informed']), '', ',')}","runAfter":{},"description":"Accountable, Responsible, Consulted, & Informed fields used here. If these columns were created with different names in your list, then you'll need to adjust the names in the expressions. Expressions on multi-select, but not on single-select fields.","metadata":{"operationMetadataId":"594de0a2-be1e-4d4d-855e-016b2ce5ee12"}},"Select_Correct_array_format_then_convert_to_JSON":{"type":"Select","inputs":{"from":"@if(empty(outputs('Compose_Single_array_of_stringified_objects')),\r\nsplit('', ','),\r\nsplit(replace(take(outputs('Compose_Single_array_of_stringified_objects'), sub(length(outputs('Compose_Single_array_of_stringified_objects')), 1)), '},{', '}#|#{'), '#|#')\r\n)","select":"@json(item())"},"runAfter":{"Compose_Single_array_of_stringified_objects":["Succeeded"]},"metadata":{"operationMetadataId":"b45fce39-ed09-4634-a6ce-c0a1f4154858"}},"Select_Emails":{"type":"Select","inputs":{"from":"@body('Select_Correct_array_format_then_convert_to_JSON')","select":"@item()?['Email']"},"runAfter":{"Select_Correct_array_format_then_convert_to_JSON":["Succeeded"]},"metadata":{"operationMetadataId":"4d3669ef-993b-4568-a53c-cb72c30fa9fa"}},"Append_to_array_variable_ItemsAndAllEmails":{"type":"AppendToArrayVariable","inputs":{"name":"ItemsAndAllEmails","value":{"Title":"@{items('Apply_to_each')?['Title']}","ItemLink":"@{items('Apply_to_each')?['{Link}']}","ItemEmails":"@union(body('Select_Emails'),body('Select_Emails'))"}},"runAfter":{"Append_to_string_variable":["Succeeded"]},"metadata":{"operationMetadataId":"aea7fb95-3f86-424b-90b9-1c4745b21762"}},"Append_to_string_variable":{"type":"AppendToStringVariable","inputs":{"name":"PeopleRACI","value":"@concat(\r\nif(or(empty(body('Select_Emails')), equals(body('Select_Emails'), null)), '', ','),\r\njoin(union(body('Select_Emails'), body('Select_Emails')), ',')\r\n)"},"runAfter":{"Select_Emails":["Succeeded"]},"metadata":{"operationMetadataId":"f46a9505-b786-4ae9-9714-9158ece78e16"}}},"runAfter":{"Get_my_profile_(V2)_2":["Succeeded"]},"metadata":{"operationMetadataId":"6606ee46-5463-489f-b387-be31feaae214"}},"Apply_to_each_Unique_person":{"type":"Foreach","foreach":"@union(split(variables('PeopleRACI'), ','),split(variables('PeopleRACI'), ','))","actions":{"Filter_array_Items_with_person_in_RACI":{"type":"Query","inputs":{"from":"@variables('ItemsAndAllEmails')","where":"@contains(item()?['ItemEmails'], items('Apply_to_each_Unique_person'))"},"runAfter":{},"description":"Filter to just the items with person in their RACI","metadata":{"operationMetadataId":"0752bd42-7ee7-4a10-a916-72bc40273583"}},"Condition_If_person_has_updates_then_send":{"type":"If","expression":{"greater":["@length(body('Filter_array_Items_with_person_in_RACI'))",0]},"actions":{"Create_HTML_table":{"type":"Table","inputs":{"from":"@body('Filter_array_Items_with_person_in_RACI')","format":"HTML","columns":[{"header":"","value":"@concat('<a href=\"', item()?['ItemLink'], '\">', item()?['Title'], '</a>')"}]},"runAfter":{},"metadata":{"operationMetadataId":"76182d54-bb9a-4501-a42d-2149d9923a45"}},"Send_an_email_(V2)":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_office365","operationId":"SendEmailV2","apiId":"/providers/Microsoft.PowerApps/apis/shared_office365"},"parameters":{"emailMessage/To":"@items('Apply_to_each_Unique_person')","emailMessage/Subject":"Project Tracker Updates Involving You","emailMessage/Body":"<p>Hello,<br>\n<br>\nThese project tracker items involving you were updated in the past @{outputs('Notification_intervals')} hours:<br>\n@{replace(replace(replace(body('Create_HTML_table'),'<','<'),'>','>'),'"','\"')}<br>\n<br>\n<br>\n<strong>Included in each project item are assignments where you have one or more of the following roles:</strong><br>\n<u>Accountable:</u> The person with final decision-making authority & accountability for an item.<br>\n<u>Responsible:</u> The people directly working on a task or deliverable.<br>\n<u>Consulted:</u> Advisers, subject matter experts, or stakeholders consulted on item activities. They may also actively review items & point out potential opportunities or misunderstandings.<br>\n<u>Informed:</u> Must be informed of decisions or actions.</p>","emailMessage/ReplyTo":"@outputs('Get_my_profile_(V2)_2')?['body/mail']","emailMessage/Importance":"Normal"},"authentication":"@parameters('$authentication')"},"runAfter":{"Create_HTML_table":["Succeeded"]},"metadata":{"operationMetadataId":"674c1a30-b83a-40f9-b57c-1e17fc3a7276"}}},"runAfter":{"Filter_array_Items_with_person_in_RACI":["Succeeded"]},"metadata":{"operationMetadataId":"8e229dc1-5761-436a-b5fa-c302a094c1e4"}}},"runAfter":{"Apply_to_each":["Succeeded"]},"metadata":{"operationMetadataId":"5c20353b-a90d-4204-affa-706f0c5a1cf4"}}},"runAfter":{"Initialize_variable_ItemsAndAllEmails":["Succeeded"]}}}
Initialize Variable action codes:
{"id":"108618bc-a0bd-4d17-8dff-42fe94ba32ab","brandColor":"#770BD6","connectionReferences":{"shared_office365users":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_office365users/connections/88b73cab99bd4598bfce9895cb9a47b2"}},"shared_office365":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_office365/connections/shared-office365-67f10a94-c084-4840-baf8-1be9-5c063787"}},"shared_sharepointonline":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/shared-sharepointonl-60d1f27e-bd8b-43f2-a8ad-a7be60200f79"}}},"connectorDisplayName":"Variables","icon":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogPHJlY3Qgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBmaWxsPSIjNzcwQkQ2Ii8+DQogPGcgZmlsbD0iI2ZmZiI+DQogIDxwYXRoIGQ9Ik02Ljc2MywxMy42ODV2LTMuMjA4QzYuNzYzLDguNzQ4LDcuNzYyLDgsMTAsOHYxLjA3Yy0xLDAtMiwwLjMyNS0yLDEuNDA3djMuMTg4ICAgIEM4LDE0LjgzNiw2LjUxMiwxNiw1LjUxMiwxNkM2LjUxMiwxNiw4LDE3LjE2NCw4LDE4LjMzNVYyMS41YzAsMS4wODIsMSwxLjQyOSwyLDEuNDI5VjI0Yy0yLjIzOCwwLTMuMjM4LTAuNzcyLTMuMjM4LTIuNXYtMy4xNjUgICAgYzAtMS4xNDktMC44OTMtMS41MjktMS43NjMtMS41ODV2LTEuNUM1Ljg3LDE1LjE5NCw2Ljc2MywxNC44MzQsNi43NjMsMTMuNjg1eiIvPg0KICA8cGF0aCBkPSJtMjUuMjM4IDEzLjY4NXYtMy4yMDhjMC0xLjcyOS0xLTIuNDc3LTMuMjM4LTIuNDc3djEuMDdjMSAwIDIgMC4zMjUgMiAxLjQwN3YzLjE4OGMwIDEuMTcxIDEuNDg4IDIuMzM1IDIuNDg4IDIuMzM1LTEgMC0yLjQ4OCAxLjE2NC0yLjQ4OCAyLjMzNXYzLjE2NWMwIDEuMDgyLTEgMS40MjktMiAxLjQyOXYxLjA3MWMyLjIzOCAwIDMuMjM4LTAuNzcyIDMuMjM4LTIuNXYtMy4xNjVjMC0xLjE0OSAwLjg5My0xLjUyOSAxLjc2Mi0xLjU4NXYtMS41Yy0wLjg3LTAuMDU2LTEuNzYyLTAuNDE2LTEuNzYyLTEuNTY1eiIvPg0KICA8cGF0aCBkPSJtMTUuODE1IDE2LjUxMmwtMC4yNDItMC42NDFjLTAuMTc3LTAuNDUzLTAuMjczLTAuNjk4LTAuMjg5LTAuNzM0bC0wLjM3NS0wLjgzNmMtMC4yNjYtMC41OTktMC41MjEtMC44OTgtMC43NjYtMC44OTgtMC4zNyAwLTAuNjYyIDAuMzQ3LTAuODc1IDEuMDM5LTAuMTU2LTAuMDU3LTAuMjM0LTAuMTQxLTAuMjM0LTAuMjUgMC0wLjMyMyAwLjE4OC0wLjY5MiAwLjU2Mi0xLjEwOSAwLjM3NS0wLjQxNyAwLjcxLTAuNjI1IDEuMDA3LTAuNjI1IDAuNTgzIDAgMS4xODYgMC44MzkgMS44MTEgMi41MTZsMC4xNjEgMC40MTQgMC4xOC0wLjI4OWMxLjEwOC0xLjc2IDIuMDQ0LTIuNjQxIDIuODA0LTIuNjQxIDAuMTk4IDAgMC40MyAwLjA1OCAwLjY5NSAwLjE3MmwtMC45NDYgMC45OTJjLTAuMTI1LTAuMDM2LTAuMjE0LTAuMDU1LTAuMjY2LTAuMDU1LTAuNTczIDAtMS4yNTYgMC42NTktMi4wNDggMS45NzdsLTAuMjI3IDAuMzc5IDAuMTc5IDAuNDhjMC42ODQgMS44OTEgMS4yNDkgMi44MzYgMS42OTQgMi44MzYgMC40MDggMCAwLjcyLTAuMjkyIDAuOTM1LTAuODc1IDAuMTQ2IDAuMDk0IDAuMjE5IDAuMTkgMC4yMTkgMC4yODkgMCAwLjI2MS0wLjIwOCAwLjU3My0wLjYyNSAwLjkzOHMtMC43NzYgMC41NDctMS4wNzggMC41NDdjLTAuNjA0IDAtMS4yMjEtMC44NTItMS44NTEtMi41NTVsLTAuMjE5LTAuNTc4LTAuMjI3IDAuMzk4Yy0xLjA2MiAxLjgyMy0yLjA3OCAyLjczNC0zLjA0NyAyLjczNC0wLjM2NSAwLTAuNjc1LTAuMDkxLTAuOTMtMC4yNzFsMC45MDYtMC44ODVjMC4xNTYgMC4xNTYgMC4zMzggMC4yMzQgMC41NDcgMC4yMzQgMC41ODggMCAxLjI1LTAuNTk2IDEuOTg0LTEuNzg2bDAuNDA2LTAuNjU4IDAuMTU1LTAuMjU5eiIvPg0KICA8ZWxsaXBzZSB0cmFuc2Zvcm09Im1hdHJpeCguMDUzNiAtLjk5ODYgLjk5ODYgLjA1MzYgNS40OTI1IDMyLjI0NSkiIGN4PSIxOS43NTciIGN5PSIxMy4yMjUiIHJ4PSIuNzc4IiByeT0iLjc3OCIvPg0KICA8ZWxsaXBzZSB0cmFuc2Zvcm09Im1hdHJpeCguMDUzNiAtLjk5ODYgLjk5ODYgLjA1MzYgLTcuNTgzOSAzMC42MjkpIiBjeD0iMTIuMzY2IiBjeT0iMTkuMzE1IiByeD0iLjc3OCIgcnk9Ii43NzgiLz4NCiA8L2c+DQo8L3N2Zz4NCg==","isTrigger":false,"operationName":"Initialize_variable_PeopleRACI","operationDefinition":{"type":"InitializeVariable","inputs":{"variables":[{"name":"PeopleRACI","type":"string"}]},"runAfter":{},"metadata":{"operationMetadataId":"bbf6eb81-87a6-49e6-9956-5a972068bf80"}}}
{"id":"6684c164-1680-4450-9f64-64595a67efb7","brandColor":"#770BD6","connectionReferences":{"shared_office365users":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_office365users/connections/88b73cab99bd4598bfce9895cb9a47b2"}},"shared_office365":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_office365/connections/shared-office365-67f10a94-c084-4840-baf8-1be9-5c063787"}},"shared_sharepointonline":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/shared-sharepointonl-60d1f27e-bd8b-43f2-a8ad-a7be60200f79"}}},"connectorDisplayName":"Variables","icon":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogPHJlY3Qgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBmaWxsPSIjNzcwQkQ2Ii8+DQogPGcgZmlsbD0iI2ZmZiI+DQogIDxwYXRoIGQ9Ik02Ljc2MywxMy42ODV2LTMuMjA4QzYuNzYzLDguNzQ4LDcuNzYyLDgsMTAsOHYxLjA3Yy0xLDAtMiwwLjMyNS0yLDEuNDA3djMuMTg4ICAgIEM4LDE0LjgzNiw2LjUxMiwxNiw1LjUxMiwxNkM2LjUxMiwxNiw4LDE3LjE2NCw4LDE4LjMzNVYyMS41YzAsMS4wODIsMSwxLjQyOSwyLDEuNDI5VjI0Yy0yLjIzOCwwLTMuMjM4LTAuNzcyLTMuMjM4LTIuNXYtMy4xNjUgICAgYzAtMS4xNDktMC44OTMtMS41MjktMS43NjMtMS41ODV2LTEuNUM1Ljg3LDE1LjE5NCw2Ljc2MywxNC44MzQsNi43NjMsMTMuNjg1eiIvPg0KICA8cGF0aCBkPSJtMjUuMjM4IDEzLjY4NXYtMy4yMDhjMC0xLjcyOS0xLTIuNDc3LTMuMjM4LTIuNDc3djEuMDdjMSAwIDIgMC4zMjUgMiAxLjQwN3YzLjE4OGMwIDEuMTcxIDEuNDg4IDIuMzM1IDIuNDg4IDIuMzM1LTEgMC0yLjQ4OCAxLjE2NC0yLjQ4OCAyLjMzNXYzLjE2NWMwIDEuMDgyLTEgMS40MjktMiAxLjQyOXYxLjA3MWMyLjIzOCAwIDMuMjM4LTAuNzcyIDMuMjM4LTIuNXYtMy4xNjVjMC0xLjE0OSAwLjg5My0xLjUyOSAxLjc2Mi0xLjU4NXYtMS41Yy0wLjg3LTAuMDU2LTEuNzYyLTAuNDE2LTEuNzYyLTEuNTY1eiIvPg0KICA8cGF0aCBkPSJtMTUuODE1IDE2LjUxMmwtMC4yNDItMC42NDFjLTAuMTc3LTAuNDUzLTAuMjczLTAuNjk4LTAuMjg5LTAuNzM0bC0wLjM3NS0wLjgzNmMtMC4yNjYtMC41OTktMC41MjEtMC44OTgtMC43NjYtMC44OTgtMC4zNyAwLTAuNjYyIDAuMzQ3LTAuODc1IDEuMDM5LTAuMTU2LTAuMDU3LTAuMjM0LTAuMTQxLTAuMjM0LTAuMjUgMC0wLjMyMyAwLjE4OC0wLjY5MiAwLjU2Mi0xLjEwOSAwLjM3NS0wLjQxNyAwLjcxLTAuNjI1IDEuMDA3LTAuNjI1IDAuNTgzIDAgMS4xODYgMC44MzkgMS44MTEgMi41MTZsMC4xNjEgMC40MTQgMC4xOC0wLjI4OWMxLjEwOC0xLjc2IDIuMDQ0LTIuNjQxIDIuODA0LTIuNjQxIDAuMTk4IDAgMC40MyAwLjA1OCAwLjY5NSAwLjE3MmwtMC45NDYgMC45OTJjLTAuMTI1LTAuMDM2LTAuMjE0LTAuMDU1LTAuMjY2LTAuMDU1LTAuNTczIDAtMS4yNTYgMC42NTktMi4wNDggMS45NzdsLTAuMjI3IDAuMzc5IDAuMTc5IDAuNDhjMC42ODQgMS44OTEgMS4yNDkgMi44MzYgMS42OTQgMi44MzYgMC40MDggMCAwLjcyLTAuMjkyIDAuOTM1LTAuODc1IDAuMTQ2IDAuMDk0IDAuMjE5IDAuMTkgMC4yMTkgMC4yODkgMCAwLjI2MS0wLjIwOCAwLjU3My0wLjYyNSAwLjkzOHMtMC43NzYgMC41NDctMS4wNzggMC41NDdjLTAuNjA0IDAtMS4yMjEtMC44NTItMS44NTEtMi41NTVsLTAuMjE5LTAuNTc4LTAuMjI3IDAuMzk4Yy0xLjA2MiAxLjgyMy0yLjA3OCAyLjczNC0zLjA0NyAyLjczNC0wLjM2NSAwLTAuNjc1LTAuMDkxLTAuOTMtMC4yNzFsMC45MDYtMC44ODVjMC4xNTYgMC4xNTYgMC4zMzggMC4yMzQgMC41NDcgMC4yMzQgMC41ODggMCAxLjI1LTAuNTk2IDEuOTg0LTEuNzg2bDAuNDA2LTAuNjU4IDAuMTU1LTAuMjU5eiIvPg0KICA8ZWxsaXBzZSB0cmFuc2Zvcm09Im1hdHJpeCguMDUzNiAtLjk5ODYgLjk5ODYgLjA1MzYgNS40OTI1IDMyLjI0NSkiIGN4PSIxOS43NTciIGN5PSIxMy4yMjUiIHJ4PSIuNzc4IiByeT0iLjc3OCIvPg0KICA8ZWxsaXBzZSB0cmFuc2Zvcm09Im1hdHJpeCguMDUzNiAtLjk5ODYgLjk5ODYgLjA1MzYgLTcuNTgzOSAzMC42MjkpIiBjeD0iMTIuMzY2IiBjeT0iMTkuMzE1IiByeD0iLjc3OCIgcnk9Ii43NzgiLz4NCiA8L2c+DQo8L3N2Zz4NCg==","isTrigger":false,"operationName":"Initialize_variable_ItemsAndAllEmails","operationDefinition":{"type":"InitializeVariable","inputs":{"variables":[{"name":"ItemsAndAllEmails","type":"array"}]},"runAfter":{"Initialize_variable_PeopleRACI":["Succeeded"]},"metadata":{"operationMetadataId":"05978ede-8902-40fa-be25-d2eb22fdcaaf"}}}
On the Notifications flow, the following expressions are often erased from the "Compose Single array of stringified objects" action
@{items('Apply_to_each')?['Accountable']}@{if(empty(items('Apply_to_each')?['Accountable']), '', ',')}@{join(items('Apply_to_each')?['Responsible'], ',')}@{if(empty(items('Apply_to_each')?['Responsible']), '', ',')}@{join(items('Apply_to_each')?['Consulted'], ',')}@{if(empty(items('Apply_to_each')?['Consulted']), '', ',')}@{join(items('Apply_to_each')?['Informed'], ',')}@{if(empty(items('Apply_to_each')?['Informed']), '', ',')}
You'll want to add these & any other missing expressions back in.
I am getting an error in the Template Project Tracker List flow: A 404 page not found in the "Get a Team" section. The URL I'm using is fine in the browser but it does not work in the flow.
The input to Get a Team: