<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1094218042721276&amp;ev=PageView&amp;noscript=1">
Skip to content

Architecture Entry 5 of 11

How can nonprofits use HubSpot custom objects?

Nonprofits can use custom objects to create dedicated CRM record types for information that does not fit cleanly into HubSpot's standard objects. Each custom object can have its own records, properties, associations, and pipelines.

What does this mean?

HubSpot includes standard objects such as Contacts, Companies, Deals, and Tickets. These can support many nonprofit processes, but an organization may also need to manage information such as:

  • Volunteer participation
  • Memberships
  • Program enrollments
  • Grant applications
  • Service delivery
  • Household records
  • Sponsorships
  • Pledges
  • Time entries
  • Certifications
  • Event participation

A custom object gives one of these concepts its own set of records. Instead of adding dozens of volunteer-related fields directly to a contact, for example, a nonprofit could create a Volunteer Participation object. Each participation record could connect to the volunteer, the relevant event, and the program they supported.

Why does this matter for nonprofits?

One person may interact with a nonprofit in several ways. The same constituent could be:

  • A donor
  • A volunteer
  • A member
  • An event attendee
  • A corporate contact
  • A program participant
  • A sponsor

Storing every role and activity as fields on the contact record can make the record difficult to manage and make it harder to preserve history. A field called “Volunteer Event,” for example, cannot easily show six different events, roles, or hour totals.

A dedicated record type gives each activity its own home. Staff can see the details, connect the record to other information, and report on the history over time.

A nonprofit example

A nonprofit runs a large volunteer program. It keeps each volunteer as a contact, then creates a Volunteer Assignment custom object.

Each assignment record includes:

  • Volunteer role
  • Event or program
  • Assignment date
  • Start and end time
  • Hours contributed
  • Supervisor
  • Supervisor
  • Completion status
  • Notes
Maya Santos: Primary Household Member and Primary Donor
Maya Santos: Primary Household Member and Primary Donor
Maya Santos: Primary Household Member and Primary Donor
Maya Santos: Primary Household Member and Primary Donor

The assignment connects to the volunteer's contact record and the event or program they supported. If the organization needs detailed timekeeping, it could also create a Time Entry object with several entries connected to one assignment.

Staff could then answer questions such as:

  • How many hours did this person volunteer last year?
  • Which volunteers supported a specific program?
  • Who completed the required training?
  • Which events needed the most volunteer time?
  • Do any major donors also volunteer regularly?
Important architecture note

A custom object should solve a clear data problem.

Creating a separate object for every label, role, or small piece of information can make the CRM harder to use. A role such as “donor” may be represented through associated donation records rather than a standalone Donor object. A simple preference may only require a custom property.

Before creating a custom object, determine whether the information needs:

  • Multiple records connected to one person
  • Its own properties
  • A history that must be preserved
  • Connections to several other objects
  • A separate pipeline or process
  • Independent reporting
  • Its own workflow triggers
  • A distinct record owner

If the answer to most of those questions is no, a property, association, pipeline, or existing object may be the cleaner choice.

Requirements and limitations

Creating custom objects currently requires an eligible HubSpot Enterprise subscription. Authorized users can define properties, pipelines, and associations, while custom-object records can then be created and managed inside the CRM.

Before creating a custom object, confirm:

  • Current subscription requirements and object limits
  • Required user permissions
  • Which records it should connect to
  • Whether it needs a pipeline
  • Which properties it needs
  • How records will be created and updated
  • Whether forms, imports, workflows, integrations, or APIs will create records
  • Which reports and dashboards will use the data
  • Who will maintain the object
  • Whether the information already has a suitable home

Associations must also be planned so the new records connect correctly to the rest of the CRM.