Blackbaud provides software products for non-profits, including Raiser's Edge, a tool for managing donors and gaining insights into their giving. Anedot's data integrates with Raiser's Edge to help our customers manage donor information and reporting without disrupting workflows.
Connect Anedot to Blackbaud Raiser's Edge
To connect your Anedot fundraising account to Blackbaud Raiser's Edge, first, access your Blackbaud Raiser's Edge account. Continue to the steps below to get started:
Note: The connection will need to be created by a Blackbaud Raiser's Edge Admin user.
Within Blackbaud Raiser's Edge, access the Control Panel>Connect App tab.
Paste the following ID within the Application ID field: 1d57b776-f0c1-46be-976e-3f65e813a5ef
Click Save. Anedot should then be shown within the Connected Apps tab.
Next, review your Raiser's Edge code table entries for the following required fields. Add the fields if they are missing.
Phone Type: Cell
Address Type: Individual
Email Type: Email
Locate your Raiser's Edge Fund ID by navigating to the Fund page. The page URL will also include your Fund ID.
To set up custom donation fields, you will need to add them as attributes in Blackbaud.
If you will be utilizing Custom Hidden Fields, please contact our Support team here. A developer will need to add the data to the integration details via the console of your account.
Once you have completed the steps above, access the Anedot fundraising account and follow the steps below:
First, access the Settings>Finance>Fund tab within your fundraising account.
Hover over your Fund.
Click View.
Within the Edit Fund drawer, enter your Raiser's Edge Fund ID into the Internal Identifier field.
Click Save.
Next, access the Settings>Integrations>Directory tab within your fundraising account and follow the steps below:
Click the blue + New Connection button in the upper right corner of the Directory tab.
From the Directory list, select Blackbaud Raiser's Edge.
Select which Action Page you would like to connect to Blackbaud Raiser's Edge. Select All Pages to include all Action Page data.
To exclude pages, enter a comma-separated list of the Action Page IDs
Optionally, you can scope the integration to only send team-specific data to Blackbaud.
Optionally, you can apply a Constituent Code for Monthly Donors (this is created within Raiser's Edge).
Optionally, you can apply a Gift Subtype for Recurring Gifts (this is created in Raiser's Edge).
Optionally, you can choose to relay Donation Page data only by checking the checkbox. If left unchecked, Donation and Lead Page date will be relayed.
Click the blue Save button.
You will be redirected to the Blackbaud sign-in page.
Use your Blackbaud credentials to sign in and authorize Anedot for use.
Your connection to Blackbaud Raiser's Edge is now complete!
The Action Pages, Team, and credentials can be modified at any time post-setup.
Data Relays
Anedot sends relays for Donation and Lead Pages.
When creating the connection between Anedot and Blackbaud, you can choose to relay Donation Page data only.
The first relay is a query to locate the user in Blackbaud using the email:
If no user is found, the next relay will send the constituent information and receive an ID in response.
If a user is found, the response will contain the ID And constituent information from Blackbaud.
The last relay sends the donation information with the ID received from the query as the "constituent_id".
For Lead Pages (non-financial pages), this relay is blank {} with a null status since there is no associated gift.
Custom Field Support
Send native Blackbaud (Raiser's Edge) fields from Anedot
Raiser's Edge gifts have properties that Anedot does not natively support. In order to relay them properly, you will need to set them up as Hidden Custom Fields within the Action Page Builder.
You will need to set this up or relays will fail.
Anedot Field (Hidden Custom Field) | Gift Field (Raiser's Edge) |
batch_prefix | batch prefix (used for importing multiple gifts/constituents) |
appeal_id | appeal (global value must remain empty) |
package_id | package (global value must remain empty) |
campaign_id | campaign (global value must remain empty) |
Send native Anedot fields to Blackbaud (Raiser's Edge)
Anedot offers donation information that is not natively available for Raiser's Edge gifts. In order to properly receive and utilize the additional information, you will need to set up custom fields for gifts in Raiser's Edge.
Please contact our Support team here once the custom fields for gifts have been set up within Raiser's Edge. Our team will need to enable this via console on our end.
Each custom field needs to have a category
and a value
. Please use the corresponding columns below for category and value inputs per field.
New categories will appear in Blackbaud for selection once your relay has successfully been sent. They should appear automatically on import (seen here) - no manual setup is required.
Anedot Field | Raiser's Edge Category | Raiser's Edge Value |
anedot_fee (Donation Page: net amount) | Anedot Fee | currency |
utmCodes {source}** | UTM Source | text |
utmCodes {medium}** | UTM Medium | text |
utmCodes {campaign}** | UTM Campaign | text |
utmCodes {content}** | UTM Content | text |
referrer | URL | text |
frequency | Recurring Frequency | text |
(Commitment) schedule_start | Recurring Start Date | date |
(Commitment) schedule_until | Recurring End Date | date |
(Commitment) id | Commitment ID | text |
(Commitment) index* | Commitment Index | text |
*Note: The commitment_index
indicates which nth donation is represented by this recurrence. The first recurrence is actually the second donation (original submission = first).
**UTM fields can be added to the Page URL.
Data in Blackbaud
To filter for a donor in the Lists>Constituents area or for a gift in the Lists>Gifts area, you will first need to approve the batch of gift relays within the Fundraising>Gift Management tab in Blackbaud Raiser's Edge.
Gift Management - Batch Queue
Note: Blackbaud custom fields automatically appear on gifts once your integration is set up (in Anedot) to receive them.
Lists>Constituents (Donor Lookup)
Constituent Record View
Lists>Gifts (Donation Lookup)
Gift Record View
Creating a Blackbaud Raiser's Edge Custom Field
Field Mapping
Constituent Fields
Anedot Field | Blackbaud Field |
lastName | last |
donorType ("Individual" or "Organization) | type |
- | email { |
firstName | first |
- | phone { |
title | title |
middleName | middle |
suffix | suffix |
address { | address{ |
date_in_account_time_zone | date_added |
Donation Fields
Anedot Field | Blackbaud Field |
date_in_account_time_zone | date |
"Donation" | type |
total_amount | amount_value |
gift_subtype | subtype |
payment_method | payment_method |
date_in_account_time_zone | receipts_date |
"Receipted" | receipts_status |
(Submission) id | lookup_id |
" "Anedot" donation_origin " | reference |
- | gift_splits { |
id (from the contact relay's response body) | constituent_id |
"NEEDSACKNOWLEDGEMENT" | acknowledgements_status |
*"batch_prefix" | Batch Prefix |
created_at (formatted "yyyymmdd") | Batch Number |
*These must be set up as Custom Hidden Fields within the Action Page Builder in order to relay to Blackbaud.
Payload Data
Request Headers
{}
Request Body (Find User)
{
"query": "[email protected]"
}
Request Body (Create User)
{
"last": "Dote",
"type": "Individual",
"email": {
"type": "Email",
"address": "[email protected]",
"primary": true
},
"first": "Anna",
"phone": {
"type": "Cell",
"number": "225-250-1301"
},
"title": null,
"middle": null,
"suffix": null,
"address": {
"city": "New Orleans",
"type": "Home",
"state": "LA",
"postal_code": "99999",
"address_lines": "123 Test Road"
},
"date_added": "2023-06-01T16:23:19-04:00"
}
Request Body (Donation)
Not all the donation field mappings are seen in the relay below; you should verify that missing fields are correctly populated in Blackbaud after the relay has been sent.
{
"gifts": [{
"date": "2023-06-01T12:19:26-04:00",
"type": "Donation",
"amount": {
"value": 50.0
},
"subtype": null,
"payments": [{
"payment_method": "Cash"
}],
"receipts": [{
"date": "2023-06-01T12:19:26-04:00",
"status": "Receipted"
}],
"lookup_id": "21cd1b28-29bc-4583-9ab7-7fe42c06bda7",
"reference": "Anedot Hosted",
"gift_splits": [{
"amount": {
"value": 50.0
},
"fund_id": "1001",
"appeal_id": null,
"package_id": null,
"campaign_id": null
}],
"constituent_id": "593734",
"acknowledgements": [{
"status": "NEEDSACKNOWLEDGEMENT"
}]
}]
}
Request Body (Donation - Custom Hidden Fields)
{
"gifts": [{
"date": "2023-06-15T15:51:08-04:00",
"type": "Donation",
"amount": {
"value": 100.0
},
"subtype": null,
"payments": [{
"payment_method": "CreditCard"
}],
"receipts": [{
"date": "2023-06-15T15:51:08-04:00",
"status": "Receipted"
}],
"lookup_id": "3f8f458d-ac62-402f-9f59-94f1656aeba4",
"reference": "Anedot Hosted",
"gift_splits": [{
"amount": {
"value": 100.0
},
"fund_id": "141252",
"appeal_id": null,
"package_id": null,
"campaign_id": null
}],
"custom_fields": [{
"value": 4.3,
"category": "214"
}, {
"value": "utm_source",
"category": "215"
}, {
"value": "utm_medium",
"category": "217"
}, {
"value": "utm_campaign",
"category": "216"
}, {
"value": "utm_content",
"category": "218"
}, {
"value": "https://qa2.secure.anedot.com/space-force/95c98eaf-2060-4290-a331-ef5455942054?utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_content=content",
"category": "219"
}],
"constituent_id": "593734",
"acknowledgements": [{
"status": "NEEDSACKNOWLEDGEMENT"
}]
}]
}
Response Body (No User Found)
{
"count": 0,
"value": []
}
Response Body (Create User)
{
"id": "633977"
}
Response Body (User Found)
{
"count": 1,
"value": [{
"id": "593734",
"name": "System Admin",
"email": "[email protected]",
"address": "123 Test Drive\r\nNew Orleans, LA 99999",
"deceased": false,
"inactive": false,
"lookup_id": "580335",
"fundraiser_status": "None"
}]
}
Response Body (Donation)
{
"gifts": [
{
"id": "3652",
"date": "2021-10-08T13:24:51",
"type": "Donation",
"amount": {
"value": 3
},
"errors": [
{
"gift_id": "3652",
"lookup_id": "bc00be0c-a507-4132-a39e-844613ec7cd5",
"affected_field": "GiftSplit",
"exception_error_code": 25077,
"exception_error_name": "GiftDateOutOfRangeCFAP",
"exception_error_message": "Gift date is invalid for campaign with ID 2."
},
{
"gift_id": "3652",
"lookup_id": "bc00be0c-a507-4132-a39e-844613ec7cd5",
"affected_field": "GiftSplit",
"exception_error_code": 25003,
"exception_error_name": "InvalidCFAPCombination",
"exception_error_message": "The provided CFA combination is invalid."
}
],
"origin": "{\"name\": \"API\"}",
"subtype": "Membership",
"payments": [
{
"payment_method": "CreditCard"
}
],
"receipts": [
{
"date": "2021-10-08T13:24:51",
"amount": {
"value": 3
},
"status": "RECEIPTED"
}
],
"lookup_id": "bc00be0c-a507-4132-a39e-844613ec7cd5",
"post_date": "2021-10-08T13:24:51",
"reference": "Anedot Recurring",
"fundraisers": [],
"gift_splits": [
{
"amount": {
"value": 3
},
"fund_id": "141252",
"appeal_id": "7",
"package_id": "4",
"campaign_id": "2"
}
],
"post_status": "NotPosted",
"constituency": "Donor",
"linked_gifts": [],
"soft_credits": [],
"constituent_id": "593768",
"acknowledgements": [
{
"status": "NEEDSACKNOWLEDGEMENT"
}
]
}
],
"errors": []
}
Response Body (Failure)
{
"title": "Resource not found",
"status": 404,
"message": "Resource not found",
"statusCode": 404
}
Response Status (Success)
200
Response Status (Failure)
404