Yes, you can send Notion form submissions to a webhook, but not from the form settings. Each response is saved as a new page in the form’s database, so you add a database automation with the Page added trigger and a Send webhook action. That action needs a paid Notion plan, sends a POST request, and carries only the properties you pick.
How a Notion form webhook works
A Notion form webhook is really a database automation that fires on new pages. The forms help page explains that every form question is tied to a property in a database, and forms are open to all members on all plans.
The database automations guide lists a Page added trigger that fires “when a new page is added to your database.” Pair it with an action that calls your URL and you have a submission webhook.
That action is Send webhook. According to the webhook actions help, it works on paid plans in buttons, database buttons and database automations. The free tier can collect responses but can’t post them anywhere. If you’re new to these rules, my guide to Notion form automation covers the other actions too.
How to set up the Send webhook action
Setting up the Send webhook action takes a few minutes once you have an endpoint URL ready.
- Open the form’s database, click the ⚡ icon, and choose New automation.
- Set the trigger to Page added.
- Click Add action and pick Send webhook.
- Paste your endpoint URL. Notion accepts any custom URL.
- Optionally click Add custom header and enter a Key and Value, for example
X-Form-Secretwith a long random string. - Tick the properties you want in the request body, such as Name, Email and Message.
- Save, then submit a test response from a private window.
Step 6 is where people slip. The property picker only exists in a database automation; add the same action to a database button and it’s gone.
What a Notion webhook sends, and what it leaves out
The Notion form webhook sends the database properties you selected, and nothing else. The help page sets four limits:
- POST only. No GET, PUT or custom methods.
- Properties only. Page contents, such as long notes written into the page body, are not sent.
- Five webhook actions per automation, at most. For more targets, create another automation.
- No workspace-level webhooks yet. Each database needs its own automation.
Notion has no payload preview. The help page suggests a request inspector like webhook.site: point the action there, submit one test response, and copy the JSON shape before writing server code.
Security note: the Send webhook action doesn’t require authentication. Anyone who learns your URL can post to it, so check that custom header on your server and reject requests without it.
Why the automation pauses (and how to catch it)
A failing Notion webhook pauses its own automation. When the action fails, Notion shows an exclamation mark next to the automation and stops it. It stays off until someone resumes it by hand.
That matters because the automations guide also says that when there are issues with webhooks, you may not be notified. Picture a small agency whose intake form posts to a server that goes down for an hour on a Friday. The automation pauses, and on Monday the form has dozens of new rows that never reached the CRM.
The same guide lists other quiet blockers:
- A filtered view that hides the new response.
- Restricted access on the page.
- A locked database.
- Pages created by another automation, which can’t trigger a second one.
My take: treat the Notion database as the source of truth and the webhook as a fast copy. Add a “Synced” checkbox your endpoint ticks back through the API, and filter for unticked rows once a week. If you’re seeing missing rows on the Notion side instead, read why form submissions aren’t showing.
Send webhook vs. integration webhooks vs. a form builder
Notion has a second webhook system for developers, and it behaves differently. Integration webhooks live in your API connection settings under the Webhooks tab. They fire on events such as page.created for any page the connection can see.
The API webhooks reference says Notion sends the request within a minute. The payload carries metadata such as the page ID, the event type and a timestamp. Your server then calls the Notion API to read the actual answers.
| Send webhook action | Integration webhook (API) | Form builder with its own webhook | |
|---|---|---|---|
| Setup | Paid Notion plan, no code | An API connection and a server | Depends on the builder |
| What arrives | Selected properties | Page ID and event metadata | Usually all answers |
| Signed requests | No, add a custom header | Yes, X-Notion-Signature |
Varies |
| Retries | Pauses on failure | Up to 8 retries | Varies |
| Code needed | None | Yes, a small server | Usually none |
The retry row is the big difference. The event delivery docs say failed deliveries are retried up to 8 times with exponential backoff, the last one about 24 hours after the event. The signature header is an HMAC-SHA256 hash of the body, signed with a verification token Notion sends once when you subscribe.
I’d pick the Send webhook action for simple jobs like a chat alert or a sheet row. For anything you can’t afford to lose, such as orders or leads, I’d use an integration webhook and fetch the page.
Using webhooks with nDBForms
nDBForms doesn’t have a built-in webhook setting today. If you want answers posted straight to your own server, that’s a real gap.
It writes each submission as a new row in your Notion database and send an email notification for every response. Because the row lands in Notion, you can listen for it the same way as above, with an integration webhook on that database. Submit one test response first and confirm the event arrives before you rely on it.
For simpler alerts without a webhook, see the guides on Slack notifications and email notifications. If you’d rather route answers through an outside tool, connecting a form to Notion with Zapier walks through that pattern.
FAQ
Do Notion forms have a built-in webhook setting?
Not inside the form itself. You add a database automation with the Page added trigger and a Send webhook action, which needs a paid Notion plan.
What data does a Notion form webhook send?
Only the database page properties you select in the automation. Page contents are not sent, and the request is always a POST.
Why did my Notion webhook automation stop working?
When a webhook action fails, Notion shows an exclamation mark next to the automation and pauses it. You have to resume it by hand after fixing the endpoint.
Can I secure a Notion form webhook?
The Send webhook action doesn’t require authentication, but you can add a custom header with a secret key and check it on your server. Integration webhooks from the API are signed instead.
Can I send Notion form responses to a webhook on the Free plan?
Not with the Send webhook action, which is limited to paid plans. The alternatives are an integration webhook on an API connection or an outside automation tool.