Skip to main content
Pro - this recipe depends on webhooks, which are Pro-only.
There’s no native Slack integration in Formpaste - no “Connect to Slack” button in the dashboard. What’s real is a generic, signed webhook that fires on every delivered submission, and Slack’s own incoming-webhook format is different enough ({"text": …} vs. Formpaste’s versioned JSON envelope) that the two can’t talk directly. This guide is the honest version: how to bridge them yourself with a small relay, using an automation platform so you don’t have to host anything.

Why you can’t point Formpaste straight at Slack

A Slack incoming webhook expects a body like {"text": "hello"}. Formpaste’s webhook sends its own envelope instead:
Slack will reject that shape outright. Something in the middle needs to reshape it — that’s the relay.

The recipe: automation platform as the relay

The fastest path is a no-code automation tool (Zapier, Make, Pipedream, or n8n) sitting between the two:
  1. Create a Zap/scenario/workflow that starts from a Catch Webhook / Webhook trigger step. The platform gives you a unique URL for this - that’s what Formpaste will call.
  2. Point Formpaste’s webhook at that URL. In the dashboard, open your form → SettingsWebhooks, paste the automation platform’s URL into webhook_url, and save. Copy the whsec_… signing secret it shows you.
  3. (Recommended) Verify the signature inside the automation. Most of these platforms support a code step (JS in Pipedream/n8n, a “Code by Zapier” step in Zapier) - use it to check X-Formpaste-Signature the same way the webhook verification snippet does, before acting on the payload. This confirms the request actually came from Form Paste and not something guessing your relay URL.
  4. Add a Slack step. Use the platform’s built-in Slack action (post message to channel), and map the fields you want from the incoming payload — data.name, data.email, data.message, etc. - into the Slack message text.
  5. Turn it on and submit a test. Submit your form once; you should see the message land in Slack within a few seconds.
A minimal message template:
(Exact templating syntax depends on the platform - Zapier/Make use their own field picker, Pipedream/n8n let you reference steps.trigger.event.body.data.name etc. directly in JS.)

What fires, and what doesn’t

Only delivered, non-spam submissions trigger the webhook - the same ones that generate an email notification. A submission routed to quarantine never fires the webhook, so it never reaches Slack either; check the dashboard’s Spam tab for those.

Free vs. Pro

Webhooks - and therefore this whole recipe - require Pro. A Free-plan form can’t save a webhook_url:

Webhooks

Full payload shape, signing, retries, and the delivery log.

Discord notifications

The same recipe, for Discord.