/
/
Record Chorus donor calls as DonorPerfect contacts, once each
For fundraising teams who want each donor conversation logged against every donor who took part, by asking their AI assistant.
On this page
Connector
Connect Chorus, pick your AI tool and paste the prompt.
The problem
Donor calls go unrecorded, or get recorded twice
Every conversation with a donor should be recorded as a DonorPerfect contact, but logging a Chorus call means working out which participants are donors and writing the same summary for each. Calls go unlogged, or get logged twice.
Without PopdockAI
- Work out which participants are donors
- Check whether a contact was logged that day
- Write the same summary for each donor
- Log it twice, or not at all
With PopdockAI
- Outside participants are matched to donors by email only
- Donors already logged that day are skipped and listed
- You see the exact contacts and pick the activity code
- Contacts are written after you confirm and read back
The prompt
Use this prompt
Copy it into any AI tool connected to PopdockAI. Swap the values in braces for your own.
**Objective:** Record the Chorus conversation `{conversation-id}` as a DonorPerfect contact against every donor who took part, using the activity code `{activity-code}`.
**Step 1: Read the conversation in Chorus**
Call `chorus-get-engagements` with conversation-id. If nothing comes back, say so and stop. Note the date, subject, conversation-type, user-name and meeting-summary.
Call `chorus-get-conversation-participants` with conversation-id. Treat a participant as internal when its type marks it as an internal user or it has a user-id; skip those. Keep the external participants.
**Step 2: Match participants to donors**
For each external participant with an email, call `donorperfect-get-donor` with it as email. Record one of: matched (one donor), ambiguous (more than one donor), or not a donor (none). Do not match by name.
For each matched donor, call `donorperfect-get-contact` with the donor-id and contact-date.from and contact-date.to both set to the conversation date. If a contact already exists that day, mark the donor as already logged.
**Step 3: Confirm**
If `{activity-code}` is empty, ask the user for it. To help them choose, you may call `donorperfect-get-code` with field-name set to ACTIVITY_CODE and list the codes.
Show the user a table: participant name, email, donor-id, status (will log, already logged, ambiguous, not a donor). Show the contact that will be written: contact-date = conversation date, completed-date = conversation date, activity-code, by-whom = the Chorus user-name, comment = the subject followed by the meeting-summary (trim to 1000 characters). Ask for explicit confirmation. Do not continue without it.
**Step 4: Write and confirm**
After confirmation, call `donorperfect-save-contact` once per donor marked will log, with contact-id left blank. Then call `donorperfect-get-contact` for each donor and date to confirm the record exists. Report the contact-id created for each donor.
**Rules & Guidelines:**
* Tools named donorperfect-... are on the donorperfect server. Tools named chorus-... are on the chorus server; here they are used for reading only.
* The only permitted write is `donorperfect-save-contact`, once per confirmed donor, after the user confirms. Do NOT call any other DonorPerfect write tool (`donorperfect-save-donor`, `donorperfect-save-gift`, `donorperfect-save-pledge`, `donorperfect-save-address`, `donorperfect-save-other-info`, `donorperfect-save-link`, `donorperfect-set-flag`), and do NOT call any Chorus write tool (`chorus-add-moment`, `chorus-add-playlist-moment`, `chorus-create-playlist`, `chorus-update-moment`, `chorus-update-playlist`, `chorus-update-playlist-moment`, `chorus-export-recordings`, `chorus-export-scorecards`).
* Never pass a contact-id, which would overwrite an existing contact.
**Validation:**
* If no external participant matches a donor, report the participants as not in DonorPerfect and stop. Suggest the `new-contacts-not-in-donorperfect` prompt.
* Skip ambiguous and already-logged donors and list them in the final report.
* Convert the Chorus date to an ISO date (YYYY-MM-DD) before writing.Who it's for
One answer, three teams that use it
Major gift officers
Record donor meetings in one ask
Every donor who joined the call gets the contact, with the summary attached.
Log today's Chorus call with the Fabrikam family as a DonorPerfect contact.
Development directors
Keep donor history complete
Calls reach the donor record consistently, so the history reflects every conversation.
Log yesterday's Chorus meeting with the Northwind Foundation board as DonorPerfect contacts, activity code MTG.
Database managers
Avoid duplicate contacts
Donors with a contact already that day and ambiguous matches are skipped and listed.
Log the Contoso Foundation Chorus call in DonorPerfect, skipping anyone already logged today.
How it works
What PopdockAI does when you ask
You name the Chorus conversation and your AI assistant prepares a DonorPerfect contact for each donor on it. Existing contacts are never overwritten and nothing is saved without your confirmation.
01
Ask
You name the Chorus conversation and, optionally, the activity code.
02
Match
It matches each outside participant to a DonorPerfect donor by email.
03
Check
It skips donors with a contact already logged that day and ambiguous matches.
04
Confirm
You see the exact contacts and approve before they are written.
What PopdockAI provides
The tools behind the answer
Ready made tools for Chorus and one secure connection to your AI tool. No code, no exports.
chorus-get-engagements
chorus-get-conversation-participants
donorperfect-get-donor
donorperfect-get-contact
donorperfect-get-code
donorperfect-save-contact
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
Every donor on the call recorded 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)
