Background: I’m working with an org to help them get Volunteers for Salesforce up and running. So I did what any well-intentioned Salesforce volunteer would do. I went to Trailhead, since it wasn’t something I had implemented before!
Scenario: Using my own developer org (free, personal Salesforce instance), I walked through the following Salesforce Trailhead modules, in this order:
p.s. If you’re reading this because you need to set up V4S for your org, I recommend replicating the module steps in a sandbox (at least) beforehand. And if you have no clue what Trailhead is, start here.
As I worked, I got stuck a few times. I couldn’t see the shift calendar (for different reasons), couldn’t submit a signup (also for various reasons), and Trailhead didn’t have all the info to tell me why!
Enter this post. If you run into any issues implementing V4S, here are the scenarios I ran into and how I eventually managed to fix them.
1. Page load error when trying to view the Volunteer Job Signup Page
So this is a pretty obvious one! The first time I tried to load the Volunteer Job signup page (which is the Visualforce page with the GW_Volunteers.VolunteersJobListingFS suffix), I got a down-for-maintenance page that looked like this.
The reason? My Salesforce site URL was incorrect. *facepalm*
When I first set up my Salesforce site, I forgot that I added a “/test” path to the end of the site URL. So keep in mind when you’re adding those Visualforce page suffixes, you need to add them to the end of your path (if you have one) for the page to load.
Here it is with the correct path. Note the “/test” in the URL.
p.s. You can find links to preview all the main Visualforce pages in the product documentation here (scroll down).
2. The Volunteer Page loads, but doesn’t show any available jobs
Once I got the right URL, I had a different problem. The Volunteer Jobs page – the main page I’d been testing – didn’t show any Volunteer Jobs. Despite my having created those job records in Salesforce.
Now by this point, I’d done almost all the steps in this section of the Website Integration Trailhead module, including:
– Assigning all Volunteer Jobs to an ‘Active’ (checkbox) Campaign
– Granting public access to all necessary objects via the Salesforce Site settings
– Configuring access to the Visualforce Pages for the Guest User Profile
However. In that website integration module, there are instructions for granting minimum levels of object access. (If you scroll down, it’s the part that talks about Organization-Wide defaults). It reads that if you can’t set the minimum public access levels in your OWDs (because you need to maintain more restrictive permissions), then you should use Sharing Rules to grant public site users access to the correct object.
What it doesn’t quite explain is that those Sharing Rules are mandatory if your org was created after a certain date….even if you open up data access in those OWDs! That’s because of a recent update, where public site users need to be granted criteria-based object access. You can find that explanation – and the necessary steps – here in the V4S documentation.
Once I created that sharing rule for the Campaign object, I was able to see my volunteer jobs.
As of the date of this post – you may have figured out that sharing rule tidbit if you read this page of the V4S documentation. However, those Criteria-Based sharing links don’t link out to the correct section. (They take you to instructions for Granting Guest Users Update Access, when they should take you to the Define Sharing Rules section. In case you were feeling as confused as I did!)
3. Volunteer jobs appear, but some populated fields are not visible
On the Volunteer Job in Salesforce, I added information to the various location fields and description. But at first, none of that data was loading on the page.
Luckily, this was an easy fix. Just make sure that the public Guest Profile has view access to all the necessary fields. See here for very clear instructions straight from the documentation.
You can also do the same for Volunteer Shifts (if, for example, you want to add a description for individual shifts.)
4. Salesforce throws an error when someone tries to use the Volunteer Signup
Now, I won’t go into every single error I encountered here….because that might triple this blog post. 😭
But I basically ran into two, distinct signup issues. The first was Salesforce showing field access errors (e.g. that I didn’t have access to the Volunteer_Jobs_NumberofVolunteers field).
Those error messages are helpful, because you know exactly what the issue is! You need to grant edit access to all the necessary fields that a prospective volunteer would update. That includes fields on the Volunteer Shift and Volunteer Hours objects.
The second issue was Salesforce showing invalid cross object reference errors. These were less helpful, because they didn’t have an error ID nor did they reference the object giving me the issue. So it took some digging.
In the end, you need to ensure that:
1. The Guest Profile has all the minimum mandatory object access. You can find this in the Create a Salesforce Site section of the website integration Trailhead module. (Scroll to the Step 5: Configure Data Access – Profile Object and Field Permissions heading. That object permissions chart is what you need to replicate in your Guest User profile).
2. That Guest Users are granted update access in Custom Settings, so that they can modify records shared with them. Instructions from the V4S documentation here. (If I’m remembering correctly, this step isn’t included in the Trailhead modules I linked above.)
In this case, step 2 resolved my problem. I could successfully submit the form, and I could see my volunteer record in Salesforce.
Hope this was helpful for troubleshooting your V4S woes!
Highly recommend walking through the Trailhead modules and V4S docs simultaneously. (The V4S docs are accurate but can feel dense to some. And the Trailhead modules are simple, but lacking in some necessary detail!)