Track Marketing Campaigns with Promo Codes in Altru
← Back to Blog

How to Track Marketing Campaigns with Promo Codes in Altru

October 31, 2026

You ran a spring membership push: a postcard to lapsed members, a paid social ad, and a partner newsletter. Membership sales went up. Which of the three did it? A promo code is the cheapest way to answer that question in Altru, as long as you set it up before the campaign launches and accept what a code can and can’t prove.

What a promo code actually measures

A code tells you that someone typed a specific string at checkout. That’s useful, but it’s narrower than “this campaign caused this sale.” Keep three gaps in mind:

  • Codes travel. A discount code printed on a postcard ends up on coupon sites and in neighborhood Facebook groups. Sales that used the code aren’t all from the postcard.
  • People forget to enter them. Someone who saw the ad and bought anyway, without the code, is invisible to this method.
  • Front desk sales are uneven. Online, the buyer enters the code. In person, it depends on whether staff ask and apply it every time.

So treat code usage as a floor, not the full total. It’s still far better than guessing, and it’s reliable for comparing one channel against another if every channel gets the same treatment.

Set up the codes before anything goes out

Altru handles promotional pricing through its discount setup, and discounts can be tied to memberships, tickets, or both, and offered on web forms and at the point of sale. The specific options available (whether a discount can require a code, which sales channels it applies to, whether it can be limited by date) vary with how your organization is configured, so build a test discount in your sandbox or check with Blackbaud support before you print anything.

A few setup choices make the reporting much easier later:

  1. One code per channel, not one per campaign. SPRING-POST, SPRING-SOCIAL and SPRING-PARTNER tell you something. A single SPRING code only tells you the campaign happened.
  2. Use a naming pattern you can filter on. Start every code with the campaign name and end with the channel. Six months from now, someone will need to pull every spring code with one query filter.
  3. Decide whether the code has to give a discount. A code that takes 10% off motivates people to use it, which improves tracking, but it also costs revenue and invites sharing. Some teams pair a small perk with the code instead of a price cut. If you want a code that changes nothing about the price and exists only for tracking, test whether your Altru setup allows a zero-value discount before you count on it.
  4. Set start and end dates if you can. A code that stays active forever blurs one season’s results into the next.
  5. Write the codes down in one place with the channel, launch date, audience, and cost. That cost column is what turns a usage count into a cost-per-member figure.

Connect the code to your marketing records

Codes cover the moment of purchase. If the campaign also went out through Altru’s marketing and communications tools, such as a mailing to a list built from a query, you already have a record of who was sent what. Matching those two gives you a second view: of the people who received the postcard, how many bought a membership within the campaign window, with or without the code?

That “received and later purchased” number will usually be higher than code usage alone, and the gap between the two numbers is useful in itself. A large gap suggests the mailing worked but the code was ignored. A small gap suggests the code is capturing most of the response.

Build the report

Create a revenue or membership query that pulls transactions from the campaign window and includes the discount or promotion applied, the membership level, the amount, the sale channel (web or on site), and whether the transaction was a new join, rejoin, or renewal. Filter on your code naming pattern.

From that output you can answer the questions people will actually ask:

  • How many memberships each channel’s code produced
  • Whether the code mostly brought in new members or discounted renewals that would have happened anyway
  • Which membership levels each channel attracted
  • Net revenue after the discount, compared to the cost of the channel

The renewal question deserves attention. If most code redemptions are existing members renewing at a discount, the campaign may have cost you money rather than grown the program. Exclude renewals in a separate column so that’s visible.

If you aren’t sure which fields hold the applied discount in your query views, start by looking up a test transaction where you know the code was used, then find the field that shows it. That’s faster than browsing every field list.

Online campaigns: pair codes with link tracking

For email and paid digital ads, codes aren’t the only option. UTM-tagged links show which ad or email brought someone to your site, and your web analytics can report on that whether or not they enter a code. The two methods answer different things: link tracking shows traffic and visits, codes confirm the sale landed in Altru. Run both on digital channels and use codes alone for print, radio, and signage, where there’s no link to click.

Keeping the results in front of people

The weak point in most campaign tracking isn’t setup, it’s that the query gets run once at the end and nobody looks at it mid-campaign, when you could still shift budget. If your marketing team works in spreadsheets, Social Good’s Data Bridge can sync an Altru query to Google Sheets, so the code-usage report stays current without someone exporting it each week.

Quick answers

Can one transaction carry more than one code?
That depends on how your discounts are configured and whether they can be combined. Test it in your sandbox. If they can stack, decide which code gets credit before you report.

Should front desk staff enter codes for walk-up buyers?
Only if they do it every time. Inconsistent desk entry makes on-site numbers misleading. Many teams report web and on-site code usage separately for that reason.

Continue reading

How to Track Instructor Activity for Scheduled Programs in Altru

How to Track Instructor Activity for Scheduled Programs in Altru

“How many classes did Maria teach last spring, and which ones?” It sounds like a question Altru should answer in ten seconds. In practice, many education departments end up digging through calendars, email threads, and a payroll spreadsheet to piece it together, because the instructor was never recorded anywhere a query could find. Altru is

How to Turn a Group Sales Overpayment Into a Donation in Altru

How to Turn a Group Sales Overpayment Into a Donation in Altru

A school books a field trip for 60 students, sends a check for the full quote, and then 48 kids show up. The teacher says, “Keep the difference, it’s a gift.” Now you have a group sales order that is overpaid, money that is really a donation, and a deposit that has to balance. The

Can a Spouse Be a Fundraiser in Altru? Solicitor Credit for Couples

Can a Spouse Be a Fundraiser in Altru? Solicitor Credit for Couples

It happens more often than you’d expect. A board member and her husband both care about your capital campaign. She asks a friend for a gift, but it was really his introduction and his follow-up phone call that closed it. Development wants him credited as the fundraiser on that gift. Then someone at the desk

Social Good platform

See it in action

Get started with Social Good

Book a demo to see Social Good Software in action for Altru.

Book a Demo
Social Good platform

See Social Good in action

Tell us a bit about your organization and we’ll take you straight to short demo walkthroughs of the software.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.