A longtime member buys two timed tickets on your website on a Saturday morning. She types her work email instead of her personal one, abbreviates her street name, and skips the “log in” link. By Monday there are two of her in Altru: the member record with years of giving history, and a brand-new constituent holding a single ticket order. Multiply that by every weekend and your database splits a little more each week.
You can’t stop every duplicate from online sales, but you can cut the volume sharply and catch the rest before they spread into mailings, member counts, and acknowledgments. This guide covers where web duplicates come from, what to adjust, and a routine for cleaning up what still gets through.
Where online duplicates actually come from
Altru has to decide, for every web transaction, whether the buyer is someone it already knows. It makes that call by comparing the information typed into the form with what’s already on file. Duplicates happen when the two don’t line up closely enough. The usual causes:
- Different email addresses. Work vs. personal, an old address, or a typo. Email tends to carry a lot of weight in matching, so a mismatch here is a common source of new records.
- Name variations. “Bob” vs. “Robert,” a maiden name, a missing middle initial, or a spouse buying under their own name for the household membership.
- Address formatting. “Street” vs. “St.,” apartment numbers, or a move since the record was last updated.
- Buying without signing in. If your forms allow guest purchases, the buyer never gives Altru a direct link to their existing record.
- Someone else’s card or details. A grandparent buying for the family, an assistant buying for a board member, a teacher booking for a class.
Tighten what happens at the point of sale
Review your duplicate-matching settings
Altru administrators can generally influence how strictly incoming records are compared against existing constituents. Settings that are too strict create duplicates whenever one field differs; settings that are too loose risk merging two different people. Exactly which fields are compared and how web transactions are handled can vary, so test any change in a sandbox or confirm with Blackbaud support before changing production. Run a few realistic test purchases (nickname, different email, abbreviated address) and see which ones match.
Make the form work for matching
- Require email. If your form setup allows a confirm-email field, use it to cut typos.
- Ask for ZIP or postal code at minimum, even for ticket-only purchases. Name plus ZIP plus email is much easier to match than name alone.
- Put a clear “Members: sign in for your discount” prompt near the top. Members who sign in transact against their own record.
- Keep optional fields to a minimum. Fewer fields means fewer chances to enter something that conflicts with what’s on file.
Decide who the constituent is for gift purchases
When someone buys on behalf of another person, the record that receives the transaction should be the payer. Write that rule down and tell staff who process phone and walk-up orders, so online and in-person sales follow the same logic.
Uploads of people who work for an organization
Group sales and corporate partners create a second stream of duplicates. A company sends a spreadsheet of employees for a member night, and the import creates a new individual for each person, including some who are already your members under their personal details.
- Match before you import. Run the list against existing constituents first (a query export compared in a spreadsheet works fine) and attach the existing lookup ID wherever you find a confident match.
- Use relationships, not new records. Link the individual to the organization with an employer relationship rather than creating a second record “for work.” One person, one record, with the relationship carrying the context.
- Prefer personal email as primary when you have both, since work addresses change with jobs.
- Tag the import. Use an attribute or source code so you can find and review every record that came in from that file.
Catch the rest with a weekly routine
Some duplicates will still get through. The goal is to find them while they’re a few days old, not two years later when each one has gifts, memberships, and interactions attached.
- Build a query of constituents created in the last 7 days through online sales.
- Compare that list against existing records on email, last name plus ZIP, and phone.
- Merge confirmed pairs, keeping the older record with the longer history as the one that survives. Check memberships, households, and communication preferences on both before merging.
- Note recurring patterns. If the same type of mismatch keeps showing up, that’s a form or settings fix, not a cleanup task.
A short weekly pass on new records is far less work than a year-end cleanup, and it keeps member counts and mailing lists trustworthy.
Video walkthrough
The following video covers duplicate records in Altru.
Quick answers
Should I just disable guest checkout?
Requiring an account can reduce duplicates but also tends to cost sales, especially for first-time visitors. Many organizations keep guest checkout and prompt members to sign in instead.
Is it safe to merge records automatically?
Only for very high-confidence matches. Two people in the same household can share an address and even an email, so review anything that isn’t an exact match before merging.
Where Social Good helps
The weekly review is the part that’s easy to let slide. Social Good’s Deduper finds duplicate constituent and email records in Altru and helps you fix them, so the review step takes less manual comparing. The prevention steps above still matter; Deduper handles what slips past them.



