USE CASE – Salesforce Case code: 16538643
Customer Community – Napili template
Requirement:
The client wants that the their community users should have access on the Knowledge base to all the articles, in all languages.
In particular, in our project the customer has a Knowledge base in languages (English UK,Italian). Where the default language of KB is English UK.
The User of the Community should see potentially all the articles in the KB independently on the language settings of the user.
Salesforce standard behaviour - Napili template
Knowledge Base languages (English UK, Italian), default language English UK. To explain the context and the limits that we found we show 3 use cases.
1) Examples user community with language English UK
The user can see all and only the articles in English UK.
The user can’t see articles that are only in Italian. If the user try to access them by URL manipulation, the system give invalid page.
2) Example user community with language Italian
The user can see all and only the articles in Italian, independently if the articles has an English UK version (English UK is the default language for the KB platform).
The Italian user, is not able to see the articles that are only in English UK. If try to reach them by URL manipulation, the system returns invalid page.
3) Example user community with language different from Itanlian or English UK, let say German.
The user can see all and only those articles that has a version in the English UK (the KB default language). If the user try to reach articles that are only in italian through URL manipulation, the system gives invalid page.
Differences – singular behaviour from our point of view
The community user with language German, can see KB articles that are not visible by the Italian one.
Considerations
The Community user, enabled to the capability to change its own language, can see potentially all the articles in the KB, but he needs to change language in order to see them all.
Objective of the customer
The objective is to bypass this filter of the community user language, and allow the user to access to all the KB articles.
We would give the access to the resources (articles) through the standard service that community use, that mean through the page of Napili dedicated to knowledge “Article detail” page, which give access to the resources through the URL path structure
[Community istance url]+”/”+[community name]+”/s/article/”+[article version id]+”/”+[article url]
Is this Objective reachable through the standard “Article detail” behaviour of the Napili/community capabilities?
Summary
In our project, we are getting stuck on the scenarios where the standard community, is giving invalid page.
Salesforce Feedback
Salesforce said that this is the standard behaviour, and the community is designed to show to the users all the articles of the language used by the community user, and if the user language of the community language is not configured in the Knowledge base, than the user will see the articles of the standard language of Knowledge Base.
If you want to realize the request of the customer, is required to find a workaround.
Our actions after the feedback
We are prociding to avoid to use the community page “article”, and we are going to use a customer object that will allow us to wrap Knowledge Base to the community using the page “detail”.
I hope this will help others that may have a similar limitation.
Best Answer
You can refer Determine User Visibility in Your Community
User sharing for external users is turned on by default when you enable Communities. This setting applies to all communities in your organization.
The default setting allows an external user to see other external users under the same account and users in common communities. You can change the organization-wide default for Users to make your communities more restrictive or open, depending on your use case.
If the you deselect Community User Visibility, external users can’t see each other. For example, John and Sally are external users. John can’t:
If John and Sally are members of the same group or share the same record, then they can see each other’s conversations and updates within the group or on the record, but nobody else.
If Sally belongs to the same account as John, and John has delegated external user administration privileges, then John can see Sally. Delegated External User Administration takes priority over user sharing.
So, your SOQL query returns the list of users based on above mentioned settings.