Sooner or later someone asks for “a spreadsheet of everyone’s ticket links.” Maybe a mail merge didn’t fire, a school group leader needs the tickets for forty students in one file, or you’re moving ticket delivery to a different email tool. Whatever the reason, the job is the same: pull e-ticket links out of Altru with a query, then export them in pieces small enough to work with.
Two parts of this are easy and one isn’t. Building and filtering the query is ordinary Altru work. Splitting the export into batches is mostly about choosing the right filter. The part to confirm before you promise anyone a deadline is whether the e-ticket link is available as a query field in your database at all.
Step one: confirm the link is queryable
Altru generates e-tickets for orders and sends them to buyers, but whether the full, clickable URL for each ticket shows up as a field in the query designer depends on your version and configuration. We won’t guess on that. Here’s how to find out in a few minutes:
- Start a new ad-hoc query from a sales-related source view (sales orders or tickets are the usual starting points).
- Search the field list for terms like “eTicket,” “print at home,” “ticket URL,” or “link.” Also expand the related ticket and order nodes, since fields like these are often a level or two down.
- If you find a candidate field, add it to the output with the sales order number, then open one of those orders and compare the link you see there with the query result.
- If nothing turns up, ask Blackbaud support whether the URL is exposed to query in your environment, or whether it can be built from a field that is (for example, a ticket or order identifier added to a base URL). Test anything you build against a real order before you send it to anyone.
If the URL turns out to be a base address plus an identifier, you can put it together in Excel or Google Sheets after export with a simple concatenation. Just don’t hard-code a pattern you’ve only checked against one order. Check several, including a group order and a member order.
Step two: build the query around the people you actually need
A query that returns every ticket ever sold isn’t useful and will be painful to export. Decide who the list is for and filter to that:
- Event date or date range: the most common filter, and the one that makes batching easy later.
- Sales channel: web orders, advance sales, or group sales, depending on who’s missing their tickets.
- Program or event: so one exhibition’s tickets don’t mix with another’s.
- Has an email address: if the goal is re-sending, rows without email are a separate list for the phone or the front desk.
For output, keep it lean: sales order number, constituent name, email, event name, event date and time, ticket count or ticket ID, and the e-ticket link. Each extra column makes it harder to scan and more likely to put information in the file that shouldn’t leave the building.
Decide early whether you want one row per ticket or one row per order. Someone resending tickets usually wants one row per order. A group leader handing out individual tickets wants one per ticket. If your query unexpectedly returns duplicate rows, a one-to-many join (order to tickets) is the usual cause. Pick the level you need and remove the fields that pull in the other.
Step three: split the export into batches
Altru doesn’t give you a “split into files of 500” button that we know of. You get batches by running the same query with a different filter each time. Practical ways to cut it:
- By event date: one file per day or per week. Easy to label and easy to tell if one is missing.
- By time slot: useful when a single date is too large or when entry times go to different staff.
- By sales order number range: works when you need roughly equal file sizes and dates don’t matter.
- By last name range (A–F, G–M, and so on): handy for group or school lists that will be printed.
Make the filter a prompt when you run the query, or save one copy per range, so you’re not editing criteria by hand between exports. Name each CSV with the range it covers and the date you pulled it. Then add up the row counts across batches and compare that with a single unfiltered count, which catches gaps and overlaps at the edges of your ranges.
Handle the file like it’s a stack of tickets
An e-ticket link usually works as the ticket itself. Anyone holding the file can open those links. Keep these exports out of shared drives and email attachments where possible, send each group leader only their own rows, and delete working copies when the job is done. If a file goes to the wrong person, assume those tickets are compromised and talk with your ticketing lead about reissuing them.
If this becomes a regular job
A one-time export is fine. If someone is rerunning the query and splitting CSVs every week, that’s the point to automate. Data Bridge syncs the results of an Altru query to Google Sheets, Mailchimp, ActiveCampaign, and other tools, so the list stays current without manual exports. You still need a query that returns the link (step one above). Data Bridge moves the data. It doesn’t create fields Altru doesn’t expose.
Quick answers
Can I re-send e-tickets without exporting anything?
For a single buyer, check whether your setup lets staff resend the confirmation or e-ticket from the order itself. That’s quicker than exporting. Exporting makes sense when you need to reach many buyers at once or deliver the links outside Altru.
Why do my batch totals not match the full query?
Usually a boundary problem. A date range filter that ends at midnight, or two order ranges that share an endpoint, will drop or double rows. Check the first and last record in each file.



