Registrations for a summer camp, a lecture series, or a school program often start life outside Altru: a partner’s signup form, a spreadsheet from a teacher, a list from a third-party registration tool. Sooner or later someone asks the obvious question: can we just import these people into the scheduled program so they show up on the roster?
The short, honest answer is that loading registrants straight into a scheduled program event, with tickets, capacity, and payments attached, is not something we’d count on Altru doing through its standard import tools. Constituent and revenue imports are well-trodden ground. Program event registrations are a different kind of record, because they’re sales: they consume capacity, carry a price, and sit inside an order. Before you build a plan around a bulk import, confirm what your version supports by checking with Blackbaud support or testing in a sandbox. In the meantime, there are workable approaches depending on what you actually need the data for.
Start with why you need registrants in Altru
“Import the registrants” can mean three different things, and each one points to a different method.
- You need an accurate roster and capacity. Staff need to see who’s coming, and the event should show as full when it’s full.
- You need the money in Altru. Registrants paid somewhere else, and finance wants the revenue recorded properly.
- You need the history. You want to know, a year from now, which constituents attended which programs, for marketing, membership outreach, or grant reporting.
It’s rare that all three matter equally. Deciding which one drives the project saves a lot of effort.
Option 1: Get the people in first, then book them
Whatever else you do, the registrants need to exist as constituents. This part Altru handles well through its constituent import process.
- Clean the incoming list. Split names into first and last, standardize addresses, and make sure every row has an email address or phone number you can match on.
- Check for existing records. Many registrants will already be in Altru as members, donors, or past buyers. Run the import with duplicate checking turned on, and review the possible matches rather than accepting everything as new.
- Tag the batch. Add a constituent attribute or a note that identifies the source and program, so you can pull this exact group into a query later.
Once they’re in, staff can create the actual registrations through advance sales or group sales, the same way they would for a phone order. For a list of twenty or thirty people, this is usually faster than hunting for a bulk method. For several hundred, it gets painful, which is the point where the next options are worth a look.
Option 2: Record attendance without creating sales
If the registrations were taken and paid elsewhere and what you really care about is history, you may not need program tickets in Altru at all. Common alternatives:
- Constituent attributes such as “Program attended” with the program name and date. Attributes can generally be included in constituent imports, they’re easy to query, and they don’t touch capacity or revenue.
- Interactions or notes recording that the person attended. Check whether your import setup supports these before committing; if not, attributes are the simpler route.
- A selection built from the import batch, which you can reuse in marketing and communications to target past attendees.
The trade-off is clear: the program’s roster and capacity in Altru won’t reflect these people. If the event is managed entirely by a partner, that may be fine. If your front desk checks people in from Altru, it isn’t.
Option 3: Record the revenue separately
When money changed hands outside Altru, finance usually wants it recorded. Rather than forcing it into program sales, many organizations post it as revenue through a batch, coded to the appropriate account and tied to the registrant or to a single organizational record for the partner. Work this out with whoever owns your general ledger mapping before you import anything, because reversing a batch of mis-coded revenue is far more work than getting the coding right the first time.
Option 4: Stop the problem at the source
The cleanest fix is usually upstream. If registrations keep arriving as spreadsheets, ask whether they could be taken in Altru from the beginning:
- Put the scheduled program on an Altru web form so families register and pay directly.
- For school groups or partner organizations that book in bulk, use group sales so one order can hold the whole group.
- If a partner insists on their own tool, agree on a fixed column layout for the export so your constituent import mapping can be saved and reused instead of rebuilt every time.
If you truly need bulk registrations
Some organizations run programs at a scale where manual booking isn’t realistic. In that case, talk to Blackbaud about what’s possible for your environment, including whether any custom or API-based approach is available to you. Ask specifically how imported registrations would affect capacity, order records, payments, and reporting, and test the full cycle in a sandbox before touching production. A partial solution that creates registrations without the matching orders or revenue will cause more cleanup than it saves.
A quick decision guide
- Small list, roster matters: import constituents, then book through advance or group sales.
- Any size list, only history matters: import constituents with a program attribute.
- Paid elsewhere, finance needs it: import constituents, post revenue through a batch.
- Recurring large lists: move registration into Altru, or explore a supported bulk option with Blackbaud.
Whichever path you pick, write it down. The next person who receives a registrant spreadsheet should know exactly what to do with it, and which method your organization decided on.



