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.
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.
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.
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.
“Here is the use case: sending a family of a deceased relative one letter with all the names of people who have donated in memoriam. So, one letter to the family for many people who gave. Client is a large hospice so this is happening weekly. Open to different options — apps? exports & merge? other? Thanks!”
Broad use case: Use the new Collection Sort feature in Flow to find a specific number of records that meet your criteria, and sort them with one or more criteria (criterion?)
Example use cases: I want my top 3 open opps to have a giant dollar sign image on them or I want to automatically nudge/shame the five users who logged in least last month or I want to focus a campaign on my most active volunteers in the summer.
Our specific case: I want to look at a contact record in Nonprofit Success Pack and see immediately that they are one of my top ten donors.
This post is building on the work of the super-smarty Narender Singh aka ForcePanda aka @Nads_P07. With Spring ’21 rich text emails, you can now send tables with lists of child objects.
I followed his tutorial and built two flows specifically using Nonprofit Success Pack (NPSP) objects. The first one is a list of payments and the second is a list of completed volunteer activities. I’ll blog about the second one later. Also on the to-do list is to make one that lists all the gifts received in memory or in tribute to someone else.