Skip to main content
DonorPerfect
Updated over 2 months 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!

The Action Pages, Team, and credentials can be modified at any time post-setup.


Data Relays

  • Anedot currently supports the following fields. These fields must be setup on Action Pages as Hidden Custom Fields to work properly:

    • gl_code (General Ledger Code - Fund Name)

    • solicit_code

    • sub_solicit_code

    • campaign

    • gift_narrative

    • gift_type

    • gfname

    • glname

    • receipt_delivery_g

    • donor_rcpt_type

      • Blank = Individual

      • I = Individual

      • C = Consolidated

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


Data in DonorPerfect

  • 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

Anedot Field

DonorPerfect Field

“0”

donor_id

firstName

first_name

lastName

last_name

middleName

middle_name

suffix

suffix

title

title

title, or if not present, firstName

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

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_processed (supports total charge amount, import for DPF)

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

gift_narrative*

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

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

gift_narrative*

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?