A partner newsletter goes out with a code for $5 off admission. Three weeks later the marketing director asks a simple question: how many people used it, and who were they? It sounds like a two-minute query. In Altru it often isn’t, and knowing why saves a lot of digging.
The short version
Altru reliably records that a discount was applied to an order and how much it took off. Getting back to the exact code text a guest typed is less dependable, especially once you move from the sales order into query and reporting. If your setup lets several codes lead to the same discount, or you simply reuse one discount across campaigns, you may be able to tell that the discount was used without being able to tell which code or campaign it came from.
Results also vary by version and by where the sale happened (online, daily sales, advance sales, group sales). Before you build a reporting process around it, run a test: create a throwaway code in a sandbox or on a low-stakes item, make a purchase with it, and then try to find that code in the query areas your team uses. If you can’t find it, ask Blackbaud support whether the code is exposed anywhere in query for your setup.
Design your discounts so the report answers itself
The most reliable fix happens before the campaign launches, not after. If the discount itself identifies the source, you don’t need the code text at all.
- One discount per code you need to track. Rather than one “$5 Off Admission” discount shared by five partner codes, create five discounts. It’s more setup, but each one reports on its own.
- Name discounts the way you’ll want to read them in a report. Something like “2026-11 Library Partner $5 GA” sorts well and tells the next administrator what it was for, when, and how much.
- Put the code text on the discount record. Whether it goes in the name or a description field, having the code on the discount itself lets anyone reading the report match the two without asking marketing.
- Set end dates. Expired, clearly named discounts keep your pick lists short and stop old codes from muddying next year’s numbers.
This matters most for codes you hand to outside groups: partners, sponsors, school programs, influencers. Those are the ones someone will want attributed later.
Building the query
With one discount per code, the reporting question becomes “which orders received discount X,” which is a much easier question to answer in query. A few practical notes:
- Start from sales orders or revenue, not constituents. The discount lives on the transaction. Begin with the order and pull constituent fields through from there.
- Filter by discount and date range. Limit to the campaign window so you aren’t counting walk-ups who got a similar discount another way.
- Bring in order total, discount amount, and quantity. “How many people used it” might mean orders, tickets, or guests. Decide which one the person asking actually means.
- Expect anonymous sales. Daily sales at the admissions desk may not be tied to a named constituent. Your count can be accurate while your contact list is shorter than the count.
- Save it as a reusable query. Name it after the discount family, not the one campaign, so you can swap in the next discount instead of rebuilding.
If you need constituents for a follow-up mailing, turn the results into a selection. That lets marketing reuse the list without re-running the logic each time.
When the codes are already out there
Sometimes the campaign ran on a single shared discount and now someone needs the breakdown. Your options are limited, and it’s better to say so than to guess.
- Check whether the code shows on the individual order record. If it does, a small campaign can be counted by hand from a list of orders that used the discount.
- Look at your web analytics or your email platform. If each partner had a unique link, the traffic data may attribute purchases better than Altru can.
- Use timing as a rough signal. If partners promoted on different dates, spikes in discount use can hint at the source. Report it as an estimate, not a fact.
- Split the discount going forward. Even halfway through a campaign, new discounts per code mean the rest of the run is reportable.
Getting the numbers to the people who ask
The person asking about promo codes is rarely the person who builds queries. Sending exports by email works for one campaign but gets old fast when marketing wants weekly updates. Data Bridge, from Social Good, syncs Altru query results to Google Sheets and other tools, so a saved discount query can feed a shared sheet the marketing team checks on its own. It doesn’t change what Altru records, so the discount setup above still matters.
Quick answers
Can I see which guests used a specific discount?
Usually yes, through a query on orders filtered by that discount, as long as the sale was tied to a constituent.
Can I see which code a guest typed if several codes share one discount?
Don’t count on it. Test in your own environment, and if it isn’t available, set up one discount per code from now on.



