Blackbaud Raiser's Edge
This article provides step-by-step instructions for integrating Anedot with Blackbaud Raiser's Edge, including setup, field mapping, and custom field configuration to ensure accurate donor and gift data synchronization.
Blackbaud Raiser's Edge is a donor management and fundraising platform designed for nonprofits. Anedot’s integration enables seamless synchronization of donor and transaction data with Raiser's Edge, helping you manage insights and reports without disrupting your existing workflow.
Table of Contents
- Connect Anedot to Blackbaud Raiser's Edge
- Data Relays
- Custom Field Support
- Data in Blackbaud
- Field Mapping
- Payload Data
Connect Anedot to Blackbaud Raiser's Edge
Before you begin, ensure you are logged in as a Raiser's Edge Admin user.
Step 1: Set Up the App in Blackbaud
-
In your Blackbaud account, go to Control Panel > Connect App.
-
Paste the following Application ID:
1d57b776-f0c1-46be-976e-3f65e813a5ef
-
Click Save. Anedot should now appear in your Connected Apps tab.
Step 2: Configure Required Fields
- Check your Raiser's Edge code table to ensure the following fields exist. If missing, add them:
-
Phone Type:
Cell
-
Address Type:
Individual
-
Email Type:
Email
-
- Locate your Fund ID in Blackbaud:
- Navigate to your Fund page.
-
Copy the Fund ID from the page URL or the System Record ID.
Step 3: (Optional) Add Custom Attributes in Blackbaud
-
For custom donation fields, create attributes in Blackbaud.
-
If you plan to use Custom Hidden Fields in Anedot, please contact Support. A developer must enable this in your account.
Step 4: Set Up The Fund ID in Anedot
- In Anedot, go to Settings > Finance > Fund.
- Hover over the Fund, click View.
- Enter the Raiser’s Edge Fund ID in the Internal Identifier field.
- Click Save.
Step 5: Connect Anedot to Raiser's Edge
Next, navigate to Settings > Integrations > Directory.
- Click the blue + New Connection button.
- Select Blackbaud Raiser's Edge.
- Choose which Action Page(s) to connect. Select All Pages to include all, or enter a comma-separated list of specific Action Page IDs to exclude.
- (Optional) Scope the connection to send only Team-specific data.
- (Optional) Enter a Constituent Code for Monthly Donors (configured in Raiser's Edge).
- (Optional) Enter a Gift Subtype for Recurring Gifts (configured in Raiser's Edge).
- (Optional) To relay only Donation Page data, check the relevant box. If left unchecked, both Donation and Lead Page data will be relayed.
- Click Save.
You’ll be redirected to the Blackbaud login page. Sign in using your Blackbaud credentials to authorize and complete the connection.
You can modify Action Pages, Team access, and credentials at any time after setup.
Data Relays
Anedot supports relays for both Donation Pages and Lead Pages.
When setting up your Blackbaud connection, you can choose to relay only Donation Page data if preferred.
The relay process works as follows:
-
Initial Query: Anedot queries Blackbaud using the donor’s email to locate a matching constituent.
-
Constituent Handling:
-
If no match is found, Anedot sends the constituent’s information to Blackbaud and receives an ID in response.
-
If a match is found, Blackbaud returns the existing ID and record details.
-
-
Donation Submission: Anedot sends the donation data to Blackbaud, referencing the identified constituent_id.
-
For Lead Pages (non-financial), a placeholder relay is sent with an empty payload and a
null
status, as no gift is associated.
This structured relay process ensures accurate donor matching and data handling within Blackbaud Raiser's Edge.
Custom Field Support
Mapping Native Blackbaud Gift Fields from Anedot
Blackbaud Raiser's Edge includes gift attributes that are not natively supported by Anedot. To successfully relay this information, these fields must be configured as Hidden Custom Fields within the Anedot Action Page Builder.
These fields must be configured correctly. If they are missing or set up improperly, relays to Blackbaud will fail.
Hidden Custom Field (Anedot) | 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) |
Sending Native Anedot Fields to Blackbaud Raiser's Edge
Anedot provides valuable donation data that Raiser's Edge does not support natively. To ensure this additional information is captured correctly, you must create custom fields for gifts within Raiser's Edge.
After setting up the custom gift fields in Raiser's Edge, please contact our Support team so we can activate the integration from our end via console access.
Each custom field must include both a Category and a Value. Refer to the table below for the appropriate inputs.
Once your relay is successfully sent, new categories will automatically appear in Raiser's Edge—no manual configuration is required for import.
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 |
*number | Commitment Index | text |
*The commitment_index
indicates the position of the donation within the recurring series. Note: the first recurrence corresponds to the second donation, as the original submission counts as the first.
**UTM fields can be added to the Page URL.
Data in Blackbaud
Once a donation has been successfully relayed, data can be viewed in:
- Fundraising > Gift Management: View and approve batches of gift relays
- Lists > Constituents: Filter for a donor
- Lists > Gifts: Filter for a gift
- Constituent Profiles: Custom fields appear under the "Custom Fields" section.
- Gift View > Detail View: Review donation-specific field mapping and notes
You can cross-reference Omatic Object ID to verify transaction processing.
Field Mapping
Constituent Fields
Anedot Field | Blackbaud Field |
---|---|
lastName | last |
donorType (Individual / Organization) | type |
- "Email" email address "true" |
email {type} {address} {primary} |
firstName | first |
- Home / Work / Cell phone number |
phone {type} {number} |
title | title |
middleName | middle |
suffix | suffix |
address {city} "Home" {region} {postalCode} {line1} {line2} |
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 |
- {amount} {fund_identifier} *{appeal_id} *{package_id} *{campaign_id} |
gift_splits {amount_value} {fund_id} {appeal_id} {package_id} {campaign_id} |
id (from the contact relay's response body) | constituent_id |
"NEEDSACKNOWLEDGEMENT" | acknowledgements_status |
*{batch_prefix} | Batch Prefix |
created_at (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": "search_text=admin@anedot.com"
}
Request Body (Create User)
{
"last": "Dot",
"type": "Individual",
"email": {
"type": "Email",
"address": "admin@anedot.com",
"primary": true
},
"first": "Annie",
"phone": {
"type": "Cell",
"number": "201-555-1234"
},
"title": null,
"middle": null,
"suffix": null,
"address": {
"city": "Richmond",
"type": "Home",
"state": "IN",
"postal_code": "47374",
"address_lines": "123 Test Road"
},
"date_added": "2023-06-01T16:23:19-04:00"
}
Request Body (Donation)
Not all donation field mappings are visible in the relay example below. Be sure to confirm that any additional fields are properly populated in Blackbaud after the relay is processed.
{
"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": "admin@anedot.com",
"address": "123 Lee Dr\r\nBaton Rouge, LA 70808",
"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