
How to Build a Donor Scoring System Inside HubSpot
Building a donor scoring system inside HubSpot is not a matter of flipping a switch. It requires deliberate decisions about data structure, scoring logic, and output design before anything gets configured. The organizations that get the most out of this kind of system are the ones that do the thinking work first and the technical work second.
This post covers what that thinking work looks like and how it translates into a working scoring system using HubSpot’s data agent.
Start With the Scoring Criteria, Not the Technology
The most common mistake when building a donor scoring system is starting with the tool. Teams get excited about what HubSpot’s data agent can do and jump into configuration before they have answered the foundational question: what does a high-priority donor actually look like for your organization?
That question sounds simple. In practice, it requires getting specific in ways that most organizations have not been forced to articulate before.
A high-priority donor is not just someone who has given before. It is someone who has given recently, given multiple times, given at a meaningful level, and shown engagement signals that indicate an ongoing connection to the institution. It might also include someone who gave years ago at a high level and has not been contacted since — a lapsed major donor who represents a real recovery opportunity.
The criteria your organization uses to answer this question are probably already in use. Your best development officers apply them every day. The goal of this step is to make those criteria explicit, specific, and measurable, because the data agent needs instructions it can apply consistently across thousands of records. What your senior fundraisers know that your CRM doesn’t yet covers how to extract that institutional knowledge in a usable form.
Identify the Data Points That Matter
Once you have defined what a high-priority donor looks like, the next step is identifying which data points in HubSpot support that definition.
For most fundraising organizations, the relevant data points fall into a few categories.
Giving history is usually the most important. How many times has this person given? How recently? At what level? Is there a pattern of increasing, consistent, or declining giving? A contact who gave five times over ten years at increasing amounts is a different prospect than one who gave once three years ago.
Engagement signals matter alongside giving history. Event attendance, participation in giving campaigns, responses to outreach, and interactions with institutional communications all indicate connection to the mission. A contact who has never given but has attended three campus events and opened every fundraising email is worth cultivating differently than someone with no engagement history.
Family and household relationships add important context. In higher education fundraising specifically, the relationship between a student, their parents, and the institution evolves over time. A parent who is actively engaged while their child is enrolled may become a major donor years after graduation. Tracking those relationships and including them in the scoring logic requires intentional data structure, not just a contact record. Your CRM has the data — so why can’t your team act on it? covers the structural challenges that make this harder than it sounds.
Suppression signals belong in the scoring logic too. Anyone who has opted out of fundraising communications, requested not to be contacted, or has a known relationship flag that should limit outreach needs to be handled before the score is applied. Build this into the criteria explicitly so that low or excluded designations are accurate, not just defaults.
Assess Your Data Before You Build
Before writing a single line of prompt, it is worth doing an honest assessment of the data you have.
The data agent synthesizes what exists in HubSpot. If giving history is stored inconsistently, or event attendance is tracked in a format the data agent cannot access, or family relationships are not associated properly in the CRM, those gaps will show up in the output.
This does not mean the data needs to be perfect. It means you need to know what you have and build the initial scoring logic around the data that is reliable. A system that scores accurately on five strong data points is more useful than one that attempts to use fifteen data points, half of which are incomplete. Is your HubSpot data clean enough to use AI on? walks through how to assess readiness before building.
Build the Aggregated View in Data Studio
Once you know which data points matter and have confirmed they are accessible, the next step is pulling them together in HubSpot’s Data Studio.
Data Studio allows you to create views that aggregate contact data alongside data from related records. For donor scoring, this means building a view that includes not just the contact record fields but the associated giving records, event attendance records, and any other related objects that carry relevant scoring signals.
This aggregated view is what the data agent draws from when it runs the scoring prompt. The richer and more complete this view is, the more context the data agent has to work with. The goal is to give it everything that a senior development officer would want to know about a contact before making a prioritization decision.
Write the Scoring Prompt
The prompt is where the scoring criteria you defined in the first step get translated into instructions the data agent can follow.
A well-structured scoring prompt does a few things. It tells the data agent what information to consider. It provides clear definitions of what qualifies a contact as high, medium, or low priority. It specifies what to do with edge cases — contacts who have given once at a high level, contacts who have strong engagement but no giving history, contacts who meet some but not all of the high-priority criteria. And it specifies exactly what to output so the result is consistent and usable.
The output specification matters more than most teams expect. If the prompt says to output a score, some runs will return “High,” others will return “high,” others will return “H,” and others will return a sentence explaining the score. That inconsistency makes the output hard to use as a filter or a workflow trigger. Specify the exact format and values you want, and test the prompt against a sample of contacts before running it across the full database.
Configure the Smart Column and Write Back to HubSpot
Once the prompt is working as expected, the smart column is configured to run it across the aggregated view and write the output back to a contact property in HubSpot.
This step is what connects the AI processing to the rest of how the team works. A score that lives in a separate tool or a spreadsheet requires someone to go find it. A score that lives on the contact record in HubSpot is available in every list, every workflow, every report, and every view the team already uses.
From there, the score becomes a building block. It can be used to filter a list of high-priority contacts for outreach. It can trigger a workflow that assigns contacts to specific fundraisers based on their score. It can feed a report that gives management a real-time view of how the pipeline is distributed. How a university fundraising team got a unified donor view in HubSpot shows what this looks like when it is fully operational.
Plan for Iteration
The first version of the scoring system will not be perfect, and it does not need to be. The goal of the initial build is to get something running that produces useful output across the full database. From there, the team can evaluate whether the scores match their expectations, identify where the logic is missing something, and refine the prompt accordingly.
The organizations that get the most out of donor scoring systems are the ones that treat the prompt as a living document. As the team learns what the scoring is predicting well and where it is falling short, the prompt gets updated to reflect that learning. Over time, the system becomes more accurate and more useful.
A recent episode of AI in Action covers how FSM built this system for a university fundraising team, including the specific decisions that went into the scoring logic and what the team was able to do with the output once it was running.
Listen to the full podcast episode here.