Jennifer Lee and Rachel Park Brayboy in a new episode of "How I Solved It."

How I Solved It: Sewing (& Flow-ing!) for Good at the Start of a Pandemic

By

Welcome to another “How I Solved It.” 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 Rachel Park Brayboy used her sewing (and Salesforce) skills for good to track her Get One, Give One face masks—ensuring those in need always received unique masks—at the start of the pandemic, and then read all the details in the post below.

Key business problem

I actually have a background in fashion design. While working as a temp in a nonprofit, I fell into Salesforce and became an INTENTIONAL Admin.

Soon after becoming certified, I was shockingly diagnosed with Stage IIB triple-negative breast cancer and had to leave work for 2 years to go through 15 rounds of chemo, three surgeries, and 32 radiation treatments. I lost my certification and afterwards, I really didn’t know if I could come back without a traditional IT background.

During radiation treatment, I created the ParkPuff® seatbelt pillow, which helps comfort cancer and surgery patients in the car worldwide. So much of cancer is spent feeling helpless; sharing this product in the midst of such uncertainty gave me meaning and purpose while also giving back to the cancer community.

When the pandemic started in 2020, I wanted to help but wasn’t sure how. Similar to how I started the ParkPuff® seatbelt pillow, I hoped to use my sewing skills for good. When I spoke to my local hospital—always be sure to call first!—they were accepting only surgical and N95 masks, not cloth ones.

Once the Los Angeles mayor made the recommendation in April 2020 to the millions of residents to start covering their faces when out in public to combat the outbreak of coronavirus (with CDC guidance), I quickly sprang into action! I sewed sample face masks, shared them on social media to gauge interest, and made them available for sale on my website.

Wanting to give back, I decided to make them Get One, Give One: For every face mask purchased, one was also donated to those on the COVID-19 frontline—including medical staff, essential workers, and cancer patients in active treatment—knowing I needed to get them out as quickly as possible to those who needed them the most:

  • I’m a big believer in starting small and seeing what works FIRST, so I did a “POC” (proof of concept) by making masks with fabric remnants that I already had in my studio to keep my initial investment low (and stayed open to however it may have unfolded).
  • I used the Orders object. The Kanban view allowed me to easily track purchases and donations— especially those that still needed to ship—and helped me establish a routine for the whole process.
  • Since many folks were ordering face masks in bulk, I decided against countless SKUs for each potential style. I had two mask sizes (one for adults, one for kids) and used the standard Line Description field to list customers’ mask fabrics to ensure they received different styles, in case they ordered again. (All masks were double-sided, so everyone received two masks in one!)
  • I quickly sold out and had to shut down (repeatedly!) to keep up with demand. I was juggling the sewing of all masks, doing everything business-related myself, working full-time as a Salesforce Consultant, AND running my primary business!
  • Fun fact: I also (somehow) managed to achieve FIVE Salesforce certifications that same year!

My Salesforce user experience for managing mask orders

Let me step you through how I managed the mask orders in Salesforce.

For each new customer placing an order, I created a new contact record.

From there, I created a new (purchased) order, provided the required information, set the status, and marked the Sales Source as Website.

From the newly created order record, I added products from the Order Products related list. Since I have only the Standard Price Book, that price book is the default. Select the non-donation items for this (purchased) order.

Pro tip: Orders/opportunities can have only one price book associated with them!

The Add Products screen where you can add your order product records

Once I’ve selected the (non-donation) products, this is where I can edit the How Many Lines field. For my purpose, the quantity should always be 1. In this example, I want to create two order product records for adult face masks. Since the fabrics in the Line Description field should be unique, I leave this field blank.

The Edit Selected Order Products screen where you can edit the How Many Lines and Quantity fields

Now that my two new order product records are created, I can edit the Line Description field for each one to add the unique fabrics for each line item.

The Edit Order Product screen where you can update the Line Description field per order line item

Once the (purchased) order is created, I create the donated one! This order process is similar to the one above.

  • NOTE: The negative value in the (donated) order product will help us report on how much value ($) we are donating!

The Edit Selected Order Products screen where you can edit the How Many Lines and Quantity fields; the Unit Price will be negative

  • Follow the remaining steps above to complete the (donated) order.
  • Set the Sales Source field to Donation.
  • In the (donated) order, add the (purchased) order Id to the Related Order field so both are related to the same contact for tracking purposes!

The Kanban list view showing which orders are in each status at any given time

From the Kanban list view, we can see orders by status and contact(s) at any given time. This view was a huge help to me as I tried to keep up with the demand of face mask orders, especially at the height of the pandemic!

Here’s how I solved it

Let’s talk about how I created the solution.

1. Spin up a free dev org

First, I created a free dev org to start tracking my Get One, Give One face mask initiative. (Unsure what the initial response would be, I wanted to start with an easy “beta” first to keep my administrative duties light!)

2. Set up your products and price books

I used the Orders standard object.

Since my business is business-to-consumer (B2C) and not business-to-business (B2B), orders are generated via my website. Since I don’t have a sales cycle, I don’t use opportunities. My orders will always be closed won!

Many of my orders were bought as gifts, so this standard object allowed me to specify different billing and shipping addresses.

By default, you’ll need to create a Standard Price Book, which was all I needed for my purpose.

Since I offered both adults and kids sizes for face masks, I created product records for both SKUs and related them to the Standard Price Book. Be sure to mark them as Active in both the product and price book entry records.

For reporting purposes, I learned it was best to track the donated masks as separate SKUs. In the price book entry, they had a negative List Price. I also learned that donated masks needed to be separate order records so I could understand how much quantity and value ($) was actually being donated. (Otherwise, if both purchased and donated face masks were in the same order, the Order Amount would always be zero!)

