Google Forms to Slack setup guide — 3 steps
Create a webhook, install the Apps Script, send a test response. Under two minutes from blank form to a Slack channel that fills up with submissions.
- 3 steps, no Marketplace add-on to install
- Free for 30 responses / month
- Add routing rules whenever you want
The three steps
- Create a Slack incoming webhook bound to the channel you want submissions to land in. Copy the URL.
- Sign up for RouteForms (Free), add your Google Form, paste the webhook URL, install the generated Apps Script into the form.
- Submit a test response. The Slack channel should show the message within ~5 seconds. The RouteForms delivery log confirms the post.
Detailed walkthrough below.
Create the Slack incoming webhook
- 1Open Slack → Settings & administration → Manage appsTop-left workspace name → Settings & administration → Manage apps. This opens the Slack app management page in a browser tab.
- 2Search for 'Incoming Webhooks'In the search bar, type
Incoming Webhooks. Click the result. Click Add to Slack. - 3Pick the destination channelThe 'Post to channel' dropdown lists every channel you can post to. Pick the one your form submissions should land in. For private channels, you must be a member, see /google-forms-to-private-slack-channel for the permission notes.
- 4Copy the webhook URLClick Allow. Slack shows a URL starting with
https://hooks.slack.com/services/. Copy it; you'll paste it into RouteForms in step 2. Treat it like an API key, anyone with the URL can post to that channel.
Set up RouteForms and install the script
- 1Sign up for RouteForms (Free)Free plan covers 30 responses/month, 1 form, no card required. Enough to validate the full setup.
- 2Add the Google FormIn the dashboard, click New form. Paste your Google Form's edit URL. RouteForms generates a form-specific Apps Script with a unique inbound webhook secret.
- 3Paste the Slack webhook URLOn the form's settings tab, paste the URL from step 1 into the Slack webhook field. RouteForms stores it encrypted and displays it masked thereafter.
- 4Install the Apps Script into the formOpen your Google Form's three-dot menu → Apps Script. Paste the script we generated. Save (
⌘S). RuninstallRouteFormsonce. Authorise when Google asks (detailed walkthrough).
Test by submitting a real response
- 1Open the form, fill it in, submitAny test answer is fine. The form-submit trigger fires immediately on submission.
- 2Watch the Slack channelWithin ~5 seconds, a Slack message lands in the channel from step 1. The default template has an inbox-tray icon, the form name, the submission time, and every field rendered as 'Question: answer'.
- 3Verify the RouteForms delivery logIn the RouteForms dashboard, open your form → Delivery log. A new row should show
DELIVEREDwith Slack's HTTP 200 OK. This is the record you check whenever delivery seems off.
The two-minute debugging checklist
- Did the Apps Script trigger fire? Open Apps Script → Executions tab. A completed row means the trigger fired; a failed row carries the error. Paste the error into /tools/apps-script-error-decoder for a plain-English fix.
- Is the webhook URL valid? /tools/slack-webhook-tester POSTs a test payload server-side and reports back Slack's status. If Slack rejects, the decoded error tells you what to fix.
- Is the trigger configuration right? /tools/apps-script-trigger-checker validates the function / source / event-type combination, catches the "On open vs On form submit" gotcha.
- Is the whole pipeline healthy? /tools/google-forms-to-slack-setup-checker rolls all three checks into a single pre-flight dashboard.
Once the pipeline is live
- Add routing rules to send different responses to different channels. The rule generator ships 6 workflow presets.
- Customise the message format: header text, mentions, footer CTA. How to customise the Slack message walks through the options.
- Set failure alertson the form's Settings tab (paid plans). An email arrives when delivery starts failing.
- Pick a workflow template: lead alert, support ticket, booking, application. Nine ready-to-copy templates cover the common shapes.
Frequently asked questions
Does this work with all Google Forms?▾
Yes, any Google Form you have edit access to. There's no add-on to install via the Workspace Marketplace; the integration runs through Google Apps Script, which is part of every Google account by default. Forms inside Workspace organisations work the same way as forms on a personal Google account, with one caveat: if your Workspace admin has disabled Apps Script (rare), you'll need them to enable it for your OU before the trigger can run.
Do I need a paid Slack workspace?▾
No. Slack incoming webhooks are available on every plan including Free. The post lands in whatever channel the webhook is bound to. There's no premium feature dependency on the Slack side.
How long does the actual setup take?▾
Under two minutes once you've signed up to RouteForms. The longest single step is the Google authorisation dialog (~30 seconds the first time, since you're reviewing scopes). Subsequent setup attempts on the same Google account skip the authorisation step entirely.
Will my form data flow through your servers?▾
Yes. RouteForms is a server-side service. Form submissions arrive at our endpoint, the routing rules evaluate, and the matched destination gets the Slack post. We store the per-form delivery log (with submission payload preview) for the retention window of your plan. We don't sell, share, or analyse the content; the data is yours.
Can I add routing rules later?▾
Yes. The 3-step setup gets you a one-form-to-one-channel pipeline. Add routing rules whenever you want, they don't require any change to the Apps Script. Rules live in RouteForms's dashboard and are evaluated on every submission going forward.
What happens if I delete the Google Form?▾
Deletion stops new submissions, so nothing reaches Slack. The RouteForms-side configuration (rules, webhook URL, log history) stays intact until you delete it explicitly. If you recreate the form with the same name, it's a new form with a new Apps Script project, you'd need to re-install our script and re-paste the webhook URL.
Is there a free trial?▾
There's a Free plan with no time limit — 30 responses/month, 1 form, no routing rules. Enough to validate the full setup end-to-end. No card required; upgrade only when you need more responses, more forms, or routing rules.
What's the difference vs. just using an Apps Script myself?▾
A standalone Apps Script gets you a one-channel delivery layer, works fine for that. RouteForms adds rule-based routing (different responses to different channels), a delivery log with retry, idempotency on the Google Forms response ID (so retries don't double-post), and failed-streak email alerts. If you only need the one-channel post, the script alone is honest; if any of those operational features matter, the managed flow is faster than building them yourself.
Try the 3-step setup
Free for 30 responses a month. No card. Under two minutes from sign-up to first Slack post.
Keep reading
The broader overview, features, pricing, alternatives.
Deep-dive on the webhook creation step, including the manual / Apps-Script-only path.
Pre-flight, live test, and ongoing monitoring of the pipeline.
All the real options for delivering Google Form responses to Slack, ranked by fit.