Integrations

Send Form Webhook Notifications to Slack Automatically

SimpleForm can push every form submission into Slack the instant it arrives — but only if you know the one payload-shape gotcha that keeps most direct setups silent.

· The SimpleForm Team

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:

  1. Create or open a form in your SimpleForm dashboard and copy its endpoint token.
  2. Point your HTML form's action attribute at https://simpleform.dev/f/YOUR_TOKEN and confirm a test submission arrives by email.
  3. In Zapier, create a new Zap with a "Webhooks by Zapier" trigger set to "Catch Hook," and copy the custom URL it generates.
  4. In your SimpleForm dashboard, open the form's webhook settings and add that Zapier URL as the webhook endpoint.
  5. Send a real test submission through your form so Zapier receives a sample payload to map fields from.
  6. 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.
  7. 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 methodSpeedGood forSetup effort
EmailSeconds to minutes, depends on inbox checking habitsA permanent record, forwarding, filingNone — on by default
Slack webhookNear-instant, visible to a whole channel at onceTime-sensitive leads, on-call teams, shared inboxesOne relay step (Zapier, Make, or custom code)
Discord webhookNear-instantCommunity or side-project teams already living in DiscordSimilar 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.

Ship a working form in five minutes. Point your form's action at a SimpleForm endpoint and submissions land in your inbox and dashboard straight away. Start free or read the docs.

More from the blog