Here’s a pro tip: The Sharing Settings (org-wide default, or OWD for short) for price books needs to be set to Use. If the OWD for the object is set to “No Access” or “View Only,” update your Sharing Settings to grant Use access to a user/role/group/territory (and remember to switch to Classic first!).

3. Create your fields

The Order object contained new lookup fields (one to the Contact object and a self-lookup to orders). This helped me track both purchased and donated orders for the same contact.

I also created a picklist field called Sales Source with the values of “Website” or “Donation” to easily report on both or each individually.

Related Contact, Related Order, and Sales Source custom fields created on the Orders object

The Order Product object also needs a new custom number field (called How Many Lines) to allow users to fill in how many lines of the same product to clone when creating a new order product. Set the default value to 1.

From the Order Product page layout, be sure to add this field by editing the multi-line layout so that it shows when adding products.

The custom How Many Lines field created on the Order Product object

4. Create a flow to auto-generate multiple lines of an order product

I used a flow that showed how to auto-generate multiple lines of opportunity products as inspiration and tweaked it to meet my business use case. This record-triggered flow saved me so much time with the administrative burden of creating records (when I needed to concentrate on creating masks) by cloning the multiple line items for me, so I could then easily update the fabrics.

I used the above flow example as a starting point. However, instead of using the Opportunity Product as the trigger object—I don’t use opportunities—I modified my flow to use the Order Product object.

This flow is triggered when an order product is created and How Many Lines is greater than 1, since we don’t need to clone products if we want only one line item.

Using a counter variable, if the counter is less than or equal to 1, it will reset this field to 1 since we need only one order product record. If the counter is greater than 1, the flow will clone the order product record that triggered the flow.

Overall Order Product flow showing the steps in sequence to easily create multiple line items

First, create a counter variable because we’re running the same actions many times. It should be a number variable with 0 decimal places. Set the default value as the record’s How Many Lines.

Counter variable (number variable with 0 decimal places) for running the same actions many times

Next, our Order Product flow has a Decision element that checks the counter number variable to see if the counter is less than or equal to 1 as the first outcome.

Decision element checking the counter variable (if it’s less than or equal to 1) to determine which path to take

Our second outcome checks if the counter variable is greater than 1. The logic is that the counter will decrease by 1 when one iteration is done, and we want to stop the flow when the counter reaches 1.

These two outcomes use 1 as the break point.

Decision element checks the counter variable (if it’s greater than 1) to determine which path to take

If the counter variable is less than or equal to 1, we use an Update Records element to reset the How Many Lines field for the triggering record to 1 after we finish cloning, so we don’t confuse ourselves.

Update Records element that resets the How Many Lines field to 1

If the counter is greater than 1, we use the Create Records element to take the information from the triggering order product record to create a new one.

Create Records element that creates the one order product record and any cloned line items

Once the new order product is created, we use an Assignment element to update the counter variable by subtracting 1 and then return to the Decision element at the start of the flow.

Assignment element updating the counter variable by subtracting 1 and then returning to the Decision element

Test and activate your flow!

Business results

The whole reason for starting my Get One, Give One face mask initiative was to donate as many as possible—the more I sold, the more I could give!—and there’s no way I would’ve been able to track making and shipping all my handmade masks without using Salesforce at the start of COVID-19!

Shortly after launching, Trailhead shared my face masks in their blog post, Spotlight on Trailblazers Doing Good During Tough Times. (Salesforce for Small Business was also kind enough to feature the masks in their #FacesOfSmallBiz and #WomensEqualityDay campaigns.)

During the pandemic, I also had a friend going through breast cancer treatment. It made my heart so happy to see her using her ParkPuff® seatbelt pillow during chemotherapy AND wearing her donated face masks as she rang her final radiation bell! (Although I’m a Salesforce builder, there’s NOTHING like creating something with your own two hands—what a GIFT to share your talents with the world to help countless folks during such a needed time!)

In the spirit of being open to how it would all develop, some folks also wanted to donate masks without purchasing first, so I later created a product option for that as well.

Eventually, cloth masks were recommended less for face masks in favor of other types that provided more protection from COVID-19. (However, I still have plenty to match every outfit!) During the height of the pandemic, I sewed almost 700 hundred face masks as a one-woman show (while also working full-time, constantly studying for Salesforce exams, AND fulfilling seatbelt pillow orders)! ? #NoSpreadsheets

“As a proud side hustler, I often feel overwhelmed…but I just have to keep remembering my WHY. My focus will ALWAYS be on the patient, creating with purpose, and making IMPACT over money.”

—Rachel Park Brayboy

Do try this at home

Although you may not have a use case to add multiple line items to an opportunity or order record if you’re not running a business, this is a great example of learning by finding a Salesforce starting point and then making it your own!

Remember that Google is your best friend! (Chances are, if you’re asking the question, someone else has asked the same thing or created a solution already.) Be curious and research the plethora of resources available, because there’s always more than one way to build something in Salesforce! Why reinvent the wheel if you don’t have to??

Special thanks to the Trailblazer Community worldwide (see below) for being some of my earliest supporters, especially my dear friend, Blanca Leon-Carter, who was the very first! ?

 Collage of several Trailblazer Community members, who were some of my very first supporters, in my Get One, Give One face masks!

Clockwise from top left: Jen Lee & her dog, Mochi; Stephanie Herrera; Ann Weeby & family; Aaron McGriff; Sasha Taylor; Monica Bowie; Jessie Rymph; David Liu; Ashley Allen & her son, Blue (center)

Resources

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