With each successful donation coming through RaiseDonors, this integration will connect to HubSpot's API and submit a Deal with an associated Contact. The integration allows for you to select the Deal pipeline and associated Deal stage. The integration also allows you to provide mappings between the objects and properties in RaiseDonors (such as Donors and Donations) to the objects and properties in HubSpot (such as Deals and Contacts).
Before a Deal is created in HubSpot, a Contact will be created (or updated) in HubSpot. RaiseDonors will retrieve the "vid" or customerId and submit it inside the Deal. Every deal will include a "vid", pipeline, dealStage, and one or more deal mappings.
RaiseDonors assumes that you have an intermediate level of understanding of and experience with HubSpot. RaiseDonors cannot provide guidance on how to best use HubSpot, configure HubSpot, or troubleshot problems inside of HubSpot. We highly recommend reading articles related to Pipelines, Deals, and Contacts in the HubSpot Academy for support.
If any of the properties in Hubspot are defined to be an "enumeration property", it's important to understand Hubspot is CaSe SenSiTiVe when matching values from RaiseDonors to the enumeration values. For example, if you have a custom property for "Address Country", with values such as "USA, CANADA, EUROPE, and AFRICA", RaiseDonors might send the value "United States", which wouldn't match. But it could also send "Europe", which wouldn't match the defined value in Hubspot.
Date vs DateTime
Hubspot recently updated all properties to no longer use DateTIme field types. The property builder in Hubspot only supports Date field types. This breaks the integration between RaiseDonors and Hubspot - as RaiseDonors believes the "time" aspect is critically important. If you receive an error similar to
INVALID_DATE with last_modified_date: 1579795890220 is at 16:11:30.220 UTC,
This means a few of your custom fields are set to "date" field types instead of "dateTime" field types. Hubspot advises there is only one way to change a field type from "Date" to "DateTime", and that is via this specific Hubspot API (and this related api endpoint, for a list of all the values which can be edited).
RaiseDonors is designed to eventually integrate Hubspot with all of the following events, but only version 1 has been completed.
- Version 1
- A new donation
- Version 2 (Coming soon)
- Refunding a donation
- Modifying a recurring profile
- Terminating/suspending a recurring profile
- Updating donor information
- A new note in a donor account
- Pull donation history for donor portal
A donation in RaiseDonors must be attributed to at least one fund. However, it is possible for a donation to be allocated to multiple funds. This is an important consideration to understand because RaiseDonors will send one deal per donation to Hubspot. If a donation has multiple fund allocations and you are needing detailed information about the fund allocation, you'll need to explore the fund mapping options and use one of the entries which focus on funds.
The integration is configured at the account level and will be applied to all Pages and any donation coming into RaiseDonors. This would include one-time donations, recurring donations, and possibly donations submitted through the API.
A valid HubSpot API key is also required.
You will need to locate and obtain a copy of your HubSpot API key. For detailed instructions on how to do this, please consult HubSpot's documentation.
Log into RaiseDonors and goto the HubSpot Deals configuration page. Supply your HubSpot API key and click "Verify API Key".
In the unlikely event an error occurs, RaiseDonors can send a notification via email. You can provide one or multiple email addresses. If multiple email addresses are supplied, separate each with a comma. Or you can leave this field empty to not be notified.
If a Hubspot Contact or Deal property is configured to be an enumerator, you will provide a list of custom values. It's possible that the values RaiseDonors sends into this property may not match. Either by value (ie: USA vs United States) or by case (ie: USA vs Usa). If this situation occurs, you can configure RaiseDonors to handle this in one of two ways.
- Throw an error - RaiseDonors will not finish the integration and will throw an error, which will trigger the email notification.
- Ignore and send - RaiseDonors will remove this property when communicating with Hubspot, ensuring the integration successfully takes place, without this piece of information. This specific property will not be populated for this donation integration.
You can also indicate if you desire to include test donations from RaiseDonors to be included in the integration. Check the box, indicating "Yes", include and send all new test donations to HubSpot.
RaiseDonors queries your HubSpot account in real-time to pull back all of the active and configured Pipelines for Deals. If you would like to learn more about Pipelines in HubSpot, you can visit the HubSpot Academy.
DealStages are configured per Pipeline. After a Pipeline has been selected, a list of DealStages will be visible to choose from. Please select the DealStage to associate with the Deal that RaiseDonors will create in HubSpot.
- RaiseDonors will pull back all of the fields configured in HubSpot for a Contact. This includes standard fields as well as any custom fields you may have created.
- The mapping process allows you to choose which fields will be sent to HubSpot when creating or editing a contact. You can create mappings for every Contact field available, or just a few. The flexibility is up to you.
- After selecting an individual Contact property, you then choose a RaiseDonors property to complete the mapping.
- This mapping is used during the integration to pull the real value from the donation (ie: RaiseDonors property) and send to the Contact property.
This table lists all of the available RaiseDonors objects and properties for mapping to Hubspot Contacts.
|ID||Donor Id from RaiseDonors|
|First Name||Donor first name|
|Last Name||Donor last name|
|Email Address||Donor email address|
|Phone Number||Donor phone number|
|Date Created||Date created in RaiseDonors|
|Date Last Modified||When donor was last modified|
|Date of Last Login||Date donor last logged in|
|Last Modified By||Who last modified donor?|
|Newsletter Opt In||Has donor indicated to opt in to newsletter?|
|CRM Key||Foreign key field|
|CRM Second Key||Foreign key field|
|Is Email Sending Suppressed?||Have emails been suppressed from sending to this donor?|
- RaiseDonors will pull back all of the fields configured in HubSpot for Deals. This includes standard fields as well as any custom fields you may have created. Note, pipeline and dealstage have been removed. These are the fields you picked first, to begin.
- The mapping process allows you to choose which fields will be sent to HubSpot when creating a deal. You can create mappings for every Deal field available, or just a few. The flexibility is up to you.
- After selecting an individual Deal property, you then choose a RaiseDonors property to complete the mapping.
- This mapping is used during the integration to pull the real value from the donation (ie: RaiseDonors property) and send to the Deal property.
- The Contact VID, Pipeline, and DealStage will be automatically included with the Deal when submitted to HubSpot.
This table lists all of the available RaiseDonors objects and properties for mapping to Hubspot Deals.
|Amount (with currency)||The total amount of the donation including currency symbol. Example: $50.00 or £127.78|
|Amount (clean)||The total amount of the donation, as a numeric string. Example: 50.01|
|Authorization Number||Authorization number from gateway.|
|Campaign Id||The Id of the campaign/page the donation was placed through.|
|Campaign Title||The internal title of the page the donation was placed through.|
|Comment||Any comment left in the donation by the donor.|
|Credit Card Brand||Amex, Visa, MC, Disc (if donation was placed via credit card). Otherwise value is "Other".|
|Credit Card Expiration Date||Expiration date of credit card if donation was placed via credit card.|
|Date Created||Date donation was placed.|
|Donor's Name||Full name of donor supplied on donation form.|
|Donor's Email||Email address supplied on donation form.|
|Donor's Phone Number||Phone number supplied on donation form.|
|Fund Allocation(s) - Name||The name of the fund the donation was attributed. If the donation is attributed to multiple funds, each fund will be separated with a comma.|
|Fund Allocation(s) - Code||The "code" of the fund the donation was attributed. If the donation is attributed to multiple funds, each fund "code" will be separated with a comma.|
|Fund Allocation(s) - Summary||Summarized fund and amount information. Example: $10 (FundName)
If the donation is attributed to multiple funds, the summarized information will be separated with a comma.
|Gateway Currency||The ISO3 currency value. Example: USD, CAD, AUD.|
|Gateway Name||The name of the gateway used for the donation. This is the configurable name your organization labeled on the gateway.|
|Gateway Transaction Details||Transaction details from the gateway for this donation.|
|Gateway Vendor Name||The gateway vendor name. Example: auth_net or stripe.|
|Gift Aid Requested||Was gift aid requested for this donation?|
|Id||The RaiseDonors ID of this donation|
|In Honor/Memory Of Summary||If In Honor or In Memory Of was requested for this donation, this will summarize the details.|
|Includes a product?||Does this donation include a SKU, implying fulfillment needs to occur? True/False is returned.|
|Product sku||The sku for this product.|
|Landing Page - Full URL||The Full URL with parameters the donor landed on to place the donation.|
|Last 4 numbers of Tender Type||Last 4 digits of the payment type.|
|Origin IP Address||The source IP address of the donor when placing the donation.|
|Payment Tender Type||The tender type used to place the donation (ACH or CC)|
|Is Recurring?||If this is a recurring donation, returns true.|
|Recurring Donation Schedule Number||If this is a recurring donation, this would be the schedule number.|
|Recurring Donation Start Date||If this is a recurring donation, this is the start date of the recurring schedule.|
|Recurring Donation Status||If this is a recurring donation, this is the current status. Example: Active, Suspended, Terminated.|
|Recurring Donation Frequency||If this is a recurring donation, this is the frequency of the schedule. Example: Monthly, Annual, etc.|
|Status||What is the status of the donation? Approved, Declined, Error.|
|Test Mode||Was this donation submitted via Test Mode?|
|Transaction ID||What is the transaction Id returned from the gateway?|
|Google UTM Tracking - Campaign||Google UTM parameters|
|Google UTM Tracking - Content|
|Google UTM Tracking - Medium|
|Google UTM Tracking - Source|
|Google UTM Tracking - Term|
|Outlet Name||If the media outlet feature is enabled, and the donor selected a media outlet, this is the "Name" of the selected media outlet.|
Click Save - and you have completed the integration setup process!