Someone clicks “unsubscribe” in your newsletter tool in April. In June they buy timed tickets online, the purchase updates their constituent record in Altru, and the next time you pull a list for the fall appeal, there they are again. Now you have an annoyed patron, and possibly a compliance problem.
Opt-outs go wrong in Altru for one main reason: the unsubscribe happens in one place (your email platform) and the list gets built in another (an Altru query). Unless something carries that preference back into Altru and every list respects it, the two drift apart. The fix is mostly discipline and a few good queries, not new software.
Decide where the opt-out “lives”
Pick one place in Altru that means “do not send marketing email to this person,” and make every list depend on it. In practice, organizations use one of these:
- A solicit code on the constituent record (something like “Do not email”). This is the most common approach because it’s visible on the record and easy to filter on in queries.
- A flag on the email address itself, if your setup marks individual addresses as do-not-email. This helps when one person has a personal and a work address and only opted out of one.
- A constituent attribute you’ve created for email preferences. More flexible, but easier for staff to overlook.
Which options you have, and what they’re called, depends on how your Altru database was configured. Check your code tables and a few existing constituent records before building anything. What matters is choosing one convention, writing it down, and not letting different departments invent their own.
Separate marketing from transactional email
An opt-out from your newsletter shouldn’t stop someone from getting the eTicket they just paid for, an order confirmation, or a donation receipt. Those are transactional messages. Be explicit about this in your policy:
- Marketing: newsletters, event promotions, appeals, membership solicitations. These honor the opt-out.
- Transactional: tickets, receipts, acknowledgments, renewal notices for an active membership. Decide as a team where renewal reminders fall. Many organizations treat them as service messages, but some members see them as marketing.
If you offer more choices (for example “events only” or “member news only”), add separate codes for each. Keep the list short. Five preference options that nobody maintains are worse than two that everyone respects.
Getting unsubscribes back into Altru
This is the step most teams skip. Your email platform knows who unsubscribed, bounced, or marked you as spam. Altru doesn’t, unless you tell it.
- Export the suppression list from your email tool on a regular schedule: unsubscribes, plus hard bounces and spam complaints if you want those handled too. Include the date of each opt-out.
- Match on email address. This is where duplicate constituents hurt you. If the same person exists twice in Altru, you may update one record and keep mailing the other. Look for duplicates before or during the match.
- Apply your opt-out convention in bulk. For a handful of names, update the records by hand. For hundreds, use Altru’s import process to add the solicit code or update the field. Import options vary, so run a small test file first (ideally in a sandbox) and confirm the code actually lands where your queries expect it. If you’re not sure the import supports the field you chose, ask Blackbaud support before you load the full file.
- Record the source and date where you can, for example in the solicit code’s dates or a note. When someone asks “why am I not getting your emails?” you’ll want to show they opted out, and when.
Make this a recurring task with an owner, not a cleanup project you do once a year. Monthly is a reasonable floor. If you send weekly, sync more often. In the US, CAN-SPAM expects commercial opt-outs to be honored within ten business days, so a quarterly import isn’t fast enough.
Build every list from a query that excludes opt-outs
Once the preference is in Altru, protect it at the point of list-building:
- Create one base “emailable constituents” query that excludes your opt-out code, deceased records, and records without a valid email. Build every marketing list from it, or copy its filters exactly.
- Don’t let staff export ad hoc lists from other queries for marketing sends. That’s how opted-out people slip back in.
- Re-run the query right before each send instead of reusing an old export.
Online purchases and re-subscribing
The scenario at the top is common: a guest opts out, then buys online, and the purchase looks like fresh consent. It isn’t. Buying a ticket is not agreeing to marketing.
Review what your online forms do. If there’s an email opt-in checkbox, find out whether checking it, or leaving it unchecked, changes anything on an existing constituent’s record. Test it: make a purchase as a test constituent who already has the opt-out code, then look at the record afterward. If the behavior isn’t what you expect, document it, and make sure your import of opt-outs runs after purchases are processed so a later unsubscribe always wins.
If someone explicitly opts back in, through a signup form or by asking, remove the code and note the date and source. Consent should be traceable in both directions.
Keeping Altru and your email tool in step
Everything above can be done with exports, imports, and queries. The weak point is usually the manual handoff in the other direction: moving fresh Altru lists into your email platform without someone pulling a stale spreadsheet. Social Good’s Data Bridge syncs Altru query results to tools like Mailchimp, ActiveCampaign, and Google Sheets, so if your “emailable constituents” query already excludes opt-outs, the list in your email tool stays current without manual exports.
Quick answers
Should we delete the email address when someone unsubscribes?
No. You’ll lose the ability to send their eTickets and receipts, and you’ll lose the record that they opted out. Keep the address and mark the preference.
What about bounced addresses?
Treat hard bounces separately from unsubscribes. A bounce means the address is bad, not that the person declined. Flag or retire the address, and ask for a new one at their next visit or purchase.



