Support installation types with Salesforce
RaiseDonors supports two installation types with Salesforce:
- Nonprofit Starter Pack
- Standard
Nonprofit Starter Pack (NPSP)
Inserts Contacts, which automatically creates Accounts.
An Opportunity is created for each fund designation with a donation. This means that if there is one Fund in a donation, there is one Opportunity. If there are three Funds in a donation, there will be three Opportunities.
You must ensure you've run our custom package, which stores the RaiseDonors Donor.Id field in Salesforce.
Standard
Inserts Accounts, which hold the various opportunities.
After creating Opportunities, RaiseDonors then creates a one-off Contact, which is related to the Account.
Unfortunately, the Opportunities are only related to the Account. This is because "out-of-the-box" with Salesforce Standard, there is no relationship between Opportunities and Contacts. Therefore, RaiseDonors stores the opportunities against the Account.
-----
Setup Instructions
Access
To get started, you'll first need to have the following information from your Salesforce account available:
- Username
- Password
- Security token
Your username is the email address you use to login to your Salesforce installation.
Your password is the password you use to login to your Salesforce installation.
To locate your security token, log into your Salesforce installation:
- Go to My Settings
- Select Personal
- Select "Reset My Security Token"
Custom package
https://login.salesforce.com/packaging/installPackage.apexp?p0=04t1a000000VPUe
if you are installing into a sandbox organization, use this URL to install the package:
Configurations
- From RaiseDonors -->
(Donor & Donation) - To objects in Salesforce
(Opportunity, Account, Contact).
- Salesforce instance type?
Please let us know if you are using 'NPSP' or 'Standard'.
- If you have NPSP...
If you have NPSP we need to know the Field when creating an opportunity so we can relate it to a contact.
There is a custom field for the primary_contact_keys.
Locate the Field Name (see instructions below) for the object "Opportunity" and the field label "Primary Contact".
The default value of this field (unless you've made customizations) is npsp__Primary_Contact__c.
- If you have NPSP...
- Have you run our Custom Package?
After doing so, we need to acquire the Field Name for the object "Contacts" and the field "RaiseDonors Donor ID" - Data mapping.
A full list of objects in RaiseDonors is listed below. These can be mapped to the objects in SalesForce.
You need to provide a mapping list as follows:
Example {SalesforceObject.SalesforceField - RaiseDonorsObject.RaiseDonors.Field}
Opportunity.Name - Donor.FName Donor.LName Donation
Opportunity.Amount - Donation.Amount
Contact.Phone - Donor.Phone
Contact.Email - Donor.Email
Contact.Name - Donor.FName Donor.LName
Contact.MailingAddress - Donor.BillingAddress1 Donor.BillingCity Donor.BillingState
For the following events in RaiseDonors
- Send new Donation
- Modify Recurring Schedule
- Stop Recurring Schedule
- Send correspondence to donor
- Update donor information
- Refund/Void donation
-----
RaiseDonors Objects & Fields
DONOR
Id
FName
LName
Email
Phone
Billing Address.Address1/city/state/zip/country
Shipping Address.Address1/city/state/zip/country
DateCreated
LastModified
LastModifiedBy
LastIPAccess
NesletterOptIn (yea, we know it's misspelled)
Notes
Donation
Id
Amount (Total)
AuthorizationNumber
EmailReceiptCopy
Last4ofCC
MotivationCode
SourceCode
Status
Notes
DateCreated
LastModified
LastModifiedBy
LastIPAddress
CardBrand
PaymentMethod
CampaignId
DonorId
GatewayName
GatewayTransDetails
TransactionId
TestMode
Name
Email
Phone
RecurringDonationProfilesId
Comment
CCExpiry
DonationFundAllocations
Amount
FundName
Donation.Campaign
Id
Title
Url
MotivationCode
SourceCode
MinDonationAmount
DateCreated
LastModified
LastModifiedBy
PayFreqType
ProductCode
DownloadUrl
QuantityIncluded
FairMarketValue
IsDonation
GoalAmount
PageContent
PageContentTitle
PageContentImage
PageContentButtonText
PageContentVideo
PageContentLogo
ProductCodeName
PublicTitle
-----
How do I find my Field Name?
- Log into your Salesforce installation.
- Click on Setup.
- On the left navigation menu under BUILD, click Customize.
- Find the object you are searching for (ex: Contacts), and click on Fields.
The table on the right now lists all the fields for the selected object. Be mindful, there are two tables on the right side. It usually simplest to use the search feature of your web browser to locate the field.
Standard Fields
The third column, "Field Name" is the programmatic name we are looking for. The value is the entire word in the 3 column.
Custom Fields and Relationships (usually below Standard Fields)
The third column, "API Name" is the programmatic name we are looking for. The value is the entire word in the 3 column, which can contain odd things like "__c" and "npsp__".
If the fields Data Type is "Lookup", it's a bit trickier. You need to take the fieldName and add an "Id" to the end. For example, look at our sandbox, we need to use the "Primary Campaign Source". The true FieldName in this case would be "CampaignId".
The value to use in this instance is NOT the textual representation of the Campaign. In this case, you'd navigate to the specific campaign you want to use in this instance (to be associated with this donation), and copy the unique ID of the Campaign. That ID is then associated with the "CampaignId".
-----
We have several scenarios to be configured.
1) Standard Donation. This is what you'd expect, send the donation and donor information into Salesforce.
2) Setting up of a recurring donation. Are there specific business rules that are only applicable when setting up a new recurring donation?
3) Instance of a recurring donation. Are there specific business rules that are only applicable to a recurring donation instance (future)?
4) Ending/Stopping a recurring donation profile. When a profile is terminated, are there any updates you'd like to be applied to the donor record in Salesforce?
5) Modifying a recurring donation profile. When a profile is edited, are there any updates you'd like to be applied to the donor record in Salesforce?
6) Refunding or Voiding a donation. When a refund is initiated through RaiseDonors, we have two choices in how to update Salesforce.
- Keep the original opportunity and perform various updates to the data.
- Create a new, negative amount entry in Salesforce.
When keeping the original entry, how would you like the integration to update the opportunity in Salesforce? Perhaps set the Status of the Opportunity to "closed"?
When creating a new negative opportunity, you'll need to provide the full mapping of information just like you did for "Standard Donation".
-----
How does RaiseDonors match donations to existing records in SalesForce?
It is completely customizable and up to you!
With each mapping you provided in the "Standard Donation", you can assign if it is should be included in the matching logic. You can have as many fields as you wish or as few fields as you wish.
In each field, you can specify...
QUALITY - how specific should we be?
Exact - must be an exact match (case insensitive)
First - match the first few letters
Last - match the last few letters
None - do not match at all
NUMCHARS - for the strings, how many characters to compare? Only applicable for First/Last Quality types.
Each condition you create is aggregated together into an "AND" operator. So if you want to 3 objects in the matching logic, example:
Donor.FirstName (First - 3 chars)
Donor.LastName (Exact)
Donor.BillingZip (Exact)
These will all be placed together as follows,
Does any information in SalesForce have a Donor.FirstName (first 3 chars) AND Donor.LastName (exact) AND Donor.BillingZip (exact) matching?
-----
Can RaiseDonors send ISO codes to SalesForce for state and Countries?
Yes, in the mapping we can provide the following configurations.
For State, RaiseDonors can send full-text or ISO2 (example: Texas or TX)
For Country, RaiseDonors can send full-text, ISO2, ISO3 (example: United States of America, US, USA)
-----
What if I have multiple campaign Id's configured in the RaiseDonors configuration?
For example, if I have a campaign ID for a one time donation but have a different campaign Id configured for the recurring setup. If both are sent to SalesForce, it will error out. So how does RaiseDonors know which one to use?
We have a solution in place for this! We can specify a flag on the 'master' field to use. In the example above, we can specify which campaign Id would be given precedence when one or more are provided. We have a token 'WhenDuplicateEntryUseThisOne' that handles this.
----
Are there any replaceable tokens for other meta data?
Such as "current date/time"?
Yes, use the token "replace_todays_date"
Such as a real-time look up of the contact.AccountID?
Yes, use the token "replace_salesforceLookup_contact.accountId"
Such as a real-time look up for the campaign ID? So long as there is a custom field for RD to store the RD Campaign ID into the SF Campaign Object -- we can query SF on our custom field - and retrieve the SF Campaign ID. Use the token "Replace_salesforcelookup_Campaign.Id"
Comments
0 comments
Please sign in to leave a comment.