Help center
Go to home
Go to templates
Go to settings
Go to help center

Embed your form

Put a form on your own site as an inline frame, a popup or a full page, tune the embed options, and pass the host page's URL parameters into hidden fields.

A published Tinyform form can live on a page you own rather than at its own address. Three shapes are offered:

  • Standard: the form sits inside your page, between your own content
  • Popup: the form opens in a panel over your page when something triggers it
  • Full page: the form is the whole page

How embedding works

Publish the form, open its Share tab and scroll to Embed Form. Three cards stand for the three shapes; pick one.

The Share tab's Embed Form section, with the Standard, Popup and Full page cards.

A dialog opens with a preview on one side and the options on the other. Flip the switches and watch the preview follow.

The Popup embed dialog: the options on the left, the form opening over a preview page on the right.

Press Get the code, copy the snippet and paste it into your page. The rest of this article says what each option does per shape.

Standard embed

Set the options, then press Get the code. The code pane offers three things: an iframe plus a one-line loader, which is the usual paste; the bare embed link, for a site that only takes a URL, such as a Notion page or a Ghost post; and the script tag alone, for a page that already loads the widget.

Most site builders have a place to paste HTML; on some it is a paid feature of theirs.

The Standard embed dialog, with Copy embed link under Get the code and the form drawn inline in the preview.

Options

  • Height: a fixed height for the frame, in pixels. Used when dynamic height is off.
  • Dynamic height: the frame follows the form's own height instead of scrolling inside itself, so the whole form shows without a second scrollbar, and the frame grows and shrinks between pages and across phone and desktop. On by default.
  • Hide form title: leave the form's name off, when your page already has a heading. On by default.
  • Align content to the left: an embedded form is centred in its frame; turn this on to sit it against the left edge. On by default.
  • Transparent background: drop the form's own background so it takes your page's. On by default.
  • Custom domain: serve the frame from a domain you own rather than this app's address.
  • Branding: the small "Made with" badge at the foot of the form. Whether it can be turned off is a plan matter; see Remove branding.
  • Track form events: have the frame report page views and submissions to your page, so the analytics your site already runs can count them. Off by default.

A switch that is off leaves nothing in the snippet; only what is on is written.

Popup

The popup has options of its own: what opens it, where the panel sits, its width, an emoji bubble on the launcher, and whether it closes itself after a submit. Popup forms covers all of them.

Full page embed

A full page embed hands the whole page to the form. Set the options and press Get the code, then paste the snippet into the page's HTML.

The Full page embed dialog, with the form filling the whole preview on the right.

Options

  • Transparent background: drop the form's own background so it takes the page's.
  • Custom domain: serve the frame from a domain you own.
  • Branding: the "Made with" badge, as above.
  • Track form events: report page views and submissions to the host page.

Save website page and query parameters with hidden fields

The page the form is embedded on, and every query parameter on that page's URL, are passed into the frame, where hidden fields can pick them up. That lets a form record where it was filled in, or reuse a value your site already knows.

With hidden fields named originPage, ref and email, a form embedded on this page:

https://company.com/register?ref=downloads&email=alice@example.com

stores originPage=/register, ref=downloads and email=alice@example.com with each submission. A parameter written into the embed's own URL wins over the same name on the host page.

Developer resources

The widget puts one object on the page, TinyForm. TinyForm.loadEmbeds() wires up frames you added after the script ran, and TinyForm.openPopup(id, options) opens a popup from your own code. The Use JavaScript section of the code pane shows both.

Other embed guides