Combine Portal Types: Blog on a Customer Self-Service Portal

This post will show you how to combine portal types and get Blog on a Customer-Self service portal. By enabling the Blog feature on any portal type – and in so doing also showing you how to combine features cross portal types. This might be the thing that has annoyed me the most about the Power Apps Portals product; the inability to combine portal types.

Be aware: This is not recommended for beginners. You should know your was around portals before doing this, and please try it out in a development environment before implementing in production.

Portal Types Matrix

This matrix illustrate what features are included with each portal type:

FeatureCustomer self-service portalPartner portalEmployee self-service portalCommunity portalPortal from blankCommon Data Service starter portalCustomer Portal (Preview)
World Ready*******
Multi-Language Support*******
Portal Administration*******
Customization and Extensibility*******
Theming*******
Content Management***
Knowledge Management****
Support/Case Management***
Forums***
Faceted Search**
Profile Management***
Subscribe to Forum Thread**
Comments***
Azure AD Authentication**
Ideas*
Blogs*
Project Service Automation Integration*
Field Service Integration*
Partner Onboarding*
Portal Base*******
Portal Workflows*******
Web Notifications*******
Microsoft Identity*******
Identity Workflows*******
Web Forms*******
Feedback*******
This matrix is copied from MS docs here: https://docs.microsoft.com/en-us/powerapps/maker/portals/portal-templates#portal-templates-features

The portal type with the most features is the Customer Self-Service Portal Type. It includes all features except Ideas, Blog and integration for Project Service Automation and Field Service. The Azure AD Authentication is included and works out of the box as in any other portal type.

Currently there is no simple way to pick and choose the functionality you want in your portal, or to install all features on one portal. You choose one portal to install and that’s what you get. Or is there another way..?

A huge thank you to the one and only Nick Doelman who gave me the recipe and showed me the way, hold my hand and gave me confidence that it could be done.

Recipe on how to combine portal types

This is the short list on what we need to do:

  1. Create a primary portal – this is the portal we want to keep. I choose Customer Self-Service portal type for my primary portal
  2. Create a secondary portal that contain the feature we want to add to the primary portal. I choose Community Portal as it has the Blog feature I want.
  3. Locate and update all Portal Metadata related to Blog trough Portal Management App
  4. Clean up after yourself

Create a primary portal

This is the base portal – the one you want to keep. Follow the steps in MS documentation here: https://docs.microsoft.com/en-us/powerapps/maker/portals/create-dynamics-portal

Create the secondary portal

Choose the secondary portal you need by locating the feature you want in the portal type matrix. Go trough the same steps as when you created the primary portal. You will end up with two portal apps that you’ll see at https://make.powerapps.com

Combine portal types: Two portal apps in one environment

When you open the Portal Management App you’ll find two websites as well

Combine portal types: Two websites in the same Portal Management App

Locate and update Portal Metadata related to the Blog feature

This is when the real work begins.

We will update all Portal Management components for the Blog feature and change the portal it’s related to from it’s original portal (Community Portal) to our primary portal (Customer Self-Service Portal). It might be a good idea to document all the changes you make along the way for future reference.

Web Link Sets

Identify the “Primary Navigation” and the “Footer” for the Community Portal.

Combine portal types: Web Link Sets

Locate the Web Link “Blogs” in each web link set and change the “Web Link Set” value to the corresponding web link set in Customer Self-service.

Combine portal types: Update primary navigation in web link sets

Then update the Publishing state of the same web link to corresponding publishing state in Customer Self-Service.

Combine portal types: Update Publishing state on related records

Repeat the steps for the “Blogs” web link in the Footer Web Link Set.

Web Pages

Identify the “Blogs” web page and update the “Website” value to Customer Self-Service. Then update the corresponding Publishing State on the “Web Page – Information” form.

Combine portal types: Update website and publishing state on Web Pages too.

Every Web Page has two parts; the parent Web Page (- Information) and one child Web Page (- Content) for each portal language. You find these in the “Localized Content” section. We’re not able to change the website value on these content pages, so I created a new content page for Customer Self-Service and deleted the original one.

Be aware! Take a good look trough the original content page in search of custom styling, scripts or settings you’ll need to replicate in the new content page.

Child Web Pages

