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:
| Surface | What it is | When it's written |
|---|---|---|
| Prospect lead fields | Custom fields on the prospect record (e.g. Wistia Last Video Watched) that hold the most recent value | On watch events, form submissions, and webinar registration/attendance — only when custom fields are enabled on the integration |
| External activities | Timeline entries on the prospect (e.g. video_watched_50) that record each action as it happens | On 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
| Event | What triggers it | Writes lead fields? | Writes external activity? |
|---|---|---|---|
| Video watch | A viewer plays / reaches 25/50/75/100% of an embedded video | Yes (Wistia Last Video Watched, ...Percent, ...Date) | Yes (video_played, video_watched_25/50/75/100) |
| Form submission | A viewer submits a Wistia Form (Turnstile) on a player | Identity fields only | No |
| Webinar registration | A viewer registers for a Wistia webinar | Yes (identity + registration fields) | Yes (webinar_registered) |
| Webinar attendance | A viewer attends a Wistia webinar | Yes (the richest set) | Yes (webinar_attended) |
Unlike some integrations, in Pardot a plain video watch does write lead fields — Wistia 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 nameWistia Last Video Watched Percent← completion, as a whole number (e.g.50)Wistia Last Video Watched Date← the watch date,YYYY-MM-DDsource←Wistia 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,lastNamesource←Wistia 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,countrysource←Wistia 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,source←Wistia Live Stream: <event title> - AttendeeWistia Last Engagement,Wistia Last Played TimeWistia Live Last Attended,Wistia Live Last Attended Event NameWistia 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):
| Field | Written by |
|---|---|
| Wistia Last Video Watched | Video watch |
| Wistia Last Video Watched Percent | Video watch |
| Wistia Last Video Watched Date | Video watch |
| Wistia Last Engagement | Webinar attendance |
| Wistia Last Played Time | Webinar attendance |
| Wistia Live Last Registered / Registered Event Name | Webinar registration |
| Wistia Live Last Attended / Attended Event Name | Webinar attendance |
| Wistia Live Last Poll Response Count | Webinar attendance |
| Wistia Live Last Chat Count | Webinar attendance |
| Wistia Live Last Link Click Count | Webinar attendance |
| Wistia Last UTM Campaign / Source / Medium | Webinar registration & attendance |
| Wistia Last Referrer | Webinar registration & attendance |
| Wistia Last IP Country / Region / City | Webinar registration & attendance |
| Wistia User Key | All 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 type | Fires when |
|---|---|
video_played | The view records a unique play |
video_watched_25 / _50 / _75 / _100 | The viewer reaches that completion milestone |
webinar_registered | The prospect registers for a webinar |
webinar_attended | The 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:
- 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.)
- 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
- 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).
- 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.
- Are external activities enabled? The
video_*/webinar_*timeline entries only appear when external activities is turned on and set up on the Pardot side. - Was the viewer identified? No email — and no resolvable
pardot_visitor_id— means no write. Anonymous, never-cookied viewers aren't attributed. - Expecting history? Nothing is backfilled. Data starts from when the integration and toggle were active.
Updated 2 days ago