Blog

Packages: Admin-Friendly Way to Move Metadata to Another Org

I build cool shit in Salesforce that I want to share with other people. How do I do that quickly and easily? I make an unmanaged package.

  • From Setup, search for and go to Package Manager.
  • Click New.
  • Fill out the form. Give yourself credit for creating the package and a way to get more information in applicable.
  • Don’t check “Managed.” By leaving it unchecked, you allow people who install it to make their own modifications.
Continue reading Packages: Admin-Friendly Way to Move Metadata to Another Org

Show Records in Tiles in Experience Cloud

Allow experience users to select a record by clicking on a joy-filled image instead of choosing from a boring old list view. Spark joy by adding records to a CMS Collection and adding fields to the object for your image, tagline, etc. and creating a (behind the scenes) boring old list view.

Happy pride month!

This example is for a community foundation – a nonprofit that helps donors give their money to other organizations that match their passions, like the Seattle Foundation or the Columbus Foundation. Above we see a selection of LGBTQIA organizations and below Animal Welfare orgs.

Ready to start building? Let’s go!

Continue reading Show Records in Tiles in Experience Cloud

Get Salesforce Practice by Tracking Your Habits

Want more practice learning Salesforce? Don’t have experience beyond Trailhead? Build an app to help you track good or bad habits. This is a win-win-win: hone your app builder skills, improve your habits, and you’ll have a cool app to show off in job interviews.

Salesforce Skills Used

  • Create a custom object and fields
  • Create reports
  • Create dashboard components
  • Make it mobile friendly
  • Problem solving: how to turn real life issues into measurable data
  • Send email every 3 days with stats
  • Bonus: Screen flow for easy tracking

My version: Migraine Tracking App

Forget record-triggered flows or apex triggers. The real demons are migraine triggers. I want to build an app to track when I have one of my trigger foods and when I have symptoms.

I have a threshold for tolerance of delicious triggers. I can eat some chocolate, dairy or red wine without reaching the threshold and getting sick, but I don’t know what the threshold is. Can building my own tracking app help?

Continue reading Get Salesforce Practice by Tracking Your Habits

Understand Tricky Flow Concepts

Head on over to the Salesforce Admins blog to watch 5 new videos that I helped create that explain some tricky flow concepts with fun metaphors and images!

“Get Records” is like a big claw that grabs records from your database and
pulls them into Flow as variables!

Are you wondering…

  1. What are the most common types of flow?
  2. Why do I need to store information in variables?
  3. What is a record variable?
  4. Why on earth do I need to “Get Records?” Shouldn’t the records already be there?
  5. What does it mean for a variable to store multiple records?
  6. What are loops?
  7. What are Create Records, Update Records, and Delete Records?

Then these 5 new videos can help!

Year End Tax Receipt for Donors

UPDATE 1/13/23: If you’re installing today from AppExchange, it’s a new version 1.4 that you can run by running a flow called Year End Tax Flow. New detailed instructions below. To install the new version, please uninstall the old version first! Go to Setup, search for “Installed Packages,” find “Year End Tax” and uninstall that.

Easy peasy list of all last year’s donations

Send your donors (contact records only) a tax receipt at the beginning of the new year listing all of last year’s donations. For Salesforce Nonprofit Success Pack users, this unmanaged package will generate a table for each donor listing the gifts they made last year. Use your own email to send a tax receipt by email. The table lists the amount, date and, optionally, the campaign name of each donation.

Package includes this sample template.

Thanks for the great app, just in time…Simple, easy, elegant, and just what we needed.

David, Eaglesrest.org
Continue reading Year End Tax Receipt for Donors

So you still want to Salesforce volunteer at a nonprofit?

Here’s what you need to know. 

Photo by Basil Samuel Lade on Unsplash

By Gordon Lee

Before the proverbial ink dried on the first article on why you shouldn’t Salesforce volunteer at a nonprofit, I could already sense the exceptions the community would raise that I didn’t have the time to address. The Salesforce Trailblazer Community, after all, is made up of passionate tech nerds who have a keen eye in finding exceptions to things. It’s in our nature since we have to sniff out those nuances to be great at what we do. 

Folks sent in anecdotes, counter-points, and personal stories about how their experiences were mutually beneficial and what I put out there was a disservice to the nonprofit world. My opinion is that those experiences are the exception, and don’t reflect the greater trend of nonprofits that are harmed when a volunteer is only using them to get experience. 

Nevertheless, there is merit in the exceptions raised. So, this follow-up aims to address those exceptions, and clarify when it is a good idea to Salesforce volunteer at a nonprofit. 

Continue reading So you still want to Salesforce volunteer at a nonprofit?

Flow: Display Photo or Upload Photo

The flow will display either a photo or remind you to upload one. On any object!

How It Works:

The Flow looks for a file attached to that record with the title “SalesforcePhoto” (or another phrase of your choosing).

The File gets the title from the name of the file when you upload it. If you upload SalesforcePhoto.jpg, the title becomes “SalesforcePhoto.” You could also open the File details in Salesforce and change the title.

If that file is found, it’s previewed thanks to the work of Narender Singh, (of course)!

If not found, it asks you to upload a file from your computer named SalesforcePhoto and attaches it to that record. From then on the, the flow displays the photo!

We are using the app because constituents and donors are more than just a record, and seeing their faces humanizes the data.

Donna, Vote Solar
Continue reading Flow: Display Photo or Upload Photo

5 Steps of Flow Loops

Repeat these steps whenever you need to look through a bunch of records

In less then 12 minutes, you’ll learn the five steps and be able to update the records in your collection.

Thanks to 100 Days of Trailhead for hosting this video on their YouTube channel and nudging me to make a follow up which will debut soon.

Continue reading 5 Steps of Flow Loops

Invocable Methods: How to Send Data Between Flow and Apex

Invocable methods used with Flow allow you to launch something in an admin friendly format that uses the massive power of Apex. For example, you have an intake screen that collects answers to a few questions, then you use Apex to loop through many related records dispersing those answers in places hard to reach from Flow.

Creating an invocable method in a nutshell: First you write an apex class with @invocable method (label and description) and whatever code you want the apex to do (easy, right?) Then make your Flow including your input and output variables. Then add an Apex action in Flow to send/receive those variables.

Here are some things I learned about sending data between Flow and Apex.

Invocable methods in Apex always receive a List and they return a List unless the return type is null. Read more under “Inputs and Outputs” here.

SentSent FromReceived by Received
Record Variable.idFlowApexList<Id> listOfIds
Record Collection VariableFlowApexList<List<Opportunity>> nameOfThis
List containing 1 sObject recordApexFlowRecord (single) variable
List of Lists of sObjectApexFlowRecord Collection Variable

This is NOT an exhaustive list at all. I didn’t try sending a record variable (not just the ID from Flow), but I assume that will work. There are also generic sObjects that are pretty special, but I didn’t try.

Continue reading Invocable Methods: How to Send Data Between Flow and Apex