Nonprofits that are planning a Salesforce implementation can be challenged by unique needs that are not “typical” Salesforce.org use cases. Faced with unique or custom requirements, nonprofits can either look to the AppExchange for a pre-built app (the “buy” option) or create their own solution with custom configurations or code (the “build” option).
With over 1,000 Salesforce implementations for nonprofits under our belt, KELL Partners has helped lots of clients resolve this exact problem. We’d like to share some details about each of these options along with some scenarios that are common among our nonprofit clients.
The BUY Option
The Salesforce AppExchange is a tremendous resource that helps nonprofits extend the capabilities of their instance of Salesforce. AppExchange apps are built specifically for Salesforce and can usually be implemented with relative ease and minimal cost. If you can find an AppExchange app that addresses 80% of your unique requirements, then the “buy” option is your best bet.
A common scenario that usually calls for the “buy” option is to create a web page to capture non-donation information and store it in Salesforce (e.g. subscriptions, volunteer registration, applications, intake forms, etc.). Organizations could take the custom route and build an HTML page on their website that uses the Salesforce API to capture data, or they could buy a form-builder product that works with Salesforce out of the box.
Two products in this category we commonly suggest are Formstack for Salesforce and FormAssembly. They each have their pro’s and con’s but either choice is great for most organizations and can provide a faster solution to a common need among nonprofits.
The BUILD Option
If there is no prebuilt app that addresses your needs, you’ll need to “build” a solution. Don’t panic! Salesforce makes this route much safer and easier than it was in the old days of custom-built, made-from-scratch applications. There are three paths that you can take: simple configuration, complex or hybrid configuration or custom code.
BUILD Option – Simple Configuration
If you’re new to Salesforce, you may not know all of its true capabilities, and there may be a relatively simple solution to your requirements. By “simple”, we mean a straightforward, point-and-click change that most Salesforce admins can do.
A great example of a simple configuration within the Nonprofit Success Pack (NPSP) is using the Levels feature, which automatically assigns a Contact and/or a Household a Level value based on a summary field (e.g. total gifts this year). With Levels, you can automatically segment donors into groups based on any aggregate value you have. Whether it’s total donations this year, total lifetime donations or total number of donations, etc. you can create multiple staggered levels that automatically update with simple configuration. Watch this video to learn how.
BUILD Option – Custom or Hybrid Configuration
Sometimes, a configuration can be pretty complex. This includes situations like creating custom objects that don’t have a native home in Salesforce or using Process Builder to automate a multi-step process that includes dependencies and branches.
A common need we receive from clients is to create a custom calculation for their data. We call this a “data rollup”. Salesforce has some standard capabilities for summarizing data, but sometimes things can get complicated.
For example, sticking with Levels from our earlier example, let’s say you want to create a Level to automatically assign Memberships based on a combination of donation history and soft-credit solicitations to a specific campaign(s). This is totally doable but requires some custom rollups that filter the donation records and aggregate them to match your rules.
Fortunately, there are two great AppExchange apps that we commonly recommend to our clients who need data rollups: DLRS (Declarative Lookup Rollup Summaries) and Rollup Helper. Each of these offers a configurable solution for calculating data that isn’t explicitly tracked in Salesforce, and each can handle edge cases without impacting user permissions. Once your rollups are ready, then you can create the new custom Levels!
In cases like this, it’s best to get some help from a consulting partner. In our experience at KELL, the biggest challenge in these cases is making sure that you understand the business process and that your solution addresses all possible situations – not just the most common ones. Small projects like this are usually 90% planning and 10% execution.
BUILD Option – Custom Code
Even with all of the configuration choices in Salesforce, there are cases where writing custom APEX code is really the best option. Let’s explore a few of common examples that call for custom code – two for an internal process and another for a public-facing process.
Let’s say that every Friday you want to record all the donations you received in the mail that week that were solicited by existing donors. Within Salesforce, that may require several steps for each donation. First, check whether the donor is in your database. If not, create the donor record and then navigate to another screen to record the donation. If the donor already exists in your database, go to that record to record the donation and then soft-credit the solicitor record. This isn’t a big deal every now and again, but if you’re recording lots of these at a time, it could take hours and all that activity back and forth is an invitation for errors. A great solution for this is a custom data entry screen that would make typing easier and would automatically perform all the associated record updates behind the scenes. This custom solution would involve a custom user-interface connected to processes that were configured using Salesforce Flow and the Process Builder. Even though it’s “custom” it’s still fully integrated into your instance of Salesforce.
Another example of an internal process that requires custom code is when you need to roll up or aggregate a large volume of records or perform complex calculations on certain data. It’s not uncommon for these calculations to be complex enough that you need to control the order in which they’re processed given other existing automations in your Salesforce instance. In this case, using APEX classes provides you that level of control, allowing Salesforce to operate more efficiently in a batch mode to perform certain calculations every 15 minutes or so. To accomplish this, you’ll need a developer who can write the APEX class, the triggers and the test code necessary.
Custom code is also a great option for creating a public-facing user interface like a self-service volunteer check-in kiosk. Let’s say that you have regular volunteer shifts that include up to 50 volunteers. You’d like to provide a way for volunteers to check themselves in and print a name badge quickly with minimal staff intervention. Custom code is a great solution for this because it let’s you create a simple, intuitive interface that integrates with your Salesforce database and limits access to personal or sensitive information.
General Things To Keep In Mind
In our experience, almost every nonprofit has at least a few requirements that don’t easily “fit” into Salesforce. When you face these kinds of issues, we recommend keeping a few things in mind:
1) Think about how frequently you expect your process to change. If you reasonably expect any changes within six months, try to stick with a simple configuration.
2) Consider the “edge” cases. It’s relatively easy to design a process that works well for a well-trained, frequent Salesforce user. It’s important to think about all the possible ways that someone can “mess up” a process so your solution can be as robust as possible.
3) Consult an experienced Salesforce partner. You’re an expert in your organization and its mission. If you’re planning a major investment of time and money in Salesforce, you’ll want the help of a partner with expertise in helping nonprofits implement Salesforce in ways that support their mission.
KELL Partners has helped over 1,000 nonprofit clients start or enhance their use of Salesforce, and we can help you too. If you’re not sure how Salesforce can address your organization’s unique needs and programs, we can help. For more information about our custom development services, visit our Custom Solutions page or contact us to discuss your nonprofit organization's unique needs.