How to Embed a Widget on Webflow
Webflow's Code Embed element gives you full control over custom HTML directly on the canvas. It's one of the most powerful and flexible embedding experiences available on any no-code platform — you can see your widget render live as you design, without ever leaving the Designer.
On this page
1. Prerequisites
Before you start, make sure you have the following ready:
- An Embeddy widget: Log in to embeddy.ai/dashboard and open your widget. Under the Embed tab, copy your iframe embed code.
- A Webflow account with Designer access: Code Embed elements are available on all Webflow site plans. You will need access to the Webflow Designer for your project.
- A basic understanding of the Webflow Designer: You should be comfortable navigating the canvas and the Add panel. If you are new to Webflow, review their Webflow University intro before proceeding.
Good news: Unlike some platforms, Webflow supports HTML, CSS (<style>), and JavaScript (<script>) inside Code Embed elements — all without any plan upgrade required.
2. Adding the Code Embed Element
The Code Embed element is a first-class Webflow component. It renders live on the canvas, so you can see exactly how your Embeddy widget looks as you position and size it — before you even publish.
Important restrictions to know before you start:
- Do not include
<html>,<body>, or<head>tags — these break the page layout. - The code editor has a 50,000 character limit per embed element.
- Server-side languages (PHP, Python, Ruby, etc.) are not executed — only client-side HTML, CSS, and JavaScript.
A standard Embeddy iframe embed code is only a few hundred characters, so the 50,000 character limit will never be an issue. If you are embedding very large inline scripts, see the Troubleshooting section for the workaround.
- 1
Copy your Embeddy embed code
In your Embeddy dashboard, open the widget you want to embed. Click the Embed tab and copy the full iframe code:
<iframe src="https://embeddy.ai/webhost/WIDGET_ID?widget_props_id=PROPS_ID" width="100%" height="500" frameborder="0" ></iframe>
- 2
Open the Webflow Designer and navigate to your page
Open the Designer for your Webflow project. In the Pages panel (top-left), select the page where you want to add the widget.
- 3
Open the Add panel and find the Code Embed element
Click the + icon in the left toolbar (or press A) to open the Add panel. Search for "Embed" in the search bar, or scroll to the Components section and look for Code Embed.
- 4
Drag the Code Embed element onto the canvas
Drag the Code Embed element from the Add panel onto the section of your page where you want the widget to appear. Drop it inside a Section, Div, or Container for best layout control.
Tip: If you cannot see the element on the canvas after dragging, check the Navigator panel (left sidebar, layers icon) to find and select it. Embed elements with no code may not be visually obvious on the canvas until you add content.
- 5
Open the code editor
With the Code Embed element selected, look for the Settings panel in the right sidebar (gear icon). Click "Open code editor". Alternatively, you can double-click the element on the canvas to open the code editor directly.
- 6
Paste your embed code and save
Paste your Embeddy iframe code into the code editor. The editor will validate your HTML and show a preview. Click Save & Close to apply the code. The widget will render live on the canvas immediately.
3. Responsive Layout Tips
One of Webflow's biggest advantages is its responsive design system. You can adjust how your Embeddy widget looks at every breakpoint — desktop, tablet, landscape mobile, and portrait mobile — without writing any media queries.
Set the embed width to 100%
For the widget to fill its container at all screen sizes, set the Code Embed element's width to 100% in the Style panel. The iframe inside the embed code already has width="100%", so both the container and the iframe should be 100% wide.
<!-- Responsive Embeddy widget for Webflow --> <iframe src="https://embeddy.ai/webhost/WIDGET_ID?widget_props_id=PROPS_ID" width="100%" height="500" frameborder="0" style="display: block;" ></iframe>
Adjust height per breakpoint
The height attribute on the iframe sets the initial height, but you can override it at each breakpoint using Webflow's Style panel:
- Select the Code Embed element on the canvas.
- In the Style panel, switch to the breakpoint you want to target (e.g., mobile portrait).
- Set a fixed or min-height value appropriate for that screen size.
- Repeat for each breakpoint as needed.
Tip: Embeddy widgets are themselves responsive — the content inside the iframe adapts to its container width. You mainly need to control the height of the iframe at different breakpoints to ensure no content is cut off on smaller screens.
JS SDK embed option
If you need auto-resizing behavior (the widget height adjusts automatically to its content), you can use the Embeddy JavaScript SDK instead of a plain iframe. Paste the following into your Code Embed element:
<div id="embeddy-widget"></div>
<script src="https://embeddy.ai/sdk/embed.js"></script>
<script>
Embeddy.render({
container: '#embeddy-widget',
widgetId: 'YOUR_WIDGET_ID',
width: '100%',
height: 500,
autoResize: true,
});
</script>See the API Reference for all SDK options and events.
4. Publishing
Webflow has two states for your site: the Designer canvas (which you edit) and the published site (what visitors see). Code Embed elements render on the canvas itself, so you can verify your widget looks correct before publishing.
Publishing your changes
- After adding your Code Embed and confirming it looks correct on the canvas, click the Publish button in the top-right corner of the Designer.
- In the publish dialog, select the domain(s) you want to publish to (e.g., your custom domain or the free .webflow.io subdomain).
- Click Publish to Selected Domains.
- Once publishing is complete, visit your live site to verify the widget loads and functions correctly.
Note: Changes made in the Webflow Designer are not visible to site visitors until you publish. The canvas preview is for your own reference only. Always publish after making embed changes.
Automatic widget updates
Once embedded, your Embeddy widget updates automatically. If you change the widget's content, design, or settings in the Embeddy dashboard, all embedded instances on your Webflow site reflect those changes immediately — no need to re-publish your Webflow site or edit the Code Embed element.
5. Troubleshooting
Embed not showing on the canvas
If you dragged the Code Embed element onto the canvas but cannot see it, it may have landed in an unexpected place or have zero dimensions.
Fix: Open the Navigator panel (layers icon in the left toolbar) to find the Code Embed element in the page structure. Select it, then open the code editor to add your embed code. Setting a width and height in the Style panel will also make it visible on the canvas.
Blank space where the widget should be
The widget ID or props ID in your embed code may be incorrect, or the widget may not be published in your Embeddy dashboard.
Fix: Go back to your Embeddy dashboard and confirm the widget is published. Re-copy the embed code from the Embed tab and replace the code in your Webflow Code Embed element. Double-check that the WIDGET_ID and PROPS_ID match exactly.
Code editor shows a "character limit exceeded" error
The Webflow Code Embed editor has a 50,000 character limit per element. A standard Embeddy iframe will never hit this, but large inline scripts might.
Fix: Host the large script file externally (e.g., on a CDN or your own server) and reference it with a <script src="https://your-cdn.com/script.js"></script> tag instead. The src tag itself is only a few dozen characters.
Layout breaks after adding the embed
You may have included <html>, <body>, or <head> tags in your embed code. Webflow injects Code Embed content directly into the page DOM, so these structural tags conflict with Webflow's own page structure.
Fix: Open the code editor for the embed element and remove any <html>, <body>, or <head> tags. Your embed code should only contain the bare <iframe> tag (or SDK snippet).
Widget works in Designer but not on the published site
This can happen if the Webflow site's Content Security Policy (CSP) or hosting configuration is blocking the Embeddy domain, or if you forgot to publish after making your last change.
Fix: First, confirm you published after adding the embed (click Publish in the top-right corner). If the issue persists, open your browser's developer console on the published page and look for any blocked resource or CSP error messages. Contact Embeddy support if the embed works in the Designer but not live.
6. FAQ
Do I need to republish my Webflow site every time I update my Embeddy widget?
No. The iframe embed code points to a live URL served by Embeddy. When you update the widget in your Embeddy dashboard, all embedded instances on your Webflow site reflect those changes immediately. You only need to touch Webflow if you want to change the position, size, or layout of the embed element itself.
Can I add the Code Embed element to a Webflow CMS collection template?
Yes. You can drag a Code Embed element onto a Collection Template page just like any other page. The same Embeddy widget will appear on all pages generated from that template. If you want different widgets on different CMS items, you could store the widget ID in a CMS field and use Webflow's custom attributes to pass it dynamically — but this requires custom JavaScript and is an advanced use case. For most situations, a single shared widget is sufficient.
Is the Embeddy widget secure inside a Webflow site?
Yes. The Embeddy widget loads inside an <iframe>, which creates a sandboxed execution environment. The widget code cannot read or modify your Webflow page's DOM, access cookies, or interact with other elements on the page. Cross-origin policies enforced by the browser ensure both the host page and the widget remain isolated from each other.
Ready to go live on Webflow?
Build your Embeddy widget in minutes — no coding required. Grab your embed code and drop it into any Webflow Code Embed element.
Go to Dashboard