Skip to content
Exodus Consulting Exodus Consulting
Book a free audit

Industries / Nonprofits and associations

Your donors exist three times, in three systems, spelled three ways.

A charity or association usually holds the same supporter in four places: the CRM, the giving platform, the events tool and the ledger. Each one is right about its own slice and wrong about the rest, so every appeal starts with a manual reconciliation that gets thrown away the moment it goes out. We build the layer that keeps one record true and answers the questions staff answer twice a day.

Who this is for

How it actually runs

Before anything is built, this is the week we are describing.

No software can be scoped from a category name. These are the specifics of nonprofits and associations that decide what is worth building and what is not.

  1. 01

    The donor list is three lists

    The CRM holds the mailing list. The giving platform holds who actually paid. The accounting system holds what was deposited. The same supporter sits in all three with a different spelling, a different address and a different email. Someone reconciles the three by hand before every appeal, then throws the working file away, and does it again next quarter.

  2. 02

    The year-end appeal is the whole plan

    A large part of the fundraising year lands in a few weeks around the year end deadline. The appeal goes out, gifts arrive through four channels at once, and the receipts have to be correct. Two people process gifts, answer the phone, fix bounced addresses and chase failed cards at the same time. Anything that is not the appeal waits until January.

  3. 03

    The main line is answered by whoever is free

    Calls come in from donors wanting last year's receipt, clients asking whether they qualify for a programme, members asking when dues are owed, and someone offering to volunteer. There is no queue and no script. The person who picks up is mid task on something else, and the call is not logged anywhere, so nobody knows how many came in or what they wanted.

  4. 04

    Funder reports are retyped, not assembled

    Every funder wants the same programme in its own template, with its own period, its own categories and its own definition of a participant. The numbers get pulled out of the programme system, retyped into a spreadsheet, then retyped again into a portal. When the board asks why two reports disagree, the honest answer is that they were typed on different days.

  5. 05

    Volunteer hours live in a binder

    Shifts are booked by email or a group chat, sign-in is a sheet at the door, and hours are added up at year end by whoever has the binder. Police checks and training dates sit in a separate folder. When a funder asks for volunteer hours by programme, or a coordinator asks who is cleared to work with children, the answer takes a week.

Where it leaks

Every one of these is measurable. Most are not measured.

The free audit prices these in your own numbers before anything is scoped. You keep the map whether or not you hire us.

Where the money and the hours go in nonprofits and associations, how it is measured today, and what closes it.
The leak How it is measured today What closes it
Monthly donors quietly lost to an expired card. Nobody counts it. It shows up as a smaller payout two months later. A card-failure watcher that flags the donor and drafts the call list the same week.
The same supporter gets three appeals and one thank you. Counted only when a donor phones to complain about it. Matching across systems with a confidence score and a merge a person approves.
Staff hours retyping the same numbers into different funder templates. Not measured. Absorbed by programme staff after hours. Reports assembled from source records, with every figure linked to its rows.
Calls to the main line that reach voicemail and never come back. There is no call log, so the number defaults to zero. An agent that answers every call, logs it, and transfers with context attached.

What we build

6 builds that pay for themselves here.

Each one states what it reads, what it does, and what a person still approves. Scope is agreed after the audit, one build at a time, against a baseline you sign.

Voice agent on the main line

The agent answers every call, says plainly that it is an assistant, and handles the routine ones: reissuing a receipt, confirming a gift arrived, hours and location, when dues are owed, how to volunteer. It reads the donor and member database and never writes to it. Anything about eligibility, a complaint or a large gift transfers to a person with the caller, the record and the reason already on screen.

Measured by: Share of incoming calls resolved without a staff member picking up.

Website chatbot for the repeat questions

It answers from your own published material: programme eligibility, drop-in times, what a donation pays for, how to get a duplicate receipt, how to renew a membership, what intake involves. Every answer cites the page it came from. When it cannot answer, it collects the question, routes it to the right inbox and attaches a draft reply for staff to edit and send.

Measured by: Emails landing in the general inbox each week.

One supporter record across every system

