Contact forms
An HTML contact form. Without a form server.
Your website keeps its layout. Forms handles field validation, response storage and the controls you configure for unwanted submissions.
- Who it fits
- Static sites, custom HTML, Webflow and website editors that accept scripts.
- What you get
- A form endpoint, an embeddable form and a response inbox.
From setup to something useful.
Create the form you need
Open Forms, choose a contact preset and adjust the fields. Use a hosted link first if you do not want to edit your website yet.
Allow your exact website origin
Add an origin such as https://example.com in the form’s settings. Add https://www.example.com separately if both serve your site. Linking a project does not automatically authorize an origin.
Choose how the form fits your page
The embed renders saved fields for you. The HTML option lets you keep your own layout while forms.js handles sending, feedback, captcha and submission retries.
Publish and confirm the result
Send a response from the published website and check the inbox. Review the spam folder too. A saved origin is configuration, not proof the website integration works.
Plan for these details.
- Keep server submission tokens out of HTML and browser JavaScript.
- Turnstile needs configured platform or custom widget keys.
- Email notifications depend on platform email configuration; signed webhooks are a separate delivery option.
- File uploads are not supported by Forms at present.
Useful answers before you start.
Can I keep an existing form design?
Yes. Use the generated HTML as a field-name reference or attach data-spokegrid-submit to an existing form and load forms.js. Keep the field names aligned with your saved form.
Do I need to host my site with Spokegrid?
No. Forms works with external websites that allow custom HTML and scripts. The published website origin must be explicitly allowed.
Will responses be lost if an email fails?
Responses are stored in the Forms inbox independently of notification delivery. Check the delivery log for email and webhook status; failed deliveries can be reviewed and retried.