Log every Gravity Forms submission to Google Sheets and Slack
Mirror every new Gravity Forms entry into a master Google Sheet and ping a Slack channel within five minutes, no add-ons required.
Integrations
Gravity Forms
Google Sheets
Slack Bot
Type
Categories
- Operations
- Marketing
Build a deterministic code workflow that mirrors every new Gravity Forms entry into a Google Sheet and posts a Slack notification, so we have a queryable backup of every form submission plus a real-time team feed without paying for the official Gravity Forms add-ons.
Trigger: cron, every 5 minutes.
Inputs that should be configurable on the workflow (not hard-coded):
- spreadsheetId: the Google Sheet to write to. - sheetName: the tab inside that spreadsheet (default "Submissions"). - slackChannelId: the Slack channel ID to post notifications in. - formIds (optional): list of Gravity Forms form IDs to include. If empty, include all forms.
Step 1. Call Gravity Forms List Entries to fetch entries created after the last successful run. Use a high-water-mark stored in workflow state (the max date_created seen so far). On the very first run, use "now" as the starting point so we do not back-fill historical entries. Apply the formIds filter if it is set. Page through results until you have every new entry, ordered oldest-first so the Sheet stays in chronological order.
Step 2. For each new entry, call Google Sheets Append Values on {spreadsheetId} / {sheetName} to append one row with these columns, in order:
- entry_id - form_id - form_title - date_created (ISO 8601, UTC) - submitter_email (best effort: pull from the entry's email field, or leave blank) - source_url (the page the form was submitted from, if Gravity Forms recorded it) - payload_json (a JSON string of the remaining field values, keyed by Gravity Forms field ID, so nothing is lost)
Use USER_ENTERED value input option so dates and numbers render naturally. If the configured tab is empty (no header row), write the header row on first use.
Step 3. For each new entry, call Slack (slackbot, the bot integration) Send a Message to {slackChannelId} with a compact one-line summary, for example: "New {form_title} submission from {submitter_email} — <{wp_admin_entry_url}|View entry>". The wp_admin_entry_url should be {siteUrl}/wp-admin/admin.php?page=gf_entries&view=entry&id={entry_id}&lid={entry_id}, built from the Gravity Forms credential's siteUrl. If submitter_email is missing, fall back to "New {form_title} submission".
Order matters: append the Google Sheet row first, then send the Slack message. That way if Slack fails, we still have the durable record in Sheets and the workflow can be retried without producing duplicate sheet rows (advance the high-water-mark only after both steps for an entry succeed; if Slack fails for one entry, log it and keep going for the rest, but do not re-process already-appended entries on the next run).
Use these integrations: Gravity Forms for List Entries, Google Sheets for Append Values, and the Slack Bot integration (slackbot) for Send a Message. The notification is a workflow message, not a personal one, so it should come from the bot rather than the user OAuth Slack integration.
What it does
- Checks your WordPress site for new Gravity Forms entries every five minutes, so nothing slips through the cracks.
- Appends each new submission as a row in a Google Sheet you control, building a searchable, backed-up log of every form fill.
- Posts a short summary to a Slack channel with the form name, submitter email, and a link to open the entry in WordPress admin.
- Runs automatically on a schedule, no manual exports, no paid add-ons, and no leaving entries trapped inside WordPress.
What you’ll need
- A WordPress site running Gravity Forms, with REST API access enabled and an admin key you can paste in.
- A Google account with permission to edit the spreadsheet you want to use as your master log.
- A Slack workspace and the channel where you want the team to see new submission alerts.
How to customize it
- Change how often it runs. Five minutes is the default, but you can move it to every minute for near-real-time alerts or every hour for a calmer feed.
- Pick which spreadsheet and tab the entries land in, and rearrange the columns you care about (entry ID, form title, submitted at, submitter email, anything else).
- Swap the Slack channel, format the alert as a one-liner or a richer block, or filter so only specific forms trigger a notification.
Use cases
- Data Sync
- Notifications & Alerts
- Lead Enrichment