GetPureProof

How to add video testimonials to HubSpot | GetPureProof

By , Founder5 min read

HubSpot is the connective tissue for a lot of B2B marketing operations — landing pages, the marketing site, the blog, email campaigns, sometimes the customer portal. If your testimonials live elsewhere and your traffic lives in HubSpot, you have a placement gap. The customers seeing your landing pages aren't seeing the proof you've already collected.

The fix is straightforward: embed your video testimonial widget directly into HubSpot pages, the same way you'd embed any other rich-media element. This guide walks through how to do it for the three most common HubSpot surfaces — landing pages, website pages built on HubSpot CMS, and email campaigns.

What you need before you start

Two things:

  1. A GetPureProof account with at least one approved testimonial. (Free tier is fine for getting started.)
  2. A HubSpot account with the appropriate access — Marketing Hub for landing pages, Content Hub (formerly CMS Hub) for full website pages, or any HubSpot tier for email modules.

If you haven't collected testimonials yet, the GetPureProof flow gets you set up in about three minutes — one shareable link, customer records in browser, no app required.

How HubSpot handles embedded media

A quick note on HubSpot's embed model before the steps. HubSpot lets you insert custom HTML, including iframes and <script> tags, into rich-text editors, custom modules, and CTA blocks. This means both of GetPureProof's embed formats — iframe and script — work natively inside HubSpot.

Use iframe embed for: landing pages, blog post bodies, and anywhere you want a self-contained, predictable block. The iframe runs independently and doesn't depend on page-level JavaScript executing in any specific order.

Use script embed for: website pages where you want the widget's height to adjust dynamically with content (e.g., Wall of Love that grows as testimonials are added). The script-based embed handles auto-sizing more cleanly on long pages.

For most use cases, the iframe embed is the simpler choice. We'll use it as the default below and call out where script embed is worth it.

Embedding into a HubSpot landing page

HubSpot landing pages are the most common placement — they're conversion-focused, traffic-targeted, and exactly where social proof earns its rent.

Step 1 — Get your embed code from GPP. In your GetPureProof dashboard, open the widget, click the embed code button, and copy the iframe code (the full <iframe ...></iframe> tag).

Step 2 — Edit the HubSpot landing page. Open your landing page in the HubSpot editor. Decide where the testimonial block goes — typically right above or below the primary CTA, or directly under the hero section.

Step 3 — Insert a Rich Text or HTML module. Drag a Rich Text module to the chosen position. Click into the module to edit. In the Rich Text toolbar, find the embed media or HTML insertion option (usually under the "More" or <> icon, depending on your HubSpot version).

Alternatively, drag a dedicated HTML module (also called a Custom HTML module) — this gives you more control, especially for full-width widget placements.

Step 4 — Paste the iframe code. Paste the full <iframe> tag into the HTML field. Save and preview the page. The widget should render inline.

Step 5 — Adjust width and alignment. Widen the module's container if needed. For full-width Wall of Love displays, use a HubSpot section with no padding constraints. For inline carousel placements within a column, the default container width is usually fine.

The widget loads asynchronously, so it doesn't block the rest of the landing page from rendering. Your above-the-fold content paints fast even when the testimonial widget is below it.

Embedding into a HubSpot CMS website page

For full website pages built on HubSpot CMS (Content Hub), the process is similar, with one extra step for templated pages.

Step 1 — Decide whether you want the widget in a single page or in a reusable module. If this is one-off placement on a single page, follow the landing page steps above using a Rich Text or HTML module.

If you want the widget to appear consistently across multiple pages (homepage, About, pricing, all built on the same template), build a custom module.

Step 2 — For one-off placement: drag and paste. Same as the landing page flow. Drag an HTML module into the editor, paste the iframe embed code, save.

Step 3 — For reusable placement: build a custom module. In HubSpot Design Manager, create a new custom module with an HTML field. Set the default value of the field to your widget embed code. Now you can drag this module onto any page on the same template, and it will render the widget consistently.

This is the move if you want "social proof everywhere" without manually pasting the embed on every page.

Step 4 — Variation: use script embed for dynamic-height pages. If your page is long and you want the widget to grow as more testimonials get added without manually resizing, use the GPP script embed instead of the iframe embed. Paste the <div> and <script> tags into the HTML module. The script handles height resizing automatically as content updates.

Embedding into HubSpot emails

This is where it gets more nuanced. Most email clients don't render <iframe> tags. This means a video testimonial widget will not play inline inside an email — Gmail, Outlook, Apple Mail, and most others will either strip the iframe or display nothing.

The practical pattern that works:

Step 1 — Embed a thumbnail image with a play-button overlay. In HubSpot's email editor, add an image module. Use a still thumbnail of your testimonial video — the customer's face with a play icon overlaid.

Step 2 — Link the thumbnail to your widget's hosted URL. In GetPureProof, every widget and every individual testimonial has a hosted public URL. Link the thumbnail in the email to that URL. When the recipient clicks the thumbnail, they land on a hosted page where the video plays in full.

Step 3 — Use a clear caption. Under the thumbnail, write something like "Watch a 90-second story from {customer_name}, {role} at {company}." The caption pre-frames what they're about to see and raises click-through.

This pattern outperforms attempts to embed video directly in email, because it works in every client and gets the recipient to the actual hosted player where the video plays smoothly.

For the broader sales-deployment use of testimonials in emails — including timing and follow-up cadence — seven testimonial request email templates covers the request side, and how to use testimonials in sales covers deploying them inside outreach.

Common HubSpot-specific gotchas

The widget renders in the editor preview but not on the live page. Usually a HubSpot caching issue. Try a hard refresh (Cmd+Shift+R / Ctrl+Shift+R) or wait 60 seconds for HubSpot's CDN to update. Also confirm the page is actually published, not just saved as a draft.

The iframe is too narrow inside a column. Decrease the column count for that section, or wrap the iframe in a <div style="width: 100%; max-width: 800px; margin: 0 auto;"> to control sizing manually.

Personalization tokens inside the embed. Don't try to inject HubSpot personalization tokens (like {{contact.firstname}}) into the GPP embed code. The widget loads independent of HubSpot's personalization layer, so tokens won't resolve. Personalization belongs in the surrounding text, not inside the iframe.

The widget loads slowly on a heavy landing page. Unlikely, but if it happens, check whether you have other heavy embeds or scripts on the page competing for browser resources. The GPP widget is async by design, but a page with five competing iframes will feel slow regardless. Trim other embeds first.

What about the HubSpot blog?

The HubSpot blog uses the same Rich Text editor as landing pages, so the embed flow is identical. Drop the iframe embed into a blog post's body to add a testimonial mid-article — useful for case study posts where you want the customer's voice instead of a pull quote.

Bottom line

Embedding video testimonials into HubSpot is a five-minute job per page once you know the pattern. Iframe embed for landing pages and blog posts. Script embed for dynamic-height website pages. Linked thumbnail for emails. Custom module if you want the widget reused across templates.

The widget loads async, plays from a global CDN, and doesn't slow the page. The result is HubSpot pages with real customer voices anchoring the conversion path — without leaving the HubSpot stack to manage testimonials in a separate tool.

Embed your first testimonial into HubSpot in 5 minutes.

Collect a video, copy the embed code, paste into your landing page. Done.

Start for free