Salesforce has given its customers a great deal of functionality with Community Cloud. It brings external customers and partners into business process with easy-to-use, out-of-the-box (OOTB) functionality. Community Templates offer companies a great way to quickly set up an attractive, engagement-centric self-service community that is built on the modern Lightning Component Framework and is mobile ready OOTB.
The intent of this paper is to highlight some of the practical challenges encountered while implementing Napili Template for a diverse global business organization. Intended audience for the paper are Salesforce Communities customers looking to get more out of their investment. This paper is relevant both for existing customers of Communities and for customers who are getting started with their implementation. We will present current limitations of the Napili Template in the context of a large diversified organization, and how its functionality can be extended using custom Lightning components. These custom Lightning components are built by extending or creating wrappers on top of OOTB standard community components, or by developing them from ground up. With custom Lightning components, along with OOTB components, organizations can accelerate user adoption by personalizing content while improving the productivity of content and community administrators. Although we will be discussing Napili Template, similar approaches can be used to extend other OOTB templates, like Koa and Kokua.
This white paper is divided into two parts. Part I outlines the requirements of a global organization from a Community Cloud perspective and the limitations of Napili Template in addressing those needs. Part II provides solutions using custom Lightning components to address those limitations.
Part I: Communities – Global Organization Needs & Napili
Client is a global market leader for integrated accounting, payroll and payment systems, supporting small and medium enterprises across 23 countries with multiple global and country-specific products. Client has chosen to implement Community Cloud for their Global Customer Community and Partner Community supporting all their products. The goal is to deliver personalized content with self-servicing capabilities for users across the globe, thereby increasing customer and partner engagement.
Based on Client’s requirements, Napili Community Template was chosen to leverage OOTB functionality with community components supporting selfservicing capabilities. However, Napili Template has some limitations,
especially in the context of supporting a multi-product, multi-country and multilingual organization.
Table 1: List of key features that are challenging to implement using OOTB Napili Template
|No.||Category||Client Community Requirements||Napili Community Template Limitation|
|1||Content Administrator Needs > Separation of Content Administrator and Community Administrator Roles
|Enable business users from marketing, product, and support teams to add, update and manage content in community pages in a simple and effective manner for the products and the regions they manage without accessing Community Builder.||a. In Salesforce Communities, there are no separate roles for Content Administrators and Community Administrators. Content Administrators must be provided with Community Administrator privileges so that they can go into Community Builder and modify content in community pages.
b. Giving access to Community Builder to all the Content Administrators could result in some potential human errors where something can get inadvertently changed and have unintended consequences affecting the whole community.
|2||Content Administrator Needs > Fine Grain Permissions
|There should be finer control on permissions on community pages based on the product or region, etc. A Content Administrator for one product or region should not be able to edit content associated with another product or region.||Currently, there is no way to restrict access of Content Administrators to a product or to a region-specific community page. All Content Administrators have full access to Community Builder to manage content. They can accidentally add, modify or delete content pertaining to a product or region that they don’t belong to, or can modify other community settings besides content.
|3||Content Administrator Needs > Content Categorization||Ability to organize content (Articles, FAQs, Discussions, etc.) based on multiple data categories (product family, product edition, region, language, intended audience partners or customers).||Napili Template uses Navigational Topics to organize Articles by mapping them to Knowledge Data Categories. However, Navigational Topics have significant constraints:
a. Navigational Topics, unlike Knowledge Data Categories, are restricted to three levels. At the top level, a maximum of 25 topics can be created. For each of the top-level navigational topics, 10 subtopics can be created. For each of the subtopics, a maximum of 10 child topics can be created. For a company like The client, where the top-level navigation topic is defined to be a Product, the number of Products is much greater than the current limitation of 25.
b. In the Napili Template, uniqueness in Topic Names is enforced across the Navigational Topic hierarchy. For example, a topic name called “Support” can be used only once, even as a subtopic Product: Product-One (top navigational topic)-> Support (navigational subtopic) and Product: Product-Two (top navigational topic)-> Support (navigational subtopic) is not allowed.
c. Every time a new Article or FAQ is created in Salesforce Knowledge, a Community Administrator must remap the Knowledge Data Categories to the Navigational Topic, for the new article to be displayed in the community. This step must be repeated even after the Knowledge Data Category is already mapped to the Navigational Topic, otherwise the new article is not displayed in the community.
d. Napili Template doesn’t provide any Lightning components to display Knowledge Articles based on a combination of Navigational / Featured Topics.
|4||Community Administrator Needs > Easy Configurability||Ability to easily configure community components.||Some Lightning components in the Napili Template like Trending Articles are not easily configurable. Topic ID is needed to configure the Trending Articles component in Community Builder. To get the Topic ID, the administrator must execute SOQL query based on a Navigational Topic. This process must be repeated in each environment (development, test and production), as the Topic ID’s are different across environments for the same Navigational Topics.|
|5||Community Administrator Needs > Reusable Components||Ability to reuse components across community pages without reconfiguring.||A Lightning component dropped in any community page needs to be reconfigured. For example, even if same content is used in multiple pages using Rich Text Editor component, it will have to be reconfigured for each page. There is no concept of component reuse without reconfiguring.|
|6||Community Administrator Needs > Rich Library of Components||Need rich tool set of content management components to display and manage different types of content.||Napili Template provides a limited set of content-specific Lightning components to build community pages. A rich and varied content-centric component library is needed to address the presentation and content management needs of a large organization to enhance the ease of use for both Content Administrators and end users.|
|7||Community User Personalization > Extended Navigation – Switch User Language and Region Preferences||Provide users, both authenticated and anonymous (unauthenticated), ability to select language and/or region/country in navigation menu.||a. No easy way for users to change context and navigate community by switching region, language or products.
b. Napili Template, by default, determines an anonymous user’s region/location based on the IP address and accordingly assigns User Locale in Salesforce Communities. This becomes a challenge in a multilingual country like Canada. For example, for a user in Canada, based on the IP address, the default language would be English (en_CA). However, there are many users in Canada who have French (fr_CA) as their default language preference in their browser locale, yet Napili Template would default to English based on the IP address.
|8||Community User Personalization > Personalized Content||Ability to personalize content in the community pages based on product, region and language.||Salesforce Communities supports Page Variations for targeting different users and groups based on criteria like product, region, or language, through User Profiles. A User Profile must be created for each combination of criteria, and a Page Variation must be associated with the corresponding User Profile. Because Client has several product lines spanning across different regions, to support Client personalization requirements, hundreds of User Profiles would have to be created and maintained.|
|9||Community User > Localized Support||Enable customers and partners to reach right support teams that support their product and region from communities.||Napili Template does not provide ability to route to “Live Agent” queue based on product, region or language.|
|10||Community User > Knowledge Article Classification Info||Display Data Categories associated with a Knowledge Article for end users.||Napili Template doesn’t display the Data Categories associated with a Knowledge Article in the Article Detail community page.|