AI-in-action-6

How a University Fundraising Team Got a Unified Donor View in HubSpot

When a university fundraising team came to Fast Slow Motion, they were not dealing with a missing data problem. They had over 100,000 records in HubSpot, years of giving history, event attendance logs, family relationship data, and detailed contact notes. What they did not have was a way to see all of that information in one place, for any given contact, at the moment a development officer needed to make a decision.

The result was a team spending significant time on administrative research before every outreach call, working from an incomplete picture of each prospect, and missing donors who should have been in active cultivation. The data existed. The unified view did not.

This is the story of how that changed.

The Starting Point: Scattered Data, Siloed Records

HubSpot is built around objects: contacts, companies, deals, tickets. Each object has its own record, its own properties, its own associated records. For a business managing a sales pipeline, that structure works well. For a fundraising organization tracking decades of donor relationships, it creates a visibility problem.

A contact record for a university alumna might show her name, email address, graduation year, and last gift date. To understand whether she is worth prioritizing for outreach, a development officer would also need to know: How many times has she given total? At what levels? Did she attend the regional alumni event last fall? Is her daughter currently enrolled? Has she been contacted by anyone on the team in the last six months? Has she ever indicated she prefers not to be solicited by phone?

Each of those answers lives somewhere in HubSpot. None of them live in the same place. Pulling them together for one contact takes five to ten minutes of clicking through associated records. Doing that for a list of 500 prospects takes days. For 100,000 contacts, it is simply not possible.

The team knew they were missing opportunities. They could not quantify how many, because they could not see the full picture. Why fundraising teams lose ground when donor prioritization is manual describes this pattern and why it compounds over time.

The Goal: Move From Conjecture to Clarity

Before FSM started any configuration work, the first conversation was about what the team was actually trying to accomplish. Not what features they wanted, but what decisions they needed to make better.

The answer was straightforward: they needed to know who to call. Not in general terms, but specifically — on any given day, for any given fundraiser, which contacts in the database represented the best use of that person’s time.

That goal shaped everything that followed. The solution did not need to produce a detailed analysis of every contact. It did not need to generate outreach copy or recommend talking points. It needed to produce a clear, reliable signal for each contact: high priority, medium priority, or low priority. Simple enough to act on immediately. Grounded enough in real data to be trusted.

Getting there required solving two problems in sequence: first, creating a unified view of each contact that pulled together all the relevant data; second, applying scoring logic to that view at scale. What is HubSpot’s data agent and what can it actually do? covers the tool that made the second part possible.

Building the Unified View in Data Studio

The first technical step was building an aggregated view in HubSpot’s Data Studio that brought together everything relevant to donor scoring for each contact.

This meant pulling in data from multiple associated objects: giving records, event attendance records, family relationship associations, and communication logs. Data Studio allowed FSM to create a view that combined all of this into a single row per contact, with columns representing each of the signals that would feed into the scoring prompt.

A few decisions made during this step had meaningful downstream effects.

Giving history required some cleanup before it could be used reliably. Records from different giving platforms had been entered with slightly different formatting conventions over the years, which would have made the scoring logic inconsistent if not addressed. Standardizing the format before building the aggregated view ensured the data agent was working with consistent inputs.

Family relationships needed to be confirmed as properly associated in HubSpot. In several cases, parent and student records existed but were not linked in the system, which meant the relationship data would not have appeared in the aggregated view without that association being created first.

Event attendance was tracked across multiple lists rather than a dedicated object, which required a consolidation step before it could be included in the Data Studio view.

None of these were insurmountable problems. But they required assessment and cleanup before the scoring system could run reliably. Is your HubSpot data clean enough to use AI on? covers how to identify these issues before you start building.

Writing the Scoring Prompt

With the unified view in place, the next step was writing the prompt that would tell the data agent how to evaluate each contact.

The scoring criteria came directly from the development team’s senior staff. FSM worked with them to articulate what they actually looked for when deciding who to prioritize — the signals they weighed, the thresholds that distinguished a high from a medium, the situations that would move a contact to low regardless of giving history.

Those criteria got translated into a structured prompt with clear output instructions. The prompt specified exactly three possible outputs: High, Medium, or Low. No variations in formatting, no explanatory text, no numerical scores. Just a clean classification that the team could filter on, trigger workflows from, and report against.

The prompt also included explicit suppression logic. Contacts who had indicated they did not want to be solicited were automatically designated Low, regardless of any other signals. This was built into the prompt rather than handled as a post-processing step, so the output was always clean and ready to use. How to build a donor scoring system inside HubSpot covers the prompt design process in more detail.

What the Team Got

Once the scoring system was running, the operational change was immediate. Every contact in the database had a score. The team could filter their full contact list to surface only high-priority prospects. Fundraisers started their day with a clear, data-grounded view of who to contact, without spending time on manual research first.

A few outcomes stood out specifically.

Several contacts that had not been worked in years surfaced as high priority. These were donors with strong historical giving patterns who had gone quiet and simply drifted out of the team’s active view. The scoring system flagged them because the data was there — it just had not been surfaced before.

Management got a dashboard view of how the pipeline was distributed across priority levels, which gave them a real basis for directing staff time and reporting to leadership on fundraising readiness.

The team started having conversations about expanding the scoring logic to other outreach scenarios — not just major donor identification but reunion giving campaigns, planned giving qualification, and annual fund prioritization. The proof of concept created appetite for more.

What Made It Work

A few factors made this implementation successful that are worth naming directly.

The scoring criteria came from the people doing the work, not from a generic template. The prompt reflected how the university’s own senior development officers thought about donor potential, which meant the output matched their expectations and they trusted it.

The output was kept simple. High, medium, low. Not a 0-100 score, not a paragraph of AI analysis, not a weighted composite of twelve variables. A classification that a fundraiser could act on in three seconds.

The data work happened before the AI work. Getting the unified view right, cleaning up the inconsistencies, confirming the associations — all of that preceded any configuration of the data agent. The scoring system is only as good as what it has to work with.

Your donor database is full of answers — here is how to find them covers the full picture of what a donor prioritization system looks like when all of these pieces are in place. And a recent episode of AI in Action walks through this implementation directly, with Eric Housh and Zack Terry covering the decisions, the build, and what changed for the team.

Listen to the full podcast episode here.

Related Resources