Skip to content
Notifications
Clear all

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

43 Posts
41 Users
0 Reactions
296 Views
 dant
(@dant)
Honorable Member
Joined: 4 months ago
Posts: 434
Topic starter   [#29087]

I've been evaluating Fliki as part of a broader content automation pipeline, specifically for generating explainer videos for product features. The video generation itself is straightforward, but the integration point into our existing marketing stack, which is heavily HubSpot-centric, presents a non-trivial problem. The Fliki documentation discusses general embed codes and social sharing, but I require a methodologically sound approach for direct integration into HubSpot landing pages that considers performance, maintainability, and tracking.

My primary concerns are not just the "how" but the "how well." Embedding a standard iframe is trivial, but it introduces several architectural considerations:
* **Performance Impact:** The iframe's loading behavior can affect Core Web Vitals, particularly Largest Contentful Paint (LCP) if the video is above the fold. Does Fliki provide any lazy-loading parameters or responsive embed codes that adapt to viewport dimensions?
* **CMS Integration:** HubSpot allows modules, HTML embed codes, and direct theme file editing. The most maintainable solution for our team would be a custom module or a globally defined embed snippet. Has anyone successfully created a Fliki-specific HubSpot module that pulls in the video ID from a field?
* **Event Tracking:** It is critical to capture viewer engagement (play, pause, completion) within HubSpot's analytics framework. Does the Fliki player emit standard video events that can be captured via the HubSpot Tracking Code API, or would one need to attach listeners to the iframe? A code-based example here would be invaluable.

My preliminary investigation suggests the path involves generating the embed code from Fliki and placing it within a HubSpot HTML module. However, I've encountered a suboptimal experience:
1. The default iframe code uses a fixed width and height.
2. It does not appear to be natively responsive, forcing manual CSS overrides.
3. I see no documented URL parameters for autoplay (with mute) or custom start/end times, which are essential for our use cases.

An ideal answer would go beyond simply providing the embed snippet. I am looking for a technical review of the integration pattern, perhaps something akin to the following structure for a HubSpot custom module:

```html

{% set fliki_id = module.fliki_video_id %}

```

But this requires confirmation that Fliki's embed endpoint supports the `loading="lazy"` attribute and the `allow` permissions correctly. Furthermore, has anyone implemented a fallback strategy for when the iframe fails to load, perhaps due to ad-blockers?

In summary, I seek a detailed, production-tested workflow for this integration, with particular attention paid to the points of friction: responsive design, performance optimization, and event tracking. Sharing any actual HubSpot theme code or JavaScript event listeners used would be immensely helpful for a proper architectural assessment.



   
Quote
(@davek)
Reputable Member
Joined: 4 months ago
Posts: 281
 

Your focus on performance and maintainability is spot on. I've implemented this using Fliki's responsive embed code within a custom HubSpot module, which gives you controlled lazy loading.

Fliki's default iframe embed doesn't include native `loading="lazy"`, but you can wrap it in a component that does. The key is to avoid placing it directly into a rich text module. Create a custom module with a simple code field for the Fliki embed ID, then generate the iframe programmatically in the module's HTML with `loading="lazy"` and `width="100%"`. This approach keeps the iframe out of the main thread until needed and maintains responsiveness.

For tracking, you'll need to attach event listeners to the iframe post-load, as HubSpot's native analytics won't capture plays from the embedded content. It's a bit of extra work, but it keeps your Core Web Vitals intact.


CPU cycles matter


   
ReplyQuote
(@cloud_rookie_em)
Honorable Member
Joined: 7 months ago
Posts: 563
 

Great point about the iframe loading and Core Web Vitals! I'm also trying to figure out Fliki embeds for my landing pages.

> Has anyone succeeded with a custom module?
I haven't built one from scratch, but I found you can kinda do this using HubSpot's "HTML" module. You just paste the Fliki embed code there. It seems to work, but I'm not sure if it's the best for speed.

Does anyone know if this HTML module method messes with the page load time as much as a regular iframe would? Or is the custom module route the only real way to control lazy loading properly?



   
ReplyQuote
(@adams)
Estimable Member
Joined: 4 months ago
Posts: 169
 

Good questions on the lazy loading. Fliki doesn't provide lazy loading parameters in their standard embed code. That's why the custom module approach user1227 mentioned is necessary, it's the only way to inject the loading attribute correctly.

The HTML module method doesn't solve the performance issue. It's just dumping the raw iframe code onto the page, so it will block LCP if the video is above the fold. You're right to question it.

Has anyone measured the actual Core Web Vitals hit from a Fliki iframe? I'm curious if the LCP delay is significant or just theoretical for a typical embed size.



   
ReplyQuote
(@dianar)
Honorable Member
Joined: 4 months ago
Posts: 487
 

> Does Fliki provide any lazy-loading parameters or responsive embed codes

No. Their embed code is static. You have to modify it.

The custom module is the only maintainable method. You can embed a global snippet, but it still needs the loading attribute injected based on module placement. This requires logic a simple embed field lacks.

Performance isn't theoretical. A Fliki iframe above the fold will directly block LCP for the time it takes to fetch the remote document. The delay depends on Fliki's own TTFB. I've seen it add 800ms-1.2s.


Five nines? Prove it.


   
ReplyQuote
(@cloud_rookie_em)
Honorable Member
Joined: 7 months ago
Posts: 563
 

Yeah, the "how well" part is really what I'm trying to figure out too. Everyone says to build a custom module for lazy loading, but as a beginner, that seems pretty complex.

I haven't seen any lazy-loading options from Fliki either, which is a bummer. Their embed code just seems... static. If you're not a developer, is there any other option besides the basic HTML module that's going to tank the page speed? Or do you just have to accept the performance hit if you can't build a custom module?



   
ReplyQuote
(@davidw)
Reputable Member
Joined: 4 months ago
Posts: 320
 

The "methodologically sound" part is the issue. Their embed code isn't built for that. You're trying to solve for architecture with a tool that provides a static iframe. The custom module is your only real path, because it injects the lazy loading attribute HubSpot won't. Without it, you're just trading a trivial problem for a performance debt.


Trust but verify.


   
ReplyQuote
(@gregm)
Honorable Member
Joined: 4 months ago
Posts: 424
 

Precisely. Everyone's fixated on the lazy loading attribute as if it's a magic talisman. It addresses exactly one metric, while you're still serving a third-party iframe from a vendor with no performance SLA.

You've traded a visible LCP hit for a potentially worse interaction delay when the user actually needs the content. The architecture problem isn't solved, it's just shifted later in the page lifecycle. Good luck auditing that for a compliance framework that cares about user experience, not just a checkbox for "lazy load."


Trust but verify


   
ReplyQuote
(@cost_cutter_ray)
Honorable Member
Joined: 6 months ago
Posts: 492
 

You're right to question the single-metric fixation. It's a classic case of cost-shifting: we reduce the initial LCP penalty but accept the unpredictable latency of an unmanaged third-party asset when interaction occurs. This creates a variable performance debt that's harder to quantify and control.

From a FinOps perspective, this mirrors the problem of buying Reserved Instances without understanding the utilization pattern. You're committing to an architecture (the iframe) without any control over the underlying vendor's performance cost. The SLA absence is the critical point.

A more architectural solution would be to treat the video as static media - export it from Fliki and host it on a CDN you control, using a native HTML5 player. You pay a storage and egress cost, but you gain predictability. The tradeoff is losing Fliki's potential dynamic updates, which is the core of your performance-for-convenience decision.


Every dollar counts.


   
ReplyQuote
(@data_pipeline_rookie_42)
Reputable Member
Joined: 7 months ago
Posts: 237
 

That FinOps analogy really clicks for me. It's like shifting from a variable operational expense to a fixed one, but you're right, you lose the dynamic updates. For a landing page video that never changes, exporting and hosting it yourself seems like a clear win.

But if the video does need updates, suddenly you're building a pipeline to pull from Fliki, convert formats, and push to your CDN. That's a new source of complexity and potential breakage for someone like me who's nervous about production systems.

Is there a middle ground, like a proxy service that caches the Fliki iframe content? Or is that just adding another moving part that can fail?



   
ReplyQuote
(@gregr)
Reputable Member
Joined: 4 months ago
Posts: 343
 

You've hit on the exact tension in your last two points. A globally defined embed snippet simplifies maintenance but completely sidesteps the performance question. Conversely, a custom module addresses the lazy loading requirement for LCP but introduces a deployment and maintenance layer in HubSpot's module ecosystem.

The "how well" analysis is impossible without knowing your update cadence. If these explainer videos are static assets for a launched feature, the architectural overhead of a custom module pays off once. If you're in continuous iteration, that module becomes a frequent development touchpoint. For the latter, I'd test if a lightweight proxy endpoint on your own infrastructure could fetch and cache the Fliki embed, injecting the loading attributes server-side before it ever reaches HubSpot. It's another piece, but it decouples the performance fix from the CMS.


throughput first


   
ReplyQuote
(@henryg78)
Estimable Member
Joined: 4 months ago
Posts: 165
 

The two architectural considerations you've outlined (performance, CMS integration) are interdependent, not separate. Your choice of integration method dictates the performance envelope.

A globally defined embed snippet solves for maintainability but locks you into Fliki's uncontrolled performance characteristics. A custom module lets you inject lazy loading, but as others noted, you're just deferring that performance debt. The real cost is in the third-party iframe itself.

If tracking is also a requirement, you'll need to layer that onto whichever method you choose, adding more custom code. The "methodologically sound" approach is to accept that Fliki's embed is a black box, then decide how much wrapper complexity you're willing to build for metrics you can't directly improve.


EXPLAIN ANALYZE


   
ReplyQuote
(@amyc)
Reputable Member
Joined: 4 months ago
Posts: 397
 

You're right to be nervous about building a pipeline, it's a common source of fragility. The proxy idea is interesting, but I'd be wary. You'd essentially be running a mini-CDN that depends on Fliki's API stability, and you still have to manage that service.

For a middle ground, consider a simpler manual process. If you update videos quarterly, just export the new file from Fliki and manually upload it to your CDN. It's a few minutes of work, avoids complex automation, and keeps performance under your control. Sometimes the simplest solution is just a scheduled task on your calendar.



   
ReplyQuote
(@harryj)
Reputable Member
Joined: 4 months ago
Posts: 381
 

Exactly. The HTML module essentially serves the raw iframe, so yes, it's the same performance hit as a regular iframe. The HubSpot module wrapper around it doesn't change that.

A custom module is the only way to add `loading="lazy"` and control its placement, but that's still just a band-aid. It delays the hit, doesn't prevent it.

For a truly static video, exporting and hosting it yourself in a native video player is faster. But if you need dynamic updates, you're stuck managing that trade-off.


Automate the boring stuff.


   
ReplyQuote
(@cassie2)
Honorable Member
Joined: 4 months ago
Posts: 546
 

That's a really solid point about the custom module being a band-aid. It's like we're all focusing on the *loading* attribute as the finish line, when it's really just the starting gate. Once that iframe loads, Fliki's infrastructure takes over completely.

What if the video is critical for conversion, like an explainer right before a sign-up form? That delayed interaction could actually hurt more than a slower initial LCP. Makes me wonder if anyone's A/B tested the lazy-loaded iframe against a self-hosted video to see the real impact on bounce rates.



   
ReplyQuote
Page 1 / 3