is it possible to have community user specific dashboard components built? - Answers - Salesforce Trailblazer Community
Trailblazer Community
Ask Search:
Vanessa HewartVanessa Hewart 

is it possible to have community user specific dashboard components built?

We have created a dashboard that shows the funnel of client cases that are coming in from the Community (portal) and is grouped based on their statuses. We would like to have it such that when a community user logs on, they can see their company's specific case funnel dashboard on the home page. Is this possible through native Salesforce functionality, or perhaps this is something that would require some VisualForce coding. 
Arijit MajeeArijit Majee
Community user don't has access to dashboard.

Arijit MajeeArijit Majee
cheers!!
Knowledge Article Number: 000002916



Description
A Workaround to show Dashboards and Reports to Customer Portal Users.



Resolution

There is no standard way to display Dashboards, Reports, the Dashboard tab, the Reports tab, and the Dashboard Snapshot (on the home page) for a Customer portal user. It can be seen in any customer portal profile, that there is no mention of the word Dashboard/Report or any other settings for their profile.

Regarding showing Dashboard to Customer Portal users, a workaround exists, which follows below:

1. Open the Home page logging in as an Admin User, who has access to the Dashboard.
2. Right click the home page, and select the View Source Code. Other debugging tools like Firebug, Fiddler etc. would also help.
3. In the page which shows many lines of html/javascript code, search (Ctrl+F) for the word dashboard. Once you see some text related to Dashboard(Click to go to full report, Funnel Chart etc.), copy the enrite block that shows that code. The code should be similar to the one mentioned below:


<a href="/00O90000001F7Um">
<img id="01a90000000ViLoImg" class="chart" title="Funnel Chart - Click to go to full report." style="width: 250px;" alt="Funnel Chart - Click to go to full report." src="/servlet/servlet.ChartServer?rsid=0FL90000000ehsu&ruid=00590000000hOpd&did=01Z90000000TxWA&s=7&fs=10&tfg=12&tfs=-16777216&explode=0&c=funnel&cs=0&title=&eh=no&compo=yes&fg=-16777216&bg1=-2236963&bg2=-1&bgdir=2&dl1=Background+Image%3A&dl2=Background+Color%3A&l=2&sax=yes&Yman=no&nc=0&actUrl=%2F00O90000001F7Um&sd=1&scv=yes&sct=no&spt=no&cu=USD&ab=X&u=0&vt=0&ab2=Y&u2=0&vt2=0&vl0=Record+Count&por=250&spoc=no&topn=no&gc0=-1&gc1=-1&gc2=-1&refreshts=1312890277000">
</a>


The above code is only for displaying one column, so if you wish to add more columns, copy them too. (You can add as many columns as you like, not like the home tab restriction of showing three columns at a max.)

4. Now, we need to Override a tab which is accessible to Customer Portal users, for example the Cases Tab. For it we would need to:
a. Create a simple Visualforce page like the one mentioned below:

<apex:page standardController="case" recordSetVar="cases" tabStyle="case">
<apex:pageBlock >
<apex:pageBlockTable value="{!cases}" var="c">
<apex:column value="{!c.CaseNumber}"/>
<apex:column value="{!c.Contact}"/>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:page>

b. Add the Dashboard lines we copied by Viewing the source code to the above page, so that the page could look something like the one mentioned below:

<apex:page standardController="case" recordSetVar="cases" tabStyle="case">
<a href="/00O90000001F7Um">
<img id="01a90000000ViLoImg" class="chart" title="Funnel Chart - Click to go to full report." style="width: 250px;" alt="Funnel Chart - Click to go to full report." src="/servlet/servlet.ChartServer?rsid=0FL90000000ehsu&ruid=00590000000hOpd&did=01Z90000000TxWA&s=7&fs=10&tfg=12&tfs=-16777216&explode=0&c=funnel&cs=0&title=&eh=no&compo=yes&fg=-16777216&bg1=-2236963&bg2=-1&bgdir=2&dl1=Background+Image%3A&dl2=Background+Color%3A&l=2&sax=yes&Yman=no&nc=0&actUrl=%2F00O90000001F7Um&sd=1&scv=yes&sct=no&spt=no&cu=USD&ab=X&u=0&vt=0&ab2=Y&u2=0&vt2=0&vl0=Record+Count&por=250&spoc=no&topn=no&gc0=-1&gc1=-1&gc2=-1&refreshts=1312890277000">
</img>
</a>
<apex:pageBlock >
<apex:pageBlockTable value="{!cases}" var="c">
<apex:column value="{!c.CaseNumber}"/>
<apex:column value="{!c.Contact}"/>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:page>


c. Note: the page might throw this error:  The element type "img" must be terminated by the matching end-tag "</img>". To resolve it, add the </img> tag after the <img> tag ends, and before the </a> tag. In our example, we entered it in the fourth line.
b. Name it something which is easy to refer/remember(for eg: caseTabOverride).
c. Navigate to Setup | Customize | Cases | Buttons and Links and click on the Edit button on the left to the Cases Tab label in the list.
d. Select the page we just created, and choose the Visualforce page radio button before clicking Save.

e. Now the Customer portal users would be able to see the Dashboard if the Dashboard and Reports folder is accessible to the Portal users, and the running user has been set to an Administrator, or the user who is able to access the dashboard.

The Workaround for Reports:

To let Customer Portal users see the Reports, add a custom link in the Sidebar div for the Reports tab, should be similar to : https://emea.salesforce.com/00O/o
The reports tab would still not be accessible, however all the information which is accessible to Customer Portal users, should be available there.