How I Solved It: Use Screen Flows to Guide Customers Through a Process

By

Welcome to another post in the “How I Solved This” series. In this series, we do a deep dive into a specific business problem and share how one #AwesomeAdmin chose to solve it. Once you learn how they solved their specific problem, you’ll be inspired to try their solution yourself! Watch how Selina Choy was able to use Flow to streamline reservations and redemption surveys for the Read to Reef Book Club at the National Aquarium, and then read all the details in the post below.


Key business problem

Community program managers at the National Aquarium needed a system to efficiently collect and report redemption data in order to continue and improve community programs like the Read to Reef Book Club.

Background

The Read to Reef Book Club is National Aquarium's partnership program with the Baltimore-area libraries, encouraging kids to grow their reading habit and rewarding them with free admission to the aquarium with their families. In the early seasons, the libraries would pass out bookmarks so students could start reading away. Once they'd complete the reading requirements, they'd fill out the quick survey on their bookmark and trade their bookmark for an aquarium voucher at the library. Because the program launched before the release of Flow Builder, our staff had relied on handwritten survey responses to report demographics. Not only was the manual data entry time-consuming, but it increased the chances of human-error mixing into the data collection.

How I solved it

I created a simple user experience for participants (Site Users) to make a reservation to visit the aquarium. This also collects firsthand data for our staff to analyze the impact of the free program, and it was accomplished by building three major components:

  1. Custom objects to track voucher, date, time, and reservations
  2. Screen flow to validate voucher information and enable Site Users to create new Read to Reef reservations
  3. Experience Cloud site with public access enabled, which allows any Site User to see and run the screen flow without logging into the org

Create custom objects to track voucher, date, time, and reservations

The foundation of the reservation process revolves around four custom objects that serve the following purposes:

Vouchers - This object stores voucher data for various reservation programs at the aquarium. For Read to Reef reservations, the flow will validate information on these records from voucher fields, such as Voucher Name (bookmark code), Program, and Expiration Date. From the voucher records, the flow will also display the value from the Max Reservation Date within a screen message (more details below when we diver deeper into the flow).

Reservation Dates & Reservation Time Slots - These two objects (master-detail relationship) work together to establish dates and entry times with capacity, which enables the flow to show current availability in real time during the reservation process.

Reservations - The Read to Reef participant (Site User) will create a reservation record, which is a junction object between their voucher code entered and time slot they select in the flow.

Entity relationship diagram of key objects in the Time Slot Reservation app

Create Read to Reef reservation flow

The flow walks the Site User through the reservation steps with five screens to create the reservation record, while accessing voucher and time slot records between screen prompts. It also includes decision and assignment elements to determine next steps based on various outcomes within the flow.

Screen flow diagram for Read to Reef reservations

1. Voucher screen

Prompts the guest to enter the voucher code found on their bookmark

 Screen #1 prompts the guest to enter the voucher code found on their bookmark.

Input Text (bookmark code/voucher code)

A text-field component is placed here for the Site User to enter their 4-character voucher code on the first screen to start the reservation process. Keep in mind to use an API Name that’s simple to distinguish and identify this component from another flow step.

Screen #1 in Flow Builder (Edit screen)—highlighting the text-field component

Display Text (conditional)

A) A Display Text component is placed above the text-entry field to display when the flow is not able to find the bookmark code (voucher record). Under “Set Component Visibility,” the component is configured to display when the condition in blue (variable created in step B) is met.

B) A new variable (Boolean data type) is created to define the condition in step A. I like to add “var” in front of my variable name so it’s distinguished as a variable when I search for it.

A)

Screen #1 in Flow Builder (Edit screen)—highlighting the conditional Display Text component and component visibility condition

B)

Edit Variable screen, demonstrating the data type and details to create the No Voucher Found variable

2. Get records from Voucher object

