What Wistia sends to Pardot: engagement fields and viewer identification

When you connect Pardot (Marketing Cloud Account Engagement) to Wistia, Wistia writes to your prospects in two distinct ways: it updates lead fields on the prospect record, and — separately — it logs external activities on the prospect's timeline. Knowing which viewer action drives which of those, and how Wistia figures out which prospect a video view belongs to, is the difference between "the data is missing" and "the data is working exactly as designed."

This is a developer reference for what data Wistia sends and when. For connecting the integration, enabling custom fields, and mapping fields in the Pardot/Salesforce UI, see the Pardot integration guide in the Help Center.

Two surfaces: lead fields vs. external activities

Wistia writes to Pardot on two separate surfaces, and they behave differently:

SurfaceWhat it isWhen it's written
Prospect lead fieldsCustom fields on the prospect record (e.g. Wistia Last Video Watched) that hold the most recent valueOn watch events, form submissions, and webinar registration/attendance — only when custom fields are enabled on the integration
External activitiesTimeline entries on the prospect (e.g. video_watched_50) that record each action as it happensOn watch events and webinar registration/attendance — only when external activities are enabled on the integration

Lead fields are a summary ("what's the last video this prospect watched?"). External activities are a log ("here is every milestone they hit, in order"). A prospect can have a rich activity timeline while a given lead field stays blank, and vice versa — they're populated by different toggles and different rules.

A write of either kind requires an email. Wistia gets the email from the form the viewer submitted, the webinar they registered for, or — for anonymous plays — by resolving the Pardot visitor cookie to a known prospect (see Watch-now, identify-later below). No email, no write.

The four events that write to Pardot

EventWhat triggers itWrites lead fields?Writes external activity?
Video watchA viewer plays / reaches 25/50/75/100% of an embedded videoYes (Wistia Last Video Watched, ...Percent, ...Date)Yes (video_played, video_watched_25/50/75/100)
Form submissionA viewer submits a Wistia Form (Turnstile) on a playerIdentity fields onlyNo
Webinar registrationA viewer registers for a Wistia webinarYes (identity + registration fields)Yes (webinar_registered)
Webinar attendanceA viewer attends a Wistia webinarYes (the richest set)Yes (webinar_attended)

Unlike some integrations, in Pardot a plain video watch does write lead fieldsWistia Last Video Watched, Wistia Last Video Watched Percent, and Wistia Last Video Watched Date — provided (a) custom fields are enabled and (b) Wistia can tie the view to a prospect email. It also logs a watch external activity. So a "blank Wistia Last Video Watched field" usually means custom fields are off, or the viewer was never identified — not that watch tracking is unsupported.

Which fields each event writes

Video watch

With custom fields enabled and the prospect identified:

  • Wistia Last Video Watched ← the video's display name
  • Wistia Last Video Watched Percent ← completion, as a whole number (e.g. 50)
  • Wistia Last Video Watched Date ← the watch date, YYYY-MM-DD
  • sourceWistia Video: <video name>

Out-of-order protection: if an event would lower the watch percent for the same video the prospect already has recorded (events arriving out of order), Wistia skips the update rather than regress the value.

Form submission

A Wistia Form submission writes only identity fields, plus any custom form fields you've mapped:

  • email, firstName, lastName
  • sourceWistia Video: <form name>

A form submission does not write watch, webinar, or engagement fields, and does not log an external activity.

Webinar registration

  • email, firstName, lastName, company, phone, jobTitle, country
  • sourceWistia Live Stream: <event title>
  • Wistia Live Last Registered, Wistia Live Last Registered Event Name
  • Any mapped custom registration fields
  • External activity: webinar_registered

Webinar attendance

Attendance writes the most, and is the only event that fills the live engagement metrics:

  • email, sourceWistia Live Stream: <event title> - Attendee
  • Wistia Last Engagement, Wistia Last Played Time
  • Wistia Live Last Attended, Wistia Live Last Attended Event Name
  • Wistia Live Last Poll Response Count, Wistia Live Last Chat Count, Wistia Live Last Link Click Count
  • External activity: webinar_attended

The full custom field list