Take the opportunity to look at “Blogs” child pages and update them as well.

Combine portal types: Create new localized content web pages

Page Templates

Look at the page templates and identify all templates related to the Blog feature and update the website value for each one.

Look for page templates related to blog feature

Web Templates

The page templates used by Blogs feature are old school (type = rewrite) and doesn’t rely on web templates. So there are no web templates to update.

NOTE! If you are working with another feature there are most certainly web templates that need updating. Do some investigating trough the web templates and look inside – web templates are often included into one another.

Site Markers

Update the site markers related to the Blog feature

Site Markers to be updated when combining portal types

Content Snippets

When looking trough web templates you probably found a lot of Content Snippets related to the feature you are working with. Other web templates, such as Home and Search often also use Content Snippets to hold labels and headings related to your feature. These are the once I identified related to the Blog feature:

Content Snippets need to be repointed to the primary website when combining portal types

Update all so they relate to your primary portal. All content snippets are related to website and language. Make sure to update both:

Website and language must be updated for content snippets

Site Settings

Loop trough all site settings and update all related to your feature. I updated these two by repointing website:

  • blog/displaySearch
  • News Blog Name

Then I found these search related site settings.

  • search/filters
  • search/query
  • Search/RecordTypeFacetsEntities

These site settings exists for both portals and I need to change the content of each – not merely replace one with the other. Follow these steps to make sure you get it right:

Copy and paste the value of the site setting for both portals into notepad.

Site setting search/filters Community Portal and Customer Self-Service values

Compare the values, identify the difference and copy the part related to the Blog feature

Site setting search/filters Community Portal and Customer Self-Service values: Copy Blog related attributes

Paste in the copied part into the value of the value for Customer Self-Service

Site setting search/filters Community Portal and Customer Self-Service values: New value for Cutomer Self-service

Update the site setting for your Customer Self-Service portal

Site setting search/filters Community Portal and Customer Self-Service values: Update

Repeat these steps for the other two search related site settings.

Partial URL’s

Make sure there are no overlapping URL’s for web pages on the same website. This will cause errors on your portal.

Web Roles

Identify Web Roles related to the feature.

Update the website and apply it to your contact.

Web roles related to Blog must be associated with your contact

Verify that the Blog is working

For the Blog features there is a “Blogs” menu item in the left navigation in the Portals Management App. This is where you create blogs and blog posts. Update all these so they relate to Customer Self-Service portal too.

Identify and update blog posts

Now is the time to update your portal – and of course remember to refresh the cache first.

This is what my portal look like when I open a blog with blog posts.

Refresh the cache and view your result; Blog feature on a Customer Self-Service Portal

Clean up after yourself

Now it’s time to clean up after yourself. To be honest – this is the part I was most anxious about.

First we delete the second Portal Power App from https://make.powerapps.com/

Delete Community Portal App no longer needed

This action will delete the web app hosted in Azure but will leave all the solutions in your environment.

Confirm Delete Community Portal App no longer needed

Next we delete the secondary website – the Community Portal – that we no longer need trough the Portal Management App.

Delete Community website no longer needed

This action will trigger a cascade rule that will delete the rest of the records and metadata that still relates to the Commuity Portal.

Furthermore the Blog entity and the “Blog” menu element in the Portal Management App will remain. In the end – you loose all the stuff you don’t need anymore and keep all the good stuff. Neat, right?

Summary and thanks

In short, to combine portal types, you need to create a second portal that include the feature you are looking for, update the website lookup value on this feature’s records and metadata in Portals Management App, and then delete the second app and website when you’re done.

Big shout out to Portals Black Belt and superstar Nick Doelman who gave me the recipe on how to do this. I have attempted this before but not succeeded because I wasn’t confident I got to all the little pieces of the puzzle.

PS.: Do you know I always keep the Microsoft Power Apps Portal Documentation and Nick Doelman’s ReadyXRM.blog open in my browser when I work with portals? Between them there are few problems can’t be solved.

Good luck and happy portal’ing!

Ulrikke Akerbæk Written by:

Ulrikke has a BSc in Multimedia from Karlstad University, and has since worked with front-end development and advisory consulting in Microsofts product portfolio. She is a Power Apps Portals professional at Skill AS in Norway.

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *