HubSpot Webinar Events And Analytics Payloads

When you connect a Wistia webinar (live stream event) to HubSpot, Wistia writes two kinds of data to the contact: timeline activities (a record of what someone did — registered, attended, answered a poll, asked a question) and contact properties (the latest values stored directly on the contact). This page documents what Wistia sends, when it sends it, and the cases where nothing is sent.

For point-and-click setup — connecting the integration, mapping form fields, reconnecting, or fixing sync errors — see the Help Center. This page covers the wire format and the integration decisions that depend on it.

Prerequisites

Two conditions have to be true before webinar data reaches HubSpot:

  • Use a Wistia registration form, not an embedded HubSpot (MAP) form. Attendance and engagement data only sync when registration goes through Wistia's own form.
  • Enable the custom-fields option on the HubSpot integration if you want the wistia_* contact properties (see Contact properties). In the HubSpot connect settings this is the checkbox labeled "For Webinars: 17 new properties will be added to the Contact object in your Hubspot instance" — it's on by default. This toggle gates the properties only; the timeline activities below are not gated by it.

Availability

Webinar data in HubSpot is scoped by when the webinar was created — there is no backfill for older events:

  • Attendee analytics in general only exists for webinars created on or after January 22, 2025. A webinar created before that date has no attendee-level data to sync, regardless of the integration.
  • Registration and attendance timeline activities apply to webinars created on or after January 6, 2026 (when timeline events for webinars launched). Earlier webinars don't get registration/attendance activities even if they have attendee analytics.
  • Poll-response and Q&A timeline activities shipped earlier (spring 2025); the exact event-created rule for those two isn't documented here yet.

When data is sent

Wistia does not stream webinar activity to HubSpot in real time. Sync happens at two moments:

  • Registration syncs when someone registers, through the registration pipeline.
  • Attendance, poll responses, and Q&A questions are sent together after the event ends, as a single batch built from Wistia's post-event attendee data. There is one attendance activity per attendee, plus one activity for each of that attendee's poll responses and questions, all delivered in the same contact sync.

Both live and prerecorded webinars follow the same post-event attendance path — the batch runs once the event's recording is ready.

Every sync requires an email. HubSpot contact sync is keyed on the contact's email address. If an attendee has no associated email (anonymous attendance, or a poll answered without a captured email), the sync fails before any activity is written — nothing reaches HubSpot for that person. See On-demand and anonymous viewing below.

Timeline activities

Each activity is a HubSpot timeline event with a fixed event template and a set of tokens. nil values are dropped, so a contact only receives the tokens that have data.

Registration

Sent when a viewer registers for the webinar.

TokenSource
email_addressRegistration email
first_name, last_nameRegistrant name
phone_numberPhone
job_titleJob title
companyCompany
live_event_nameWebinar title
eventUrlAudience join link
country, ipCountry, ipRegion, ipCityIP-based location
utmCampaign, utmMedium, utmSourceUTM parameters from the registration visit
referrerReferrer URL

A HubSpot user token (hubspot_utk) is attached when the registration carries one, so HubSpot can stitch the activity to a known visitor.

Attendance

Sent after the event, one per attendee. The activity is associated with the attendee's unique identifier.

TokenSource
emailAddressAttendee identifier
eventNameWebinar title
eventUrlEvent URL
eventIdWistia's internal attendance event ID
ipCountry, ipRegion, ipCityIP-based location
utmCampaign, utmMedium, utmSourceUTM parameters
referrerReferrer URL
watchedEngagement rate for the session
timeWatchedTime watched
chatsNumber of chat messages sent
pollResponsesCountNumber of poll responses
externalLinkClicksClicks on links/annotations during the event

Poll response

One activity per poll a viewer answered, associated with the attendee's email.

TokenSource
nameWebinar title
typeAlways Live Event
questionPoll question text
answerThe option the viewer chose
urlWebinar URL

Q&A question

One activity per question a viewer asked, associated with the attendee's email.

TokenSource
nameWebinar title
typeAlways Live Event
questionThe question text
urlWebinar URL

There is no answer token on a Q&A activity — it records the question a viewer asked, not any answer given.

Contact properties

Alongside the timeline activities, Wistia updates properties directly on the HubSpot contact so you can segment and personalize on the latest values.

Standard properties map straightforwardly: registration writes email, firstname, lastname, phone, company, jobtitle, and country; attendance updates the contact keyed on email.

Wistia webinar properties (prefixed wistia_) are written only when the custom-fields option is enabled on the integration (see Prerequisites), and only for webinars created on or after December 2, 2024. Older events do not receive them.

PropertyWritten onValue
wistia_last_utm_campaign / _source / _mediumRegistration + attendanceLatest UTM values
wistia_last_referrerRegistration + attendanceLatest referrer
wistia_last_ip_country / _region / _cityRegistration + attendanceLatest IP location
wistia_visitor_keyRegistration + attendanceWistia visitor key
wistia_live_last_registeredRegistrationRegistration time
wistia_live_last_registered_event_nameRegistrationWebinar title
wistia_live_last_attendedAttendanceAttendance time
wistia_live_last_attended_event_nameAttendanceWebinar title
wistia_last_engagementAttendanceEngagement as a percentage
wistia_last_played_timeAttendanceTime watched, in whole minutes
wistia_live_last_poll_response_countAttendancePoll responses this event
wistia_live_last_chat_countAttendanceChat messages this event
wistia_live_last_link_click_countAttendanceLink clicks this event

Watch the units. On the contact property, wistia_last_engagement is a percentage and wistia_last_played_time is whole minutes. On the attendance timeline activity, watched and timeWatched carry the raw values (engagement as a fraction, time watched unconverted). If you build reports off both, don't assume they're in the same units.

Registration and attendance also add the contact to the configured HubSpot list (a registrant list and an attendee list, respectively), and — when HubSpot Marketing Events are enabled — submit the matching Marketing Event status (register on registration, attend on attendance).

On-demand and anonymous viewing

Two common questions:

  • Do on-demand / VOD replay views sync to HubSpot? No. Attendance is a one-time batch built from the live event's attendee data after the event ends. Watching the recording on demand afterward does not generate a new attendance, poll, or Q&A activity, and does not update the webinar contact properties. There is no per-view tracking path for on-demand webinar viewing.
  • What about anonymous viewers? Nothing syncs without an email. Because contact sync is keyed on email, an attendee (or poll response) with no captured email is dropped before any activity is written.

No "did not attend" activity (current behavior). As of today, Wistia sends registration and attendance activities, but there is no did-not-attend / no-show activity for HubSpot. This page will need revision when did-not-attend sync ships.

If you need engagement data for on-demand views, that lives in Wistia's standard media analytics, not the webinar → HubSpot pipeline documented here.


Did this page help you?