Gather Grove Sync For Notion Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
Gather Grove Sync for Notion sends your WordPress data to a Notion database — form submissions (Elementor Pro, Contact Form 7, WPForms, Fluent Forms), WooCommerce orders, Gather Grove Booking activity, and anything else via an incoming webhook or the developer API. The plugin owns the Notion schema for you — columns auto-extend as data arrives, with smart type mapping (email Email, tel Phone, date Date) and a rich_text fallback for anything unrecognized.
Features
- Many sources, one Notion pipe — Elementor Pro, Contact Form 7, WPForms (incl. Lite), Fluent Forms, and WooCommerce orders sync out of the box; any other service can POST to a secure incoming webhook. Every source funnels through the same dedup / column-auto-extend / retry / activity-log pipeline.
- Auto-extending schema — submit a new form, the columns appear in Notion. No manual mapping.
- Smart type mapping — Elementor email/tel/url/number/date/select/checkbox fields map to the matching Notion property types so your data is sortable and filterable.
- Multi-database routing — send different forms to different Notion databases via per-form overrides, with a global default for everything else.
- Deduplication — merge submissions by Email (or any column you choose) so the same person’s submissions across forms collect into one row, with a chronological log appended to the page body. Original page title is preserved on update so “first contact” stays visible.
- Backfill historical submissions — paginate through Elementor’s Submissions storage in 25-row chunks. Idempotent — re-runs skip already-synced submissions.
- Activity log — every sync attempt is recorded to a custom DB table, visible in the admin with success/failure badges and direct “View in Notion” links. Capped at 1000 entries with auto-prune.
- Encrypted token storage — Notion integration token is stored encrypted at rest using AES-256-GCM, with the key derived from your WordPress AUTH_KEY.
- Connection retry — one in-process retry on transient API failures (429, 5xx), then a background retry ladder for anything still failing.
- One-click database creation — search for a parent page, set a title, click Create. New database starts pre-configured with the plugin’s system columns.
- Connection status banner — green/red status at the top of the settings page with per-database breakdown when multiple databases are configured.
How it works
- Create a Notion integration at https://www.notion.so/profile/integrations and copy the token.
- Install and activate the plugin, then go to Settings Gather Grove Sync for Notion.
- Paste the token (or use the one-click “Connect to Notion”). Either paste an existing database ID, or use the built-in Create a Notion Database tool to make a fresh one.
- The integration must be invited to your Notion database (in Notion: open the database ··· Connections add your integration).
- Submit a form, place a WooCommerce order, or send a webhook — the plugin auto-creates whatever columns it needs and writes the record. See and control every source on the Sources tab.
What’s not included
- The plugin does not provide a manual field-mapping UI — it owns the schema. Field labels become column names automatically. (If you need manual mapping, a different integration may suit you better.)
- The Elementor source requires Elementor Pro (free Elementor has no form widget). Every other source — Contact Form 7, WPForms, Fluent Forms, WooCommerce, Gather Grove Booking, the webhook — works on its own.
External Services
This plugin connects to two external services. Neither is contacted until you
choose to connect the plugin to Notion, and nothing is transmitted on a fresh
install that has not been configured.
1. Notion API (api.notion.com)
This is the service the plugin exists to talk to. It is used to read your
Notion database schema and to create and update pages in the database you
select.
What is sent, and when:
- When you connect and pick a database: a request to
api.notion.com/v1/search
andapi.notion.com/v1/databases/{id}to list the databases and pages your
integration can see, and to read the chosen database’s column schema. Sends
your Notion integration token. - When a form is submitted, an order is placed, or a webhook arrives: a request
toapi.notion.com/v1/pagescontaining the submitted field values that are
being synced — this can include personal data such as name, email address,
phone number, and any other field your form collects. Sends your Notion
integration token. - When you create a database from inside the plugin, run a backfill, or send a
test row: the same page/database endpoints, with the same kinds of data. - When a sync fails and is retried: the same page data is sent again.
Data is only sent for the sources you have enabled and the forms you have
selected. The plugin does not send site analytics, usage telemetry, or
administrator details.
Service provided by Notion Labs, Inc.
Terms of service: https://www.notion.com/terms
Privacy policy: https://www.notion.so/notion/Notion-Privacy-Policy-3468d120cf614d4c9014c09f6adc9091
2. Gather Grove OAuth broker (gathergrove.io)
Optional. This is used only by the one-click “Connect to Notion” button, which
exists so you do not have to create your own Notion integration by hand. It
holds the Notion OAuth application credentials, which cannot be shipped inside
a public plugin, and exchanges them for a token belonging to your workspace.
What is sent, and when:
- When you click “Connect to Notion”: your browser is redirected to
gathergrove.io/wp-json/gg-notion-oauth/v1/start with the WordPress admin
URL to return to and a random one-time CSRF value. No site content, form
data, or credentials are included. - Immediately after you approve the connection in Notion: one server-to-server
request from your site to
gathergrove.io/wp-json/gg-notion-oauth/v1/redeem containing only the
single-use handoff code from the previous step. The broker responds with the
Notion access token for your workspace, which is then stored encrypted on
your own site.
The broker is contacted only during these two steps of the connection flow. It
is never contacted during syncing, and no submitted form data ever passes
through it.
You can avoid this service entirely: create your own Notion internal
integration and paste its token into the “Connect manually instead” field on
the Setup tab. The broker is then never contacted.
Service provided by Gather Grove (Golden Turtle Sound).
Privacy policy: https://gathergrove.io/privacy/
Bundled third-party library
This plugin bundles Action Scheduler (https://actionscheduler.org/), a
background-processing library, which it uses to retry failed Notion writes.
Action Scheduler runs entirely on your own server and makes no external
requests. It creates four database tables (actionscheduler_actions,
actionscheduler_claims, actionscheduler_groups, actionscheduler_logs).
These tables are shared with any other plugin that bundles Action Scheduler, so
uninstalling this plugin deliberately leaves them in place.
Screenshots
Setup — one-click Connect to Notion, the default database picker, and a manual-token option for self-hosters.
Sources — every installed form and store plugin syncs automatically; flip a source off or route it to a different database.
Form selection — sync every form or only the ones you tick, with a per-form database override and one-click database creation.
Per-form field mapping — how each field lands in Notion, with a rescan when a form changes.
Tools — test the connection, refresh the schema, and backfill historical submissions with live counts.
Activity — the recent sync log with created, updated and failed badges and direct “View in Notion” links.
