GoMeddo Experience Cloud for unauthenticated Guest Users
This article describes the configuration steps and most strict Sharing Settings required for GoMeddo to function correctly in a Experience Cloud site which is used by unauthenticated Guest users.
Keep in mind that GoMeddo is a native Salesforce application built with custom objects. This means you will need to follow Salesforce best practices around object sharing and permissions. This article tries to touch upon the most common requirements, but these may differ from what your use case needs.
With the Winter ’21 release, Salesforce is disabling the View All, Modify All, edit, and delete object permissions for guest users in existing orgs. This means that when using GoMeddo functionality, they will only be able to create reservations, not reschedule or cancel them, which would be an edit.
1. Create Experience Cloud site for Guest user
Create an Experience Cloud site and make sure it’s accessible to Guest users
2. Create and assign Permission set & License
Assign the GoMeddo Experience Cloud Guest User permission set to the Guest User corresponding to your Experience Cloud site. You can acces this as follows:
Go to your site’s Builder
Click on Settings
In General click on the Guest User Profile
Click on Assigned Users
Click on the user name under Full Name
Scroll to Permission Set Assignments and assign the GoMeddo Experience Cloud Guest User permission set.
Scroll to Managed Packages and assign a GoMeddo licence. You can skip this step on Sandbox orgs
Using Screen Flows?
Follow this article to give Guest Users access to specific Screen Flows.
3. Change record owner
Change Record Owner from GoMeddo (or APP) to another user for all objects which need to be accessed by the Guest user for (this list will be longer if you use more GoMeddo functionality)
Calendar
Conflict
Dimension
Reservation
Reservation Color
Reservation Status
Reservation Type
Resource Type
Resource
View
4. Enabling sharing rules
Enable sharing rules:
Go to Setup
Go to Sharing Settings
Define a Guest user access, based on criteria sharing rule for at least the following objects (this list will be longer if you use more GoMeddo functionality)
Availability
Calendar
Conflict
Dimension
Reservation
Reservation Color
Reservation Status
Reservation Type
Resource
Resource Grouping
Resource Type
View
These settings allow you to show you a very basic calendar to a Guest user and make a reservation. If you want to show more, you might need to add more sharing rules based on the specific you want to show.
(optional) Enable the Allow guest users to bypass sharing for specific operations setting on the GoMeddo Settings page. This setting allows guest users to bypass sharing in very specific situations to enable functionality that would otherwise be impossible to have guest users perform. (Note CRUD and FLS is still checked where applicable)
These situations are:
Creating a recurring reservation. It will bypass sharing in with a small extra update that just links the reservation to the recurring reservation. Only updating the recurring reservation id field.
Adding junctions/services to a new reservation. Sharing is bypassed on the insert operation of the serviceReservations and other junctions so they can be linked to the new reservations correctly.
Updating the Outlook/Google sync data on the reservation after syncing it to Outlook/Google this update ensures that the sync stays up to date and does not generate duplicates.
5. Expose the calendar
If needed, follow this article to expose the calendar on your site.
6. Screen Flows
If needed, follow this article to give Experience Cloud users access to specific Screen Flows.
7. Done
Done! Unauthenticated users should now have access to your Experience Cloud site with GoMeddo functionality. Keep in mind that GoMeddo is a native Salesforce application built with custom objects. This means you will need to follow Salesforce best practices around object sharing and permissions. This article tries to touch upon the most common requirements, but these may differ from what your use case needs.