Send Submissions to Slack through a webhook
Add a webhook endpoint on a Form's Delivery tab, choose the Slack message format and paste an incoming webhook address you own. It is a payload format, not a native Slack integration.

FormFlow can post a short message to Slack each time a Form receives a Submission. It does this through a webhook endpoint, the same mechanism that forwards Submissions to any URL you own. This is not a native Slack integration: there is no Slack app to install, no sign-in with Slack and no channel picker. You give FormFlow an incoming webhook address, and FormFlow sends a Slack-shaped message to it. This tutorial walks through setting that up and says plainly what the message does and does not contain.
What you need first
A Form in your Team that you can edit.
An incoming webhook address that you own: the incoming webhook URL from your Slack workspace, or the address of any endpoint of yours that accepts Slack's message format. Create it in Slack by following Slack's own documentation; this post does not cover that side.
An https address. FormFlow refuses plain http for webhook endpoints.
Add the endpoint
Open the Form and go to its Delivery tab.
Find Webhook endpoints and choose Add endpoint.
In the field labelled Send as, choose Slack message. The default is FormFlow JSON (signed), so this change is the whole difference between a Slack endpoint and a plain webhook.
The URL field is now labelled Incoming webhook URL. Paste your address into it. The field is masked as you type, and you can reveal it to check what you pasted.
Leave Delivering switched on. It is on by default; switch it off to stop delivery to this endpoint.
Save the Form.
The helper text under Send as says the address is stored encrypted and never sent back out by email. The collapsed row for the endpoint names the format rather than printing the address, so the URL does not sit in plain text across the page.
Send a test
Each endpoint row has a Send test action. It posts a single line, "FormFlow test — submissions from this form will arrive here.", to the address in the row. If it succeeds you see Test delivered; if it fails you see Test delivery failed, with the receiver's own error text, cut to 300 characters.
Two conditions apply. Save the Form first: an endpoint that has never been saved cannot be tested, and the action tells you so. And each person can send 20 test deliveries an hour, counting failed ones. A test is a button, not a gate; the endpoint delivers whether or not you pressed it.
What arrives in the channel
The message is a doorbell, not the record. It contains:
A bold first line: "New submission — " followed by the Form's name.
Up to five answers, one per line, each as a bold label and a value. A value is cut at 200 characters.
A line saying how many more fields there are, when the Form has more than five.
A "View submission" link to the Submission in your panel.
Whitespace inside a value is collapsed, so a value can only ever be one line. The characters &, < and > are escaped so Slack does not read a Submitter's text as markup, and an asterisk in a value is replaced with a look-alike character so a Submitter cannot forge a bold label. The message is plain text only; it does not use Slack's Block Kit.
Limits to know about
One-way. FormFlow sends; nothing in Slack flows back to FormFlow.
Five answers at most, 200 characters each. For the full Submission, use the link or the Submissions inbox.
Slack ignores the signature. Every webhook format is signed, but Slack discards the signature header, so there is no signing secret to copy for a Slack endpoint.
Submissions that FormFlow classes as spam are not forwarded. Only accepted, non-spam Submissions reach a webhook endpoint.
Retries, backoff and deactivation are shared with every webhook format. A receiver that keeps failing can have its endpoint deactivated, so check the row if messages stop arriving.
The address is a credential. Anyone holding a Slack incoming webhook URL can post to that channel. Treat it like a password, and replace it in Slack if it leaks.
What this does not decide
It does not choose your channel, and it does not manage Slack for you: the address you paste fixes where messages land, and that is configured in Slack. It does not turn Slack into your inbox; reading, searching and exporting Submissions stay in FormFlow. And it does not make the Slack message a copy of the data. If you need every field delivered as structured data, add a second endpoint with the default FormFlow JSON format instead.