Somebody on the leadership team wants a live view of membership sales in a Google Sheet. Your marketing coordinator wants this week’s new members in a shared tab. The finance lead wants daily admissions without logging into Altru. The data is all sitting in Altru queries, so the question is how to get it from there into Sheets without someone exporting a CSV every Monday morning.
There are a few ways to do it. They differ mostly in how fresh the data stays and how much babysitting each one needs.
Start with the query, not the spreadsheet
Whatever route you choose, the Altru query is the part that matters most. A few habits save a lot of rework later:
- Build one query per purpose. A “New members this month” query and a “Daily admissions by program” query are easier to maintain than one giant query that feeds everybody.
- Only include the fields the sheet needs. Every extra column is one more piece of constituent data living outside Altru. If the sheet is for counts and revenue, leave out addresses and phone numbers.
- Use relative date filters (this month, last 7 days) rather than fixed dates, so the query keeps working without edits.
- Keep the column order stable. Formulas and charts in Sheets reference columns by position. Reordering output fields in the query can quietly break a dashboard.
Option 1: Export and import by hand
Run the query in Altru, export the results to CSV or Excel, and import that file into Google Sheets (File, then Import, and choose to replace the current sheet or a specific tab). It works with no setup and no special permissions.
The catch is obvious: the sheet is only as current as the last person who remembered to do it. That’s fine for a monthly board report. It falls apart for anything people check daily. If you go this way, keep the raw import on its own tab and build your charts and summaries on a separate tab that references it, so replacing the data doesn’t wipe your formulas.
Option 2: OData, and why Sheets makes it harder than Excel
Altru is built on Blackbaud’s Infinity platform, and queries can be made available as OData feeds. Excel and Power BI both have built-in OData connectors, so for those tools you paste the feed URL, sign in, and refresh whenever you want current data. Check your query’s properties and your security role to see whether OData access is enabled for the queries you need; if you can’t find it, Blackbaud support can confirm what your site allows.
Google Sheets is a different story. It has no native OData connector. The functions people reach for first, like IMPORTDATA and IMPORTXML, fetch public URLs and can’t sign in to anything. An Altru OData feed requires authentication, so pasting the feed URL into those functions won’t return your data.
Some admins try Google Apps Script, which can make authenticated web requests on a timer. Whether that works depends on how your Altru site authenticates API and OData requests, and on how comfortable your organization is with storing credentials in a script. Before you invest time, test a single request against a small query and confirm with Blackbaud support that the authentication method you’re using is supported for automated access. If it isn’t, the script will break the next time a password or sign-in policy changes, and nobody will notice until the numbers look stale.
A workable middle path for some teams: connect Excel to the OData feed, refresh it there, and use Excel as the shared source instead of Sheets. That’s not what was asked for, but it’s honest about where the native tooling is today.
Option 3: A scheduled sync
If the sheet needs to stay current without anyone touching it, you want something that runs the Altru query on a schedule and writes the results into a specific Google Sheet tab. Some general-purpose integration platforms can do parts of this, but you’ll need to check that they can actually reach Altru query output, not just generic Blackbaud APIs.
When evaluating any scheduled approach, ask:
- Does it run a saved Altru query, so your admin keeps control of the fields and filters?
- Does it replace the tab each run, or append? Replacing is usually right for dashboards; appending is better for building history.
- What happens when a run fails? You want an alert, not a silently frozen sheet.
- Who owns the Google account the sheet lives in? If it’s a departing employee’s personal Drive, the sync dies with their account.
Don’t skip the privacy check
Once constituent data leaves Altru, Altru’s security roles no longer protect it. Google Sheet sharing settings do. Before you automate anything, decide who can see the sheet, keep it in a shared drive owned by the organization, and turn off “anyone with the link” access. If the audience only needs totals, have the query return totals. Aggregated numbers in a spreadsheet are a lot less risky than member names and emails.
Also keep in mind that Google Sheets has a cell limit per spreadsheet. A query that pulls every transaction line for several years can hit it faster than you’d expect. Summarize in the query where you can.
Where Social Good fits
Our Data Bridge was built for this exact situation: it syncs Altru query results to Google Sheets (and to tools like Mailchimp and ActiveCampaign), so the sheet stays current without manual exports. Your queries stay in Altru, and Altru remains where the data is maintained.
Quick answers
Can I paste an Altru OData URL into IMPORTDATA?
No. IMPORTDATA can’t authenticate, and Altru feeds require a sign-in.
Will editing the Google Sheet change anything in Altru?
No. These approaches move data one way, out of Altru. Make corrections in Altru and let the next export or sync pick them up.