We read the CRM, the giving platform, the events tool and the finance ledger into one common shape, match records across them on name, address, email, phone and gift history, and score every match for confidence. Strong matches merge. Weak ones sit in a review queue with both records side by side. A staff member approves each merge and every merge can be undone.

Measured by: Duplicate constituent records still open in the review queue.

Funder reports that assemble themselves

Each funder template is set up once with its reporting period, its categories and its definition of a participant. The report then builds from the programme, volunteer and finance records, and every figure carries a link to the rows it was counted from. Staff read it, write the narrative and submit it. Nothing is filed with a funder without a person pressing submit.

Measured by: Staff hours spent per funder report.

Intake and onboarding that runs on time

A volunteer or member application creates the record, sends the forms, tracks the police check and the training dates, and offers first shifts against real availability. Reminders go out before an expiry rather than after it. Screening results and eligibility are entered by a coordinator, never inferred, and the system will not clear anyone to work on its own.

Measured by: Days from application to first cleared shift.

Segmented appeals off your own records

Segments are built from the reconciled data: monthly donors whose card is about to expire, members who lapsed after one renewal, first-time donors from the last campaign, volunteers who have never given. The system drafts a message per segment and shows the list and the count before anything moves. A person reads the draft, checks the consent flags and sends.

Measured by: Monthly donor retention rate, year over year.

The numbers

Borrowed statistics, with their sources and their limits printed.

None of these are our results. They are the published state of nonprofits and associations, linked so you can check them, with the caveat attached where the number is a survey, a forecast or a vendor's own figure.

41% to 32%

Formal volunteering through an organisation fell sharply across Canada in five years.

Statistics Canada, 2025

Survey data, self-reported by respondents to the Survey of Giving, Volunteering and Participating. The figure is the formal volunteer rate, meaning volunteering through an organisation.

35% of donors, 50% of dollars

Donation dollars are concentrated in older donors, so a lapsed older file is not a small problem.

Statistics Canada, 2025

Counts only donations claimed on a tax return, by filers aged 65 and over. Gifts that were never receipted or never claimed do not appear in it.

10 to 40 hours a month on reporting

Grant administration takes real staff hours every single month.

Imagine Canada, 2026

Self-reported by the organisations interviewed for the report, about federal funders specifically. It is qualitative research, not a random sample of the sector.

Where the data comes from

Your systems of record stay exactly where they are.

We read them, we do not replace them. Each one below says what we connect to, how, and the line the build does not cross.

Donor and member database

Usually: Blackbaud Raiser's Edge NXT, Salesforce Nonprofit Cloud, Keela, DonorPerfect, Sumac, iMIS, Wild Apricot

What it holds. Constituent records, gift and pledge history, membership status and dues, campaign codes, communication preferences and consent flags.

How we connect. Read-only through the vendor API where one exists, or a scheduled export into a Canadian-hosted copy where it does not. Writes go back through the API one record at a time and every write is logged.

Where it stops. We never bulk-overwrite constituent records. A merge, a consent change or a deletion is proposed with the evidence beside it and applied only after a staff member approves it.

Online giving, events and payments

Usually: CanadaHelps, Zeffy, Stripe, Moneris, Eventbrite, PayPal Giving Fund

What it holds. Donation and ticket transactions, monthly gift schedules, card failures and refunds, event registrations, and the contact details a donor typed at checkout.

How we connect. A webhook per transaction as it happens, plus a nightly payout pull so fees, refunds and settlement dates line up with what the ledger actually received.

Where it stops. No card data touches anything we build. The processor keeps it. We never retry a payment, change a recurring gift or issue a refund without a person doing it.

Programme, volunteer and finance records

Usually: QuickBooks Online, Sage Intacct, Sage 50, HIFIS, Penelope by Bonterra, Better Impact, SmartSimple

What it holds. Restricted and unrestricted fund balances, grant budgets and claims, client and participant files, volunteer hours, shifts and screening dates.

How we connect. A read-only replica on a schedule for the finance ledger, an API where the programme system offers one, and a mapped file drop where it does not.

Where it stops. Nothing is posted to the ledger and no client file is edited. We read, count and report. Journal entries stay with the bookkeeper and case notes stay with the caseworker.

Built around your rules

