Setup guide

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
TL;DR

The three steps

  1. Create a Slack incoming webhook bound to the channel you want submissions to land in. Copy the URL.
  2. Sign up for RouteForms (Free), add your Google Form, paste the webhook URL, install the generated Apps Script into the form.
  3. Submit a test response. The Slack channel should show the message within ~5 seconds. The RouteForms delivery log confirms the post.

Detailed walkthrough below.

Step 1

Create the Slack incoming webhook

  1. 1
    Open Slack → Settings & administration → Manage apps
    Top-left workspace name → Settings & administration → Manage apps. This opens the Slack app management page in a browser tab.
  2. 2
    Search for 'Incoming Webhooks'
    In the search bar, type Incoming Webhooks. Click the result. Click Add to Slack.
  3. 3
    Pick the destination channel
    The '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.
  4. 4
    Copy the webhook URL
    Click 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.
Step 2

Set up RouteForms and install the script

  1. 1
    Sign up for RouteForms (Free)
    Free plan covers 30 responses/month, 1 form, no card required. Enough to validate the full setup.
  2. 2
    Add the Google Form
    In 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.
  3. 3
    Paste the Slack webhook URL
    On 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.
  4. 4
    Install the Apps Script into the form
    Open your Google Form's three-dot menu → Apps Script. Paste the script we generated. Save (⌘S). Run installRouteForms once. Authorise when Google asks (detailed walkthrough).
Step 3

Test by submitting a real response

  1. 1
    Open the form, fill it in, submit
    Any test answer is fine. The form-submit trigger fires immediately on submission.
  2. 2
    Watch the Slack channel
    Within ~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'.
  3. 3
    Verify the RouteForms delivery log
    In 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.
If something doesn't work

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.
What's next

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.
FAQ

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.