Connectors

/

DonorPerfect

/

Post DonorPerfect gifts to Intacct
Write
Cross-Connector

Post each day's DonorPerfect gifts to Sage Intacct once

For nonprofit finance teams who want daily gift revenue in Sage Intacct as balanced entries, by asking their AI assistant.

Try PopdockAI free
Get a live demo
Post DonorPerfect gifts to Intacct
Post DonorPerfect gifts from October 6 to Sage Intacct, debiting the operating cash account 1010.
Gifts on 2026-10-06 total 9,450 across 4 GL codes. - Ready: 3 codes totalling 8,700, each mapped to a revenue account - Already posted: no entry found with this reference - Unmapped: GL code 4410, 750, needs an account first - Dimensions: department FUND is required for account 4100 Shall I create the 3 entries as drafts?
DonorPerfect
Sample figures. Your results come from your own account.
donorperfect-get-gift
donorperfect-get-code
sage-intacct-get-account
sage-intacct-get-journal-entry
sage-intacct-get-general-ledger-detail
sage-intacct-create-journal-entry

On this page

The problem

The problem

The prompt

Who it's for

How it works

Tools used

Connector

DonorPerfect

DonorPerfect
Run it on your own DonorPerfect data.

Connect DonorPerfect, pick your AI tool and paste the prompt.

Try PopdockAI free

The problem

A day's gifts posted twice

Posting each day's DonorPerfect gifts to Sage Intacct means totalling them by GL code, finding each revenue account and building entries by hand. It is easy to post a day twice, or post gifts that already arrived through a deposit.

Without PopdockAI

  • Total the day's gifts by GL code
  • Look up each revenue account
  • Build journal entries by hand
  • Post a day that was already posted

With PopdockAI

  • Outright gifts are totalled by GL code
  • Each code maps to its revenue account, never guessed
  • Existing entries and matching credits are checked
  • One balanced draft entry per code after you approve

The prompt

Use this prompt

Copy it into any AI tool connected to PopdockAI. Swap the values in braces for your own.

Prompt
**Objective:** Post DonorPerfect gifts dated {gift-date} to Sage Intacct as one journal entry per GL code, debiting account {debit-account} and crediting each GL code's revenue account, in journal {journal} (default GJ). Save the entries as drafts unless the user asks to post them.

**Step 1: Total the day's gifts in DonorPerfect**

Call `donorperfect-get-gift` with `gift-date.from` and `gift-date.to` both {gift-date}. Keep outright gifts (`record-type` G with `pledge-payment` not set). Leave out soft credits (S) and pledges (P), and leave out pledge payments unless the user says theirs post to revenue: in most setups a pledge payment clears a receivable rather than earning revenue. Say how many rows of each kind you left out. Total `amount` by `gl-code` and count the gifts in each.

**Step 2: Map each GL code to its credit account**

Call `donorperfect-get-code` with `field-name` GL_CODE and `code` set to the GL code (if that returns nothing, call it with `code` alone and use the row from the GL code list). Its `account-number` is DonorPerfect's own mapping of that GL code to the accounting system. Confirm the account with `intacct-get-account` filtered by `account-number`. If `account-number` is blank, try the GL code itself as the Intacct account number. Also confirm {debit-account} exists with `intacct-get-account`; if it does not, stop.

* If a GL code has no account, leave it out and report it as unmapped. Never guess an account.
* If the account has `disallow-direct-posting` set, leave it out and say so.
* If the account has `require-dimension-department` or `require-dimension-location` set, ask the user for the department or location before going further.

**Step 3: Check nothing is already posted**

Each entry's reference number is DP-{gift-date}- followed by the GL code. Call `intacct-get-journal-entry` with `reference-number` set to it; if an entry exists, do not post that GL code again, and report it as already posted with its `transaction-number` and `state`. Then call `intacct-get-general-ledger-detail` for the credit account with `entry-date.from` and `entry-date.to` both {gift-date}. Rows repeat once per reporting method, so filter `reporting-method` to one method (accrual unless the user says otherwise). If you are unsure of the exact value, call once without it, read the values the rows carry, then filter. If credits on that date already equal the day's DonorPerfect total for the code, the gifts were probably posted another way (such as receipts or a deposit): leave the code out and say why.

**Step 4: Propose and confirm**

A table: GL code, gift count, credit account and title, amount, reference number, and status (Ready, Already posted, Posted another way, Unmapped, Needs dimension). State the debit account, journal, posting date, and whether the entries will be drafts or posted. Ask the user to approve. Create nothing until they do.

**Step 5: Create the entries**

