CrowdRise + Salesforce Documentation
Latest Release Date: October 19, 2018*
*We are often updating our Salesforce App fixing bugs and adding features. Please check the "Release Notes" section for the most updated documentation.
Latest Release Date: October 19, 2018*
*We are often updating our Salesforce App fixing bugs and adding features. Please check the "Release Notes" section for the most updated documentation.
The CrowdRise for Salesforce App will allow you to import and process your CrowdRise data into your Salesforce orgs. Getting the details of your Events, Teams/Fundraisers, Donations, and Donors into Salesforce has never been easier. With just a few clicks, you can easily create Salesforce records from your CrowdRise data, and begin leveraging Salesforce.com’s powerful built-in tools like Reports and Dashboards, Workflows/Process Builder Flows for automation, and much more!
The CrowdRise for Salesforce App is configured to work as a stand-alone package or to work alongside Nonprofit Starter Pack (NPSP 2.0 & 3.0) or NGO Connect. With all configurations, data is synced to Crowdrise custom objects and the standard Salesforce objects.
After the CrowdRise for Salesforce App is installed and authenticated to sync data, you can elect a manual import or schedule a daily sync of your data to be imported into your Salesforce instance.
If your organization is looking to migrate data from a third party system to your Salesforce instance, CrowdRise for Salesforce support is unable to assist with this migration. This would be of the responsibility of your organization.
CrowdRise for Salesforce uses ‘crowdrise’ as its namespace prefix. All custom field names referenced below should include ‘crowdrise__’ as the prefix if they are referenced via an API.
For clarification on the functionality of the integration, or assistance with a CrowdRise for Salesforce technical issue, our Salesforce team can be reached at firstname.lastname@example.org.
The CrowdRise for Salesforce app is updated regularly with new features and improvements. View the version history for details on all changes and updates.
Since v2.0 of the app, two different modes of operation have been offered:
Installing the CrowdRise for Salesforce App is easy. Reach out to your
Tip: If you haven’t used the CrowdRise app previously or are planning on using the “Advanced Mode” to import data and have that data become new records in your existing workflow or update existing records, it’s highly recommended that you first install into your sandbox, preferably a full sandbox (partial can work, too) to have a practice go at configuring the mappings.
Please obtain the installation link from your CrowdRise/GoFundMe Contact.
You’ll be asked to choose how permissions are configured for the components in the app. Often, choosing the middle option to install for all users is adequate as other factors in your org, like roles and sharing permissions, will also have control over which users are able to access the imported data. You can always choose to install for admins only and later apply permissions to the necessary Salesforce Users through Profiles and/or Permission Sets.
Click on the “Install” button to continue.
Because the App performs communications between Salesforce and the CrowdRise API, you’ll be prompted to allow callouts to be made to the CrowdRise API endpoints. Check the box next to “Yes, grant access…” message and then click on the “Continue” button.
At this point, the installation process will begin.
After a few moments, you’ll either be prompted with a message that installation has completed or that installation is taking longer than expected and that you’ll receive an email when the installation process has completed.
If you’re unsure if the installation was successful, you can navigate to “Installed Apps” under the setup menu and look for “
After installation, toggle the App menu to “CrowdRise” to display the common CrowdRise App related Tabs.
Click on the “CrowdRise Configuration” Tab to get started. After doing so, the first thing you’ll need to do authenticate your CrowdRise account within Salesforce.
To do so, click on the “Authenticate” button.
Click on the “Log in” link
Enter your CrowdRise username and password and then click on the orange “LOGIN” button.
Click on the green “GRANT ACCESS” button to confirm that you’d like to allow Salesforce to communicate to the CrowdRise APIs as your user.
After doing so, you’ll be taken back to your Salesforce organization and you will see that you are now authenticated. Click again on the “CrowdRise Configuration” tab.
At this point you have the option to add another account so you can import data from more than one account, as well as enable or disable accounts. Any disabled accounts are preserved in the settings but will NOT import data.
If you’re using v1.x or v2.x of the CrowdRise for Salesforce app, it is suggested that you upgrade if:
If you do upgrade, be sure to:
There are different types of data that can be imported into Salesforce from your CrowdRise account. Each of the following types can be imported alone or in conjunction with the other CrowdRise data types. See the diagrams above for how these entities relate to each other.
It’s not uncommon for CrowdRise customers to use other Salesforce apps to provide additional functionality. Some of these packages include the Nonprofit Starter Packs v2.0 and v3.0 (also known as Nonprofit Success Packs), NGO Connect, Blackbaud’s Luminate CRM, and many more.
The CrowdRise app is compatible with many of these Nonprofit packages and allow for as much configuration and customization as desired so your CrowdRise data to be imported as seamlessly as possible into your business processes.
Using Import Only Mode, the imported data will not create or update records outside of these objects (e.g., Campaigns, Opportunities, etc). If your org needs the CrowdRise data to create and update other Salesforce object types, you’ll need to enable “Advanced Mode” and define various target Salesforce Object and Field Mappings.
|CROWDRISE ENTITY||SALESFORCE OBJECT||SALESFORCE TAB|
The “Import and Process Mode” takes the integration one step further and helps you merge this data into your existing schema, allowing for the easy matching of existing records and creation of new records, like Campaigns, Opportunities, and Contacts.
Import and Process Mode is a two-step process where Step 1 is the same as “Import Only Mode.” Once imported and in Salesforce, a 2nd step “processes” the data. Processing of the imported data moves the data from the Custom Objects included in the app to the target Salesforce objects’ records, as specified by you in the app’s object and field level mappings.
Example: Step 1 imports your CrowdRise Donations into the “CrowdRise Donations” Custom Object. Your configuration has specified that CrowdRise Donations should be processed into your Org’s Salesforce Opportunity records. Each “CrowdRise Donation” record is examined and an attempt to pair each up with an existing Opportunity is made. If a matching Opportunity is found, the record is updated. If the record is not found, a new Opportunity is created. Once this is done, the original “CrowdRise Donation” Custom Object record is removed (your CrowdRise data is always maintained). In the event of any
Scheduled Sync (1):
Sync Type (3):
Data To Import (4):
This section gives insight into the records imported via the CrowdRise API. Each row represents a different CrowdRise Entity. The second column displays the number of records created. The “Actions” column displays any options enabled.
Total Count: The number of records for that CrowdRise Entity’s Custom Object.
Error Count: As imported records are processed, it’s possible that org customizations, mapping mistakes, etc will prevent records from being processed. When this happens, dedicated fields on the records (Processing Error, Processing Error Details, and Processing Error Date/Time) are populated. The number in this field represents the number of records that could not be processed and need attention.
Process: Perform the processing for only the object on this row.
Reset Errors: Reset errors as above, but only for this object
Remove: Remove records as above, but only for this object
CrowdRise Events, Teams, Projects, Donations, and Donors Tabs include similar Salesforce “Views.”
CrowdRise Logs: CrowdRise log records are created while importing as well as processing takes place. Within the Logs section of the CrowdRise Configuration Tab, an option is available to control the granularity of the CrowdRise Logs. “Debug” mode will capture the finest level of detail and should be used when working with the CrowdRise Support team to capture data for troubleshooting purposes. In most circumstances, the “Error” level is sufficient for only capturing details about problems encountered while importing or processing. You can view the logs created either on the "Logs" section of the configuration, or the "Crowdrise Logs" tab.
From within the Mapping
Each CrowdRise Entity imported can be assigned a different Salesforce object as its target object. As a reminder, “Import and Process Mode” is made up of two stages. Stage 1 simply imports all of the data into the CrowdRise Custom Objects. Stage 2 is where the mapping configuration comes into play. Within this stage, the imported data of Stage 1 is then
Each CrowdRise Entity has many different data points specific to that entity. Each data point can be mapped to fields of the Target Salesforce Object. For example, the CrowdRise Donation Amount field is mapped to the Opportunity Amount field. Not all fields are mapped by default; for most objects, only the required fields are. Addition mappings can easily be created from the Mapping Configuration mentioned above.
Where will your data go? See this document for the default CrowdRise to Salesforce Object and Field
Mapping Templates are sets of pre-defined Object and Field mappings that have been provided to you to allow easier mapping of the objects used with various nonprofit packages, like the NPSP 2.0/3.0 and NGO Connect.
CrowdRise Donors are people. Within Salesforce, Leads, Contacts, and Person Accounts can all be people. When you see the language “Person Types” within the app, understand that this is a shortened way of saying a Lead or a Contact or a Person Account (if enabled).
Each CrowdRise donation is associated with a Donor. Again, Donors may be any of the “Person Types” defined above in your Salesforce
Because the app can search across a few different Salesforce objects to find existing records that match the donor’s information, it is important to have a clear strategy in deciding which record should win in the event of multiple matches. The “Matching Priority” setting allows you to define which type of record should be used in the event of multiple matches. IE: If the setting is set to allow Contacts to win over Leads, in the event that a John Smith donor is found as both a Lead record and Contact record, the Contact record is used.
However, keep in mind that each CrowdRise Entity has its own Target Salesforce Object that is used when no matches are found. If the Target Salesforce Object for CrowdRise Donors was set to Leads in the example above, and no John Smith was found in either Leads, Contacts, or Person Accounts, a new Lead record would be created. Upon subsequent processing of additional John Smith donations, this new Lead record would be used going forward.
If you’ve manually
From the “CrowdRise Configuration” Tab, it’s entirely possible to run processing for a specific CrowdRise Entity only. This is useful in the scenario where you’d just remedied an issue that caused many imported records not to be processed (maybe a conflicting Validation Rule or Required Field) and you need to retry the processing of all those records again, without re-importing first.
It may also be helpful to try/retry the processing of an individual imported record. This can be done by navigating to one of the CrowdRise Custom Object records and clicking on the “Process Now” button. This will apply the processing rules and mappings to only this record.
Are you noticing that the record counts of your CrowdRise Custom Objects
On the five “CrowdRise” Custom Objects, included with the app, there are three fields that provide information around any Salesforce errors experienced while processing the records (when “Advanced” mode is enabled).
Processing Error: This checkbox
The following documentation pertains to the Mapping Configuration screen, accessible via the “View/Edit Current Mapping Configuration” button on the "Mapping" Tab.
On the Mapping Configuration screen, there are two rows of navigation. The uppermost controls which object you're mapping and the next level selects what kinds of configuration changes are available on the page.
Your CrowdRise.com data is comprised of a few different data types that are related to each other. The CrowdRise data types are:
For each CrowdRise object, there are five different collections of settings, grouped by purpose, that can be configured. Each will be detailed below.
Each CrowdRise object type can point to a different Salesforce
The Salesforce Object selected in this dropdown will be the object searched when checking for existing records and will be the object type used when creating new records when no existing records are found.
Below are the default CrowdRise to Salesforce object mappings:
|CROWDRISE ENTITY||SALESFORCE TARGET OBJECT|
|Events||Campaign (Event RecordType)|
|Teams||Campaign (Team RecordType)|
|Projects||Campaign (Project RecordType)|
If the object you selected as the “Target Salesforce Object” has and makes use of Record Types, any available Record Types will be displayed in this
When records of most Salesforce object types are created, there is a default “Name” field that needs to be populated (e.g. the Campaign and Opportunity objects). This setting allows you to have control over how the “Name” field for
The above example uses two merge fields:
It also has static text included as well, a hyphen between the name and id. Any text that isn’t part of a merge field tag is treated as static text and will always be present.
If the formula were to run on a field where:
Event_Name__c = Summer Fun Run 2017
Entity_Id__c = 12345
Then that record’s name would evaluate to and result in a record name
This is a special setting that is only displayed when:
The purpose is to allow each “Donor” that exists as a Lead or Contact to be added to the related Campaign(s) as a Campaign Member.
Note: If the same individual makes multiple Donations, that Donor’s Lead or Contact record will only be related to the Campaign once. This is native to Salesforce to prevent you from adding the same individual to your various Campaign distribution lists more than once.
Opportunity Contact Roles are a native feature of Salesforce that allows for the identification of individuals that are involved with the Opportunity. How they are related to the Opportunity is defined by the “Role” associated w/ that Contact within these Opportunity Contact Role records.
The CrowdRise app can be configured to automatically create Opportunity Contact Roles for you, based on the resulting Contacts for Donors and/or Project Owners.
These settings are only displayed when:
When enabled, each Donation created as an Opportunity will list the Donor and/or Project Owner within the Opportunity Contact Roles related list, with the role defined for each in the section of Donation mappings, displayed below:
Options for configuring OCRs are found on the Mapping Configuration Page, under “Donations”
This is a special setting that only displays when mapping CrowdRise Donors and the target object is Contact.
The purpose of this setting is to prevent orphaned Contacts, Contact records without a parent Account. There are 5 settings to help control when an Account is created for your Donor Contacts that don’t have parent Accounts.
This doesn’t do anything to populate Contact.AccountId. Useful for when you have other logic in your org, like custom triggers, Workflow/Process Builder Flow Field Updates, or other packages, that will populate the Contact’s Account.
This will create a new Account for every Donor. A John Smith Donor will have a parent “John Smith” Account. This setting results in the most Account records created.
To reduce the number of Accounts created, but ensure that Donor Contacts have a parent Account, all of the Donors related to Donations will be related to a single Account. Each Event will have a maximum of 1 Account record used for any Donors making Donations under that Event that don’t already have an Account. The resulting Account might be named something like “Summer Fun Run 2017,” named after the Event.
Same logic as the above, but a single Account for each Team. All the Contacts that need parent Accounts that belong to the same
Same logic as above, but the next level down (keeping in mind that Projects are children of Teams, which are children of Projects). This results in
In Salesforce, it’s entirely possible that your CrowdRise Donors exist as Leads and/or Contacts (and/or Person Accounts, if enabled, too), depending on your business logic. Whenever the app is attempting to match existing records, this settings allows you to control which type of record should be used, in the event that both a Lead and Contact are identified.
The object on top will be used first.
In the above sample, if our “John Smith” Donor exists as both a Lead and a Contact, the Contact will be used for all field relationships within “Map Lookup Fields” and the “Map Lead/Contact Lookup Fields” mappings.
Records are imported from CrowdRise into Salesforce through a series of batch jobs. Sometimes,
In the event that this logic doesn’t work well with the default batch size of 200 records at a time, you can throttle the number of records being processed by using this setting, down to the point of batches processing single records.
Keep in mind that the lower the number, the more batch job iterations will be required to process all of your data. More batch job iterations
For each CrowdRise object, there is a set of CrowdRise data points that can be mapped to your Salesforce object’s fields. The “Simple Maps” section allows you to just that.
Choose the CrowdRise data point you want to map to your Salesforce record in the
In the case where a record already exists in Salesforce, the “Allow Overwrite” checkbox allows you to control whether or not the value from CrowdRise can overwrite an existing field value in Salesforce. If the field is blank in Salesforce, but
Your CrowdRise data is related to each other. A Donor should be connected to a Donation and both the Donation and the Donor should be connected to your Project, Team, and ultimately the Event.
The “Lookup Maps” section allows you to populate lookup fields for the various relationships amongst your CrowdRise data.
Each column row is a different relationship (e.g., relating Donations to a parent Event or to its Donor).
Target Salesforce Field:
The second dropdown is the external Id field on the related object. This will be the field used to match the correct parent record.
Same use as within the “Simple Maps”
For the above example:
Assume that our CrowdRise Event is mapped to “Campaign” and CrowdRise Donation is mapped to “Opportunity.
Parent Event for Donation - this is the label for the relationship we’re trying to auto-populate. Essentially, we’ll be creating an Opportunity record with a lookup field to a parent Campaign. This will create the relationship between the CrowdRise Donation and Event within Salesforce by creating a relationship between the resulting Opportunity record and its parent Campaign
Target Salesforce Field
This is a more complex version of the “Lookup Maps” section. When using this section, keep in mind that each Donation will have a related Donor and that Donor will either be a Lead or Contact record.
This section of mappings allows you to populate Lookup fields on your target object, based on values found on the matching Donor’s Lead or Contact record.
For example, assume we’re mapping Donation fields and our target object is Opportunity. The Opportunity object has a standard field called “Account” (or possible “Household” if using an NPSP). We want to configure a mapping that populates the Opportunity’s Account field with the Account field found on the Donor’s Contact.
The label of the relationship to be populated. In the above example, the row displayed is the one that will populate the Opportunity’s parent Account (i.e., Opportunity.AccountId).
The Donation Donor will either be a Lead or Contact record, either new or existing. If the resulting Donor match is a Lead record, the “Lead Match” column will be used.
Lookup Field: This is the field on the target object we want to populate. For this sample scenario, we’re not attempting to populate any Opportunity fields when a Donor is matched to a Lead record.
Use Value From
This is the field on the Lead record we want to take the value from to populate the above lookup field. Again, in this sample scenario, we’re not doing this.
Same as “Lead Match,” but used in the event the Donation Donor results in a Contact record match.
Lookup Field: Same as above - we want to populate the Opportunity’s Account field (i.e., Opportunity.AccountId).
Use Value From Contact’s: Same as above - in this case, our Donation’s Donor resulted in a Contact record for that Donor. We want to take the Contact’s Account (i.e., Contact.AccountId) to populate the above lookup field (i.e., Opportunity.AccountId).
Same effect as the “Map Simple Fields” setting.
This section is used when you always want to populate a specific field with the same value, a value not derived from the imported CrowdRise data.
In the above example,
Same effect as the “Simple Maps” setting.
We will periodically make fixes and updates to the CrowdRise for Salesforce App. These are full upgrades and will not require any additional work on your end.
There are currently 4 updates to this version. Please see release notes below for more information
This minor release was primarily focused on supporting a new field supported by the API, the Recurring Donation field.
The current version supports importing the “Recurring Donation” field. It will be stored in the IsRecurring checkbox field on the Donation Import object, as shown here:
This field can be mapped to any checkbox field you like on the object that you are processing your Donations to (by default this is Opportunities).
In previous versions of the CrowdRise app, Project Owner details were only mappable as part of the Project level mapping. Data points like Project Owner first name, last name, and email address could only be mapped to fields on the Project’s target Salesforce object.
This version keeps that functionality, but also allows you to map Project Owners as their own entity, targeting either Salesforce Leads or Contacts, just as you currently do for Donors. Within this object level mapping, you have the ability to map all Project Owner related data points such as:
The “Import Results” or “Records Pending Processing” table now include “Project Owner”
Note: This object will not be enabled upon upgrade for existing customers. Customers installing the app for the first time will have this option enabled by default.
When your mapping configuration targets Salesforce Opportunities for CrowdRise donations, there has always been the option to let the app create Opportunity Contact Role records to relate the Donor’s Contact to the Opportunity Donation. When enabled, the Opportunity Contact Role record’s Role value was always set to “Donor.”
Starting with this version, the following enhancements are included:
The ability to create OCR records for Project Owners gives many customers, using NPSP, the ability to leverage CrowdRise data within their NPSP nightly calculation of Soft Credits. To do this, simply configure the “Role” defined for the Project Owner OCR to be one of the Roles included in your NPSP Soft Credit defined roles.
For more details on this feature, see this section.
A new field mapping at the Donation level, named “Charity Name” has been added to allow customers to map a Donation’s Charity Name to their field of choice in Salesforce for the configured Donation Target Object. This field can also be used for Charity Aliases/Chapter Codes. For more details on these advanced usages, please contact CrowdRise support.
This is not mapped by default upon upgrade for existing customers or first install for new users of the app.
Creating the new mapping for Charity Name