The following filters are set to search for the voucher code that the Site User entered on the first screen. Disposition field and Program field are set to specific picklist values from the Voucher object. The Name field is set to equal “Voucher_Number”, which is the variable resource created in the previous step.

Get Records screen, for vouchers, with condition requirements

3. Decision - Voucher Found / Not Found

In this step, we set up the criteria for each expected result. The outcome criteria in this case will check if the Get_Voucher step found any records.

Outcome criteria - Found

Set the Resource field to look at the Get_Voucher component. “Is Null” is another way to say “is blank,” therefore pairing this operator with false creates a double negative statement; the logic for this condition determines that the number of records returned is not blank.

Edit Decision screen with condition requirements for Voucher Found outcome

If Found → Assignment - Max Reservation Date variable

For the Voucher Found outcome, the flow moves the Site User to the Date Selection screen that displays the Max Reservation Date value from that voucher record. (A) New variable (date data type) needs to be created to (B) assign this value to be used in the flow.

A)

Edit Variable screen, demonstrating the data type and details to create the Max Reservation Date variable

B)

Edit Assignment screen, demonstrating how the variable value is set when the flow determines that the voucher record was found

Outcome criteria - Not Found

Because this is the complete opposite of “Voucher Found,” we can use the last default “No conditions needed” to specify that Get_Voucher wasn’t able to find any records.

Edit Decision screen, for Voucher Not Found outcome, using the default "No conditions needed" option

Assignment - Voucher Not Found variable

For the Voucher Not Found outcome, the flow moves the Site User back to the Voucher screen to display the conditional statement. The Voucher Not Found variable needs to be assigned as True to trigger the conditional statement.

Edit Assignment screen, demonstrating how the variable value is set when the flow determines that the voucher record wasn’t found

4. Date Selection screen

When the voucher code is found, the next screen confirms that the guest will be making a reservation through the Read to Reef program. This is where the guest will choose the date they would like to visit and the number of guests expected.

Screen #2 prompts the guest to enter the desired visit date and party size; also displayed on this screen is the max reservation date assigned when the voucher was found.

Display Text (conditional)

A) Multiple Display Text components are placed on this screen; the following figures demonstrate the component visibility setting and variable assigned to display when there are no time slots for the date selected.

B) New variable (Boolean data type) is created to define the condition in step A.

A)

Screen #2 in Flow Builder (Edit screen), highlighting the conditional Display Text component and component visibility condition

B)

Edit Variable screen, demonstrating the data type and details to create the No Time Slots variable

Input components

In addition to text format, input components are available in other formats like date and numbers, which are used on this screen to inquire the visit date, number of adults, and number of children. Besides collecting readable data, using the appropriate field format adds consistency to the data we collect from different Site Users.

Screen #2 in Flow Builder (Edit screen), highlighting the Input Date component and Input Number components

5. Get records from Reservation Time Slot object

The following filters are set to search for available reservation time slots for the visit date entered in the previous screen. The value frmTotalReserved is a formula variable (number data type) that’s the sum of adults and children, also from the previous screen. Additional condition requirements look at current values saved in reservation time slot records.

 Get Records screen, for reservation time slots, with condition requirements

6. Decision - Time Slots Available

This step is similar to the Voucher Found Decision step; however, the outcome criteria in this case will check if the Get_Time_Slots step found any records.

Outcome criteria - Yes Availability → proceeds flow to next screen (Time Slot Selection)

Set the Resource field to look at the Get_Time_Slots component. “Is Null” is another way to say “is blank,” therefore pairing this operator with false creates a double negative statement; the logic for this condition determines that the number of records returned is not blank.

Edit Decision screen with condition requirements for Yes Availability outcome

Outcome criteria - No Availability

Because this is the complete opposite of Yes Availability, we can use the last default “No conditions needed” to specify that Get_Time_Slots was not able to find any records.

Assignment - No Time Slot

