A visitor fills out your contact form, hits submit, and the data lands in an inbox nobody checks until the next morning. By the time you reply, a warm lead has gone cold or a support request has sat unread for half a day. Checking a dashboard or an inbox is a manual step, and manual steps are the ones that get skipped. SimpleForm is a hosted form backend for static websites: you point your HTML form's action attribute at a SimpleForm endpoint, and it stores the submission, emails you, and — on paid plans — can also push it straight into Slack the moment it arrives.
This article covers what a form webhook actually is, the one detail that trips people up when they try to send SimpleForm's webhook straight into Slack, and the exact steps to get a working Slack notification set up on a real form.
What Is a Form Webhook?
A webhook is an HTTP POST request that a service sends to a URL you register in advance, fired the instant a specific event happens — in this case, a form submission. Instead of you polling an inbox or a dashboard to find out if something new arrived, the service tells your chosen destination immediately. SimpleForm's webhook fires a POST containing an event name, the form the submission came from, and a submission object holding the visitor's data, sent to every webhook URL attached to that form.
This matters for anything time-sensitive: a job application, a sales inquiry, a bug report from a paying customer. A webhook removes the gap between "someone submitted a form" and "a human on your team knows about it." The visitor never sees any of this — their request is answered with a redirect or a JSON success response based on the form submission itself, and the webhook call happens separately on the server side, so a slow or unreachable webhook destination does not hold up the person filling out the form.
A real SimpleForm webhook body looks like this:
{
"event": "submission.created",
"form": { "id": 42, "name": "Contact form" },
"submission": {
"id": 1234,
"created_at": "2026-04-25T12:00:00Z",
"data": { "name": "Ada", "email": "ada@example.com" }
}
}
Everything the visitor typed lives inside submission.data, keyed by each field's name attribute — which is exactly the part a relay tool needs to pull out and turn into a Slack message.
Why Doesn't My SimpleForm Webhook Show Up in Slack?
This is the part most guides skip. Slack's own Incoming Webhooks documentation specifies that a message posted to a Slack webhook URL must be JSON containing a text key — for example {"text": "Hello, world."}. SimpleForm's webhook payload is not shaped that way. It sends {"event": "submission.created", "form": {...}, "submission": {...}}, which is the correct shape for a generic automation tool but has no text field at all.
Point a SimpleForm webhook URL directly at a raw Slack incoming webhook and Slack will reject the request or show nothing in the channel, because the payload it received has no message to display. The fix is a small relay step in between — something that receives SimpleForm's JSON and re-sends it to Slack in the shape Slack expects. A no-code automation tool like Zapier or Make can do this in a couple of clicks: trigger on "Catch Hook," map the submission fields into a text string, and send that to Slack's action.
SimpleForm also adds an X-SimpleForm-Signature header to every webhook request when you set a signing secret, holding an HMAC-SHA256 hex digest of the request body — useful for verifying the request actually came from SimpleForm if you build your own relay instead of using Zapier or Make.
This is exactly where checking a dashboard by hand stops scaling and a webhook earns its place: once it is wired up, every submission reaches your team's Slack channel without anyone opening a browser tab. The SimpleForm documentation covers the webhook payload format and signature verification in full if you want to build a custom relay rather than use Zapier or Make.
How Do You Set Up a Slack Webhook for a SimpleForm Endpoint?
Here is the full path from a plain HTML form to a Slack notification, using Zapier as the relay:
- Create or open a form in your SimpleForm dashboard and copy its endpoint token.
- Point your HTML form's
actionattribute athttps://simpleform.dev/f/YOUR_TOKENand confirm a test submission arrives by email. - In Zapier, create a new Zap with a "Webhooks by Zapier" trigger set to "Catch Hook," and copy the custom URL it generates.
- In your SimpleForm dashboard, open the form's webhook settings and add that Zapier URL as the webhook endpoint.
- Send a real test submission through your form so Zapier receives a sample payload to map fields from.
- Add a Slack "Send Channel Message" action to the Zap, and build the message text from the submission fields Zapier captured — for example the sender's name and message.
- Turn the Zap on and submit the form once more to confirm the message lands in the right Slack channel.
Webhooks are a Pro and Agency feature — the Free plan does not include them, so this setup requires an upgraded form.
Webhook or Email: Which Notification Should You Use?
Most forms should keep the email notification and add a webhook alongside it, not replace one with the other. Each does a different job.
| Notification method | Speed | Good for | Setup effort |
|---|---|---|---|
| Seconds to minutes, depends on inbox checking habits | A permanent record, forwarding, filing | None — on by default | |
| Slack webhook | Near-instant, visible to a whole channel at once | Time-sensitive leads, on-call teams, shared inboxes | One relay step (Zapier, Make, or custom code) |
| Discord webhook | Near-instant | Community or side-project teams already living in Discord | Similar relay step, or direct if your bot accepts the raw JSON shape |
SimpleForm rate-limits each endpoint to 10 submissions per IP address per hour regardless of which notification method is attached, so a webhook will not get flooded any faster than the form itself allows.
Is Adding a Webhook Worth the Extra Setup?
The honest objection is that a Zapier relay is one more moving part in a stack that used to be "just a form tag." That is a fair concern if your form gets a handful of submissions a month — email is enough, and the Free plan covers that at no cost. The calculation changes once a missed submission has a real cost: a sales lead that goes to a competitor, a support ticket that ages past your response-time target, an application deadline. Webhooks are included on the Pro plan alongside file uploads and CSV export; see the full breakdown on the pricing page if you are deciding whether the upgrade is worth it for your volume. If your workflow needs something more custom than a Zapier relay, SimpleForm's team can point you at the right approach — reach out and describe what you are trying to build. There is also a security question worth asking before you wire anything up: a webhook sends the visitor's submitted data to a third-party URL you control, so treat that destination — a Zapier account, a Slack workspace — with the same access controls you would give any place customer data lands, and use the signing header if you build a custom relay instead of trusting the URL alone.
Start Sending Slack Notifications From Your Forms
If you are still on email-only notifications, the fastest way to see whether a webhook is worth it for your form is to try it on one real endpoint. Create a free SimpleForm account, add your HTML form, and once you are ready to add a webhook, wire it through Zapier as described above — you will see a real submission land in Slack within a few minutes of finishing the setup.
Frequently asked questions
Yes. Webhooks are available on the Pro plan ($9/month, 5,000 submissions) and the Agency plan ($29/month, 25,000 submissions). The Free plan supports one email recipient and a custom redirect URL, but does not include webhook delivery, so a form has to be upgraded before you can attach a Slack or Discord webhook to it.
Not without an extra step. Slack incoming webhooks require a JSON body with a text field, while SimpleForm sends an event, form, and submission object with no text field. Point a SimpleForm webhook straight at a Slack URL and nothing readable appears — you need a relay like Zapier or Make to reshape the payload into the format Slack expects.
Set a signing secret on the webhook in your SimpleForm dashboard. Every request after that includes an X-SimpleForm-Signature header containing an HMAC-SHA256 hex digest of the request body. Recompute that digest with your secret on the receiving end and compare it to the header value — a mismatch means the request did not come from SimpleForm.
Yes. SimpleForm lets you attach any webhook URL to a Pro or Agency form, including a Discord webhook URL. The same payload-shape issue applies — Discord expects its own JSON structure for a readable message, so most setups route through a relay tool rather than pointing SimpleForm directly at the Discord URL.
SimpleForm returns a 402 response for submissions past your plan monthly limit, and those submissions are not emailed, stored, or sent to a webhook. Every other submission that month continues working normally, and the limit resets automatically on the first of the following month.