This article provides a complete guide for Funraise's Salesforce App, including step-by-step setup instructions.
How it works
The Funraise Connect Salesforce App is a managed package and is built with Salesforce best practices to keep your data clean and working for you.
Funraise data is sent to Salesforce using standard and custom objects. You can customize field mappings for Contacts and Opportunities. Additional field mapping and custom objects are included with the app and do not require configuration.
Data Syncing
This table shows Funraise objects and the Salesforce objects they sync with.
Funraise Object | Salesforce Object | Salesforce Object Type |
Supporters | Contacts | Standard |
Transactions | Opportunities | Standard |
Campaign Pages | Campaigns | Standard |
Transaction + Supporter | OpportunityContactRoles | Standard |
Campaign + Supporter | CampaignMember | Standard |
EmailMessage & EmailMessageRelation | Standard | |
Task + Interactions | Tasks | Standard |
Subscriptions | Subscriptions | Custom |
Events | Events | Custom |
Registrations | Registrations | Custom |
Funraise Errors | Funraise Errors | Custom |
When is data synced?
When a Funraise record is created or updated, it’s synced with Salesforce in real-time. Data is synced one way, from Funraise to Salesforce.
☝️ Many records can also be synced manually from Funraise. This is useful when an error occurs in automated syncing. When a sync from Funraise fails, we'll automatically retry the sync several times to reduce manual intervention.
Opportunities are created or updated when a Funraise Transaction is created or updated
Contacts are created or updated when a Funraise Supporter is created or updated
Campaigns in Salesforce are created or updated when a Funraise Campaign Site is created or updated
Campaigns in Salesforce are also updated when a Fundraiser joins or leaves a team
Contact Activity is logged in Salesforce when a Funraise Task or Interaction is created or updated
Contact Activity is logged in Salesforce when an email is sent from Funraise
Subscriptions in Salesforce are created or updated when a Funraise Subscription is created or updated
Events in Salesforce are created or updated when a Funraise Event is created or updated
Registrations in Salesforce are created or updated when a Funraise Registration is created or updated
Good to know
Nonprofit Success Pack (NPSP)
The Funraise Salesforce Connect App can work with the Nonprofit Success Pack (NPSP), although NPSP is not required. Please note: The Funraise App does not use the NPSP Subscriptions Object. With feedback from many organizations, we built an improved custom object to manage your Subscriptions.
One-way syncing
Data is synced one way, from Funraise to Salesforce. This means changes made in Funraise will appear in Salesforce, but changes made in Salesforce will not appear in Funraise. Please note: It is possible for Funraise to overwrite data in Salesforce, this is intentional as new activity in Funraise will provide the most recent data for syncing.
Open source
The Funraise App is open source. While we don’t recommend using the unmanaged package, developers can learn more and contribute.
Setup
🤓 Requires Salesforce knowledge and access
If you’re familiar with Salesforce, you can be up and running in a few minutes. This documentation assumes you are familiar with Salesforce and have the appropriate user permissions to configure your Salesforce Organization.
👀 Use Salesforce Classic View
While the integration works great in Classic or Lightning Views, these setup instructions are written for Classic View.
🧘♀️ IP address restrictions
If you have IP Address Restrictions enabled, you may need to select "Relax IP Restrictions" on the Funraise Connected App in order to complete setup.
Inside Salesforce
First, you'll create a Connected App in Salesforce.
In Salesforce, navigate to Setup > Build > Create > Apps and select New under Connected Apps
Fill out the new Connected App form
We recommend naming the app,
Funraise
Check the box to
Enable OAuth Settings
Set the Callback URL field to
https://platform.funraise.io/salesforce/access/token
Add the OAuth scopes and access:
Manage your data (API)
Perform requests on your behalf at any time (refresh_token, offline_access)
We recommend keeping the default OAuth Policies Permitted Users setting:
All users may self-authorize
Uncheck the box for Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows
Save the new Connected App
Now, when viewing the Connected App, the
Consumer Key
andConsumer Secret
should be visible, these values will be used to integrate with Funraise in the next step
Next, you'll install the Funraise Connect App.
In Salesforce, Navigate to the Application Switch at the top right of your screen and launch the Appexchange
From the Salesforce Appexchange, type in
Funraise Connect
in the app search bar to locate the Funraise application. Click to access and install the packageOnce the package is installed, you will be prompted to map Funraise data to fields on the Opportunity and Contact record
We suggest clicking
Use Default Mappings
to get started. You’ll be able to add additional field mappings anytime after setup.If you're ready to add custom field mappings now, you can learn more about field mappings below.
Next, you'll need to set some permissions.
The Salesforce user account that authenticates the Salesforce integration in Funraise will need permissions to create and edit objects and fields that data from Funraise is synced with. This user will also need to have the Funraise Permission Set. If you've already connected, you can find the user that last authenticated the Salesforce Connected App, from the Salesforce Connected App page.
First, add the Funraise Permission Set to give access to objects, fields, and classes that are included in the Funraise Connect Package
Navigate to Setup > Permission Sets > select Funraise Permission Set and click Manage Assignments.
From that screen, you can add your user (or the user who will authenticate the app in Funraise) and click Assign
Next, make sure this user has create and edit access for Contacts and Opportunity objects and any fields on these objects that are mapped with Funraise fields.
Next, if you're using Sites or P2P Fundraising in Funraise and want to sync to Campaigns in Salesforce, in addition to assigning the Funraise Permission Set, you will need to check the box on the user profile for Marketing User to give this user the ability to Create and Edit Campaign records.
And finally, if your organization is using Nonprofit Success Pack (NPSP), Funraise’s integration syncs the NPSP Primary Contact on the Opportunity (npsp__Primary_Contact__c
). The Salesforce user that authenticates the Salesforce integration in Funraise will need create and edit permissions for this field.
Inside Funraise
Now, you'll connect your Funraise Connect App with your Funraise account.
In Funraise, access Settings > Integrations
Find the Salesforce integration card > click the actions menu > Edit
Select your type of Salesforce environment
Production will use login.salesforce.com
Sandbox will use test.salesforce.com
Enter your
Consumer Key
from the Salesforce Connected App in theClient Key
fieldEnter your
Consumer Secret
from the Salesforce Connected App in theClient Secret
fieldClick Complete Setup
A Salesforce OAuth popup window will appear requesting the necessary permissions. Click Allow
When you receive a confirmation message saying, “Salesforce Successfully Connected”, you can close the pop-up window. Setup is complete!
🌈 Sync Everything
Although you can deactivate specific objects from syncing, we suggest syncing everything at this time unless you have a nonstandard or unique Salesforce configuration.
Test your setup
Next, we recommend testing your integration connection. If you are able to duplicate the expected results below, your initial setup is working properly.
Test
In Funraise, create a new Transaction: Navigate to Transactions > click New Transaction. Enter a test Supporter and test Transaction data. Click Save
Expected results
In Salesforce: The test Transaction should appear as an Opportunity
In Salesforce: The test Supporter should appear as a Contact
Field Mappings
During setup in Salesforce, you’ll be prompted to map Funraise fields to the Contact and Opportunity. You can also edit field mappings at any time from the Setup tab in the Funraise App.
Customize your Contact and Opportunity field mapping to meet your own database strategy. Sync as few or as many fields as you need.
👍 Only Contacts and Opportunities require mapping
You’ll only need to map fields to Contacts and Opportunities. We’ll take care of everything else.
Conflict resolution
When mapping fields, you can determine how to handle data syncs when data already exists in a Salesforce field. Conflict resolution can be configured for each field. Options include:
Overwrite Existing Data with Funraise Data
Do Not Overwrite Existing Data
Only Overwrite Existing Data if Funraise Data is not empty
Only Overwrite Existing Data if Funraise record was updated more recently
Contacts
Funraise Supporter data can be mapped to the Salesforce Contact record.
Contact Standard fields
We recommend mapping the following Funraise fields to Salesforce standard Contact fields.
Funraise field | Salesforce field | Field type |
text | ||
First Name | First Name | text |
Last Name | Last Name | text |
Institution Category | Description | text |
Phone | Home Phone | text |
Address 1 | Mailing Street | text |
City | Mailing City | text |
State | Mailing State/Province | text |
Postal Code | ZipCode/Postal Code | text |
Country | Country | text |
Birth Date | Birthdate | date |
NPSP Contact custom fields
If you’re using Nonprofit Success Pack (NPSP), some aggregate custom fields may already be created and do not require mapping from Funraise. If you are not using NPSP, you’ll need to create these custom fields before mapping.
Funraise Field | NPSP Custom Field | Field type |
Total Donation Amount | Total Gifts | number or currency |
Total Donation Count | Total Number of Gifts | number |
Last Donation Date | Last Gift Date | DateTime |
First Donation Date | First Gift Date | DateTime |
Total Soft Credit Amount | Soft Credit Total | number or currency |
Total Soft Credit Count | Number of Soft Credits | number |
Contact custom fields
Create custom Contact fields in Salesforce to sync additional data from Funraise. The following table shows all additional fields that can be mapped to the Contact.
Funraise Field | Field type | Details |
Institution Name | text |
|
Gender | text |
|
Notes | text |
|
Donor Type | text |
|
Tags | text |
|
Email Opt-out | checkbox |
|
Is Fundraiser | checkbox |
|
Fundraiser Donation Amount | number or currency |
|
Fundraiser Donation Count | number |
|
LinkedIn URL | text | Coming soon |
Facebook URL | text | Coming soon |
X (Twitter) URL | text | Coming soon |
Age | number | Inactive field* |
P2G Score | text | Inactive field* |
Net Worth | text | Inactive field* |
Income | text | Inactive field* |
Gift Capacity | text | Inactive field* |
Annual Donations | text | Inactive field* |
Real Estate | text | Inactive field* |
Photo URL | text | Inactive field* |
Employer Name | text | Inactive field* |
Job Title | text | Inactive field* |
Homeowner | text | Inactive field* |
Marital Status | text | Inactive field* |
Influencer Score | text | Inactive field* |
Education | text | Inactive field* |
*Inactive fields are fields that are no longer being populated in Funraise but may have historic data. We do not recommend mapping these fields at this time.
Opportunity field mapping
Funraise Transaction data can be mapped to the Salesforce Opportunity record.
Opportunity Standard fields
We recommend mapping the following Funraise fields to Salesforce standard Opportunity fields.
Funraise field | Salesforce field | Field type |
Amount | Amount | number or currency |
Created Date | Close Date | date |
Donation Name | Opportunity Name | text |
Form Name | Lead Source | text |
Tags | Description | text |
Opportunity custom fields
Create custom Opportunity fields in Salesforce to sync additional data from Funraise. The following table shows all additional fields that can be mapped to the Opportunity.
Funraise field | Field type |
Source Amount | number or currency |
Currency | text |
Transaction Id | text |
Gateway Transaction Id | text |
Status | text |
Form Name | text |
Tags | text |
Allocation | text |
Donation URL | text |
Campaign Goal Id | number |
Campaign Page Name | text |
Check Number | text |
Memo | text |
Donation Comment | text |
Note | text |
Is Recurring | checkbox |
Recurring Sequence | number |
Is Operations Tip | checkbox |
Operations Tip Amount | number or currency |
Is Anonymous | checkbox |
Is Offline | checkbox |
Is Pledge | checkbox |
Payment Method Expiration Date | text |
Payment Method Type | text |
Payment Method Last Four | text |
Payment Method Card Type | text |
Is Dedication | checkbox |
Dedication Email | text |
Dedication Message | text |
Dedication Name | text |
Dedication Type | text |
Company Match | checkbox |
Company Match Company Name | text |
Company Match Employee Email | text |
Donor Covers Fees Eligible | checkbox |
Donor Covered Fees | checkbox |
Donor Covered Fee Amount | number or currency |
UTM Source | text |
UTM Medium | text |
UTM Campaign | text |
UTM Content | text |
UTM Term | text |
Contact matching
When Funraise syncs Supporter data with Salesforce, Funraise will attempt to find a matching Contact in Salesforce. If no matching Contact is found, a new Contact is created. Below are the methods and the order we use these methods to identify a matching Contact.
Funraise ID: When a Supporter record is sent from Funraise to Salesforce, it is sent along with an internal identifier that is used to populate a custom attribute called
Funraise ID
. The first check is to see if there is an existing Contact record with a matchingFunraise ID
.First Name, Last Name, and Email: If no Contact records match the previous criteria, we'll find the most recently created Contact record that exactly matches by
First Name
,Last Name
, andEmail address
. TheFunraise ID
will be updated at that point for future identification.Contact.Email: If no Contact records match the previous criteria and if email is present on the Supporter record being sent over, we'll find the most recently created Contact record that matches by
Contact.Email
. TheFunraise ID
will be updated at that point for future identification. Good to know: Email addresses are unique in Funraise. Two Supporters cannot share the same email address.Contact First Name, Last Name, MailingStreet, MailingCity, MailingState, MailingCity, MailingPostalCode, MailingCountry: If the previous two criteria could not be used to locate an existing Contact record, a search for an exact match on the listed attributes will be performed.
If no Contact records match the previous criteria, a new Contact record will be created.
Opportunity Contact Roles
There are four Contact Roles that the Funraise integration might assign to Contacts on an Opportunity: Donor, Fundraiser, Soft Credit, and Team Captain.
Donor: As the name suggests, Donor is the Contact who initiates the transaction.
Fundraiser: Fundraiser is the Contact who is associated with the fundraising page where the donation was made. In the case of a donation made to an individual fundraiser page, the Fundraiser is the individual that created the fundraiser page. In the case of a donation to a team page, the Fundraiser reflects the fundraising team instead of an individual.
Soft Credit: When a Supporter is manually assigned as a Soft Credit on a Transaction in Funraise, that Supporter will be assigned the Soft Credit role on the Opportunity in Salesforce. In the case of Campaign Site donors, it works a bit differently—while in Funraise the fundraiser will be assigned Soft Credit on a donation made to their page, the Funraise integration does not assign a Soft Credit role to the fundraiser in Salesforce. To be clear, the integration only assigns the Soft Credit Contact Role in Salesforce, when a Soft Credit is manually applied in Funraise.
Team Captain: A Team Captain Opportunity Contact Role is created in either of these cases:
A donation is made to a team page
A donation is made to an individual page that is part of a team but is not the team captain’s individual page (to avoid creating an additional Opportunity Contact Roles for the same contact)
Other record types
Funraise's Salesforce App also creates and updates several other record types, including both standard objects and custom objects included in the app. Below you can review details about each of these objects and their synced fields.
You'll only need to map Funraise fields to Salesforce Contact and Opportunities records, as described above. The following object field mappings are managed by the Funraise App — no setup or configuration is required.
Campaigns
Funraise Campaigns are synced with the standard Campaign Salesforce object.
When you create a Campaign Site in Funraise, a new Campaign is created in Salesforce. Additionally, when a new fundraiser or team page is created, a new Campaign is created in Salesforce. This enables Campaign hierarchy and Opportunity rollups.
Campaign activity represents Transaction activity through a Campaign Site. This means Transactions are only associated with a Salesforce Campaign if they are associated with a Funraise Campaign Site (Transactions that have a Page Goal).
☝️ Not all Funraise Transactions are associated with a Salesforce Campaign
Only Transactions that are associated with a Funraise Campaign Site, Transactions that have a Page Goal, are associated with a Salesforce Campaign.
🎯 Start Campaigns in Funraise
Create Campaigns in Funraise first as Campaign Sites. When a Campaign Site is created in Funraise, a Campaign is created in Salesforce and new Opportunities (Transactions on the Campaign Site) will be attached automatically.
Campaign synced fields |
Name (page name) |
Description (appeal text) |
Status |
Expected Revenue (goal amount) |
Funraise Id (Custom field added by Funraise) |
Parent Id (for campaigns with individual or team fundraiser pages) |
Tasks
Funraise Tasks that are open are synced on the Contact’s Open Activity list. Completed Funraise Tasks and Interactions are synced on the Contact’s Activity History. Emails sent from Funraise are also synced on the Contact’s Activity History.
Task & Interactions synced fields |
Task Type |
Completed Checkbox |
Created Date |
Email synced fields |
Subject |
Status |
Created Date |
Subscriptions
Subscriptions is a custom object included in the Funraise App. Recurring transactions are synced as Opportunities attached to a Subscription record.
Subscription synced fields |
Status |
Amount |
Currency |
Frequency |
Last Payment Date |
Next Payment Date |
Donation Count |
Supporter |
Form Name |
Campaign Page Name |
Allocation Name |
Comment |
Note |
Is Operations Tip |
Funraise Campaign Goal |
Is Imported |
Payment Method Type |
Payment Method Last Four |
Payment Method Expiration Date |
Is Dedication |
Dedication Type |
Dedication Name |
Dedication Email |
Dedication Message |
Is Company Match |
Company Match Employee Email |
Company Match Company Name |
Events
Events is a custom object included in the Funraise App. When a Funraise Event is created a Salesforce Event is created. Registrations, which are discussed next, will be associated with Events.
Event synced fields |
Event Name |
Event Description |
Event Start Date |
Event End Date |
Registrations
Registrations are a custom object included with the Funraise App. Registrations are associated with Events.
Registration synced fields |
Opportunity |
Ticket Name |
Ticket Amount |
Tax Deductible Amount |
Registration Id/name |
Event |
Supporter |
Guest of |
Attended Checkbox |
Questions
Questions are a custom object included with the Funraise App. Answers will be associated with Questions.
Question synced fields |
Question Name |
Question Text |
Answer Type |
Answers
Answers are a custom object included with the Funraise App. Answers can appear as related lists on Opportunities, Contacts, Registrations, and Campaigns.
Answer synced fields |
Answer |
Question |
Opportunity |
Contact |
Registration |
Campaign |
Pledges
A pledge is a custom object included with the Funraise App that tracks expected revenue from a Contact (Supporter). There are three ways this custom object can be used:
1. Create a pledge in Funraise to track a single donation pledge in Salesforce
When an offline transaction is created and marked as a pledge in Funraise, a pledge record will be created in Salesforce. This pledge record in Salesforce will only attribute this single transaction to this pledge.
For example, you have a donor who has pledged to write a $10,000 check next month.
2. Create a pledge record in Salesforce to track multiple donations toward a pledge in Salesforce
When a pledge record is created in Salesforce, that record can be attached to a particular contact (Supporter). Any new opportunities (Transactions) for that contact within the specified start and end dates will count toward this pledge.
For example, you have a donor who has pledged to give $10,000 over the next year in several installments. Each donation made by this donor will count toward that pledge until it is fulfilled.
3. Create pledges for recurring subscriptions
When a subscription is created, a pledge record can be created and used to track each recurrence toward a total pledge amount.
For example, let's say you treat each recurring subscription as an annual pledge that you expect to be paid off in 12 months. You can enter "12" in the Subscription pledge period (months)
field in the integration settings in Funraise. This will calculate the pledge amount.
Regardless of the frequency of the subscription, the pledge amount is the expected amount from the subscription in the number of months you entered. For example, entering "12" in the Subscription pledge period (months)
field means:
when a $10 monthly subscription is created, the pledge amount is $120
when a $10 quarterly subscription is created, the pledge amount is $40
Each recurrence and any new Opportunity (Transaction) from this Contact (Supporter) will be related to this pledge.
To activate the Subscription Pledge feature, you must enter a number in the Subscription pledge period (months)
field in settings. In Funraise: Go to Settings > Integrations > Salesforce.
Pledge synced fields | Details |
Funraise Pledge Name |
|
Pledge Amount |
|
Received Amount |
|
Percent Complete |
|
Funrasie Supporter |
|
Pledge Donation | Filled if pledge was created by an offline donation pledge |
Pledge Subscription | Filled if pledge was created by a subscription |
Is Active |
|
Start Date |
|
End Date |
|
Opportunities | Related list of Opportunities attributed to this pledge |
Errors
We’ve also included a custom object called Funraise Errors which is helpful to view and correct automated syncing issues. Perhaps most helpful, Funraise Errors will show you when your own Salesforce organization setup is conflicting with automatic syncing. We suggest adding this tab to your Salesforce navigation.
Frequently Asked Questions
☝️ Although custom workflows or logic may be suggested in this document, Funraise does not provide support for custom workflows or logic in your own Salesforce environment.
How can I test the integration setup?
How can I test the integration setup?
We recommend validating Salesforce connectivity by creating an offline Transaction in Funraise. Once the Transaction is saved in Funraise, a new Opportunity and Contact should be visible in Salesforce.
Does deleting a record in Funraise also delete the record in Salesforce?
Does deleting a record in Funraise also delete the record in Salesforce?
No. Deleting a record in Funraise will not delete the record in Salesforce.
When creating a new Campaign Site in Funraise, what fields are populated on the Campaign in Salesforce? Can we adjust the field mappings on Campaign records?
When creating a new Campaign Site in Funraise, what fields are populated on the Campaign in Salesforce? Can we adjust the field mappings on Campaign records?
When Campaign syncing is enabled for your integration, Funraise creates a Salesforce Campaign for each Home, Team, and Individual page created on your Campaign Site. Donations to these pages will be assigned the corresponding Campaign in Salesforce (Primary Campaign Source will be populated on the Opportunity).
When Funraise creates a Campaign record in Salesforce, it populates the following attributes:
Name (page name)
Description (appeal text)
Status
Expected Revenue (goal amount)
Funraise Id (Custom field added by Funraise)
Parent Id (for campaigns with individual or team fundraiser pages)
At this time, it is not possible to change the field mapping for Campaigns. If you decide to implement custom logic to alter these values, be aware that any updates to the page in Funraise (including changes to appeal text or goal amount) will cause the campaign record to sync again.
Are Campaign Member records created for donors to a Campaign Site?
Are Campaign Member records created for donors to a Campaign Site?
No. Campaign Member records are not created in Salesforce for the donor to a Campaign Site. A Campaign Member record is created for the fundraiser.
If a record is updated in Salesforce, do the changes sync back with Funraise?
If a record is updated in Salesforce, do the changes sync back with Funraise?
No, the Funraise Salesforce integration is one way, from Funraise to Salesforce.
When mapping, what does the “Constant” checkbox mean?
When mapping, what does the “Constant” checkbox mean?
When mapping Funraise fields with Salesforce fields during setup, you can either choose to send data from Funraise or populate a constant value for a particular field. For example, If you have many sources connected to your Salesforce environment, you might have a custom field for “Source” and you could fill that field with a constant value of “Funraise” for records created by Funraise.
I want to use different values for Opportunity Stage than what Funraise populates. For example, “Received” rather than “Closed Won”
I want to use different values for Opportunity Stage than what Funraise populates. For example, “Received” rather than “Closed Won”
If Opportunity Stage is left unmapped, the following is how Funraise attempts to set it based on donation status:
If the donation is Complete in Funraise -> We query for an opportunity stage that is defined as
isClosed
= true andisWon
= trueIf the donation is Pending in Funraise -> We query for an opportunity stage that is defined as
isClosed
= false andisWon
= false.If the donation is Failed or Refunded in Funraise -> We query for an opportunity stage that is defined as
isClosed
= true andisWon
= false.If there are multiple Salesforce opportunity stages that meet the criteria, we pick the first one defined in the list (there is a sort order param).
Another option for using unique stage names is to create a custom field to store the Funraise Transaction status. From there, you could implement a custom workflow or formula to populate the stage based on the Transaction status that has been stored in your custom field.
Stand-alone Giving Forms (non-Campaign Site forms) do not create and sync with a Salesforce Campaign. How can I set Primary Campaign Source on Opportunities created from a stand-alone Giving Form?
Stand-alone Giving Forms (non-Campaign Site forms) do not create and sync with a Salesforce Campaign. How can I set Primary Campaign Source on Opportunities created from a stand-alone Giving Form?
Funraise only populates the Primary Campaign Source on Opportunities for donations made to a Campaign Site.
For Primary Campaign Source to be populated on Opportunity records that are tied to stand-alone Giving Forms (i.e. a Giving Form not associated with a Campaign Site), there may be some alternate strategies:
If the Primary Campaign Source is a static value (i.e. all opportunities originating from Funraise should have the same primary campaign source), you can specify the Salesforce Id of the Campaign when mapping Donation → Opportunity, using a constant value.
If the campaign association needs to be dynamic, you can create a custom field on the Opportunity to store the Giving Form name, or whatever field(s) the campaign association logic depends on. Then use custom logic, such as a process builder or formula, to populate the Campaign Id on the Opportunity based on the value(s) in this custom field.
I prefer that all my Opportunities are assigned to the same Salesforce Campaign, regardless of the Campaign Site page the donation occurred on. What are my options?
I prefer that all my Opportunities are assigned to the same Salesforce Campaign, regardless of the Campaign Site page the donation occurred on. What are my options?
Funraise creates a Salesforce Campaign for each Home, Team, and Individual page created on your Campaign Site. Donations to these pages will be assigned to the corresponding Campaign in Salesforce.
If you prefer to have all Opportunities linked to a single Campaign in Salesforce, you can use a custom workflow. For example, create a custom field on the Opportunity to store the Giving Form name, or whatever field(s) the campaign association logic depends on. Then use custom logic, such as a process builder or formula, to populate the Campaign Id on the Opportunity based on the value from this custom field.
I want to connect my Funraise Salesforce integration to a different environment than it’s currently connected to. However, it remains connected to the same environment even though I’ve changed the environment (Production vs. Sandbox) and credentials. How can I fix this?
I want to connect my Funraise Salesforce integration to a different environment than it’s currently connected to. However, it remains connected to the same environment even though I’ve changed the environment (Production vs. Sandbox) and credentials. How can I fix this?
In Salesforce, from the environment you’re disconnecting from…
Go to Setup → Manage Users → Users
In the lightning experience, the flow is Setup → (Administration) Users → Users
Find your user that was used to authenticate the Funraise integration
From that user’s profile, navigate to their “OAuth Connected Apps” section
Find the entry for Funraise, or the name you provided when configuring the app, and click “Revoke”
Now, in Funraise, deactivate your Salesforce integration and then reactive it. When you reactivate it a popup should appear, giving you the option to either grant access using your currently logged-in user account or log in as a different user to complete the integration setup.
What are the criteria to match a Supporter with an existing Contact in Salesforce?
What are the criteria to match a Supporter with an existing Contact in Salesforce?
Supporters are matched with existing contact records when we find an exact match for any of the following:
Funraise Id
First Name, Last Name, and Email
Email Only
First Name, Last Name, and variations of MailingStreet, MailingCity, MailingState, MailingPostalCode, MailingCountry.
We discuss this above in more detail in the Contact Matching section.
What happens if Funraise encounters multiple Contact records with the same email address? What if they have different Funraise IDs?
What happens if Funraise encounters multiple Contact records with the same email address? What if they have different Funraise IDs?
Since Funraise ID is the first matching criteria used, that should narrow the contact that gets returned first. If the matching does rely on one of the criteria that utilize email addresses, the first contact returned by Salesforce is used.
I don’t want failed donations sent to Salesforce. How can we stop syncing failed donation records?
I don’t want failed donations sent to Salesforce. How can we stop syncing failed donation records?
Funraise sends all transactions to Salesforce, including failed transactions as they may be helpful in an organization’s follow-up workflow. If you prefer to not have failed transactions synced with Salesforce, one option is to map Donation Status to a custom field on the Opportunity in Salesforce. Then implement a constraint on that custom field to disallow the creation of a record with “Failed” in that field, for example through a validation rule.
The Salesforce integration is overwriting the address information on my contact records. How can this be prevented?
The Salesforce integration is overwriting the address information on my contact records. How can this be prevented?
When a new address is entered by an existing donor, Funraise updates the address and sends it to Salesforce. If you prefer to not have addresses updated when your donor enters a new address, you can create custom fields on the Contact in Salesforce and map Funraise address fields to these custom fields. Then implement custom logic to conditionally copy those values to the standard address fields according to your preferred logic.
I have Salesforce de-duplication rules on Contacts that are preventing data from syncing consistently from Funraise. How can this be resolved?
I have Salesforce de-duplication rules on Contacts that are preventing data from syncing consistently from Funraise. How can this be resolved?
When a Contact cannot be found with our matching criteria, the integration will attempt to create a new Contact. However, if you have custom rules in your Salesforce to stop the creation of duplicate Contact records, Funraise may not be able to sync new records consistently (your rules may block our attempts). Typically, if custom duplicate rules are in place, we recommend using one of these solutions.
Set the rule to report instead of prompt, since our integration does not have the capability to respond to prompts
Modify the duplicate rule so that it excludes requests from the integration user
Can I connect multiple Funraise accounts to the same Salesforce instance?
Can I connect multiple Funraise accounts to the same Salesforce instance?
Technically, there is nothing that prevents connecting multiple Funraise accounts to the same Salesforce instance, but we strongly recommend against it.
There are some details about how Contact matching works and the fields that are available through our integration that will require some additional workarounds.
For example, there is no unique identifier for the organization. This means it would be hard to see which donations came from which organization. In this case, you could get creative with a Giving Form name convention.
The other scenario to think through is how Contact matching works. There’s no provision for checking by the organization. Let’s say, donor1@example.org makes a donation to Organization A. A Contact record gets created for donor1@example.org when they make this donation... Then, If donor1@example.org later makes another donation to Organization B, that donation is likely to be linked to the Contact record created when the first donation was made to Org A.
I updated a lot records using the Funraise Self-Serve Import tool, will those updates sync to Salesforce?
I updated a lot records using the Funraise Self-Serve Import tool, will those updates sync to Salesforce?
During an import, data does not sync with integrations. This is by design because in most cases imported data already exists in an integrated system and a migration sync could cause issues with your integrated system API limits. If you need to make a batch update in both systems, we suggest using the data loading tools available in Salesforce to update the necessary records in addition to a mass update in Funraise.
My Nonprofit Success Pack Soft Credit roll-ups are not occurring because the Opportunity Contact Role of "Soft Credit" is not being created for fundraisers.
My Nonprofit Success Pack Soft Credit roll-ups are not occurring because the Opportunity Contact Role of "Soft Credit" is not being created for fundraisers.
NPSP should allow for the modification of filters used in how the app calculates the credit roll-up. This may allow you to include our roles of Fundraiser and Team Captain. This article about NPSP may help.
We use Nonprofit Success Pack and the Contact record has multiple email addresses. Does Funraise's integration matching process include all NPSP email fields on the Contact?
We use Nonprofit Success Pack and the Contact record has multiple email addresses. Does Funraise's integration matching process include all NPSP email fields on the Contact?
No. The Funraise integration only looks at the standard email field for matching purposes.