For each approved Ready row, call `intacct-create-journal-entry` once with `journal` {journal} (GJ if blank), `posting-date` as MM/DD/YYYY, `title` "DonorPerfect gifts" followed by the date and GL code, `reference-number`, `debit-account` {debit-account}, `credit-account` set to the mapped account, `debit-amount` and `credit-amount` both set to the total, any department or location the user gave, and `state` set to draft unless the user asked to post. Then call `intacct-get-journal-entry` with the same `reference-number` to confirm the entry exists, and report its `transaction-number` and `state`.

**Rules & Guidelines:**

* Tools whose names start with donorperfect- are on the donorperfect server; tools whose names start with intacct- are on the intacct server. If either set is missing from your tool list, stop and say which server is not connected.
* The only write tool this prompt may call is `intacct-create-journal-entry`, on the intacct server, once per approved GL code.
* Never call `intacct-update-journal-entry` to change an existing entry, and never call a DonorPerfect save tool such as `donorperfect-save-gift`.
* Debit and credit must be equal, and must equal the DonorPerfect total to the cent.
* Never combine GL codes into one entry, and never split one GL code across entries.
* Pass dates as YYYY-MM-DD to the read tools; only `posting-date` takes MM/DD/YYYY.

**Validation:**

* If DonorPerfect has no gifts on the date, say so and stop.
* If a create call fails, report the error for that GL code and continue with the rest; never retry with a different account.
* If the confirming read finds no entry, say it may not have been created and give the reference number to check.

Who it's for

One answer, three teams that use it

Nonprofit accountants

Post daily gifts in minutes

Totals, mapping and duplicate checks are done for you.

Post DonorPerfect gifts from yesterday to Sage Intacct, debiting cash account 1010.

Controllers

Avoid double posting

Existing entries and matching deposits are found before anything is created.

Has November 3 already been posted to Intacct? If not, prepare the DonorPerfect gift entries.

Gift processors

See unmapped codes early

Codes with no account are listed instead of guessed.

Which GL codes on today's DonorPerfect gifts have no Sage Intacct account?

How it works

What PopdockAI does when you ask

You give the gift date and a debit account, and your AI assistant prepares one balanced entry per GL code. Entries are created as drafts only after you approve, unless you ask to post.

01

Ask

You give the gift date and a debit account.

Your AI tool

02

Map

It totals the day's gifts by GL code and maps each code to its revenue account.

donorperfect-get-gift
donorperfect-get-code
sage-intacct-get-account

03

Confirm

It checks for existing entries, and you approve the ready, posted and unmapped codes.

sage-intacct-get-journal-entry
sage-intacct-get-general-ledger-detail

04

Create

It creates one balanced draft entry per code and reads each back.

Your AI tool

What PopdockAI provides

The tools behind the answer

Ready made tools for DonorPerfect and one secure connection to your AI tool. No code, no exports.

get-data

donorperfect-get-gift

Returns gift and pledge transactions from DonorPerfect, with amount, date, campaign, solicitation and GL codes, and the donor each one belongs to. Filter by donor, by date range or by campaign to build giving history and campaign totals.
get-data

donorperfect-get-code

Returns the configuration code values behind DonorPerfect's drop-down fields, such as campaign, solicitation, gift type and GL codes. Use it to validate a code before writing a gift, pledge or donor record.
get-data

sage-intacct-get-account

Returns accounts from Sage Intacct. One row per general ledger account.
get-data

sage-intacct-get-journal-entry

Returns journal entries from Sage Intacct. The transaction-number links to the Get journal entry lines tool.
get-data

sage-intacct-get-general-ledger-detail

Returns general ledger details from Sage Intacct. One row per posted GL entry. Rows repeat per reporting method (for example accrual and cash), so filter by reporting method before totalling.
run-action

sage-intacct-create-journal-entry

Creates a balanced two-line journal entry in Sage Intacct: one debit line and one credit line for the same amount.
Read only.Nothing in DonorPerfect Changes

This report is built from Get data tools only. PopdockAI applies the row, field and parameter rules your admin sets, and every query is written to the audit trail.

How Popdock AI secures your data

The outcome

Daily gift revenue in Intacct, posted once

Try PopdockAI free
Get a live demo

Related use cases

More ways to put this data to work

All Ramp use cases

One prompt template with infinite possibilities.

‍

Your AI assistant adapts its approach, tone, and capabilities to match each unique context while you maintain a single, manageable workflow.

Join forward-thinking companies that are transforming their operations with intelligent, secure AI automation.

Try PopdockAI Free
See Documentation