Skip to content

How to send form submissions to Slack

Post every form submission to a Slack channel, and route topics to different channels with a Branch. A hosted form and Slack incoming webhooks, no code.

Updated

Leads, support requests, event sign-ups, internal requests: when someone fills in a form, the team should see it in Slack, not in an inbox nobody checks. This guide sends every form submission to a Slack channel, and then sends different kinds of submissions to different channels. It uses a hosted form and Slack's incoming webhooks, with no code and no Slack app to build.

  1. Trigger

    When a form is submitted

    Fields: Name, Email, Topic (dropdown), Message.
  2. Step 1

    Branch

    Yes if Trigger → Topic is Sales
  3. Yes path

    Post to Slack

    Slack connection: #sales
  4. No path

    Post to Slack

    Slack connection: #support
The workflow you'll build. Start with the first two tiles; the Branch comes later.

Before you start

  • A Foliot account. The free plan is enough to build and test this.
  • A Slack workspace where you can add an incoming webhook (Slack may ask an admin to approve it, depending on the workspace's settings).
  • Somewhere for the form: its own page at https://usefoliot.com/f/… that you share, or a page of your website where you embed it.

Set it up

1. Get a Slack incoming webhook

An incoming webhook is a URL that posts messages into one Slack channel. In Slack, create an app at api.slack.com/apps (or open an existing one), turn on Incoming Webhooks, click Add New Webhook to Workspace, and pick the channel. Copy the URL it gives you. It looks like this:

https://hooks.slack.com/services/T000/B000/XXXXXXXX

In Foliot, open Connections, choose Add Slack webhook, give it a name like “#sales” and paste the URL. Foliot stores it encrypted and never shows it again in full.

2. Create the workflow and build the form

Create a new workflow and choose When a form is submitted as its trigger. A new form starts with a Name and an Email field. Add the rest with Add field: a long-text Message, and a dropdown called Topic with the options Sales, Support and Other (one per line). Give the form a title and set the button text.

3. Submit the form once

Open the Form link. While the workflow is off, the form shows a “Test mode” banner and saves answers as sample data instead of running anything. Fill it in once, so you can preview real answers while you build.

4. Add the Slack step

Click + after the trigger and choose Post to Slack. Pick your connection under Slack connection, then write the Message, picking answers from the data picker:

*New request from [Trigger → Name]* ([Trigger → Email])
Topic: [Trigger → Topic]
> [Trigger → Message]

In the editor each [Trigger → …] above is a chip you pick, not text you type. Slack formatting works: *bold*, _italic_ and <https://example.com|links>.

5. Test the step, then turn the workflow on

Test this step posts the message to Slack for real, using the sample answers. When it looks right, switch the workflow on and share the form's link. From then on, each submission posts to the channel within seconds, and the person sees “Thanks! Your response was sent.” To put the form on your own website, open the trigger, choose Put this form on your website and paste the code into your page.

Send each topic to its own channel

A Slack incoming webhook always posts to the channel it was created for. To reach two channels, add a second webhook in Slack (for #support, say) and a second Slack connection in Foliot. Then:

  1. Add a Branch after the trigger, with the condition Trigger → Topic is Sales.
  2. On the Yes path, add Post to Slack with the #sales connection.
  3. On the No path, add Post to Slack with the #support connection.

The run takes one path, and any steps you add after the Branch run either way. For more than two channels, put another Branch inside the No path.

Useful variations

Good to know

  • Foliot posts through incoming webhooks only. It can't read Slack messages, react to them or act as a bot.
  • Spam protection is a hidden honeypot field plus a limit of 10 submissions a minute from one visitor. There's no CAPTCHA.
  • Every form shows a small “Powered by Foliot · Report abuse” line at the bottom.
  • Each submission is one run, whichever path it takes: 500 runs a month on the free plan, 10,000 on Pro ($12 a month).
  • The form has no file uploads, and after submitting, people see Foliot's thank-you message.

Other ways to do it

Slack's own Workflow Builder can collect a form inside Slack. That's the simplest choice when everyone filling it in is already in your workspace. Foliot's form is for people outside it: customers, applicants, anyone with the link.

Form builders such as Typeform, Tally or Jotform have their own Slack integrations, and far more design and field options than Foliot's form. If you already use one, check its integrations (and which plan includes them) first. Foliot fits when you want the form, the routing and the other steps in one place.

Questions

Do I need to build a Slack app?

Only the small one Slack uses to create incoming webhooks: turn on Incoming Webhooks, add a webhook for a channel, and paste its URL into Foliot. No code.

Can one form post to different channels?

Yes. Each Slack webhook posts to one channel, so add one connection per channel and use a Branch to choose which Post to Slack step runs, for example by a dropdown answer.

Can people fill in the form without a Slack account?

Yes. The form is a public page with its own link. Anyone with the link can fill it in; only the result goes to Slack.

Is it free?

The free plan includes 500 runs a month and 5 active workflows. Each submission is one run. Pro is $12 a month for 10,000 runs.