DonorPerfect
Updated over a week ago

DonorPerfect is a donor management software used by nonprofits for marketing, automations, integrations, and fundraising tools.

Anedot relays financial data collected through Anedot Donation Pages to DonorPerfect.


Connect Anedot to DonorPerfect

To connect your Anedot fundraising account to DonorPerfect successfully, follow the steps below:

  1. Access the Settings>Intregrations tab within your fundraising account Dashboard.

  2. Select the blue + New Connection button in the upper right corner.

  3. Select DonorPerfect from the Integration Directory.

  4. Next, select which Action Pages you would like to sync with DonorPerfect. Default is All Action Pages.

    • 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 DonorPerfect.

  5. Apply your DonorPerfect API Key.

  6. Click Save!


Data Relays

  • Anedot currently supports the following Hidden Custom Fields:

    • gl_code

    • solicit_code

    • sub_solicit_code

    • campaign

    • gift_type

    • gfname

    • glname

    • receipt_delivery_g

    • donor_rcpt_type

  • Hidden Custom Field values can be set at the page-level, as a Global Value, or through URL Parameters.

  • Custom Field values are stored on all donations and recurrence payloads.​

  • Single and Multi-Fund relays are supported.

    • This is determined by the @split_gift='Y/N)' param. Y = Multi-Fund, N = Single Fund)

    • For Multi-Fund donations, expect n+1 relays (where n is the number of funds). The first relay will have @record_type='M' for "main gift," which is a summary of the total donation amount. Each subsequent relay corresponds to an individual fund and will have @record_type='G'.

    • Multi-Fund donations send one relay per fund.

  • In DonorPerfect new records are created and updated based on the Email for that record.

    • Use Quick Search to locate donor records. The search results will display the record Created Date and Modified Date. The Modified Date references the most recent successful relay. See the image below.

    • Click on the donor record to view specific details such as the donor's contact information, latest donation, and other donation metrics. See the image below.

    • To view all donations for a donor, click the Gifts tab. See Image 3.


Field Mapping

Donor Relay

This is related to the SaveDonor Template

Anedot Field

DonorPerfect Field

"0"

donor_id

firstName

first_name

lastName

last_name

middleName

middle_name

suffix

suffix

title

title

N/A

salutation

N/A

prof_title

N/A

opt_line

address {line1}

address

address {line2}

address2

address {city}

city

address {region}

state

address {postal_code}

zip

address {country}

country

N/A

address_type

N/A

home_phone

N/A

business_phone

N/A

fax_phone

phone

mobile_phone

email

email

"N"

org_rec

"IN"

donor_type

"N"

nomail

N/A

nomail_reason

N/A

narrative

*donor_rcpt_type otherwise "I"

donor_rcpt_type

"Anedot"

user_id

*Custom Hidden Fields must be added to the Anedot Donation Page in order to be relayed.

Donation Relay

This is related to the SaveGift Template

Anedot Field

DonorPerfect Field

"0"

gift_id

