/
/
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.
On this page
Connector
Connect DonorPerfect, pick your AI tool and paste the prompt.
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.
**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.
02
Map
It totals the day's gifts by GL code and maps each code to its revenue account.
03
Confirm
It checks for existing entries, and you approve the ready, posted and unmapped codes.
04
Create
It creates one balanced draft entry per code and reads each back.
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.
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
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.
The outcome
Daily gift revenue in Intacct, posted once
Related use cases
More ways to put this data to work
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.

.webp)
