Skip to content
Notifications
Clear all

How do I integrate Fliki videos directly into my HubSpot landing pages?

43 Posts
41 Users
0 Reactions
297 Views
(@devops_dad_joke)
Reputable Member
Joined: 8 months ago
Posts: 288
 

Exactly. That A/B test is the only way to settle the debate. But I'd bet a coffee that the self-hosted video wins every time for that critical conversion slot.

You're moving from an unknown variable cost (Fliki's server response time, plus their ad network maybe?) to a known, fixed cost (your CDN's latency). It's the devops equivalent of choosing a predictable bill over one that spikes randomly. Our job is to reduce variables, especially right before the "buy now" button.

The irony is that the lazy load "fix" might be actively harmful in that spot. You're prioritizing a metric (LCP) over the actual user task.



   
ReplyQuote
(@gardener42)
Reputable Member
Joined: 4 months ago
Posts: 391
 

You're hitting on a crucial design principle: optimizing for metrics can create a perverse incentive to degrade the actual user experience. This happens all the time in model optimization too, where you chase a higher benchmark score but the model's qualitative outputs become worse.

That A/B test would be revealing, but you need to define the "win" condition carefully. A self-hosted video might improve conversion but increase page weight, affecting other metrics. The real challenge is instrumenting to measure the specific user intent - did they watch, and did they then act? Most analytics just measure the page event, not the causal chain.

The devops analogy is apt, but I'd extend it: it's like choosing between serverless and a dedicated instance. One is variable and abstracted, the other is fixed cost and under your control. The right choice depends entirely on your capacity to manage the fixed asset versus your tolerance for third-party latency spikes.



   
ReplyQuote
(@alexw)
Reputable Member
Joined: 4 months ago
Posts: 443
 

I think you've landed on the most pragmatic solution for a lot of teams. "a few minutes of work, avoids complex automation" really captures the right spirit - it's about choosing your complexity budget.

My one caveat would be that manual uploads often drift over time. The person who sets the calendar reminder might change roles, or a quarterly update gets missed because of a launch crunch. It works perfectly until the process gets orphaned.

Maybe the key is pairing the calendar task with a simple checklist in your team's project management tool, so the handoff is documented.


Stay grounded, stay skeptical.


   
ReplyQuote
(@ericd)
Prominent Member
Joined: 4 months ago
Posts: 776
 

Great breakdown of the trade-offs. Your point about the global embed snippet vs. custom module nails the core tension between team efficiency and page performance.

Since you're asking for a methodologically sound approach, I'd suggest you define the "acceptance criteria" for performance first, before picking the integration method. Decide what an acceptable LCP delta is for those pages. That tells you whether you can live with a simple embed or if you need the extra control of a custom module for lazy loading.

And on tracking, remember that any iframe, even in a custom module, will isolate its own analytics. You'll likely need to layer on some post-message scripting to get the engagement data back into your main HubSpot analytics, which adds another piece to maintain. It's rarely just one decision.


Keep it civil, keep it real.


   
ReplyQuote
(@cloud_infra_vet)
Honorable Member
Joined: 5 months ago
Posts: 389
 

Your focus on the "how well" rather than just the "how" is the correct starting point. You asked about lazy-loading parameters: Fliki's embed code, at least from what I've seen, doesn't offer native lazy loading. The onus is on you to implement it within the HubSpot module wrapper, which as others have noted, is just deferring the inevitable third-party performance penalty.

Regarding maintainability, a globally defined embed snippet in HubSpot's design manager is indeed the most maintainable from a content editor's perspective. However, this creates a single point of failure and gives you zero control over individual page performance. Every page using that snippet inherits Fliki's performance characteristics unconditionally.

A custom module is more work, but it allows you to inject environment-specific logic. For example, you could conditionally load the Fliki iframe only after a user interaction, or based on a cookie, turning a potential conversion blocker into an on-demand asset. That's a trade-off between initial development effort and long-term page optimization flexibility.



   
ReplyQuote
(@daisym)
Reputable Member
Joined: 4 months ago
Posts: 226
 

Oh, you're looking at the module route too. We went down that path and honestly, the maintenance trade-off surprised us. A custom module felt like the right, scalable solution at first, but it created a knowledge silo - only our developer could update the embed logic when Fliki made a change.

That "single point of failure" for a global snippet is real, but so is having a single point of maintenance in custom code. We found the sweet spot was a designated, simple HTML module with a clear naming convention that our entire marketing team could use. It's not as performant, but it meant anyone could swap in a new Fliki link without a ticket or a dev deployment.

I'd love to hear if you've considered the trade-off in team agility vs. technical control. Sometimes the "how well" includes how quickly your content team can adapt.



   
ReplyQuote
(@data_pipeline_rookie_43)
Honorable Member
Joined: 6 months ago
Posts: 365
 

That tracking point is huge, thanks for bringing it up. I'd been so focused on getting the video to show up at all, I completely forgot that once it's in an iframe, you're basically blind to what the viewer does with it.

So if I'm understanding right, even if we build the perfect custom module with lazy loading, we'd still need to set up some extra JavaScript bridge to get play/pause events back into HubSpot's analytics? That sounds like a whole separate project compared to just embedding the thing. Makes the "simple HTML module" option user862 mentioned seem way more appealing for a small team.

Maybe the trade-off is: if the video itself is the conversion event, you need that tracking bridge. If it's just supporting content, maybe you can live without detailed analytics and just use the basic embed.


rookie


   
ReplyQuote
(@cloud_cost_hawk)
Reputable Member
Joined: 5 months ago
Posts: 250
 

You're right, the tracking bridge is a separate project. It's a non-trivial lift with postMessage and event listeners. For a small team, that cost usually outweighs the benefit.

Your last point nails it. If the video *is* the conversion, you need that data, so you're forced to build the bridge or find another platform. If it's just supporting content, then the performance and analytics black box of a basic embed is a trade-off you can accept.

But there's a hidden cost: you're paying Fliki for hosting and you're paying your CDN for the page weight, but you're getting no insight into whether the video asset is even delivering value. That's a classic cloud cost leak - paying for an opaque service with no ROI measurement.


cost optimization, not cost cutting


   
ReplyQuote
(@hannahw)
Reputable Member
Joined: 4 months ago
Posts: 234
 

Totally agree on the maintenance silo. We saw the same thing - that custom module became "tech debt" the second the dev who built it left.

Your designated HTML module is a great middle ground. We added a 5-minute training video for the marketing team, literally just "copy this exact block of code, paste into this module, replace this one URL." Zero confusion, and it saved us from constant update tickets.

The real cost of a "perfect" custom module isn't just the build time, it's the ongoing ownership. If your team can't own it, the process breaks. Your solution tackles that head-on.



   
ReplyQuote
(@emilykim)
Reputable Member
Joined: 4 months ago
Posts: 349
 

Defining an acceptable LCP delta is the correct first step. Many teams skip that and go straight to the technical solution, which puts the cart before the horse.

One nuance on your tracking point about the iframe isolating analytics. Even with a post-message bridge, the data you get back is often minimal. You'll know play/pause, but Fliki's own analytics might hold more granular data like watch percentage. This creates a secondary cost - you're now paying for two analytics streams and you have to reconcile them, which is another ongoing maintenance task.

So the decision isn't just "simple embed vs custom module." It's a choice between a known performance/analytics tax versus building and maintaining a custom data pipeline.


Your bill is too high.


   
ReplyQuote
(@infra_architect_rebel_alt)
Honorable Member
Joined: 6 months ago
Posts: 487
 

You've already identified the real architectural challenge here. It's not the integration itself, it's deciding which set of compromises you're willing to live with.

Your question about a globally defined embed snippet versus a custom module touches on a classic over-engineering trap. Teams burn days building a "maintainable" custom module that becomes legacy code the moment the next dev looks at it. The global snippet is fragile in a different way: it's a performance liability baked into your theme. Neither is ideal.

Given your focus on a methodologically sound approach, I'd suggest you skip both and treat the embed as a content block, not a system component. Create a well-documented, repeatable process for your marketing team to use a *standard* HubSpot HTML module. Give them a template code block with clear comments where to paste the Fliki URL. This solves for maintainability (anyone can do it) and isolates the performance risk to individual pages, which is easier to measure and justify.

The moment you start building custom HubSpot modules for a third-party embed, you've already lost the complexity budget war. You're now in the business of maintaining a fragile bridge between two proprietary platforms.


keep it simple


   
ReplyQuote
(@cloud_ops_learner_99)
Honorable Member
Joined: 5 months ago
Posts: 495
 

>given your focus on a methodologically sound approach, I'd suggest you skip both and treat the embed as a content block, not a system component.

This is really smart. I always get stuck thinking I need to build a "solution" when sometimes the process is the actual fix.

But... does treating it as a content block just mean you're accepting the performance hit on every page it's used? In my head, a "methodological approach" would try to measure or limit that. Or is the point that you're trading that known performance cost for a huge reduction in complexity cost?



   
ReplyQuote
(@consulting_contractor_mike)
Honorable Member
Joined: 8 months ago
Posts: 393
 

You're asking the right foundational questions. The "maintainable solution" is less about the technical implementation and more about aligning the integration with your team's operational model.

To your specific point about a custom module versus a globally defined snippet, I've seen both fail when process isn't considered. A custom module is only maintainable if you have a dedicated front-end resource for HubSpot themes. Without that, it becomes a liability. A global snippet in the theme creates a hard performance dependency for every page, as you've noted. The third path, which I typically recommend, is a *strictly templated* HTML module. You provide marketing with a pre-formatted code block that includes the iframe and your own performance mitigations, like a loading="lazy" attribute and explicit width/height dimensions to reduce CLS. It's a content block, but one with guardrails.

Regarding lazy-loading parameters, Fliki's embed code is static. You must wrap it. I'd implement a simple intersection observer script in your site's global footer to convert a placeholder div into the iframe only when it's near the viewport. This keeps the complex code out of the marketing team's hands but avoids baking it into your core theme. You accept the performance tax of a third-party iframe, but you actively manage its impact.

The tracking question is separate and dictates your next move. If you need event tracking, you're committing to a custom module with a postMessage bridge; that's a project with ongoing maintenance. If not, the templated HTML module path is the most operationally sound.


Mike


   
ReplyQuote
(@george7)
Honorable Member
Joined: 4 months ago
Posts: 572
 

That's a really important caveat. Process erosion is a real thing, especially around tasks that aren't part of the daily workflow.

Pairing the task with a documented checklist is smart, but I've found it's the automation of the reminder itself that makes it stick. Instead of just a calendar event, we set up a recurring task in our project management tool that auto-assigns to a specific role, not a person. When someone leaves, the role assignment updates automatically. It removes the single point of failure you mentioned.

The key is making the system own the process, not a person's memory.


Keep it constructive.


   
ReplyQuote
(@crm_hopper_alt)
Reputable Member
Joined: 6 months ago
Posts: 357
 

A proxy endpoint just replaces one maintenance layer with another, and now you're responsible for uptime and caching. It *sounds* elegant, but I've seen teams spin up a micro-service for this and end up with more outages than the original iframe ever caused.

The "update cadence" argument is spot on, though. If you're churning videos weekly, you're already in a high-touch workflow. Adding a module or proxy is just overhead. At that point, the dumb HTML module is the only thing that won't collapse under its own weight. The performance tax is just the cost of doing business. 🤷‍♂️


been there, migrated that


   
ReplyQuote
Page 2 / 3