Blog

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

Easy peasy list of all last year’s donations

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.

Package includes this sample template.

UPDATE 1/12: Now available on AppExchange!

CORRECTION 1/10: It does NOT work with Microsoft Word/Excel Mail Merge! I have not figured out how to get it to work. So sorry!

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. 


First, go through this checklist before you ever touch a nonprofit’s Salesforce instance: 


Don’t be a pro bono villain. Do No Harm!

Make sure the volunteer has completed the nonprofit trails on how to volunteer in the best way possible!

Megan Himan, BrightStep

You Should Salesforce Volunteer If…

1. You have an experienced mentor willing to help and/or they have a Salesforce admin on staff. 

This is the best case scenario that covers two pain points that many in the community have echoed. 

  1. Having someone senior by your side to sanity check your strategy, thoughts and deliverables ensures that what you build is actually useful and will be used by the org. This mentor should be someone in the NPSP community. 
  2. Having someone on staff not only signals the nonprofit’s investment in the project, but also serves as your single point of contact so that you’re not spinning your wheels chasing down answers when you could be building an amazing solution instead. 

The bottom line is that expectations are key. If people don’t have a skill in something, they shouldn’t use nonprofit resources to attain that skill, but if they do it carefully with help from those who know what they are doing (hub, or a mentor), it can be helpful.

Joni Bryan, Amplify

I actually feel that volunteering your time towards a non profit is a great way to learn Salesforce. With that said, I absolutely DON’T think that a new person should be doing an implementation especially without direct guidance. If someone is new to Salesforce and are volunteering their time to a non profit the non profit should either have a dedicated Salesforce admin on staff that the volunteer reports to, or the volunteer should be matched with an experienced mentor at a consulting firm who can dedicate the time to ensuring they are successful.

Daisy Sayre Garcia, ImagineCRM

Tip: Make sure all changes are documented and accessible, because they will have follow-up questions. That leads me to my next point.

2. You’re available to unpretzel your mistakes. 

If you’re in it for the long haul with this nonprofit, then you’ll be around to help troubleshoot, train, and make sure the users are set up for success. Eventually, they’ll find mistakes, want more functionality, and have general questions. If you’re not around indefinitely to help, make your time commitment clear from the beginning and ensure all parties agree to this before starting any work. 

Set a deadline for reviewing if it’s working and evaluate its success (ie. in 3 months we will sit down and review progress). Open-ended is usually a recipe for problems. The volunteer should make a 6-month commitment for a specified number of hours each week/month. If they can’t make that commitment for that length of time, then they shouldn’t do it.

Tim Lockie, NowITMatters

Tip: Keep the project very simple — define the engagement as setting up NPSP to track fundraising. Or setting up volunteer management. Nothing fancy.

3. They approach you and are explicitly and specifically asking for help. 

You still need to tread lightly here. In my experience, most users aren’t aware of what they’re asking for, let alone nonprofits who are diving into the world of Salesforce NPSP for the first time. The worst case scenario here is the blind leading the blind with the best of intentions. 

The nonprofit needs help but doesn’t have clear requirements or a strategy, and the volunteer is willing to help but is inexperienced. That is a big hot mess waiting to happen. 

I generally tell people that want to go this route to pick a nonprofit that has existing infrastructure and can support an intern or a volunteer, then ask politely.

Otherwise, I tell people to start with the PTA in their local public school. It is an easy nonprofit that a lot of people have access to — particularly people with children. Approach the school’s PTA board, ask them how they track fundraising, see what they say, and if they say Excel or something like it, suggest that maybe you can help with this thing called Salesforce that is free for up to 10 users for them. The PTA is always my go to for this type of self-serving learning on the job because odds are the PTA will take all the help they can get, they won’t move to anything permanent as the stakeholders are continuously changing on PTAs, and hopefully whatever comes of it is helpful.

Justin Edelstein, Arkus

Don’t forget your own mental health when jumping to help a nonprofit. You can’t pour water from an empty glass, and overcommitting even with the best of intentions can ultimately be tough on everyone. If you find yourself desperate for work experience, try to find your own center before reaching out. People can generally sense your emotional state and being frantic can put off other people.

(Ashley Allen, ITEquality)

Tip: Spend 90% of your volunteer time having conversations with the team, and 10% on building the solution. Dig into what business pain they’re trying to solve, and what success looks like for them. Be diligent to help paint a picture of how you can help transform the way they work. 



Other options to gain experience

  • Go through a volunteer platform where the nonprofit knows what they’re getting themselves into. Here, they have a deeper sense of what they need and are specifically making a call out to the community for help. Go help!
  • Do freelance jobs on platforms like UpWork.
    • Bonus: You get paid while gaining experience. Just be very clear about your experience level and adjust your rate accordingly. 
  • Make. Your. Own.
    • It’s fun, it’s free, and you’ll learn much faster with a personal project. 


Final thoughts: 

  • Mentoring bonus: The mentor should also agree to the commitment for the agreed time period. The mentor can grow their own experience by mentoring. Something in it for everyone!
  • Have a healthy consultant mindset — If they were paying you, what extra effort would you put in to make sure they hire you again? 
  • Be realistic about your time commitment. 
  • Have an exit plan that hands over what you built to someone at the org. You don’t want the nonprofit to fail as soon as you’re gone.
  • Leave a place better than when you found it.

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!

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.

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

Send Tables in Email in Flow – NPSP Example #2 Memorial Gifts

This is the second in a series on sending email with an embedded table of records of NPSP objects. The first post was a list of payments.

“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!”

Rob asked in the Power of Us Hub, back in April

Well, I’m a few months late, but here you go, Rob. I made a Flow that sends out an email like the one below. I see now that you said “letter”…oops. Hopefully you figured out a solution by now, anyway!

Install this unmanaged package to try it out.

Continue reading Send Tables in Email in Flow – NPSP Example #2 Memorial Gifts

Use Summer ’21 Flow Collection Sort to Label Top Ten Donors

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.

Install this unmanaged package to try it out.

Continue reading Use Summer ’21 Flow Collection Sort to Label Top Ten Donors