One of my favorite aspects of consulting is the constant challenge of a new requirement, especially when I get to learn something new.  In this case, I was asked to set up a Customer Power Portal that would allow contacts to be assigned Tasks which they would update, upload documents for verification, and then mark Tasks completed.  Before my career as a Consultant, as an End User in the Oil & Energy, and Professional Services industries, I was responsible for onboarding new Clients.  The process consisted of a manual checklist of ToDo items and Documents across multiple Clients.  Things were always getting missed – it was a mess.  So when I was given the Customer Portal assignment, I was extra thrilled for this opportunity!

I always start these adventures with research and while there were certainly articles associated with nearly every step, I could not find a cohesive step by step to solve this problem.  After some trial and error, however, I was successful.  I have documented my steps below with links to the articles as well as screenshots that I would have found helpful.

Set up a Power Portal to allow customers to view and edit tasks and upload documents!

  1. Provision a portal

This article is very easy and straightforward, but I went ahead and included screenshots as well.

provisional portalprovision a portal

  1. Set up SharePoint integration from Power Apps admin center

Here is where it starts to get more fun.  This article is also very thorough and helpful as there are several steps within this step.  This is step 2 however in the article.  Document Management was already enabled for my environment.

sharepoint integration from power apps portalsharepoint integration from power apps portalsharepoint integration from power apps portalsharepoint integration from power apps portal

  1. Enable document management on tasks and contacts

This is also step 3 in the previous article.  There is a link for more instruction in that step if needed.

Enable document management on tasks and contacts

  1. Run document management wizard to create folders

This was not exactly in the article although step 1 would take care of it if it were a first-time setup.  I merely went in to ensure that the contact and task folders were created.

 document management wizard to create folders

  1. Set up Task Form

I included the link to the article but honestly, it confused me a bit, and eventually, I realized the best way to do this was to set up the main form like I always do that I would like the contact to use when submitting info in the portal.  I do recommend setting up a custom field for the contact to update regarding status that is not the status reason.  That way you can monitor status but ultimately have control over the final record status (or use the out-of-box field “Percent Complete” as I did below).  Also, you will need to add the document location sub-grid per step 4 in the SharePoint document article above.

set up a task form

  1. Set up Task View

Like the form, I wrestled with the instructions on this and landed on creating a special view on my own as usual.  I saved the All Tasks view as All Portal Tasks and configured it to include my portal status field.  All of this setup is going to pay off shortly!

Set up a task view

  1. Create Portal Content – use wizard

Here is the big revelation step!  If I had known about this prior, I could have saved myself a lot of time.  The article even starts with an acknowledgment of complexity in this set up.  Basically, this wizard takes your pieces of set up above and knits them together nearly perfectly.  Why they put this at the bottom of the navigation bar is beyond me.  It is totally worth the scroll though.  Just click it, make your selections, and hit Create.

create portal content - use wizard

  1. Update Web Page in Studio

Now your page has been set up!  Like other WYSISYG editors, this allows simple updates.  Navigate to the page you just created and click on the view.  Then update as needed in the menu on the right.

Update webpage in studioUpdate webpage in studio

  1. Update Entity Permission to include Append To privileges

Now all that remains is making sure your contact has all the privileges needed to read, edit, and upload documents to their tasks.  The wizard already created the task entity permission for you.  Just find and update it per the screenshot below.

Update entity permission

  1. Create entity permission for SharePoint documents with task entity permission as a parent.

Also, per step 5 of the SharePoint article (that was the best article in my opinion), create the document location entity permission and save.

Create entitiy permission

  1. Create Web Role

Web roles stitch all these entity permissions together to allow a simple assignment per contact.  While this may seem tedious, it helps in the long run.  You could also just skip this step if you already had a role set up or wanted to use the default web roles.

Create web role

  1. Add entity permissions to web role

Use the Related menu to add the entity permissions for task and documents.

Add entity permissions to web role

  1. Assign web role to contact

Use the Related menu to add that existing web role to your contact.  You did it!  Although you will need to test in the next step.

assign contact role

  1. Create a test task regarding contact

Once you create this task, be aware that this did take a few minutes to show up.  At first, I was disheartened, thinking I missed a step.  But then, I saw this beautiful display!

Create a test task regarding contact

Be sure to test it fully including editing and uploading a document.

editing and uploading a document

And finally, make sure your edits came through.

make sure your edits came through

You can also check from within your model-driven app.

check from within your model driven app

I hope this was helpful!  I had wished for an article like this when I started this journey and am so happy about the ease that the Power Portal brought to our clients.  Please feel free to contact us or connect with us on Twitter and LinkedIn to share feedback, helpful tips, etc.