How to embed a form on any website (Notion, Webflow, WordPress and more)
The three ways to embed a YeetForm form, when to use each, and platform notes for nine popular site builders.
Three ways to put a form on a page
Every YeetForm form has a public URL, and from there you have three options for putting it inside a page you don't fully control: a script that renders it, an auto-resizing embed, or a plain iframe. They trade off differently on control, simplicity, and how much the host platform lets you do.
1. Script render
Drop the JS SDK on a page and tell it where to render:
<script src="https://yeetform.io/sdk.js"></script>
<div id="my-form"></div>
<script>
YeetForm.render("your-form-slug", "#my-form");
</script>
This is the most flexible option. It gives you YeetForm.open() for a modal instead of inline, YeetForm.load() if you want to fetch the schema headlessly and render it yourself, and YeetForm.submit() for a fully custom form UI that still posts to YeetForm. If the platform you're publishing on lets you paste arbitrary HTML and <script> tags, this is the one to reach for.
2. Auto-resizing embed
The same script tag, but instead of render you use the <yeetform-embed> web component:
<script src="https://yeetform.io/sdk.js"></script>
<yeetform-embed slug="your-form-slug" lang="en"></yeetform-embed>
It behaves like a normal HTML element, sizes itself to the form's content instead of leaving dead space or clipping a long form, and needs no JavaScript of your own to wire up. If you don't need the modal or headless options and just want "put the form here," this is usually the least code.
3. Plain iframe
For platforms that strip <script> tags but allow an iframe:
<iframe src="https://yeetform.io/f/your-form-slug?embed=true" width="100%" height="600"></iframe>
?embed=true drops YeetForm's own chrome around the form so it doesn't look like a page within a page. The tradeoff is that a plain iframe has a fixed height you set yourself, so a form that grows (say, conditional fields revealing more questions) can end up scrolling inside a box rather than growing with the page. If your platform's iframe support allows a script alongside it, the auto-resizing embed avoids this; if it's iframe-only, pick a height with some headroom.
When scripts are blocked
A lot of website builders and content platforms sanitize pasted HTML and strip anything that looks like a <script> tag, for good reason: it's the same mechanism a malicious embed would abuse. When that happens, the script render and the auto-resizing embed are both off the table, and the plain iframe is what's left. Notion is the clearest example: it has no script support at all, so every Notion embed of a YeetForm form goes through the iframe URL.
If you're not sure which category your platform falls into, try the script tag first. If the page renders with nothing where the form should be, or the platform's editor visibly strips the tag when you paste it, fall back to the iframe.
Prefilling fields
Every embed mode accepts field values through query parameters using the field id as the parameter name, for example ?fld_ab12cd34=Acme. Append them to the iframe src, or to the slug passed into render/embed. It's the same mechanism whether you're linking from an email with the recipient's name already filled in, or passing a plan name from a pricing page into a signup form. Field ids are visible in the form builder when you select a field, or in the schema returned by the MCP server and the developer API if you're wiring this up programmatically.
Platform notes
Notion: no script support, use the iframe URL as an embed block.
Webflow: supports an embed element that accepts raw HTML, so any of the three modes work; the auto-resizing embed plays nicest with Webflow's own layout.
Framer: similar to Webflow, an embed component takes custom code; script or web-component embed both work.
Shopify: paste into a page's HTML via the theme editor's custom liquid or HTML block; works well for order forms or customer intake tied to a product page.
WordPress: use a Custom HTML block in the block editor, or a plugin's raw-HTML shortcode if your theme restricts scripts in post content.
Squarespace: use a Code Block, available on most plans; scripts are generally allowed inside it.
Wix: use the HTML iframe / embed widget from Wix's add-ons; some Wix plans limit script embeds, so check the iframe fallback if the widget only exposes a URL field.
Carrd: the Embed element accepts a URL (iframe mode) or a code block (script mode) depending on which element type you add.
Ghost: use an HTML card in the post or page editor, all three modes work since Ghost doesn't sanitize card content the way some hosted builders do.
Picking one in under a minute
If you can paste a script tag, use the auto-resizing embed. It's the least code and the best fit on a page that already flows around other content. If your platform strips scripts, use the iframe with ?embed=true and a generous height. Reach for the raw render/open/submit API only when you need a modal trigger, a custom form UI, or a headless fetch, that level of control is there when you need it and unnecessary when you don't.
Full API details for all three modes, including the web component's attributes, are in the developer docs.
Pick your platform above, paste the snippet, and see it live in about two minutes.
Keep reading