At a glance
- Setting
- Send To › Webhook
- Payload
- JSON, keyed by input name
- Code
- None
- Form mode
- Public
- Alternative
- An Embed with HTML
The integration
Two ways in. The webhook keeps Framer’s own form and success state; the Embed version is a plain HTML form inside an Embed component, for when you want the spam-trap field or more than one destination per submission.
In Framer, select the form on the canvas.
Right sidebar › Send To › Add… › Webhook
URL https://mtform.co/f/your-form-key
Secret (optional; MakeTheForm does not check it)
Publish, then submit the live form once to test.Step by step
- 1
Create the endpoint
Create a form in MakeTheForm to get your endpoint URL and inbox.
- 2
Add it as the form’s webhook
Select the form on the canvas. In the right sidebar, click Add next to Send To, choose Webhook, and paste the endpoint URL. It must start with https://.
- 3
Name your inputs
Framer uses each input’s name as the key in the JSON it sends. Give every input a plain name such as email or message so submissions arrive readable.
- 4
Publish and test
Verify your recipient address once, publish the site, and submit the live form. It arrives in your inbox and by email.
Common pitfalls
Turning on allowed domains for a webhook form
The webhook comes from Framer’s servers, not from the visitor’s browser, so it carries no Origin header. A form restricted to allowed domains refuses it.
Fix: Leave the form in public mode, or use the Embed version, which posts from the browser.
Expecting unlimited throughput from one webhook
Every webhook delivery arrives from Framer’s servers, so they share the endpoint’s per-address rate limit of 30 submissions per 10 minutes for each form. That is plenty for a contact form. Framer retries a delivery that is refused up to five times.
Fix: For a high-volume form, such as a launch waitlist, use the Embed version so each visitor posts directly.
Troubleshooting
| Symptom | What’s happening | Fix |
|---|---|---|
| 403 | The form is restricted to allowed domains. | Switch the form to public mode; a server-sent webhook has no browser origin to match. |
| 429 | A burst of submissions hit the per-address rate limit. | Framer retries automatically. For sustained volume, switch to the Embed version. |
| odd field names | Inputs kept Framer’s default names. | Rename each input in Framer; the name is the key MakeTheForm stores. |
Frequently asked questions
Where do Framer form submissions go?
Wherever the form’s Send To destination points. Framer can send them to a webhook, which posts the fields as JSON to a URL. Point that webhook at a form endpoint and each submission is emailed to you and kept in a searchable inbox.
Can I send a Framer form to Slack or my own webhook?
Yes, on a paid plan. Send the form to a MakeTheForm endpoint, then connect Slack or add a signed webhook on the form. One submission can reach email, the inbox, Slack and your webhook at once.
Does the Framer webhook need a secret?
Framer lets you set one so a receiving server can check the Framer-Signature header. MakeTheForm does not check that signature, so you can leave it empty. The endpoint is public by design, like any form action.
Other platforms
Keep going
Last reviewed by the MakeTheForm team.