DonorPerfect logo DonorPerfect automation · runs weekly

Enter DonorPerfect gifts from a deposit list

After a mailing or an event, a list of checks and donors sits in a spreadsheet, and someone retypes every line into DonorPerfect: look up the donor, add the gift, pick the codes.

Cotlet does it in your own DonorPerfect account with search_donors, list_codes, create_donor, add_gift and list_gifts, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can DonorPerfect do this on its own?

DonorPerfect enters gifts three ways (checked 23 Oct 2026): the gift form, Batch Gift Entry and the Utilities > Import file. Its XML API saves a gift with dp_savegift. None of them reads a deposit list in plain words: a person types each line, maps columns for the import, or a developer writes the calls.

How you do it in DonorPerfect today

  1. Staff type a name or ID into the Last Name/Org/Id # field on the Search screen and click Lookup. With no match, the Add Individual, Add Organization and Add Donor/Gift buttons appear.
  2. On the donor record, Add Gift opens the gift form with the date, amount, general ledger, solicitation, sub solicitation, campaign and thank you letter.
  3. Batch Gift Entry, under Tasks, groups gifts into batches so the DonorPerfect total matches the bank deposit, and posts them after review.
  4. For a file, Utilities > Import takes gifts for existing donors, and DonorPerfect advises running Backup and Restore under Utilities before it.
  5. If the donor has an open pledge, DonorPerfect asks on save whether to apply the gift as a pledge payment.

How to enter DonorPerfect gifts from a deposit list

Prompt

Here is this week's deposit list. For each line find the donor in DonorPerfect, add the gift with the codes I gave, and leave anything unclear for me.
  1. 01

    Find each donor

    search_donors runs once per line, by last name, organization or donor ID. One clear match goes on. Two or more matches, or none, put the line on your list, because a gift on the wrong donor is hard to spot later.

  2. 02

    Check the codes once

    list_codes reads your general ledger, solicitation, gift type and thank you letter codes from DonorPerfect. A code in your list that is not among them, such as a gift type spelled out in words, leaves the line for you instead of guessing.

  3. 03

    Add a donor only when asked

    create_donor runs only for lines you marked as new donors, or after you approve it. Utilities has a Duplicate Maintenance tool for cleaning up afterwards, but the agent searches first so it rarely has to.

  4. 04

    Enter the gift

    add_gift saves one gift on the donor record, not a batch. Each call waits for your OK until you switch confirmation off. If the donor has an open pledge, the tool answers no to the pledge question and lists the line for apply_pledge_payment.

  5. 05

    Compare with the deposit

    list_gifts reads back each donor's gifts, and the agent adds up what it entered and compares it with the deposit total in your list.

What you get back

Example data

Deposit list: 18 gifts, 3420.00
Entered 15, e.g. Dana Whitfield 250.00 (Fall Appeal, reference 4471)
Left for you 3:
- J. Alvarez 150.00 (two donors match)
- 90.00 with gift type "Cheque" (not a DonorPerfect code)
- Riverside Rotary 200.00 (no donor found)
Entered total: 2980.00 of 3420.00

Other ways to ask

  • Enter the gala table sales with solicitation GALA26 and thank you letter MAJOR for gifts of 1000 or more.
  • Check my list against DonorPerfect and show which gifts are already entered. Add nothing.
  • Create the donors that are missing, with their addresses from the form, then enter their gifts.

What DonorPerfect allows, and what to know first

  • DonorPerfect keeps a code list for each gift field under Settings > Code Maintenance, so list_codes returns your organization's codes, not a fixed set.
  • DonorPerfect asks on save whether to apply a gift to an open pledge, and a pledge payment must carry the pledge's codes, which is why this job leaves pledge payments to apply_pledge_payment.
  • SmartActions that your team set up on new gifts run when a gift is saved, so an entered gift can start a task or email you already have.
  • The XML API returns at most 500 rows per call, so a script that reads back a donor's gifts has to page; list_gifts pages for you with a cursor.

create_donor and add_gift ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: DonorPerfect: Managing pledges (import, pledge prompt) · DonorPerfect: Tributes in DonorPerfect (Add Gift, Batch Gift Entry) · DonorPerfect: Batch Gift Entry · DonorPerfect: SmartActions · DonorPerfect Online XML API Documentation

Call add_gift from a script

curl

curl -X POST https://cotlet.dev/api/v1/donorperfect/donors/48213/gifts \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-10-21","amount":250,"gift_type":"Check","gl_code":"GEN","solicitation":"FALLAPPEAL","thank_you_letter":"STANDARD","reference":"4471"}'

Example response

{
  "gift_id": 90417,
  "donor_id": 48213,
  "date": "2026-10-21",
  "amount": 250,
  "gift_type": "Check",
  "solicitation": "FALLAPPEAL",
  "thank_you_letter": "STANDARD",
  "status": "saved"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is donorperfect_write → add_gift. Example data.

Schedule it in n8n, Make, Zapier or cron

DonorPerfect tools this automation uses

Cotlet DonorPerfect tools used to enter DonorPerfect gifts from a deposit list
Tool Parameters
search_donors query, by, limit, cursor
list_codes field
create_donor type, last_name, first_name, organization, email, phone, address, city, state, zip
add_gift donor_id, date, amount, gift_type, gl_code, solicitation, sub_solicitation, campaign, thank_you_letter, reference, memo
list_gifts donor_id, limit, cursor
All 14 DonorPerfect tools with descriptions

Frequently asked questions

Is it safe to connect DonorPerfect to Cotlet?

Yes. You sign in to DonorPerfect yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get DonorPerfect once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

Give your agent access to DonorPerfect.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with DonorPerfect.