<script> tag. Choose from ten display modes — floating button, popup, drawer, fullscreen, and more — and configure how and when it appears.
Go to Share → Embed to configure and copy the code. Embedding requires the Pro plan.
Quick start
Paste this into your HTML<head> or before </body>, replacing the config values with your own:
Display modes
Trigger types
The trigger controls when the widget appears.Configuration reference
All configuration keys that differ from their defaults are included in the generated snippet. The full list:Submission persistence
By default the widget remembers users who have already submitted your form and won’t show it to them again for 30 days. This works entirely client-side — no extra network requests.How it works
-
When the form is submitted, the widget writes a record to
localStorage(orsessionStorage/ a cookie, depending onstorageType). The record contains the form’s session key and two timestamps:cached_until— 24 hours from submission. Within this window the widget skips opening immediately, with zero network cost.expires_at—submissionExpirydays from submission. After this the form shows again as if it were a fresh visit.
-
After the 24-hour cache window expires (but before
submissionExpiry), the widget silently creates a hidden iframe to re-check the session key. If the key still matches, the 24-hour window is extended. If the key has changed (because a form manager reset it), the cache is cleared and the form shows again.
Forcing all users to see the form again
If you’ve changed your form content and want all prior visitors to see it again regardless of their remembered submission, go to Settings → Submission Persistence and click Reset key. All embed widgets will detect the new key on their next visit and show the form.Session key reset requires the Pro plan.
Disabling persistence
PassrememberSubmission: false to always show the form, regardless of prior submissions:
Callbacks
React to widget events from your own JavaScript:React / Next.js
Use the embed script inside auseEffect in a client component:
Programmatic control
Once the script has loaded you can control the widget from your own JavaScript:Next steps
Email embed
Get a ready-to-use email template for your campaigns.
Public link
Share the direct URL instead of an embed.