Today I want to start a new series around PowerApps and Flow and building out an entire solution that utilizes both of these tools. Until recently, PowerApps was a separate application from SharePoint. It could be attached to a list, but you were still limited to it being outside of the platform. That all changed in the last quarter of 2017 (at least for those on first release). If you are first release and using the new SharePoint list UI, then you can now build your forms in PowerApps like we used to with InfoPath (and some still do 🙁 ) and use them in place of the default SharePoint list forms. This means you can now make your user interface nicer to use and add logic without having to utilize code, an outdated tool or pay for a more expensive tool to do that for you. If you have licensing in O365, you have PowerApps and Flow available to you. In this first post I am going to discuss the requirements and prepare SharePoint. In the next post in the series show you how to integrate and build out your form for the solution. Then we’ll add some logic and customizations to the form. Once that’s done, we’ll bring out Flow and automate the processes behind the scenes. Just a quick note, this series is designed to do as much OOTB as possible so some other logical enhancements like using other control types instead of the default data cards will be demonstrated in future posts.
Posts in this series:
- Preparing SharePoint (this post)
- Integrating PowerApps as a Custom List Form
- Customizations All List Form PowerApps Should Have
- Setting a SharePoint People Picker Field Programmatically in PowerApps
- Cascading Drop-down Lists and People Picker in PowerApps
- Create a Flow to be Started Manually
- Creating a Multiple Approver Microsoft Flow
- Sending a Tweet from Microsoft Flow
- Starting a Microsoft Flow from a PowerApp
Your company is very diverse. They have many different departments that do everything from creating, enhancing and supporting products to providing internal support to company employees. The company uses social media heavily to announce upcoming product enhancements, new products or just letting people know what a great company they are by advertising activities the company is putting on. They want a method to allow different areas to submit an item to be posted to social media, but they also want some controls put in place to ensure inappropriate announcements aren’t made.
High Level Requirements
- Team Leads and Program Managers require ability to request items be posted to social media
- type up the text themselves and submit for posting.
- Communications team needs to review for grammar and ensuring meets company external communications requirements
- Can accept or reject
- Requestor’s manager should be auto-populated as an approver.
- Ability to select another contact (ex. Manager is on vacation) (future enhancement).
- Ability to select from a list of approvers based on the project or event.
- Access to request list is limited to team leads\PMs and above.
- If rejected at any point, requestor is notified.
- Rejection comments are inserted into list (future enhancement)
- Once approved at all levels description will be posted to twitter from company’s account
- Linked-In will also be posted (future enhancement)
- Ability to insert different text for the different social media outlets (future enhancement)
- Communications wants different approvers from their area depending on the social media outlet selected (future enhancement)
- Pictures can also be posted with description (future enhancement)
- Project Sponsor needs to approve (Future Enhancement)
- If not a project (company event) then Direct Report Managers need to approve.
High Level Solution Flow
- User access a SharePoint list and creates a new item.
- Form built with PowerApps
- The item has the ability to save the information to the list without initiating an approval process.
- User can submit their request at any time (separate button)
- Validation that required information exists before submission
- Submission kicks off a Microsoft Flow process that sends approval requests to the communication team.
- After communication team approves, the manager receives an approval request
- Final approval request is created for Director.
- Once final approval is given, Flow will insert item into the requested social media outlet.
So because this is going to be a SharePoint based app we want to ensure that we have all the site columns, content types and lists that will be supporting the application. We’ll plan that out in this post and move on to the integration of a PowerApp form in the next.
Site Columns, Content Types and Lists
I am not going to get into all the details of the site columns and content types. I’m just going to list the site columns we need, their type, and any special information concerning them. This is just to give you an idea of what the solution is going to look like. You don’t really need to worry about things like internal name or site column\content type groups.
|Request Summary||Single Line of Text||Rename of the Title field|
|Twitter Description||Single Line of Text||140 char limit|
|Department||Single Line of Text||Existing SharePoint Column|
|Project\Event Approver||Person\Group||Project\Company Event Approver|
|Social Media Approver||Person\Group|
|Name||Columns||Parent Content Type||Comments|
|Social Media Approvers||Item|
|Social Media Approver|
|Department||Hidden on form|
|Title||Hidden on form|
|Social Media Requests||Item|
|Request Summary||Renamed Title field (optional)|
|List Name||Content Type Applied||Comments|
|Social Media Requests||Social Media Requests||Main list for tracking all the info.|
|Department List||Item||Title is renamed to Department and is used for a department lookup|
|Project List||Item||Title is renamed to Project and used for project lookup|
|Social Media Approvers||Social Media Approvers||Used as a cross reference list for social media approvers by project|
So that’s how the SharePoint side of the solution is going to look. Let me know if you have any questions or comments on the setup. In Part 2 we will look into integrating a PowerApp form directly into our SharePoint list and make it the default form for the list itself.
Thanks for reading!!