Categories
Tech Talk

Tech Tip: Optimizing Experience Cloud Search for External Users

Using out-of-the-box elements of Experience Cloud to provide a streamlined search experience for portal users.

Experience Cloud can help connect you and your Salesforce data with your external partners and clients. But because external users aren’t always familiar with Salesforce, thoughtful user experience is key. In this mini case study, we’ll walk through how Bigger Boat customized out-of-the-box elements of Experience Cloud with some clever automation to provide a streamlined search experience for All Chicago’s external users.

Client Background:

All Chicago manages the Chicago Rents program, which places individuals experiencing homelessness in available rental units. This program relies on ongoing relationships with local landlords and a wide network of partner agencies to assist with case management once the participant is housed.

The Chicago Rents program holds Accelerated Moving Events (AMEs), where the partner agencies meet participants at shelters or encampments. The case managers then use All Chicago’s “Rapid Rehousing Hive (RRH Hive),” a Salesforce Experience Cloud portal, to browse and review available rental units with the clients in real time. 

The unit browsing process at an AME is highly driven by participant priorities. For example, one client might need an accessible unit on the south side of Chicago, whereas another needs a unit which includes utilities in the overall rent and has a rate of under $1000 per month. 

Problem:

With such client-specific unit search parameters, All Chicago needed to offer case managers a filtering option that showed them in real time whether a filter criteria (like rent or location) was overly limiting the results. A case manager would then know how to expand their search to find more unit options for their client. As a team, Bigger Boat and All Chicago eventually named this need a “Zappos-like search,” referring to the e-commerce shoe platform that allows for real-time filtering on attributes like color or price.

Additionally, All Chicago only wanted certain units to appear in the search functionality, namely ones deemed “selectable” and not on hold by another client, currently rented, or unavailable for some other reason. Because some units that were not “selectable” still needed to be visible in the RRH Hive for other reasons, we could not use standard Salesforce security to restrict access to those records. We needed a clever way to hide those units from the search exclusively.

The Solution:

We explored several possible options, including list views and a custom screen flow. Both were discarded because of the generic nature and clunky user experience (UX) of the former and the non-dynamic nature of the latter. We also wanted to avoid the expense of a custom coding approach, which wouldn’t be administrator-friendly if new search criteria needed to be included in the future (which later did happen!).

Ultimately, we opted to build a lightweight declarative URL “hack” that utilized off-the-shelf Experience Cloud functionality. The “Global Search Results for Peer-to-Peer Communities” page of Experience Cloud lets the admin specify the order of objects searched and uses standard Search Layouts to offer a pretty neat approximation of the “Zappos-like” search functionality we wanted. 

By customizing the Search Layouts for the profiles of the case manager and supervisor users, we were able to pick and choose which fields were included in the dynamic filtering on the left sidebar. 

However, using the Global Search Results page meant we were stuck searching all units, rather than only those that were deemed “selectable.” To solve this conundrum, we introduced a new custom text field on the unit object. This custom text field is kept up to date by an auto-launched flow that references a hidden formula field each time a record change is made. The custom text field was then set to either “selectable” or “unavailable” based on other field changes that might occur during an AME, like putting a unit “on hold.”

With this new text field live, we were able to hack the URL of the Global Search Results by introducing the word “selectable” as a URL parameter itself. This allowed the results page to open on the first object we specified (Units) and immediately search for the keyword we defined (Selectable). This approach showed all units that had the text field with the word “selectable” in them, which were the units that should be visible. We then added the hacked URL to a button and a menu item. Now, any time the button or menu item is selected, the Global Search Results page will launch as desired.

Here’s a walkthrough of the solution that includes more details on how it was set up:

Interested in learning more or discussing a potential project? Reach out to meet with us.