These are the custom prospect fields Wistia creates and writes when custom fields are enabled (names as they appear in Pardot; API name is the lowercased field with a __c suffix, e.g. wistia_last_video_watched__c):

FieldWritten by
Wistia Last Video WatchedVideo watch
Wistia Last Video Watched PercentVideo watch
Wistia Last Video Watched DateVideo watch
Wistia Last EngagementWebinar attendance
Wistia Last Played TimeWebinar attendance
Wistia Live Last Registered / Registered Event NameWebinar registration
Wistia Live Last Attended / Attended Event NameWebinar attendance
Wistia Live Last Poll Response CountWebinar attendance
Wistia Live Last Chat CountWebinar attendance
Wistia Live Last Link Click CountWebinar attendance
Wistia Last UTM Campaign / Source / MediumWebinar registration & attendance
Wistia Last ReferrerWebinar registration & attendance
Wistia Last IP Country / Region / CityWebinar registration & attendance
Wistia User KeyAll lead-writing events

External activities

When external activities are enabled, Wistia logs these activity types on the prospect timeline, under the extension name Wistia:

Activity typeFires when
video_playedThe view records a unique play
video_watched_25 / _50 / _75 / _100The viewer reaches that completion milestone
webinar_registeredThe prospect registers for a webinar
webinar_attendedThe prospect attends a webinar

Each activity carries a value (the video name + hashed ID, or the webinar title + scheduled time, truncated to 100 characters) and an activity_date. Activities are a per-event log; they do not replace or overwrite each other the way lead fields do.

Watch-now, identify-later (anonymous plays)

A common question: "A prospect watched an embedded video without submitting a form — will Wistia still attribute the watch?"

Yes, if Wistia can resolve the viewer to a known Pardot prospect. When a play event has no email attached, Wistia looks for a Pardot visitor ID (pardot_visitor_id) on the event and asks Pardot for the prospect email tied to that visitor. If Pardot returns an email, the watch fields and activity are written to that prospect. If the visitor was never identified in Pardot (no cookie, or an anonymous visitor), there's no email to resolve to and nothing is written — the watch simply isn't attributed. Resolved lookups are briefly cached, so repeated plays by the same visitor don't hammer the Pardot API.

For this to work, the visitor has to be a known Pardot prospect (they've been cookied and identified by Pardot at some point). Wistia does not create a new prospect from an anonymous view.

Email merge tags

If you're embedding a Wistia video in a Pardot email and want per-recipient tracking, Wistia's email embed uses Pardot's recipient merge tag {{Recipient.Email}} to pass the recipient's email into the video's tracking. See Generate and troubleshoot Wistia email embeds for how to build the embed; select Pardot as the email provider so the correct merge tag is inserted.

What is not backfilled

The Wistia → Pardot sync is forward-looking. Two cases catch people out:

  1. Enabling custom fields later. When you turn custom fields on, Wistia creates the custom prospect fields in Pardot, but it does not retro-populate them from past events. Only events that happen after the fields exist will write values. (The one exception is the internal backfill Wistia runs to create newly-added watch-event fields on already-connected integrations — that creates the field definitions, not historical values.)
  2. Events before connection. Watches, form submissions, and webinar activity that happened before the integration was connected — or while it was suspended — are not replayed once you connect. There's no historical import.

If you need historical engagement in Pardot, expect it to start from the point the integration (and the relevant toggle) was active — not from the video's or webinar's entire history.

"The data isn't showing up" — checklist

  1. Which event fired? A plain form submission never logs an activity or webinar/watch fields; a plain watch never writes identity/webinar fields. Match the missing data to the event that actually owns it (tables above).
  2. Are custom fields enabled? Lead fields (including Wistia Last Video Watched) are only created and written when custom fields is on. Without it, Wistia writes only standard prospect fields plus lead source.
  3. Are external activities enabled? The video_* / webinar_* timeline entries only appear when external activities is turned on and set up on the Pardot side.
  4. Was the viewer identified? No email — and no resolvable pardot_visitor_id — means no write. Anonymous, never-cookied viewers aren't attributed.
  5. Expecting history? Nothing is backfilled. Data starts from when the integration and toggle were active.

Did this page help you?