Pro - this recipe depends on webhooks, which are Pro-only.
{"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:
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:- 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.
- Point Formpaste’s webhook at that URL. In the dashboard,
open your form → Settings → Webhooks, paste the automation platform’s URL
into
webhook_url, and save. Copy thewhsec_…signing secret it shows you. - (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-Signaturethe 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. - 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. - Turn it on and submit a test. Submit your form once; you should see the message land in Slack within a few seconds.
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 awebhook_url:
Webhooks
Full payload shape, signing, retries, and the delivery log.
Discord notifications
The same recipe, for Discord.