donor_id (from Donor Relay's Response)

donor_id

"G" (or "M" for multi-fund)

record_type

created_at

gift_date

total_amount

amount

*gl_code

gl_code

*solicit_code

solicit_code

*sub_solicit_code

sub_solicit_code

*campaign

campaign

*gift_type

gift_type

"N" (or "Y" for multi-fund)

split_gift

"N" for one-time donations, "Y" for pledges/commitments

pledge_payment

(Donation) id (or (Submission) id for multi-fund)

reference

N/A

transaction_id

N/A

memory_honor

*gfname

gfname

*glname

glname

0

fmv

0

batch_no

N/A

gift_narrative

N/A

ty_letter_no

DonorPerfect gift ID for the first multi-fund donation (main gift) otherwise blank

glink

DonorPerfect pledge ID for pledges/commitments

plink

"N"

nocalc

N/A

old_amount

"USD"

currency

N/A

gift_aid_date

N/A

gift_aid_amt

N/A

gift_aid_eligible_g

"N"

receipt

*receipt_delivery_g (for non-split/single fund gifts and for main gift on split/multi-fund gifts) otherwise "N"

receipt_delivery_g

"3DD"

acknowledgepref

"Anedot"

user_id

*Custom Hidden Fields must be added to the Anedot Donation Page in order to be relayed.

Pledge Relay

This is related to the SavePledge Template

Anedot Field

DonorPerfect Field

"0"

gift_id

donor_id (from Donor Relay's Response)

donor_id

created_at

gift_date

(Commitment) schedule_start

start_date

"0"

total

N/A

bill

(Commitment) first letter of frequency ("A", "S", "Q", "M")

frequency

"Y"

reminder

*gl_code

gl_code

*solicit_code

solicit_code

"N"

initial_payment

*sub_solicit_code

sub_solicit_code

N/A

writeoff_amount

N/A

writeoff_date

"Anedot"

user_id

*campaign

campaign

N/A

membership_type

N/A

membership_level

N/A

membership_enr_date

N/A

membership_exp_date

N/A

membership_link_id

N/A

address_id

N/A

gift_narrative

N/A

ty_letter_no

N/A

vault_id

N/A

receipt_delivery_g

N/A

contact_id

*Custom Hidden Fields must be added to the Anedot Donation Page in order to be relayed.


Payload Data

Donor Contact Details

Request Body (Find Donor)

"select donor_id, first_name, last_name, address, city, state, zip from dp where email = '[email protected]'"

Request Body (Create Donor)

"@donor_id=0, @first_name='Annie', @last_name='Dot', @middle_name='E', @suffix=null, @title='Mrs', @salutation=null, @prof_title=null, @opt_line=null, @address='123 Test Road', @address2=null, @city='New Orleans', @state='LA', @zip='70112', @country='US', @address_type=null, @home_phone=null, @business_phone=null, @fax_phone=null, @mobile_phone='12015551234', @email='[email protected]', @org_rec='N', @donor_type='IN', @nomail='N', @nomail_reason=null, @narrative=null, @donor_rcpt_type='I', @user_id='Anedot'"

Response Body (No Donor Found)

{
"result": null
}

Response Body (Create Donor)

{
"result": {
"record": {
"field": {
"id": "",
"name": "",
"value": "35609"
}
}
}
}

Response Body (Donor Found)

{
"result": {
"record": {
"field": [{
"id": "donor_id",
"name": "donor_id",
"value": "30689"
}, {
"id": "first_name",
"name": "first_name",
"value": "Annie"
}, {
"id": "last_name",
"name": "last_name",
"value": "Dot"
}, {
"id": "address",
"name": "address",
"value": "1340 Poydras Street"
}, {
"id": "city",
"name": "city",
"value": "New Orleans"
}, {
"id": "state",
"name": "state",
"value": "LA"
}, {
"id": "zip",
"name": "zip",
"value": "70112"
}]
}
}
}

Response Body (Failure)

{
"result": {
"field": {
"id": "success",
"name": "success",
"value": "false",
"reason": "login failed"
}
}
}

Donation Details

Request Body

"@gift_id=0, @donor_id=34524, @record_type='G', @gift_date='6/22/23', @amount=50.0, @gl_code=null, @solicit_code=null, @sub_solicit_code=null, @campaign=null, @gift_type=null, @split_gift='N', @pledge_payment='Y', @reference='dd5e83ad6fe6294e460d2', @transaction_id=null, @memory_honor=null, @gfname=null, @glname=null, @fmv=0, @batch_no=0, @gift_narrative=null, @ty_letter_no=null, @glink=null, @plink=143377, @nocalc='N', @old_amount=null, @currency='USD', @gift_aid_date=null, @gift_aid_amt=null, @gift_aid_eligible_g=null, @receipt='N', @receipt_delivery_g='N', @acknowledgepref='3DD', @user_id='Anedot'"

Response Body (Success)

{
"result": {
"record": {
"field": {
"id": "",
"name": "",
"value": "120169"
}
}
}
}


Payload Templates

SaveDonor

@donor_id=0,
@first_name= resource_first_name,
@last_name= resource_last_name,
@middle_name= resource_middle_name,
@suffix= resource_suffix,
@title= resource_title,
@salutation="",
@prof_title="",
@opt_line="",
@address= resource_address_line_1,
@address2= resource_address_line_2,
@city= resource_address_city,
@state= resource_address_region,
@zip= resource_address_postal_code,
@country= resource_address_country,
@address_type="",
@home_phone="",
@business_phone="",
@fax_phone="",
@mobile_phone= resource_phone,
@email= resource_email,
@org_rec='N',
@donor_type='IN',
@nomail='N',
@nomail_reason="",
@narrative="",
@donor_rcpt_type='I',
@user_id='Anedot'

SaveGift

@gift_id=0,
@donor_id=<queried from DP>,
@record_type='G',
@gift_date=resource created_at,
@amount=resource total_amount,
@gl_code="",
@solicit_code="",
@sub_solicit_code="",
@campaign="",
@gift_type="",
@split_gift='N',
@pledge_payment='N' or 'Y',
@reference=resource id,
@transaction_id="",
@memory_honor="",
@gfname="",
@glname="",
@fmv=0,
@batch_no=0,
@gift_narrative="",
@ty_letter_no="",
@glink="",
@plink=<pledge_id queried from dp>,
@nocalc='N',
@old_amount="",
@currency='USD',
@gift_aid_date="",
@gift_aid_amt="",
@gift_aid_eligible_g="",
@receipt='N',
@receipt_delivery_g='N',
@acknowledgepref='3DD',
@user_id='Anedot'

SavePledge

@gift_id=0,
@donor_id=<donor_id queried from DP>,
@gift_date=resource created_at,
@start_date=resource commitment schedule,
@total=0,
@bill="",
@frequency=commitment frequency --> ('A', 'Q', 'M', or 'S'),
@reminder='Y',
@gl_code="",
@solicit_code="",
@initial_payment='N',
@sub_solicit_code="",
@writeoff_amount="",
@writeoff_date="",
@user_id='Anedot',
@campaign="",
@membership_type="",
@membership_level="",
@membership_enr_date="",
@membership_exp_date="",
@membership_link_id="",
@address_id="",
@gift_narrative="",
@ty_letter_no="",
@vault_id="",
@receipt_delivery_g="",
@contact_id=""

Did this answer your question?