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 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?
Send your donors 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.
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.
Record Collection Variable
List containing 1 sObject record
Record (single) variable
List of Lists of sObject
Record 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.
“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!”
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.
Let’s say your organization has 4 (virtual) workshops a year. When a new Contact is created from your website, you want to invite them via email to the NEXT workshop.
We’ll use a record trigger flow and two flow elements to do that. No loop!
Let’s get even fancier: we’ll use Scheduled Paths (#spring21) to send the email three days after the contact is created. Let’s use a formula to make sure the event starts more than six days from now – to give them three days notice before the event.
Said another way:
Day 1 Monday – Contact Created.
Record-triggered flow looks for the next upcoming workshop that is happening LATER than Day 7 and prepares to send an email.
Day 4 Thursday – Email sent inviting person to next workshop.
Are you reading Samantha Shain’s blog The Data Are Alright yet? I LOVE how she talks through all the ups and downs of building her first flow – which is a really complicated one, by the way! She shares her thought processes, her research and her frustrations, pride and other feelings so openly. So if you see an increase in feelings shared here, you know who inspired me!
In Sam’s post, she mentions a few things that she had trouble figuring out. She uses a custom button or link with a URL to pass a record id to a Flow. As she guessed, there is a more elegant way to do it. So elegant even Lady Whistledown would approve.
CORRECTION: Sam tweeted “I got it from a Quick Action eventually on my own (I wish I had this resource then), but what I really needed was to pass in a *group* of ids from a list view… which afaik is not possible without code.”