Embed reference
The <higherstack-form> web component: attributes, script behavior, and consent handling.
Forms embed as a custom element. Load the script once per page, then place one or more form tags.
<script src="https://forms.higherstack.ca/embed.js" async></script>
<higherstack-form form-id="your-form-id"></higherstack-form>Attributes
| Attribute | Values | Purpose |
|---|---|---|
form-id | string (required) | The form’s id / slug. |
embed | popup · slider · fullscreen | Show a launcher button instead of inline. Omit for inline. |
button-text | string | Label for the launcher button (launcher modes). |
accent | CSS color | Optional accent override for the launcher button. |
API base
The embed derives its API base from the script’s own origin. Loading embed.js from https://forms.higherstack.ca means the form calls back to that host — so a form embedded on any site reaches your backend. No configuration needed.
Consent handling
The embed captures first-party attribution on submit (click IDs, utm_*, page URL, referrer). To respect a consent decision, set a global before the visitor submits — for example from your consent-management platform:
// in your CMP's onConsentChange callback
window.hsFormsConsent = marketingAllowed ? 'granted' : 'denied';When set to 'denied', no identifiers are collected — only an anonymous event ID used for de-duplication.
Prefer a standalone page over an embed? Share /f/your-form-id directly — it’s server-rendered and unfurls nicely in chat apps.
Still need help?
A dedicated support form is coming soon. In the meantime, jump back into the product or reach the team from the contact page.
HigherStack