splitforms.com
FEATURE · SLACK

Form to Slack — every submission posted to the channel of your choice

Paste an Incoming Webhook URL once. Every form submission shows up in Slack within a second, formatted as a clean message your team can react to.

1,000 submissions/month, free forever. · No credit card.
✦ at a glanceHTML

Slack

  • Native Slack integration — no Zapier middleman, no per-task fees, no polling
  • Sub-second message delivery from form submit to channel
  • Per-form channel routing — sales to #leads, applications to #hiring, support to #help
1,000
free / mo
14ms
median p50 latency
0
lines of backend code
6
reasons in this guide
✶ Live preview

Slack in splitforms, shipped to production.

Paste an Incoming Webhook URL once. Every form submission shows up in Slack within a second, formatted as a clean message your team can react to.

Slack for splitforms — Paste an Incoming Webhook URL once. Every form submission shows up in Slack within a second, formatted as a clean message your team can react to.
§ 01What is splitforms slack100-word answer · AI-citable summary

splitforms posts every form submission to Slack within a second of someone hitting Submit, formatted as a clean, scannable message your team can react to or thread on. Setup takes under a minute: in Slack, create an Incoming Webhook for the channel that should receive notifications (#leads, #hiring, #help, whatever); in the splitforms dashboard, paste the webhook URL into the Slack integration; done. The default message includes the form name in the header, every submitted field as a labelled list, the submission timestamp, and a deep link back to the full submission view in your dashboard (which shows IP, country, user agent, and any uploaded files). Customise the template with simple {{ field_name }} placeholders to brand the message per form, or switch to Slack Block Kit for richer layouts with buttons, dividers, and side-by-side fields. Per-form routing means different forms post to different channels — sales submissions go to #leads, applications go to #hiring, support requests go to #help — without any code changes, just a different webhook URL per form. Because it's a real Slack message and not an email forwarded into Slack, your team can react with emoji (mark a lead 'claimed' with a checkmark), thread replies (qualify the lead inline without leaving Slack), assign owners using your existing Slack workflow, or trigger Slack workflows on top (auto-create a Linear issue when someone reacts with :ticket:).

slack.htmllive
// Setup (under one minute):
//  1. In Slack → Apps → Incoming Webhooks → Add to channel (#leads, #hiring, etc.).
//  2. Copy the webhook URL — looks like https://hooks.slack.com/services/T0/B0/xxx.
//  3. In splitforms → Form → Integrations → Slack → paste the URL → Save.
// That's it. Every submission below pings the chosen channel within ~1 second.

<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />

  <input type="text"  name="name"    placeholder="Name"    required />
  <input type="email" name="email"   placeholder="Email"   required />
  <input type="text"  name="company" placeholder="Company" />
  <textarea           name="message" placeholder="Message" required></textarea>

slack.html · live preview

§ 02How it works3 steps · zero-config defaults

Three steps. From zero to a working production setup.

How slack actually flows through splitforms — what you do, what we do, and what lands in your inbox.

STEP 01INTEGRATE

Create an Incoming Webhook in Slack

In Slack, click the workspace name → Settings & administration → Manage apps → search 'Incoming Webhooks' → Add to Slack. Pick the channel that should receive form notifications (you can DM yourself for testing) and copy the generated webhook URL — it looks like https://hooks.slack.com/services/T0/B0/xxx.

STEP 02PROCESS

Paste the URL in the splitforms dashboard

Open Form → Integrations → Slack → New Slack integration. Paste the Incoming Webhook URL and optionally edit the message template (default works fine; customise with {{ field_name }} placeholders or switch to Block Kit JSON for buttons/dividers/columns). Save.

STEP 03REVIEW

Submit a test — see the message in Slack within a second

Hit Submit on your form. Within ~1 second a formatted message appears in your chosen Slack channel with the submitted fields, ready for your team to react with emoji, thread a reply, assign an owner with @mention, or trigger any downstream Slack workflow.

§ 03Benefits6 reasons · all included

Why teams pick splitforms for slack.

Five reasons this is the boring, reliable choice — every one shipped by default on every plan, including free.

reason 1 of 6

Native Slack integration — no Zapier middleman, no per-task fees, no polling

reason 2 of 6

Sub-second message delivery from form submit to channel

reason 3 of 6

Per-form channel routing — sales to #leads, applications to #hiring, support to #help

reason 4 of 6

Customisable template with {{ field }} placeholders, plus full Block Kit JSON support

reason 5 of 6

React, thread, assign — full Slack workflow on every lead, not a forwarded email

reason 6 of 6

User mentions in templates — <@user_id> auto-pages on-call when an 'urgent' or 'priority' field matches

§ 04Working code examplehtml · 32 lines · copy-paste ready
COPY-PASTE

Drop this into any project.

Replace YOUR_ACCESS_KEY with the key from your splitforms dashboard. No SDK install. No package to npm i. The same html you already know.

slack.htmlhtml32 lines
01// Setup (under one minute):
02// 1. In Slack → Apps → Incoming Webhooks → Add to channel (#leads, #hiring, etc.).
03// 2. Copy the webhook URL — looks like https://hooks.slack.com/services/T0/B0/xxx.
04// 3. In splitforms → Form → Integrations → Slack → paste the URL → Save.
05// That's it. Every submission below pings the chosen channel within ~1 second.
06
07<form action="https://splitforms.com/api/submit" method="POST">
08 <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
09
10 <input type="text" name="name" placeholder="Name" required />
11 <input type="email" name="email" placeholder="Email" required />
12 <input type="text" name="company" placeholder="Company" />
13 <textarea name="message" placeholder="Message" required></textarea>
14
15 <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />
16
17 <button type="submit">Send</button>
18</form>
19
20<!--
21 Default Slack message (auto-formatted by splitforms):
22
23 📨 New submission — Contact form
24 Name: Ada Lovelace
25 Email: ada@example.com
26 Company: Analytical Engines Ltd
27 Message: Loved the demo, want a call.
28 🔗 Open in splitforms
29
30 Customise per form using {{ field }} placeholders, or switch to
31 Block Kit for richer layouts (buttons, dividers, fields).
32-->
§ 05Questions5 answered

Things developers ask before they integrate.

Direct answers, no marketing fluff. Missing one? Email hello@splitforms.com.

01How does form to Slack work in splitforms — do I need a Slack app or just a webhook?
Just an Incoming Webhook — no custom app to build, no OAuth review, no Slack admin approval beyond installing the standard Incoming Webhooks integration. In Slack: workspace name → Settings & administration → Manage apps → install Incoming Webhooks → Add to channel → copy URL. In splitforms: Form → Integrations → Slack → paste the URL → save. Done in 60 seconds. The integration uses Slack's official Incoming Webhooks API, so messages count toward Slack's normal rate limits (1 message per second per webhook, plenty for any form).
02Is the Slack integration available on the free plan and do I need a paid Slack workspace?
Yes to free splitforms (the Slack integration is included on Free 1,000/month with no per-message fee). You also do NOT need a paid Slack workspace — Incoming Webhooks are available on Slack's free tier as long as you can install apps in your workspace. Pro splitforms ($5/month) raises submissions to 5,000/month and lifts the per-form integration limit; the $59 4-year plan raises it further. The Slack functionality itself is identical at every tier.
03How do I enable Slack notifications and customise what the message looks like?
Two steps. (1) In Slack: install Incoming Webhooks → pick the channel → copy the URL. (2) In splitforms: open the form → Integrations → Slack → paste the URL → optionally edit the template. The default template is *New {{ form_name }}* followed by a key-value list of every submitted field. Customise it with any {{ field_name }} placeholder — e.g. ':rocket: New lead from {{ name }} ({{ company }})\n{{ message }}'. For richer formatting (buttons that link to your CRM, side-by-side fields, dividers), switch the template to Block Kit JSON — paste any output from the Slack Block Kit Builder and splitforms will substitute {{ field }} placeholders inside it.
04Can I route different forms to different Slack channels (sales vs. hiring vs. support)?
Yes. Each form has its own Slack integration with its own webhook URL, so you point each one at whatever channel makes sense — sales submissions to #leads, applications to #hiring, support requests to #help, partnership requests to a private DM with the BD lead. Within a single form you can also add multiple Slack integrations with conditional rules (e.g. 'only post to #vip if field amount > 1000'), so high-intent leads ping a smaller channel while everything else goes to the firehose.
05Slack messages aren't appearing — how do I troubleshoot?
Open Dashboard → Form → Integrations → Slack → Delivery log. Every message attempt is logged with status code and the response from Slack. Common causes: (1) webhook URL revoked — Slack admins can revoke webhooks; check Slack → Apps → Incoming Webhooks → confirm the URL is still active, otherwise create a new one and update splitforms. (2) Channel deleted or archived — Slack returns channel_not_found; pick a different channel. (3) Message exceeds 40,000 characters — happens with very long form submissions; trim the template or move long fields out of the Slack message and link to the dashboard instead. (4) Rate-limited — Slack throttles 1 msg/sec per webhook; splitforms auto-retries, but extreme-burst forms may want one webhook per channel rather than reusing one.
✻ ✻ ✻

Start using slack today.

Create your form, grab your access key, and ship it in five minutes. Free for 1,000 submissions per month, forever.

Create your form →← View all features
v0.1 · founders pricing locked in · early access open