CRM & voter contact

Ballot Signal + HubSpot

Beta Native — OAuth Nonpartisan OAuth2

What is HubSpot?

The CRM most consultants and advocacy shops already run alongside a political database — often the reporting layer leadership actually looks at.

It sits in the CRM & voter contact category of a campaign stack. Your campaign's system of record — where every supporter eventually lands.

Who uses it

Nonpartisan. Used across both parties and by nonpartisan organizations.

How the Ballot Signal + HubSpot integration works

The supporter record maps to a HubSpot contact. Consent timestamp, consent version, consent source URL and consent categories are written to custom contact properties created during setup, and page-intent signals are sent as custom behavioral events so they appear on the contact timeline instead of overwriting properties. Deduplication uses HubSpot's own email-based contact matching on top of our lowercased-email hash.

What syncs

  • Contacts
  • Custom properties
  • Custom behavioral events
  • Lists

Field mapping

The supporter record is the same shape everywhere. What changes is where each field lands. The full record is documented on what you get.

Supporter record field mapping
Supporter record CRM object Notes
firstName, lastName Person / contact record Left empty rather than guessed when resolution is not confident.
email Person / contact record — primary identifier Primary match key. Lowercased before hashing.
phone Person / contact record — phone field Present does not imply consent to be contacted on it.
addressLine1, city, state, zip Person / contact record — address fields Third dedupe fallback.
consentTimestamp Custom fields or survey responses ISO 8601, UTC.
consentVersion Custom fields or survey responses The language in force at the moment of consent.
consentSource Custom fields or survey responses The exact page URL where consent was captured.
consentCategories Custom fields or survey responses Normalized from your consent platform.
intentSignals Tags or activist codes Donate-page, volunteer-page, issue-page and any you define.
utmSource, utmMedium, utmCampaign, referrer Custom fields or survey responses or source fields Carried verbatim.
dedupeKey Match key Lowercased email hash. Match order: dedupeKey, then phone, then name + address.

How to set it up

  1. 1

    In Ballot Signal, add HubSpot as a destination and click Connect.

  2. 2

    Authorize the OAuth scopes for contacts read/write and events write.

  3. 3

    Let Ballot Signal create the consent custom properties, or map to properties you already maintain.

  4. 4

    Choose whether identified supporters should also be added to a specific HubSpot list.

  5. 5

    Run a test push and confirm both the contact properties and the behavioral event on the timeline.

Why it matters

The CRM most consultants and advocacy shops already run alongside a political database — often the reporting layer leadership actually looks at.

Ballot Signal + HubSpot: questions

Is the HubSpot integration available today?

Beta. Built and running with real customers, but not yet generally available. Expect us to be involved in your setup and expect the occasional rough edge. Ask us for access.

What authentication does the HubSpot integration use?

OAuth2. Credentials are stored encrypted and are never rendered back into the interface after entry.

Will this create duplicate records in HubSpot?

No, assuming you leave deduplication on. We match on the lowercased-email hash first, then phone, then name plus address. On a match we update rather than create, and only the fields you have marked overwritable.

Does the consent record travel into HubSpot?

Yes. Consent timestamp, consent version, consent source URL and granted categories are included in every push, by default, and there is no configuration that strips them. That is the point of the product.

See what your own website already knows.

Book a 20-minute walkthrough. We will look at your site's current consent posture first — that part is useful whether or not you buy anything.