DEV Community

Cover image for How to Send Form Submissions to Slack (Without Building a Backend)
Kumar Harsh
Kumar Harsh

Posted on

How to Send Form Submissions to Slack (Without Building a Backend)

You build a form and send submissions to email. It works, so you don’t think much about it.

Then the form starts getting used a bit more. Messages come in at different times. Some get picked up quickly, others sit for a while. If more than one person needs to see them, things get uneven pretty fast.

Email keeps everything tied to a single inbox, but many forms feed work that’s shared across a team. So you start patching things together and wiring up something more deliberate. Forwarding rules, filters, maybe a webhook into Slack. It’s all doable, but extra effort for something that should be straightforward.

If submissions could just show up directly in Slack where the team is already paying attention, most of that friction would go away.

What You’re Actually Trying to Do (Real Use Cases)

Once submissions start coming in regularly, the question shifts from “did it submit?” to “who needs to see this, and what happens next?”

That shows up in a few predictable ways.

Lead / Contact Forms

Someone fills out your contact form. That’s usually a signal worth acting on quickly.

If it lands in a single inbox, response time depends on one person. If it shows up in Slack, whoever is around can pick it up. There’s no need to forward it or check who’s responsible.

Support / Feedback Forms

Support requests rarely need just one person. They often need a quick look, a decision, or a short discussion before someone replies.

Email turns that into a chain. Slack keeps it in one place where the team can see it, respond, and move on without extra steps.

Internal Workflows

Forms often sit behind small internal processes. Reporting bugs, requesting access, submitting checklists.

When those land in email, they’re easy to miss or forget. In Slack, they show up alongside everything else the team is already working through, which makes them harder to ignore.

Multi-Form Setups

Once you have a few forms, sending everything to one place stops working.

Contact forms, support forms, internal requests, they don’t belong in the same stream. Routing each one to its own Slack channel keeps things separated without adding another system to manage.

What Developers Usually Try (and Why It Breaks)

There are a few obvious ways to get form submissions into Slack. Most of them work, at least at the start. The problems show up once you rely on them a bit more.

Email Notifications

This is where everything begins.

You send submissions to an inbox and maybe set up a rule to forward them to Slack. It’s quick to set up, but it’s still built on top of email. Formatting is messy, context gets lost, and you’re relying on a chain of forwarding rules that can break quietly.

It also doesn’t solve the core issue. You’re still treating submissions like messages instead of something structured.

Custom Backend + Slack Webhooks

You create an endpoint to receive form submissions, validate the data, and send it to Slack using a webhook. It gives you full control over formatting and routing, but you’re now responsible for everything in between.

That means handling retries, dealing with failures, keeping the endpoint secure, and maintaining it over time. For something as simple as “send this to Slack,” it’s a lot of extra work.

Automation Tools (Zapier, Make, etc.)

These sit somewhere in the middle.

You connect your form to Slack through a third-party tool and let it handle the flow. It works without code, but introduces a few trade-offs. There’s usually a delay between submission and delivery. Costs increase as usage grows. And when something breaks, debugging happens across multiple systems.

It solves the wiring problem, but adds another layer you have to depend on.

The Formspree Approach

Instead of stitching together pieces, this method treats form handling and delivery as part of the same flow.

Formspree sits between your form and everything that happens after submission. It receives the data, handles validation, and gives you a consistent way to work with submissions. From there, the Slack plugin takes over and delivers the message directly to your chosen channel.

There’s no webhook to build, no forwarding rules to maintain, and no external automation layer in between. You connect your form to Formspree, enable the Slack integration, and map where those submissions should go. That’s the entire pipeline.

A contact form can go to a sales channel. A support form can go somewhere else. Internal forms can have their own space. Each one stays tied to its context without extra custom routing logic.

Setting It Up (Quickly)

I’m not going to walk through every click here. The docs already cover that. The part that actually matters is deciding where things should land before you connect anything.

Think in terms of channels, not forms. Where should a new lead show up? Where should support requests go? Who needs to see internal submissions the moment they come in? Once that’s sorted, the setup itself is straightforward.

Point your form to Formspree, turn on the Slack integration, and link each form to the channel it belongs to. Run a quick test submission and check Slack. If it lands in the right channel and reads clearly, you’re set. From then on, every submission goes straight into your team’s day-to-day flow without anything else in between.

Making Notifications Actually Useful

Once submissions start showing up in Slack, the job isn’t done. If every message is just a dump of form fields, the channel gets noisy fast.

A few small adjustments make a big difference.

  1. Keep the message focused. Include the fields someone actually needs to understand what came in and decide what to do next. Name, email, and the main message usually cover most cases. Everything else can stay in Formspree.
  2. Add just enough structure so it’s easy to scan. If someone can glance at a message and immediately understand it, they’re more likely to act on it. Long, unformatted blocks tend to get skipped.
  3. Be intentional about where things go. Don’t send everything into a single channel. A mix of leads, support requests, and internal submissions quickly turns into noise. Separate channels keep each stream relevant.
  4. If needed, keep a fallback. Slack is great for visibility, but pairing it with email means nothing gets lost if someone misses a message in the channel.

Advanced Patterns (Still No Backend)

Once the basic flow is in place, you can push it a bit further without adding complexity.

Add light validation before anything gets sent. If a submission is incomplete or doesn’t meet certain criteria, it’s better to catch that early instead of pushing noise into Slack. Formspree workflows can handle that with just a few extra clicks.

Also, make sure to reuse the same setup across projects. Once you have a pattern that works, it’s easy to apply it to other forms without rethinking the whole pipeline.

If you have multiple entry points for the same form, add a simple tag or hidden field to track where submissions are coming from. That context shows up in Slack and makes it easier to understand what you’re looking at.

When You Might Still Want a Backend

This setup holds up well as long as the workflow is relatively straightforward. The moment you need to do more than notify someone, things start to change.

If submissions need to trigger multi-step logic, update internal systems, or depend on existing data, you’re moving beyond simple routing. At that point, Slack becomes just one part of a larger workflow, and you’ll likely want something that can coordinate all of it. Formspree can help you with sending your submissions to more than just Slack, but if it’s an internal data store, a custom backend might be worth investing effort into.

The same goes for heavy data handling. If you’re transforming inputs, enforcing complex validation, or working with relationships between different entities, pushing everything through notifications stops being enough.

And if submissions become part of a product, where users need to view, edit, or interact with that data, you’ll need a proper backend to manage access and state.

For everything up to that point, sending submissions directly into Slack covers most needs without extra infrastructure. Beyond that, it makes sense to take full control.

Wrapping Up

With a Formspree + Slack setup, instead of treating form submissions as something you check later, they show up where work is already happening. That removes the need to chase emails, forward messages, or wonder who saw what.

You don’t need to redesign your form or build anything new around it. Just change where the output goes.

If you’re trying this out, start with one form. Send it to Slack, see how it feels, and adjust the message or channel if needed. Once it fits your workflow, it’s easy to extend the same setup to other forms.

Top comments (0)