Get an endpoint Sign in

Guides Slack

Send HTML form submissions to Slack

Leads and support requests are easier to act on when they land in the channel your team already watches. sendm8 posts each submission to Slack through an incoming webhook, so there’s no Slack app to build and nothing to host.

What you need

A Slack workspace where you can add apps (or ask an admin to), and a free sendm8 account.

Set it up

  1. Sign in to sendm8 with GitHub or Google and create a form. You get an endpoint like https://sendm8.com/f/k3x9q2m7ab. (Email-in-the-URL endpoints deliver by email only; channels like this one live on dashboard forms.)
  2. In Slack, add the Incoming Webhooks app to your workspace (or create an app with incoming webhooks turned on), choose the channel, and copy the webhook URL. It starts with https://hooks.slack.com/services/.
  3. In sendm8, open the form’s Settings → Channels, add a Slack channel and paste the URL.
  4. Click Send test and check the channel.

sendm8 also accepts Slack Workflow Builder webhook URLs (hooks.slack.com/workflows/… and /triggers/…), if you’d rather route submissions through a workflow.

The form

contact.html
<form action="https://sendm8.com/f/k3x9q2m7ab" method="POST">
  <label>Name <input name="name" required></label>
  <label>Email <input name="email" type="email" required></label>
  <label>Message <textarea name="message" required></textarea></label>
  <input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">
  <button>Send</button>
</form>

Every named field is included in the Slack message. Add a hidden _subject field if you have several forms posting to one channel, so you can tell them apart at a glance.

What arrives in Slack

One message per submission, with the fields listed, a link to the full submission in your dashboard and download links for any files. Text from the form is escaped before it’s sent, so a visitor can’t ping @channel or inject links that look like they came from you.

Slack and email together

Each form can have up to 10 channels, so the same submission can go to email, Discord, Slack, Telegram and a webhook at once. Chat and webhook deliveries are unlimited and don’t count towards the daily email allowance. A failed delivery is retried after 1m, 5m, 30m, 2h, 12h, and the dashboard shows each attempt on the submission.

Keeping the webhook URL private

Anyone with a Slack webhook URL can post to that channel, which is why it should never go in your page’s HTML. With sendm8 the URL is stored encrypted in your account, and your page only ever contains the form endpoint. If a webhook leaks some other way, remove it in Slack and add a fresh one in sendm8.

Questions

Can I post a form straight to a Slack webhook from the browser?
You shouldn’t. Slack expects JSON in its own format, browsers block most cross-site requests to it, and the webhook URL would be visible in your page for anyone to abuse. A form backend keeps the URL private and filters spam first.
Does it cost anything to send submissions to Slack?
No. Slack, Discord, Telegram and webhook deliveries are unlimited on every sendm8 account.
Can different forms go to different Slack channels?
Yes. Each form has its own channels, so give each one a webhook for the channel it should post to.