Skip to main content
Power Automate
    • Connectors
    • Templates
    • Take a guided tour
    • Digital process automation
    • Robotic process automation
    • Business process automation
    • Process advisor
    • AI Builder
  • Pricing
  • Partners
    • Blog
    • Documentation
    • Roadmap
    • Self-paced learning
    • Webinar
    • Business process and workflow automation topics
    • Overview
    • Issues
    • Give feedback
    • Overview
    • Forums
    • Galleries
    • Submit ideas
    • User groups
    • Register
    • ·
    • Sign in
    • ·
    • Help
    Go To
    • Microsoft Power Automate Community
    • Welcome to the Community!
    • News & Announcements
    • Get Help with Power Automate
    • General Power Automate Discussion
    • Using Connectors
    • Building Flows
    • Using Flows
    • Power Automate Desktop
    • Process Advisor
    • AI Builder
    • Power Automate Mobile App
    • Translation Quality Feedback
    • Connector Development
    • Power Platform Integration - Better Together!
    • Power Platform Integrations
    • Power Platform and Dynamics 365 Integrations
    • Galleries
    • Community Connections & How-To Videos
    • Webinars and Video Gallery
    • Power Automate Cookbook
    • Events
    • 2021 MSBizAppsSummit Gallery
    • 2020 MSBizAppsSummit Gallery
    • 2019 MSBizAppsSummit Gallery
    • Community Engagement
    • Community AMA
    • Community Blog
    • Power Automate Community Blog
    • Community Support
    • Community Accounts & Registration
    • Using the Community
    • Community Feedback
    cancel
    Turn on suggestions
    Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
    Showing results for 
    Search instead for 
    Did you mean: 
    • Microsoft Power Automate Community
    • Galleries
    • Power Automate Cookbook
    • Project Tracker - SharePoint and Teams

    Project Tracker - SharePoint and Teams

    09-26-2022 20:35 PM - last edited 03-10-2023 15:05 PM

    Super User takolota
    Super User
    16374 Views
    LinkedIn LinkedIn Facebook Facebook Twitter Twitter
    takolota
    Super User takolota
    Super User
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    Project Tracker - SharePoint and Teams

    ‎09-26-2022 08:35 PM

    ProjectTrackerThumbnail.jpg
    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
    KanbanTeams.jpg

    Teams Tab GANTT Example
    GANTTTeams.jpg

    Automatic Notifications Example
    DailyUpdateNotif.jpg

    Teams Tab RACI PBI Report Example
    RACITeamsViewEx.jpg


    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.
    DownloadFiles.jpgExtractAll.jpgProjectTrackFilesWithtxt.jpg

    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.
    ImportPackage.jpgClickUploadSelectTemplateListZip.jpg

    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.
    ImportScreenReplaceConnections.jpgReplaceConnections.jpg

    Once all the connections are replaced & it is done loading, you can follow the link that appears to get to the actual flow.
    ImportNavFlow.jpg

    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.
    TemplateFlowReplace.jpgGetSiteURL.jpg

    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.
    NavTurnOn.jpgTurnOnBackEdit.jpgTest.jpgManualTestRun.jpg

    And that should generate the initial template SharePoint list & Teams channel!


    Additional List & Teams Configurations
    -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.
    ListOnSite+Nav.jpgGoAllItems.jpg

    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.
    EditNotes.jpgSaveNotes.jpg

    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
    PinToFilters.jpgFiltersPaneEx.jpg


    -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"
                ]
            }
        ]
    }

     

    ProjectTrackFilesWithtxt.jpgDummyItemConfigLayout.jpgConfigBody.jpgEnterConfigBody.jpgNewDefaultFormLayout.jpg


    -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
    CustomizeCardButton.jpgSuggestedCardOptions.jpg
    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.
    ListSettings.jpgSelectKanbanView.jpgAddMobileView.jpg

    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
    SP-AppiPhone.jpgNavMobileKanban.jpgPMMobileKanban.jpg


    -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.
    ListSettings.jpgCreateView.jpgStartFromExistingGANTTtemp.jpgGanttTrueURL.jpgFillGANTTFields.jpg

    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.
    GetGANTTURL.jpg

    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.
    AddTab.jpgWebsiteTab.jpgEnterGANTTURL.jpgTeamsGANTTViewTab.jpg
    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.
    ImportPackage.jpgNotifFlowFolderImp.jpgNotifFlowImpConnections.jpg

    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.
    NotifFlowChangeSiteList.jpgNotifFlowTurnOn.jpg
    (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:
    ChangeNotifEmail.png


    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.
    DailyUpdate.jpg
    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.
    ProjectTrackerRACI-pbixFileOpen.jpg

    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.
    TransformData.jpgPBIReplaceSiteInSource.jpgGetSiteURLHP.jpg

    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.
    Refresh+ChangeSourceNavigation.jpgClose+Apply.jpg

    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.
    Close+Apply.jpgPublish.jpgNavPBIOnline.jpgAddPBIPermission.jpgPBIAddProjGroup.jpg

    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.
    AutoRefreshNavMenu.jpgRefreshCredentialsPBI.jpgSetAutoRACIRefresh.jpg

    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.
    AddTab.jpgPBITab.jpg

    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:
    RACITeamsView.jpg

     

     

    If anyone has trouble importing the Power Automate flows, see this post for an alternative import method: https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Project-Tracker-SharePoint-and-Teams/m-p... 


    Thanks for any feedback!

    watch?v=yPVSNxpLeKQ

    Project Tracker Files.zip
    Labels:
    • Labels:
    • Button flows
    • Scheduled flows
    Message 1 of 40
    16,374 Views
    9 Kudos
    Reply
    • All forum topics
    • Previous Topic
    • Next Topic
    • « Previous
      • 1
      • 2
      • 3
      • 4
    • Next »
    takolota
    Super User takolota
    Super User
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎09-26-2022 11:57 PM

    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.

    Message 2 of 40
    15,242 Views
    1 Kudo
    Reply
    thumbsupy
    thumbsupy
    New Member
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎09-27-2022 10:50 PM

    Any reason I cant find the "Office 365 Groups Connector" in my Power Apps-portal?

    Message 3 of 40
    13,772 Views
    0 Kudos
    Reply
    takolota
    Super User takolota
    Super User
    In response to thumbsupy
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎09-28-2022 06:44 AM

    @thumbsupy 

    It should be this connection:
    Office365GroupsConnect.jpg

    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.

    TemplateProjectTrackerList-NoGroupsConnector.zip
    Message 4 of 40
    13,712 Views
    1 Kudo
    Reply
    vheer
    vheer
    Frequent Visitor
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎10-21-2022 06:11 AM

    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! 

    vheer_0-1666357851946.png

     

    Message 5 of 40
    11,866 Views
    0 Kudos
    Reply
    takolota
    Super User takolota
    Super User
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎10-21-2022 06:21 AM

    @vheer 

     

    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.

    Message 6 of 40
    11,861 Views
    0 Kudos
    Reply
    takolota
    Super User takolota
    Super User
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎10-21-2022 06:37 AM

    @vheer 

    If you delete the Office 365 Groups HTTP connector from the flow, do you still get some errors?

    takolota_0-1666359409455.png

     

    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.

    Message 7 of 40
    11,853 Views
    1 Kudo
    Reply
    vheer
    vheer
    Frequent Visitor
    In response to takolota
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎10-25-2022 04:03 AM

    This works perfectly, many thanks!

    Message 8 of 40
    11,643 Views
    2 Kudos
    Reply
    takolota
    Super User takolota
    Super User
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎10-26-2022 02:07 PM

    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&colon;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&colon;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'),'&lt;','<'),'&gt;','>'),'&quot;','\"')}<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 &amp; 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 &amp; 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&colon;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&colon;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.

    Message 9 of 40
    11,393 Views
    1 Kudo
    Reply
    bsewell
    bsewell
    Regular Visitor
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎01-19-2023 08:37 AM

    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:

    {
    "host": {
    "connectionReferenceName": "shared_teams",
    "operationId": "GetTeam"
    },
    "parameters": {
    "teamId": "https://mycompany.sharepoint.com/teams/AW-IAGImplementation/SitePages/ProjectHome.aspx/"
    }
    }
     
    The output is:
    {
    "statusCode": 404,
    "headers": {
    "Transfer-Encoding": "chunked",
    "Vary": "Accept-Encoding",
    "Strict-Transport-Security": "max-age=31536000",
    "request-id": "ad1e736a-6409-4dfa-9bf6-f0afb92083f8",
    "client-request-id": "ad1e736a-6409-4dfa-9bf6-f0afb92083f8",
    "x-ms-ags-diagnostic": "{\"ServerInfo\":{\"DataCenter\":\"West Europe\",\"Slice\":\"E\",\"Ring\":\"5\",\"ScaleUnit\":\"005\",\"RoleInstance\":\"AM4PEPF0001EB96\"}}",
    "Timing-Allow-Origin": "*",
    "x-ms-apihub-cached-response": "false",
    "x-ms-apihub-obo": "false",
    "Date": "Thu, 19 Jan 2023 16:23:38 GMT",
    "Content-Type": "application/json",
    "Content-Length": "286"
    },
    "body": {
    "error": {
    "code": "UnknownError",
    "message": "404 page not found\n",
    "innerError": {
    "date": "2023-01-19T16:23:39",
    "request-id": "ad1e736a-6409-4dfa-9bf6-f0afb92083f8",
    "client-request-id": "ad1e736a-6409-4dfa-9bf6-f0afb92083f8"
    }
    }
    }
    }
    Message 10 of 40
    5,456 Views
    1 Kudo
    Reply
    • « Previous
      • 1
      • 2
      • 3
      • 4
    • Next »

    Power Platform

    • Overview
    • Power BI
    • Power Apps
    • Power Pages
    • Power Automate
    • Power Virtual Agents

    • Sign up free
    • Sign in

    Browse

    • Templates
    • Connectors
    • Partners

    Downloads

    • Mobile
    • Gateway

    Learn

    • Documentation
    • Learn
    • Support
    • Community
    • Give feedback
    • Blog
    • Pricing

    • © 2023 Microsoft
    • Contact us
    • Trademarks
    • Privacy & cookies
    • Manage cookies
    • Terms of use
    • Terms & conditions
    California Consumer Privacy Act (CCPA) Opt-Out Icon Your California Privacy Choices