For the No Availability outcome, the flow moves the Site User back to the Date Selection screen to display the conditional statement. The No Availability variable needs to be assigned as True to trigger the conditional statement.

 Edit Assignment screen, demonstrating how the variable value is set when the flow determines that no time slots are available for the date selected

7. Time Slot Selection screen

On this screen, the guest will select an entry time from the time slots with available capacity. They are also asked to confirm their agreement to follow the aquarium's health and safety procedures when they visit.

Screen #3 prompts the guest to select the entry time (time slot record) available for the date selected.

Record Choice Set

A) The Radio Buttons component is used here to display the list of time slot records. Under “Configure Choices,” the choices can be a set of records (new resource created in step B).

B) Record Choice Set is a new resource created to generate a set of choices using a filtered list of records. In this case, the condition requirements to generate this Record Choice Set are the same as the condition requirements on the Get Time Slot (Get Records) step.

A)

Screen #3 in Flow Builder (Edit screen), highlighting the Radio Buttons component to present selection choices

B)

Edit Record Choice Set screen, for reservation time slots, using the same condition requirements as the Get Records step

8. Reservation Details screen

This screen collects contact details of the adult chaperone and demographics details about the Read to Reef participant. Input component fields on this screen collect text, email address, and picklist value data that will be saved on the new record created on the next step.

Screen #4 prompts the guest to enter their contact information and select answers from a picklist.

9. Create records under Reservation object

In this step, values submitted by the Site User are mapped to fields in the Reservation object to create a new Read to Reef reservation record.

Create Record screen, with field values mapped to values inputed by the Site User in the screen flow

Create Record screen, with field values mapped to values inputed by the Site User in the screen flow

10. Get records from Reservation object

The filter set on this step is the record ID of the new reservation record created within this flow.

Get Records screen, for reservations, with condition requirements

11. Confirmation screen

The final screen displays the confirmation details after the new reservation is created.

Screen #5 displays a confirmation screen showing the information the guest entered.

The Confirmation screen uses a single Display Text component to display data from the new reservation created.

Screen #5 in Flow Builder (Edit screen), demonstrating a single Display Text component to display data from the new reservation created

12. Error screen

You may have noticed some dotted red lines that all point to a single screen component titled “Error Screen.” In case the flow faults due to an unknown error, the screen flow will navigate to this screen to show customer service information for quick assistance. Since we have other screen flows that include the Central Reservations line, this is inserted as a variable in flow to pull this data from custom metadata. This way, if this phone number changes, we’ll need to update it only in one custom metadata record instead of multiple flows.

Screen #6 in Flow Builder (Edit screen); demonstrating the error message using the Display Text component and merged field

Create Experience Cloud site with public access enabled

Placing the screen flow here allows any Site User to see and run it without logging into the org.

Read to Reef reservation page, using Experience Cloud, to welcome Site Users to run the reservation flow

Permissions for Guest User Profile

In Experience Builder, apply public access. Then follow the Guest User Profile link to update system permissions; enable profile to run flow.

General permission settings screen in Experience Builder highlighting areas to set up public access

Business results

Applying the reservation flow to the Read to Reef process has resulted in data that’s more reliable and accurate than before, which makes it easier for the National Aquarium to continue this program with the Baltimore-area libraries. In the past year, the aquarium has been able to reward 7,000 free tickets to 2,000 students who completed the book club, for reading an average of 5 books each season. Moreover, the reservation flow has provided a positive experience for Read to Reef participants to schedule their free visit with their families at the aquarium!

Resources

Want to see more good stuff? Subscribe to our channel!

SUBSCRIBE TODAY
How I Solved It with Jennifer Lee and Dee Ervin

Search Unsearchable Field Data Types | How I Solved It

Welcome to another “How I Solved It.” In this series, we do a deep dive into a specific business problem and share how one Awesome Admin chose to solve it. Once you learn how they solved their specific problem, you’ll be inspired to try their solution yourself! Watch how Dee Ervin searched unsearchable field data […]

READ MORE