The Funraisin Salesforce integration comprises of a one-way sync from Funraisin to Salesforce that operates on a schedule. This schedule can be altered to accommodate different volumes, with common schedules being anywhere from daily, bi-daily to every 30 minutes.
As part of the standard integration you will be required to install a managed package (See below), we can provide links for the package installation or you can provide us with access to your Salesforce account and we can install it on your behalf.
For custom integrations this might not be needed.
Version & Compatibility
The Funraisin integration is compatible with the Salesforce Not for Profit pack using household accounts. If you do not support this or do not support household accounts we are still able to sync but we will create accounts automatically for all contacts. The current version is 1.9
As records sync, de-duping will occur for all Contacts and Accounts to try to avoid duplicate records. De-duping on Contacts will check for an existing match on First name, Last name and Email address. De-duping on Accounts will check on Account name.
All Funraisin objects support a field known as “External CRM ID” which is used to store the IDs from external data sources. As data syncs to Salesforce, the Salesforce ID for each object is stored in our own External CRM ID for that object so that you are at any time able to edit an ID within your Funraisin platform.
The Funraisin > Salesforce sync uses the Salesforce SOAP API so each record that is synced will use at least 1 API call but often a single record will require 2-3 API calls depending on the data being synced.
A site catering for example 10,000 transactions per day could typically require up to 30,000 API calls per day.
Should an API limit be hit when syncing, the sync will retry later which depending on the schedule this could be with an hour or the next day.
For all Salesforce related support enquiries please pop in a support ticket in your Funraisin admin.
To setup your integration you will need to create a user account with a non-expiring password. Login to your Funraisin platform and navigate to the Salesforce module and within the configuration option you will need to enter your account email address, account password, account security token and also upload your enterprise WSDL.
Syncing to a sandbox prior to launch can be catered for, simply by providing your Sandbox details in the above step.
Then once the site is ready to sync to a production environment we would simply clean all data from Funraisin by removing any existing Salesforce IDs so that data can be re-synced.
Step 1. Navigate to Funraisin > Salesforce when logged in to your platform and you will asked to configure your account. Enter the username, password and security token of the account you want to connect as, as well as specifying what Funraisin objects you want to have synced to Salesforce.
Step 2. Next upload your Enterprise WSDL into Funraisin
That is all that is needed on the platform side, you now need to install our managed package.
Data from your Funraisin platform will map to most standard Salesforce objects as details further below, however some data captured requires additional Fields and Objects be created on your Salesforce account.
Before syncing data from your Funraisin platform you will be required to install our Managed Package.
This will install the following:
The following Salesforce objects have these additional fields applied
|Page url||Text (255)|
|History Type||Picklist (online,offline,diy)|
|Is Active||Picklist (Y,N)|
|Is Archived||Picklist (Y,N)|
|Funraisin ID||Number (ID)|
|Allow Entries||Picklist (Y,N)|
|Allow Tables||Picklist (Y,N)|
|Campaign Type||Picklist (event,page,team,raffle)|
|Event Type||Picklist (online,offline,diy)|
|Created By Fundraiser||Lookup(Contact)|
|Is Fundraising Event||Picklist(Y,N)|
Record types can be defined within Funraisin simply navigate to Funraisin > Salesforce > Recordtypes. This will allow you to control record types for various transaction types on Opportunities. For other objects e.g. Campaigns, these can be controlled from within the modules that sync to Campaigns which are Funraisin > Events and Funraisin > Pages
Once connected, Funraisin will only sync new data to your Salesforce account. We will not import or alter your existing data in any way.
Funraisin uses “Funraisin” as its namespace prefix. All custom field names referenced below should include ‘Funraisin__’ as the prefix if they are referenced via an API.
The following list shows how Funraisin objects are mapped to Salesforce objects
Events map to Campaigns
Donation pages map to Campaigns
Teams map to Campaigns
Donors map to Contacts / Accounts
Fundraisers map to Contacts / Accounts
Registrations map to Campaign Members
Transactions map to Opportunities
The below tables show the standard field mapping from Funraisin to Salesforce.
All donors, fundraisers, shop customers sync to the Contacts object using the following mapping.
|Address Street Number||MailingStreet|
|Address Line 2||MailingStreet|
All donors, fundraisers, shop customers sync to the Accounts object using the following mapping when organisation data is provided. Note that if no organisation data is provided then household accounts will be used.
All events, donation pages and teams sync to the Campaigns object using the following mapping.
|Event vs Page||Funraisin__Campaign_Type__c||Event or Page|
|Event End Date||EndDate|
|Online and DIY events||Funraisin__Is_Fundraising_Event__c|
|Entry Type||Funraisin__Entry_Type__c||Ticketed, registration, rsvp|
|Member||Funraisin__Created_By_Fundraiser__c||Contact ID of member who created the event|
All participants in an event including offline event guests sync to the Campaign Members object.
|Team||Funraisin__Team__c||Lookup to Team Object ID|
All financial transactions sync to the Opportunities object.
|Event, Team or Page||CampaignId|
|Member or Donor||
Soft Credits (optional)
A note on Soft credits when donating to a fundraiser. When a donation is related to a fundraiser, we create an Opportunity Contact Role for the Fundraiser with a role of Soft Credit.
All teams link to the Campaign object which are a sub-campaign of the Event that they are participating in. All opportunities made to a team are then linked to the Team Campaign instead of the Event Campaign.
All merchandise sync to the Products object.
A note on pricebooks. A Standard pricebook called Funraisin Pricebook will be created for use with all products.
Order and OrderItems (beta)
All merchandise sales sync to the Order and OrderItems objects as well as the Opportunity object.
|ContactID||BillToContactId||ID from the synced customer|
|ContactID||ShipToContactId||ID from the synced customer|
|Po Number||OrderReferenceNumber||our own PO number|
|OpportunityID||OpportunityId||ID from the synced opportunity|
|Order Date||EffectiveDate||Date of Sale|
|OrderID||OrderId||ID from the synced order (above)|
|ProductID||Product2Id||ID from the synced product (above)|
Web to Lead Forms
Webforms are forms that are created by admins via the Funraisin interface therefore their structure is unknown. Each webform is able to be synced to any Salesforce object with each field within the form having its own mapping to individual Salesforce fields.
1. Choose Object.
Edit your webform and specify which Salesforce Object you want it to sync to by adding in the Object API name.
If this form is part of an event registration flow you can specify which field in your object relates to the ContactID of the fundraiser / donor
Also if this form is part of a registration entry flow you can set the object behaviour to Update, whereas for standard in-page forms that aren't linked to any donor or fundraiser leave it set to insert
2. Sync Fields
After specifying the object we sync to and it's behaviour you will need to map each field in your form to the fields in your object. Simply choose "Form fields" from your webform and then edit each field that you want mapped to Salesforce. Under the "CRM Options" field enter in your field's API name.
For webforms used within event registration or donation journeys, the submission will be linked to the relevant Contact ID however for standard page based forms e.g. contact us forms the submissions can only be linked to a single object.