Do you need to share project progress with someone who isn't on TaskRay or even Salesforce? You can!
Using Salesforce Sites, it is possible to provide read-only access to external stakeholders for designated projects. By setting this up, you will have the ability to generate a unique URL that can then be shared with any external stakeholder to provide read-only access to parts of TaskRay. The link will allow external stakeholders to view project progress without having to log in to Salesforce.
While initial setup for Salesforce Sites requires a System Administrator, selecting the projects for sharing can be done by any user who has access to the project. However, if you would like to add an extra level of security around the ability to share projects externally, you can use validation rules to do so. Out of the box, TaskRay comes with an inactive validation rule on the TaskRay Project object to restrict external sharing to the project owner, which you can turn on at any time if necessary.
- You will need one full TaskRay license to be designated for external sharing. Additionally, make sure that external sharing is something that your entire organization is comfortable with enabling. With external sharing, you will be providing read only access to projects via a link. Therefore, you should only share the link with people that you trust.
- If you have configured security settings around field visibility on TaskRay objects, they will not apply to the external user by default. You will need to configure Field Level Security for the external user separately. Additionally, you will need to reflect the changes in the TaskRay permission set that is assigned to the external user. This can be done through the Site Guest User details page (explained below).
Additionally, there are some other ways that you can share TaskRay data externally. You can read about those in the Share TaskRay Data With External Stakeholders article.
For additional information on how to set up the feature, please watch this webinar. Step-by-step instructions that are shown in the webinar are outlined below in this article.
Register Salesforce Site Domain [Admin]
The first thing that you will need to do for setting up Salesforce Sites is register a Salesforce domain. If you have already done this, you can skip to the next section of this article.
- From Setup, navigate to:
- Lightning: User Interface | Sites and Domains | Sites.
- Classic: Build | Develop | Sites.
- In the box at the bottom of the page, enter a domain name and click on Check Availability. If it is not available, enter a new domain name.
- If it is available, select the I have read and accepted the Salesforce Sites Terms of Use checkbox.
- Click on Register My Salesforce Site Domain.
Create New Salesforce Site [Admin]
After your domain is deployed, the next thing that you need to do is create a new site for sharing TaskRay projects.
- If you are not already on that page, from Setup, navigate to:
- Lightning: User Interface | Sites and Domains | Sites.
- Classic: Build | Develop | Sites.
- In the Sites section at the bottom of the page, click New.
- Enter a Site Label (i.e. "TaskRay External Sharing").
- The Site Name should automatically generate based on the label that you enter.
- [Optional] Enter a Site Description.
- If necessary, change the Site Contact.
- Enter Default Web Address (i.e. projectstatus).
- Select Active Site Home Page by clicking on the lookup icon next to the field. In the window that comes up, select trtaskboard.
- Make sure that the Require Secure Connections (HTTPS) checkbox is checked.
- Click Save.
- On the Site Details page, click Activate.
Assign TaskRay License [Admin]
Now that you've created the site, the next step is to assign a TaskRay license to the external Site Guest User. Remember, you need a full TaskRay license that you can assign to the Site Guest User in order to provide read-only access to TaskRay.
- On the Site Details page, click on Public Access Settings.
- Click on View Users.
- Click on the Site Guest User.
- On the User Details page, scroll down to the Managed Packages section and click on Assign Licenses.
- In the Unassigned Packages section, select TaskRay.
- Click Add.
Assign TaskRay Permission Set [Admin]
Next, you will need to assign the read only permission set to the Site Guest User.
- Back on the User Details page, scroll down to the Permission Set Assignments section and click on Edit Assignments.
- On the Permission Sets page, select TaskRay External - Read Only Access under Available Permission Sets and move it over to the Enabled Permission Sets.
- Click Save.
Secure Topics For Public Site [Admin]
If you want guest and authenticated users in Salesforce Sites and Portals to have access to Topics, you will need to take one extra step in Salesforce setup.
- From Setup, navigate to:
- Lightning: Feature Settings | Chatter | Chatter Settings.
- Classic: Build | Customize | Chatter | Chatter Settings.
- Click Edit.
- Scroll down to the Topics section and select the Allow topics in Salesforce Sites and Portals checkbox.
- Click Save.
Now, your external sites and portal users will be able to access Topics, depending on their profile and permissions.
Configure Field Level Security [Admin]
If you have configured security settings around field visibility on TaskRay objects, you will need to also configure them for the external Site Guest User specifically. Keep in mind, this is done from a different place than where you would usually manage field level security for other profiles. Therefore, if you make field level security changes on TaskRay objects in the future, you would need to configure them for the Site Guest User as well.
- From Setup, navigate to:
- Lightning: User Interface | Sites and Domains | Sites.
- Classic: Build | Develop | Sites.
- In the Sites section, click on the TaskRay External Sharing site that you created to access Site Details.
- Click on Public Access Settings.
- Scroll down to the Field Level Security section. Click on View next to any of the TaskRay objects on which you want to manage field level security (i.e. TaskRay Task or TaskRay Project).
- On the next page, click Edit.
- Using the checkboxes, manage Read and Edit access for the fields.
- Click Save.
- Repeat for other TaskRay objects as necessary.
Get Site Guest User ID and Site URL [Admin]
Before you proceed, you will need to retrieve two important pieces of information that you will need to complete the setup process: the Site Guest User ID and the Public Site URL.
Get User ID
You will need to get the Site Guest User ID and copy it. Since you will reference this later in the setup process, it's recommended to save them in a document editor or note-taking application on your computer (or any other place that you can easily reference). The easiest way to retrieve the Site Guest User ID is directly from the page URL.
Open the Site Guest User Details page and save the user ID:
- If you are in Lightning, the user ID will be in the URL following "address=%2F" and before the other "%" when on the Site Guest User Details page:
- If you are in Classic, the user ID will be at the end of the URL after the "/" when on the Site Guest User Details page:
Get Public Site URL
Return to the Sites page and follow these steps to assemble the Public Site URL.
- From Setup, navigate to:
- Lightning: User Interface | Sites and Domains | Sites.
- Classic: Build | Develop | Sites.
- In the Sites section, click on the TaskRay External Sharing site that you created to access Site Details.
- Scroll down to the Custom URLs section to find your Domain Name.
- Copy the Domain Name that ends in "secure.force.com".
- Assemble your full Public Site URL:
- Open a document editor or note-taking application.
- Type "https://" and then immediately paste your Domain Name. This should end in "secure.force.com".
- Find and copy the Path for the Domain Name.
- Paste the Path at the end of your Public Site URL.
- Keep this Public Site URL readily available. You will use it in the next step.
Configure TaskRay Global Settings [Admin]
The next step is to enter the TaskRay Public Site URL and Site Guest User ID in TaskRay Global Settings.
- From Setup, navigate to:
- Lightning: Custom Code | Custom Settings.
- Classic: Develop | Custom Settings.
- Click Manage next to TaskRay Global Settings.
- Enter the TaskRay Public Site URL. This is the full URL of your public site that you assembled earlier.
Important! Make sure that the URL that you assemble and enter in this field starts with "https://" and includes "secure.force.com".
- Enter the TaskRay Public Site User Id. This is the ID of the Site Guest User that you saved earlier.
- Click Save.
Note: There are multiple TaskRay custom settings for configuring access to external sites. Ensure that you populate the TaskRay Public Site URL and TaskRay Public Site User Id custom settings to set up External Sharing.
Add Fields to Project [Admin]
The final part of setup is to make sure that the following fields are added to the Project object: Available for External Sharing and External Sharing Link. These fields are necessary to control which projects are shared externally and to generate the link that can be shared with external users.
To add the fields to the TaskRay Project Field Set:
- From Setup, navigate to:
- Lightning: Objects and Fields | Object Manager
- Classic: Create | Objects
- Select TaskRay Project.
- Navigate to the Field Sets section and select TaskRay Project Field Set.
- Move the Available for External Sharing and External Sharing Link fields into the In the Field Set container.
- Click Save.
To add the fields to the TaskRay Project Page Layout:
- From Setup, navigate to:
- Lightning: Objects and Fields | Object Manager | TaskRay Project
- Classic: Create | Objects | TaskRay Project
- Click Page Layouts.
- Select the page layout where you'd like to add the fields.
- Move the Available for External Sharing and External Sharing Link fields onto the page layout.
- Click Save.
Share Project
Now that everything is set up, users can begin sharing projects when necessary. By default, any user who has access to the project can share the project, but it is possible to restrict this ability using validation rules. Out of the box, TaskRay comes with one validation rule that can be turned on to restrict this ability to project owners (see section below).
To share a project, go to TaskRay and follow these steps:
- In the All Work tab, in the left sidebar, hover over the project that you want to edit and click on the More Actions icon that appears.
- Select Edit Project. Alternatively, double click on the project.
Tip: You can also access Project Details from the Performance tab Portfolio View. To do this, hover over the row for the project that you want to share, click on the More Actions icon on the far right, and select Project Details.
- This will open the Project Details. Double click on the Available for External Sharing field and select the checkbox. Alternatively, click Edit to enter editing mode and select the Available for External Sharing checkbox.
- Click Save.
- This should generate a link in the External Sharing Link field. Copy the URL and share it with the external stakeholder not on TaskRay or even Salesforce.
- To disable the project from being shared, uncheck the Available for External Sharing checkbox on the project.
[Optional] Enable Validation Rule to Restrict the Ability to Share Projects [Admin]
By default, any user with access to the project can make a project available for external sharing and generate the external sharing link for that project. However, TaskRay comes with one inactive validation rule that you can enable to restrict this ability to project owners. If you would like to have this restriction for an added layer of security, follow the steps below.
- From Setup, navigate to:
- Lightning: Objects and Fields | Object Manager.
- Classic: Create | Objects.
- Click on TaskRay Project.
- Under Validation Rules, click on External_Sharing_Restricted_to_Owner.
- Click Edit.
- Check the Active checkbox.
With the validation rule enabled, any time a user who is not the project owner tries to check the Available for External Sharing checkbox the following error will appear:
[Optional] Define the Default Columns in External Sharing Links with a URL Parameter [Admin]
If you want to predefine the fields that will display as default columns in External Sharing Links, you can create a custom formula field and include the &addlColumns URL parameter to specify the desired fields.
- From Setup, navigate to:
- Lightning: Objects and Fields | Object Manager.
- Classic: Create | Objects.
- Click on TaskRay Project.
- Find the External Sharing Link formula field.
- Copy the formula value.
- Create a new text formula field on the TaskRay Project object for your new custom External Sharing Link.
- Paste the formula value that was copied from the original External Sharing link formula field.
- Add the &addlColumns= parameter to the end of the hyperlink. By default, this should be after the &view=planning parameter.
- The expected format for this parameter's value is ["FieldName1__c","FieldName2__c"]. However, you will need to replace each double quote character with %22 to maintain correct formula syntax.
Example of a complete External Sharing Link formula with the &addlColumns parameter applied to show the List field as a default column:
IF( TASKRAY__trAvailableExternal__c , HYPERLINK(
$Setup.TASKRAY__trGlobalSettings__c.TASKRAY__trPublicSiteURL__c +'?pid='+ Id + '&fullScreen=true&view=planning&addlColumns=[%22TASKRAY__List__c%22]', $Setup.TASKRAY__trGlobalSettings__c.TASKRAY__trPublicSiteURL__c +'?pid='+ Id +' &fullScreen=true&view=planning&addlColumns=[%22TASKRAY__List__c%22]'
), null)
Team Member Icons Not Showing Up?
If team member icons aren't showing up when viewing a project via the external link, that means that those team members have not checked the Show my photo on publicly accessible pages in their profiles.
If you want to see team member icons on the external link, every team member would need to follow these steps:
Lightning
- In Salesforce, click on the User icon in the top right corner of the page and then click on the User icon again in the dropdown.
- On the user profile page, click on the User icon and select Update Photo.
- In the Update Photo dialog, check the Show my photo on publicly accessible pages.
- Click Save.
Classic
- In Salesforce, click on the User Name in the top right corner of the page and select My Profile.
- Hover over the User picture and click on Update.
- In the Upload Profile Photo dialog, check the Show my photo on publicly accessible pages.
- Click Save.