Product

The supporter record, field by field.

One record shape, delivered identically to every destination. Short, documented, and with nothing inferred in it.

Contact

Field Type Notes
firstName string Resolved given name. Empty when resolution returns no confident name — we leave it empty rather than guessing.
lastName string Resolved family name.
email string Primary match key. Normalized to lowercase before hashing.
phone string E.164 normalized. Present does not mean textable — see the consent fields.
addressLine1 string Street address where resolved.
city string
state string Two-letter code.
zip string Five-digit, plus four where available.

Consent (the audit trail)

Field Type Notes
consentTimestamp ISO 8601 UTC. When the affirmative act occurred.
consentVersion string The version of the consent language and policy in force at that moment.
consentSource URL The exact page URL where consent was captured.
consentCategories string[] Categories granted, normalized from your consent management platform.

Intent

Field Type Notes
pagesViewed string[] Ordered list of pages viewed after consent.
intentSignals string[] Derived labels — donate-page, volunteer-page, issue-page — that you map to tags and activist codes.

Attribution

Field Type Notes
utmSource string From the landing URL.
utmMedium string From the landing URL.
utmCampaign string From the landing URL. Sloppy UTM discipline upstream makes all of this useless downstream.
referrer string Document referrer at session entry.

Identity

Field Type Notes
resolvedVia string Which method produced the identification.
dedupeKey hash Hash of the lowercased email. The join key across every destination.

Matching

The dedupe rule, written down

  1. 1

    dedupeKey

    Hash of the lowercased email address. Tried first, always.

  2. 2

    phone

    E.164 normalized. Tried when there is no email match.

  3. 3

    name + address

    Last resort, and the only one with meaningful false-positive risk.

On a match we update; on no match we create. Which fields are overwritable on update is your configuration, per destination — so a CRM that is your source of truth for phone numbers can be set never to accept ours.

Defensibility

What makes the record hold up

For TCPA and 10DLC purposes, the fields that matter are not the contact fields. They are the four consent fields, and whether they were captured before anything else happened.

  • · The exact language shown, versioned.
  • · The timestamp of the affirmative act.
  • · The specific page URL, not just the domain.
  • · The categories granted, so channel-level consent is separable.
What your consent record has to carry →

Where it goes

The same record, mapped per category

CRM & voter contact

Supporter record → a person/contact object, with consent fields written to custom fields or tags, and page-intent signals written as activity, tags, or survey responses.

Fundraising & payments

Supporter record ↔ donor record matched by lowercased email, enriched with the platform's contribution identifiers, recurring identifiers, and the fundraising page or form the gift came through.

Email & SMS

Supporter record → subscriber/profile, with consent timestamp, consent version, and source URL written to custom fields, plus a tag or list assignment describing the intent that produced the record.

Website builders & CMS

Site → embed. The snippet reads your consent management platform's state, stays inert until consent is granted, and then reports page-intent signals against the consented visitor.

Consent & privacy

CMP category state → normalized internal consent object → gate. Nothing fires, and no identifier is generated, until the mapped categories read 'granted'.

Automation

Supporter record → JSON payload (HMAC-signed) or flat CSV row, with every consent field included by default so the receiving system inherits the evidence.

Voter data

Not yet available. When a voter-file partnership closes, the mapping will be supporter record → matched voter record, with the match confidence and the provider recorded on the supporter record.

Ads & analytics

Supporter record → server-side conversion event, with hashed identifiers only, sent exclusively for visitors whose consent state includes ad-related categories.

The integration layer

Works with your stack

53 platforms across eight categories, each carrying an honest status label — including the ones that say "coming soon" and "partner-only."

Browse all integrations

Text wordmarks only — we do not display partner logos without written permission, and a badge here never implies an endorsement or a native connector. The status on each partner page is the claim; this wall is just the map. Not seeing yours? Request an integration.

Questions people actually ask

What is not on this list?

Party registration, vote history, precinct or district assignment, party support scores and modeled turnout scores. All of those require voter file access we do not have. That is explained in full on voter file rules.

Can we add custom fields?

You can map any field on this record into custom fields in your destinations, and you can derive additional intent signals from page paths. What you cannot do is append data we do not collect — we would rather have a short honest schema than a long one with inferred fields in it.

How do you handle records with partial data?

We deliver what resolved and leave the rest empty. An empty lastName means resolution did not return one with confidence, not that we guessed and got it wrong. Configure your destinations to tolerate empty fields rather than rejecting the record.

What does the dedupe key protect against?

The same person appearing three times because three tools each created their own record. One key, applied identically in every destination, is what keeps your CRM and your email list converging instead of drifting apart by September.

Can we get this as a flat file?

Yes. CSV export is on every plan, on demand, including all consent columns, and scheduled exports can be delivered to your own SFTP or object storage.

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.