Kindful
Connect Anedot to Kindful to automatically sync donation and lead data, configure custom app credentials, and streamline donor management.
Kindful is a donor management and online giving platform designed for nonprofits. It helps streamline fundraising, donor tracking, communication, and reporting—empowering organizations to better understand donor behavior and improve fundraising strategies.
If you need assistance setting up the Kindful integration, please contact our Support team.
Table of Contents
Connecting Anedot to Kindful
Before connecting, complete the following steps in your Kindful account:
-
Request Custom Apps Access
-
Reach out to your Kindful representative to enable access.
-
-
Log in to Kindful
-
Navigate to Apps > Custom Apps.
-
-
Create a New Custom App
-
Name it "Anedot".
-
Optionally, add a description.
-
-
Generate a Security Token
-
Click Generate Security Token.
-
If the button is not visible, click Manage Credentials to find it.
-
Now, in your Anedot account:
-
Go to Settings > Integrations > Directory.
-
Click + New Connection in the top-right corner.
-
Select Kindful from the list.
-
Choose the Action Pages you want to sync (default is all).
-
To exclude pages, enter their IDs as a comma-separated list.
-
-
(Optional) Limit the sync to a specific Team.
-
Paste your Kindful Security Token into the API Token field.
-
Click Save to complete the connection.
You can update Action Pages, Team access, and credentials at any time.
Data Relays
-
Anedot sends data from both Donation Pages and Lead Pages to Kindful.
-
Not supported:
-
Transaction reversals (e.g., voids, refunds)
-
Relay of recurring donation frequency
-
-
Push Unsent Support:
-
You can push failed or past donations by specifying a date range.
-
This works across all Action Pages, regardless of type.
-
Field Mapping
Anedot Field | Kindful Field |
---|---|
data_format (Kindful field) | event type {contact_with_transaction} (financial pages) {contact} (non-financial pages) |
action_type (Kindful field) | action type |
match_by: contact (Kindful field) | matching data through contact email (hardcoded) |
data_type (Kindful field) | format for data coming through (json) |
first_name | first name |
last_name | last name |
email address | |
primary phone | phone number |
company_name | employer name |
addr1 | address line 1 |
addr2 | address line 2 |
city | city |
state | state |
postal | zip/postal code |
updated_at | updated timestamp (in UTC, iso8601 format) |
amount_in_cents | transaction's total amount |
transaction_id (submission ID) | transaction ID |
transaction_type | transaction payment method type (e.g. credit card ) |
transaction_updated_at | transaction updated timestamp (in UTC, iso8601 format) |
campaign_id (Action Page ID) | campaign ID |
Payload Data
Request Headers
{ }
Request Body
{
"data_format": "contact_with_transaction",
"action_type": "update",
"match_by": {
"contact": "email"
},
"data_type": "json",
"data": [
{
"first_name": "Annie",
"last_name": "Dot",
"email": "[[email protected]](/cdn-cgi/l/email-protection)",
"primary_phone": "12252501301",
"company_name": null,
"addr1": "1340 Poydras Street",
"addr2": null,
"city": "New Orleans",
"state": "LA",
"postal": "70112",
"updated_at": "2024-06-21T03:16:31Z",
"amount_in_cents": 2500,
"transaction_id": "3f9eba14-76a3-4bc0-b72b-2e1a73cb34d0",
"transaction_type": "credit_card",
"transaction_updated_at": "2024-06-21T03:16:31Z",
"campaign_id": "8a9467c6-1243-44d6-af68-2461a9975880"
}
]
}
Response Body (Success)
{
"id": "f6c13ff5-130b-419d-8f73-40da5dcbf179",
"status": "pending"
}
Response Body (Error)
{ }
Response Status (Success)
200
Response Status (Failure)
null