Embed a form on your website
Three ways to put a Zyan lead form on a site you own — a hosted link, an iframe, or the script loader — and how to choose between them.
Once a form is published, Zyan gives you three ways to put it in front of people. All three feed the same Lead Manager queue; they differ only in how much of your page they take over.
Before you start
The form must be published, and your workspace needs a verified host — either your platform address or a custom portal domain. Everything below lives under LeadsFormsyour formShare.

Which one do I want?
| You want | Use |
|---|---|
| A link to put in an email, a social bio, or behind a button | Hosted link |
| The form sitting inside one of your own pages, fastest to set up | Iframe |
| The form inside your page, with the theme following your site | Script loader |
| Your own existing form design, posting to Zyan | Capture API |
Hosted link
The form on its own page, on your verified host:
https://<your verified host>/client-portal/forms/<slug>
Copy it from the Share tab. Open preview opens it in a new tab so you can check it before you send it anywhere.
Iframe embed
The fastest way to get the form inside a page you control. Turn on Embed on your website in the Share tab, then Copy iframe snippet:
<iframe
src="https://<your host>/client-portal/forms/<slug>?embed=1"
title="Contact form"
style="width:100%;border:0;min-height:640px"
loading="lazy"
referrerpolicy="strict-origin-when-cross-origin"
></iframe>
?embed=1 renders the form without page chrome, so it sits in your layout
rather than bringing its own. loading="lazy" and the referrer policy come
with the copied snippet — keep them; they are why an embed near the bottom of a
long page costs nothing until someone scrolls to it.
Set a min-height you are happy with
An iframe cannot grow itself to fit its contents. If your form is long, or has
conditional fields that appear as people fill it in, raise min-height until
the tallest state fits — otherwise the last field scrolls inside the frame.
Script loader
Two lines. A mount point and an async loader that mints the iframe for you:
<div data-zyan-form="<slug>"></div>
<script async src="https://<your host>/client-portal/assets/embed/zyan-forms.js"></script>
Copy both from Copy script snippet. Add data-theme="light" or
data-theme="dark" to the div to pin a colour scheme instead of following the
form's own Design setting.
Booking pages use the same loader with data-zyan-booking.
Forcing a theme
Both embeds accept the same URL parameters, already baked into the copied snippets:
| Parameter | Effect |
|---|---|
?embed=1 | Renders without page chrome |
?theme=light | Forces the light scheme |
?theme=dark | Forces the dark scheme |
Edit the src yourself if you want a theme that differs from the form's Design
setting — useful when the same form is embedded on a light marketing page and a
dark app page.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| The embed shows a blank box | The form is not published | Publish it in Leads → Forms |
| The last field is cut off | The iframe's min-height is too small | Raise it past the form's tallest state |
| The form looks wrong on your page | The theme is following the form's Design setting | Add data-theme or ?theme= |
| Submissions do not reach Lead Manager | The form is archived, or the host is not the verified one | Check the form's status and copy the snippet again from Share |