The regimes that govern this work, and how the build answers each one.

Constraints come first, because they decide the architecture. Bring us your hosting, residency and regulatory rules at the start and we design to them rather than around them.

Regulatory and professional obligations that shape a build in nonprofits and associations.
Regime What it demands here How the build complies
Income Tax Act registered charity rules (CRA) File the T3010 within six months of fiscal year end, issue receipts carrying the required content, and keep books and records at a Canadian address. Copies of donation receipts are kept for two years from the end of the calendar year of the donation, and most other records for six years. Everything we build stores its data in Canada. Gift and receipt records stay in the systems the CRA expects to look at, because we read those systems rather than replace them, and every figure in a report links back to the rows behind it so an auditor can follow the number.
PIPEDA and provincial privacy law (BC PIPA, Alberta PIPA, Quebec Law 25) PIPEDA catches a nonprofit when it does something commercial, which the Act defines to include selling, bartering or leasing donor, membership or other fundraising lists. BC PIPA covers not-for-profits and charities for all of their activities, not only commercial ones. Quebec Law 25 adds consent, breach reporting and a named privacy officer. Personal information stays in Canada. Access is granted by role, every read and write is logged, and consent and do-not-contact flags travel with the record through a merge, so combining two files can never quietly widen who is allowed to be contacted.
CASL A commercial electronic message needs consent, sender identification and a working unsubscribe. Registered charities have an exemption where the primary purpose of the message is raising funds, but a message that pushes a sponsor's commercial activity can fall outside that exemption. Consent status and where it came from sit on the record and are checked before any send. Anything not primarily a fundraising message is treated as commercial by default, with identification and an unsubscribe attached. A person approves the send list every time.
Alberta Charitable Fund-raising Act A charity expecting more than $25,000 in contributions from Albertans in a financial year must register, disclose a set list of details at the time of solicitation, and keep records of solicitations made in Alberta for at least three years. Every solicitation is logged with its date, channel, recipient and the disclosure text that was used, so the three year record exists by default instead of being rebuilt later. Province is stored on the record, so an Alberta list can be produced without filtering by hand.

What we will not automate

  • We do not let a system issue an official donation receipt on its own. A person confirms the eligible amount and any advantage first, because a wrong receipt is the charity's problem with the CRA, not the software's.
  • We do not automate a decision about whether someone qualifies for a programme, a bursary or a service. The system gathers the file and puts it in front of the person whose job it is to decide.

A person stays in the loop

Anything that spends money, sends something irreversible, or carries a professional obligation arrives as a draft with a named reviewer. The system prepares the work. A person decides whether it ships.

You own the code and the data at the end of the engagement.

Questions

The questions we get asked in nonprofits and associations.

No. Your CRM stays the system of record for constituents and gifts. We read it through its API, or on a scheduled export where the API is thin, and write back one approved record at a time. Pulling out a donor database mid year is how a charity loses its gift history. We build around the system you already pay for.

It helps you get the numbers right and it issues nothing on its own. We reconcile gifts across the giving platform, the CRM and the ledger so the totals agree before receipting runs, and every figure in a summary links to the transactions behind it. A person still approves receipts and files the return.

In Canada. Uniserve, a Canadian telecom, required every model and every byte hosted in Canada, and that requirement shaped how we build. For a charity it also sits well with the CRA rule that books and records be kept at a Canadian address. Access is granted by role and every read and write is logged.

With the free audit. We sit with you, map where the hours go, and print the arithmetic beside each fix. You keep that map whether or not you hire us. If we do build, we agree the number we are aiming at in writing first, the clock starts at deployment, you can cancel any time, and you own the code.

What happens next

Start with the audit, and know the number before you commit.

Three to five days. We map where the hours and the money go in your nonprofits and associations operation and hand you a ranked plan with the payback attached.

We map where time and money leak, and show the arithmetic before you commit to anything. You keep the map whether or not you hire us. If we do build, we agree the baseline in writing first, the clock starts at deployment rather than signature, and you own the code.

Who you talk to
Shiv and Vishal. No account managers, no slide decks.
Direct
shiv@exdsconsulting.com
Read next
What we build, then Our work.