Explore more resources for non-profits

For Non-Profit IT: How to Build a Fundraising Data Foundation
This is the fifth post in our Fundraising Intelligence series, a five-part look at how non-profits can turn siloed data into faster donor and campaign decisions with a strong data foundation and AI agents. The fourth post, on how campaign and marketing teams can turn donor data into smarter segmentation, lives here.
A 2-part solution
If you run data or IT at a non-profit, you already know where the fundraising team’s questions tend to end up: with you. The donor picture is spread across a CRM, a finance system, a marketing platform, an events tool, and a few spreadsheets nobody can quite retire, and none of them were built to answer a question together. So every campaign, board report, and major-gift cycle becomes a custom data pull, and that queue is never empty. Whether you’re a team of one or of many, keeping the data usable competes with everything else you own.
The solution has two parts:
A data foundation, a single governed place that pulls those scattered sources together and makes them consistent, so a donor, a gift, or a campaign resolves to the same thing everywhere.
An AI agent that sits on top of that foundation, so the fundraising team can ask their own questions of the data instead of routing each one through you.
In our approach, that data foundation is Microsoft Fabric, and that agent is our Fundraising Intelligence Agent. The foundation is where everything rests, so that is where the build starts.
What you’re actually standing up
That Microsoft Fabric foundation is a fairly conventional modern data platform under the hood. Source data lands through ingestion pipelines and notebooks into a Medallion lakehouse in OneLake, moving from a raw bronze layer to a cleaned, conformed silver layer to a curated gold layer of facts and dimensions. A non-profit data model applies the business logic on top of that, so the same donor, gift, or campaign resolves to the same thing across systems. A semantic model and a set of prebuilt Microsoft Power BI reports sit above the gold layer. Microsoft provides this as its non-profit data solutions in Fabric.
What comes preconfigured, and what you build
The point of the preconfigured solution is that a good deal of the plumbing is already built. The medallion lakehouse, the ingestion pipelines and notebooks, the sector data model, and the prebuilt fundraising reports and semantic model are included. By default, the ingestion targets two sources: Salesforce Nonprofit Success Pack, and Microsoft Dynamics 365 Sales through the Common Data Model for Nonprofits in Dataverse. If one of those is your system of record and the data is reasonably clean, a large part of the first mile is done for you. If it isn’t, and many non-profits run Raiser’s Edge, Bloomerang, DonorPerfect, or some mix, connecting them is work you own: a pipeline or a shortcut per source, mapped into the same model. The same holds for the data the fundraising model doesn’t already cover, such as marketing engagement, events, and finance. The honest read is that the solution gives you a strong starting structure, not a finished integration for every system you run.
How it connects to what you already run
One advantage of Microsoft Fabric here is that connecting a source doesn’t have to mean copying it. A OneLake shortcut points to data where it already lives, in Azure Data Lake Storage, Amazon S3, Google Cloud Storage, Dataverse, or, more recently, SharePoint and OneDrive, and Fabric reads it in place, kept in sync, with no copy pipeline to maintain. Where a shortcut doesn’t fit, pipelines and dataflows handle the ingestion. Either way, the systems of record at the bottom of the stack stay where they are. You’re adding a governed layer above them rather than replacing them, which is the realistic option given how rarely a non-profit’s core systems get retired.
Governance, consent, and access
Because the data is donor data, governance can’t be an afterthought bolted onto each report. On this foundation it can live in the layer itself: lineage that traces a number back to its source, role-based access that decides who sees what, sensitivity labeling, and the consent and retention rules a donor-data estate has to honor. Anything built above it, the agent included, inherits that trail rather than reinventing it. For a team that has fielded a where-did-this-number-come-from question in an audit or a data-subject request, this is the part that turns a pile of connected data into something defensible.
We have built this kind of governed foundation on Microsoft Fabric for Amnesty International, the world’s largest human-rights organization, as the central data platform behind their research. Their Head of IT Business Systems, Mira Mistri, has described the result as, “Having data in a central place gives us more accurate and better reporting, better data governance, and master data management..”
The AI agent on top
The agent is the last piece, and deliberately so. There is more than one way to build an agent, and the choice of tool is yours; our Fundraising Intelligence Agent is built on Microsoft Copilot Studio and grounded on the Microsoft Fabric data beneath it. Whichever route you take, the same rule holds, which is why the foundation comes first: an agent is only ever as good as the model underneath it, and one pointed at unconformed data will answer confidently and sometimes wrongly. Once the gold layer and semantic model are trustworthy, the agent can turn a typed question into a query against them and return the answer where people already work. Building it is its own task, connecting the agent to the data, defining what it can reach, and testing its answers, but it’s a task that only pays off on a foundation that is already sound.
Deploying the solution
There are two ways to stand up the preconfigured solution. The path Microsoft recommends is the Fabric workload interface. There is also a scripted path, a PowerShell installation that deploys the lakehouses, notebooks, pipelines, triggers, reports, and semantic models into your workspace. Either way you need an active Fabric capacity and workspace, and the scripted route expects PowerShell 7, Python 3.10 or later, and the Fabric CLI. A couple of specifics are worth knowing up front: connecting Dynamics data means linking your Dataverse environment to Fabric and using Common Data Model for Nonprofits version 3.1.3.4 or later, with change tracking enabled on the tables you sync. You can deploy with the included sample data first, which lets you stand the whole thing up and watch the reports populate without touching a production system. The solution is open source, so the code, the data models, and the deployment scripts all live in Microsoft’s Nonprofits repository on GitHub, the fastest way for your team to see exactly what it does before committing to anything.
How long it takes depends almost entirely on your sources. When the source is one the solution already targets and the data is reasonably clean, the preconfigured pipelines and semantic model can compress what used to be a multi-quarter build into a matter of weeks. An early adopter interviewed in a recent webinar we co-hosted with Microsoft, La Ligue Contre Le Cancer, had its data team stand up a working donor data dashboard in two weeks. That figure is real but conditional. Sources the solution doesn’t cover, data that needs cleaning, and the governance and adoption work around the edges are all yours, and none of it is a switch you flip. The preconfiguration saves you the scaffolding, not the judgment.

Find out what it would take, before you commit to a build
During HSO's Microsoft Fabric Data & AI Workshop for Non-Profits, you'll explore opportunities in your current data landscape, see Microsoft Fabric in action with non-profit-relevant examples, and walk away with a practical roadmap for a modern, mission-driven data strategy.
Putting it together
For a data or IT team, this is less a build from scratch than an assembly: a preconfigured Microsoft Fabric foundation, your own connections to the systems it doesn’t already reach, governance carried in the layer, and an agent added last, in that order. The parts that are done for you are real, and so is the part that stays yours. The foundation is what everything else stands on, and it is the part your team would own, which is reason enough to look closely and work out, on your own terms, what it would actually take.