Blackbaud Altru Integration
BetterUnite pushes your fundraising activity into Blackbaud Altru, so the constituent record in Altru stays your system of record without anyone retyping gifts, guest lists or volunteer hours. The sync is one directional: BetterUnite writes to Altru and never changes BetterUnite data based on what is in Altru.
What the integration sends
- Donors and donations. Each donation becomes an Altru revenue payment, credited to a designation you choose, against a constituent that BetterUnite finds or creates.
- Event guest lists and check-in. Guests on a BetterUnite event campaign are registered on a mapped Altru fundraising event, and anyone checked in at your door is marked attended in Altru.
- Approved volunteer hours. Hours from a volunteer sign-up page become Altru timesheets against a volunteer job occurrence.
- Contact activity. Notes, calls and meetings logged on a BetterUnite contact are filed on the Altru constituent record as constituent notes.
Each of those is separately controlled. Connecting Altru does not switch any of them on by itself.
Before you start
You need three things:
- An Altru environment. Altru is a distinct Blackbaud product from Raiser's Edge NXT, and the two are not interchangeable here. If your organization runs Raiser's Edge NXT, use the separate Blackbaud integration instead.
- Blackbaud sign-in credentials with administrator access to that Altru environment. One person consents once, on behalf of the organization.
- A BetterUnite plan that includes the Altru integration. If it does not, the tile on the Settings page will offer to unlock it rather than open.
Altru's fundraising module has to be enabled on your environment for designations to load. If it is not, the connection will succeed but there will be nothing to map campaigns to.
Connecting your Altru account
- Go to Settings, find Blackbaud Altru under Integrations, and click Manage.
- Click Connect to Altru. You are taken to Blackbaud's sign-in page.
- Sign in and approve access for BetterUnite.
- Choose your Altru environment. Blackbaud offers every environment your account can reach, which may include Raiser's Edge NXT environments. BetterUnite checks the one you pick and tells you if it is not Altru.
You come back to the settings screen, which then shows Altru account is linked along with the environment name and, where Blackbaud supplies one, the legal entity. That line is how you confirm you connected the environment you meant to.
If the screen says Altru did not answer
A warning at the top of the page means the credentials were stored but Altru would not respond to the first request. The connection is kept rather than discarded, because the usual cause is a module that is not enabled rather than a bad sign-in. The designation, event and note type lists will be empty until Altru answers.
Disconnecting
Use the three-dot menu at the top right and choose Remove Connection. This clears the stored credentials only. Your sync options and every campaign mapping are kept, so reconnecting does not mean redoing your configuration. Reconnecting does require someone to sign in to Blackbaud and approve BetterUnite again, which is why the action asks you to confirm.
Sync options
Open Sync Options at the top right of the screen. Everything in the panel saves together when you click Save.
| Option | What it controls | Default |
|---|---|---|
| Amount to send | Which figure from a BetterUnite donation becomes the Altru payment amount | Intended amount |
| Default designation | Where a gift is credited when its campaign has no designation of its own | None, so unmapped campaigns are skipped |
| Label for other payment methods | Text carried on payments whose method has no Altru equivalent | BetterUnite |
| Sync activities as constituent notes | Whether contact activity is filed on the Altru constituent record | Off |
| Note type | Which of your Altru note types those activities are filed under | None, and required before activity sync can run |
| Sync schedule | Times of day the sync runs unattended | Off, so syncing is manual only |
Amount to send
A BetterUnite donation carries several figures, and which one your finance team treats as the gift differs by organization.
- Intended amount is what the donor meant to give, before processing fees are taken out. This is the default and is what most organizations want.
- Gross amount is everything the donor paid, including any fees they covered.
- Net amount is what actually reached your account after fees.
This setting applies to every donation sent from that point on. It does not change gifts already in Altru.
Default designation
Every Altru payment must be credited to a designation. A campaign can be mapped to its own, and this setting covers the rest. Leaving it blank is a deliberate option: with no default, a donation from an unmapped campaign is skipped rather than credited somewhere arbitrary, which is usually the safer failure for a finance team. Set a default only if you would rather everything land somewhere than have gifts wait for a mapping.
Label for other payment methods
Altru's list of payment methods is fixed and short. Card and wallet payments that have no exact equivalent are sent as Other, and this text is carried alongside so they stay identifiable in a finance export. Setting it to your processor's name is a common choice. Maximum 50 characters.
Sync activities as constituent notes, and the note type
Turning this on sends notes, phone calls and meetings from BetterUnite onto the Altru constituent record. Consider whether you want that: staff notes written in BetterUnite become visible to everyone who can see the constituent in Altru, which some organizations want and others deliberately avoid.
A note type is required, and BetterUnite will not let you save the switch on without one. Altru validates the note type against your organization's own list, so there is no value that works everywhere and no sensible default to guess. The list on this screen is read from your environment. If it comes back empty, activity sync cannot be turned on yet.
Sync schedule
Choose up to four times a day. Times are shown in your organization's time zone and stored in UTC, so a daylight saving change does not shift when the sync runs relative to UTC.
A scheduled run is narrower than a manual one, on purpose:
- It looks at donations from the last 30 days only. Older gifts have to be synced by hand from the transactions list.
- It sends at most 200 donations per run, so one large backlog cannot exhaust your Altru API quota for the day.
- It only considers campaigns that resolve to a designation, either their own or the default.
Leave the schedule off and nothing syncs until you press a button.
Mapping campaigns to Altru
Mapping is per campaign and there are three independent kinds, each on its own tab. A campaign can use any combination of them.
| Map a campaign to | Found on | What it enables |
|---|---|---|
| An Altru designation | Sync Donations | Where that campaign's gifts are credited |
| An Altru event | Sync Guests | Pushing the guest list and check-in state |
| An Altru volunteer job occurrence | Sync Volunteers | Pushing approved volunteer hours as timesheets |
Changing any mapping dropdown reveals a Save Mapping button next to it. Nothing is saved until you click it, so you can change your mind without a page reload undoing your place in a long list.
How a gift's designation is decided
| Campaign mapping | Default designation | Result |
|---|---|---|
| Set | Anything | Credited to the campaign's designation |
| Not set | Set | Credited to the default designation |
| Not set | Not set | Not sent. The donation reports that the campaign has no designation and no default is set |
Altru events, not daily admission programs
The event dropdown lists Altru fundraising events. It does not list daily admission programs, which are a different kind of record in Altru and are not what a BetterUnite event campaign corresponds to. If you cannot find your event in the list, check that it exists in Altru as a fundraising event.
The campaigns list
The Sync Donations tab splits your campaigns into two views:
- Available to Sync holds campaigns with donations that are neither in Altru nor excluded, plus campaigns that have taken no donations at all, so you can set a mapping up before the first gift arrives.
- Fully Synced holds campaigns whose every donation is either in Altru or deliberately excluded.
Each row shows the campaign name, its designation mapping, how many of its donations are synced, and the total. Where a campaign has excluded donations, the count of those appears under its name.
Only campaigns with donations
Most organizations have far more campaigns that have never taken a donation than ones with gifts waiting to go to Altru. The Only campaigns with donations switch beside the two views hides the empty ones and is on by default. It reports how many rows it is hiding, so a short list is never a mystery. Switch it off when you want to map a designation for a campaign before its first gift.
Opening one campaign
View opens that campaign's transactions and adds a Transactions view to the row of tabs. Syncing donations is done from there rather than from the campaigns list, so you can see what is about to be sent, and filter or exclude it, before anything reaches Altru.
Syncing donations
The transactions list shows one row per donation, with the amount, date, donor, sync status and the actions available for it. Two filters sit above the list.
| Filter | Shows |
|---|---|
| Show All Eligible | Donations that are not excluded. This is the view you land on |
| Show Errors | Donations Altru rejected, with the reason |
| Show UnSynced | Donations that have not settled either way yet |
| Show All | Every donation, whatever its state |
| Show 'Do Not Sync' Transactions | Only the donations you have excluded |
The date box limits the list to donations created on or after that date. Both filters are applied by the server, so they narrow what the count in the footer reports as well.
What you can do to a single donation
| Action | What it does |
|---|---|
| Sync | Sends this one donation to Altru now |
| Do Not Sync | Excludes it. It stops appearing as eligible and is never sent, by hand or on a schedule |
| OK To Sync | Clears that exclusion |
| Mark As Sync'ed | Records it as already in Altru without sending anything. For gifts you entered in Altru yourself |
| Reset Sync Status | Clears the sync state so it can be sent again. This does not remove the record from Altru, so syncing after it creates a duplicate there |
| Search icon by the donor name | Looks the donor up in Altru and reports whether they already exist, writing nothing |
| View Detail | Opens the full donation record |
Mark As Sync'ed and Reset Sync Status both change BetterUnite's record of what happened without touching Altru. Each asks you to confirm and states what it will not do. Used carelessly, the first hides a gift that never arrived and the second duplicates one that did.
Syncing a whole campaign
Sync All above the list sends every eligible donation in the open campaign. Unlike a scheduled run it is not limited to the last 30 days: you asked for the backlog, so you get the backlog. A panel reports how many were sent and lists the reason for any that were not.
Excluding the zero-amount transactions
A ticketed event or a form can produce zero-amount records that have no place in Altru. The gear menu above the list offers Mark $0 transactions as Do Not Sync, which excludes every zero-amount row in the current view. It acts on what the filters are showing, tells you how many rows it will change, and asks you to confirm first.
What is sent for each donation
| In Altru | Comes from |
|---|---|
| Constituent | The matched or newly created constituent for the donation's contact |
| Date | The date the donation was created in BetterUnite |
| Amount | The figure chosen by Amount to send |
| Receipt amount | The tax deductible portion of the gift, never more than the amount sent |
| Designation | The campaign's designation, or the default |
| Payment method | Mapped from the BetterUnite payment type, see below |
| Other payment method | Your configured label, on payments that map to Other |
| Reference | What was purchased, the net amount, and the donation note, to 250 characters |
| Given anonymously | Set when the donation was made anonymously in BetterUnite |
Payment methods
Altru's payment methods are a fixed list, so BetterUnite maps onto it rather than inventing values.
| BetterUnite payment type | Altru payment method |
|---|---|
| Credit card, online or offline | Credit card |
| Cash | Cash |
| Check | Check |
| Everything else, including wallets and processors | Other, carrying your configured label |
Receipt amount
Altru requires a receipt amount on every payment, and it is not always the same as the payment. A ticketed event splits into a deductible portion and fair market value: a $100 ticket with $40 of fair market value is a $100 payment and a $60 receipt. BetterUnite sends its own calculated deductible figure, which equals the payment on a plain donation.
The receipt is capped at the amount sent, because the two are measured against different things. The deductible is calculated from the gross, while the payment follows your Amount to send choice, so an organization sending the net amount could otherwise receipt more than it recorded as paid.
How donors are matched to constituents
Before creating anything, BetterUnite asks Altru whether the donor already exists, matching on email address with an exact match required. Only an exact, case insensitive match counts. Altru's search can return name-similar people, and attaching a gift to the wrong donor is worse than creating a duplicate.
| Situation | What happens |
|---|---|
| One Altru constituent has that email | The gift is credited to them, and the link is remembered for future gifts |
| Nobody has that email | A new constituent is created |
| The contact has no email address at all | No match is attempted and a new constituent is created |
| Altru cannot be searched, or answers in a way that cannot be trusted | Nothing is created and the donation reports the problem. A failed sync is one retry; a duplicated constituent is a manual merge in Altru |
What a new constituent gets
Altru will not accept contact details on the constituent record itself, so each one is a separate step: the individual first, then the email address, phone number and address. The email, phone and address are each marked primary, because they are that constituent's only one and Altru will not surface a non-primary email on the record or in a search.
Contact details are best effort. If Altru rejects one, the gift still posts, and the donation's sync detail says which detail did not attach and why, so a constituent never arrives incomplete without anyone being told.
Event guest lists and check-in
Map a BetterUnite event campaign to an Altru fundraising event on the Sync Guests tab, then use Sync Guests on that row. The tab only appears when your organization has event campaigns.
- Guests are registered against the Altru event, and a constituent is found or created for each of them the same way a donor is.
- It is safe to re-run during an event. The existing Altru guest list is read first, so anyone already registered is adopted rather than added twice, including registrations made by your staff directly in Altru.
- Anyone checked in or checked out in BetterUnite is marked attended in Altru. Attendance is only ever set, never cleared, so a guest your front desk marked attended in Altru is not un-attended because BetterUnite has not caught up.
- A guest you have excluded is never sent.
If a guest registers but check-in does not carry across, that row reports it, because the registration is most of the value and is worth keeping.
Volunteer hours
Map a BetterUnite volunteer sign-up page to an Altru volunteer job occurrence on the Sync Volunteers tab, then use Sync Hours. The tab only appears when your organization has volunteer sign-up pages.
Only approved hours are ever sent. The BetterUnite volunteer module has a real review workflow, recording who approved each entry and when, and pushing unreviewed time into your system of record is exactly what that review exists to prevent. Pending entries wait for approval; rejected entries are never sent.
Each approved entry becomes an Altru timesheet. BetterUnite also makes sure the person has a volunteer record in Altru first, which is safe to do for someone who is already a volunteer.
Contact activity as constituent notes
With activity sync on and a note type chosen, BetterUnite files notes, phone calls, meetings and general activities onto the Altru constituent record.
- Only contacts already in Altru. Activity sync never creates a constituent. A donor reaches Altru through a gift; a note about someone who has never given would otherwise conjure a record nobody expected.
- Editing an activity updates the note in Altru rather than adding a second one.
- Notes are titled by activity type, so a call arrives as Call followed by its subject.
- This runs on its own schedule, roughly every four hours, and is not tied to the sync times you set for donations. Notes are additive and low stakes; revenue is not, which is why only revenue waits for a time you chose.
Sync statuses
| Status | Meaning |
|---|---|
| Blank | Never attempted. Eligible to sync |
| Sync'ed | In Altru. The row shows the Altru payment it created |
| An error message | Altru rejected it. The message is the reason, and appears in the row rather than being hidden behind an icon |
| No Sync | Excluded by you. It is never sent, by hand or on a schedule, until you set it back to OK To Sync |
A synced donation can also carry a note, such as Synced. Altru would not accept the email. That means the gift posted but a contact detail did not attach. Hover the status to read the full text.
Sync job runs
The Sync Job Runs tab lists the scheduled runs, most recent first: when each was scheduled, when it actually executed, whether it succeeded, and the error if it did not. Times are UTC. If the tab is empty and you expected runs, check that a sync schedule is enabled in Sync Options.
Troubleshooting
The designation list is empty
Altru returned no designations. The usual cause is that the fundraising module is not enabled on the environment you connected. It is also worth confirming, on the linked account line, that you connected the Altru environment rather than a Raiser's Edge NXT one.
A donation says the campaign has no designation
The campaign is not mapped and there is no default designation. Either map the campaign on the Sync Donations tab, or set a default in Sync Options if you would rather unmapped campaigns land somewhere.
The note type list is empty
Your Altru environment returned no constituent note types. Activity sync cannot be enabled until one exists, because Altru validates the value against your own list.
A donor lookup says the search is not filtering
Altru answered, but with results unrelated to the address searched for, which means the answer cannot tell us whether the donor exists. Syncing is blocked for that donor rather than risk creating a duplicate. This is a configuration problem to report to us, not something to work around from this screen.
Everything fails after working for months
Blackbaud access is renewed with a rotating token that BetterUnite maintains. If that chain breaks, every call fails at once. Remove the connection and connect again; your sync options and campaign mappings survive it.
Limits worth knowing
Altru's API allows roughly 5 calls per second and 25,000 calls per day on the standard edition, and BetterUnite deliberately stays under that ceiling.
A brand new donor costs about five calls: searching for the constituent, creating it, then the address, the email and the payment. A donor already in Altru costs two. That arithmetic is why a scheduled run is capped at 200 donations and why a very large first backlog is better synced across a few sessions than in one attempt.