Reference

Google Forms → Slack integration

Operational reference for the integration. Marketing-style overviews live at /google-forms-to-slack and /integrations/google-forms-to-slack; this page documents the contract.

Components

The integration is a four-component pipeline; each component is documented in its own reference page below.

Google Form (your form)
  ↓ on-submit event
Apps Script trigger (installed once)
  ↓ HTTPS POST
RouteForms backend (rule eval + retry)
  ↓ HTTPS POST
Slack incoming webhook (your workspace)
  • Google Form.The form is the system of record. RouteForms doesn't mirror or store form responses long-term. Google Forms keeps them.
  • Apps Script trigger. A small handler installed by you, generated by us. See install reference.
  • RouteForms backend. Receives the POST, evaluates routing rules, POSTs to Slack. See routing rules reference and delivery logs reference.
  • Slack incoming webhook. Standard Slack workspace webhook bound to a single channel. See Slack webhooks reference.

Data flow

For each form submission, the following happens in order. All steps run server-side; nothing relies on the submitter's browser staying open.

1. Submitter clicks Submit on the Google Form.
2. Google fires the form-submit event.
3. Apps Script trigger runs; collects every field + the response ID.
4. Apps Script POSTs the payload to a per-form RouteForms URL.
5. RouteForms validates the payload signature, deduplicates on response ID.
6. RouteForms evaluates routing rules top-to-bottom (or fan-out).
7. For each matched rule, RouteForms POSTs to the rule's Slack webhook.
8. RouteForms writes a delivery log row per Slack post attempt.
9. RouteForms returns HTTP 200 to the Apps Script (retries handled by us).

Latency

Typical submission-to-Slack-channel latency is 1–3 seconds. The dominant factor is the round-trip Slack itself takes; RouteForms's internal processing is sub-100 ms in the common case.

  • Google → Apps Script: ~100–300 ms (Google's side).
  • Apps Script → RouteForms: ~100–500 ms (depends on region).
  • RouteForms rule evaluation: <50 ms.
  • RouteForms → Slack webhook POST: ~200–800 ms.
  • Slack rendering in channel: near-instant.

Outliers. Slack rate-limit (429), Apps Script cold start on a new form, regional network blips, push the upper bound to 5–10 seconds. The delivery log surfaces the exact per-attempt latency.

Idempotency

Every Google Forms submission carries a unique response ID (responseId from the Apps Script FormResponse). RouteForms keys idempotency on this ID. A retry, whether triggered by RouteForms, by the Apps Script, or by Google's own retry machinery, short-circuits if the response ID is already in a DELIVERED state.

Scope

The integration covers Google Forms responses → Slack channel posts. Anything outside that frame is out of scope.

  • No Slack DM destinations, channel webhooks only.
  • No non-Slack destinations (no Notion, Discord, email, Teams).
  • No two-way sync. Slack-side activity doesn't echo back to the form.
  • No form creation or editing. RouteForms reads form responses; it doesn't modify the form itself.
  • No AI summarisation, the message template is what gets posted, literally.

Data retention

RouteForms stores the per-delivery payload preview for the duration of your plan's retention window. See limits reference for the exact window per plan. Google Forms keeps the responses themselves indefinitely (subject to your Google account's storage and your form's settings); RouteForms doesn't mirror them.