تفصیل
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.
سکرین شاٹاں






انسٹال کرݨ
- Upload the
gather-grove-notion-syncfolder to/wp-content/plugins/, or install via Plugins Add New Upload Plugin and choose the zip. - Activate through the WordPress Plugins menu.
- Go to Settings Gather Grove Sync for Notion and connect your Notion workspace (one-click “Connect to Notion”, or paste an integration token).
- Either paste an existing database ID into the Default Notion Database ID field, or use the Create a Notion Database section to make a fresh one.
- In Notion, open the database as a full page click
•••Connections add your integration. (If you used the in-plugin creation tool, this is automatic.) - Click Test Connection & Refresh Schema to verify everything’s wired up.
- Submit a form on your site to test.
ہرہک دے سوال
-
Does this work with the free version of Elementor?
-
No. The plugin hooks into
elementor_pro/forms/new_record, which is only available in Elementor Pro. -
Which sources are supported?
-
Out of the box: Elementor Pro, Contact Form 7, WPForms (including the free Lite version), Fluent Forms, WooCommerce orders, and Gather Grove Booking (bookings, attendance, and purchases — members and guests). Any other service can POST to a secure incoming webhook, and developers can push records with
gather_grove_notion_record(). Each source auto-activates when its plugin is present — see and manage them all on the Sources tab. -
What happens to columns I don’t configure?
-
The plugin auto-extends the database schema. Field labels become column names; types are inferred from the source field type (email Email, number Number, etc.) with a rich_text fallback for anything unrecognized.
-
Will deduplication accidentally merge two different “John Smiths” by name?
-
Only if you configure name fields as shared. By default, only
Email,Phone, andPhone Numberare treated as merge keys — they’re the only fields reliably unique per person. You can edit the shared field list in settings, but adding name fields is a known footgun: a duplicate row is just visible noise, but a wrong merge silently destroys data. -
Can I sync historical Elementor submissions?
-
Yes, if Elementor’s Submissions storage is enabled (visible at Elementor Submissions in WP admin). Use the Backfill Historical Submissions section in plugin settings. Backfill is idempotent — re-runs skip already-synced submissions.
-
Is my Notion integration token safe?
-
The token is stored encrypted at rest using AES-256-GCM. The encryption key is derived from your WordPress
AUTH_KEY(defined inwp-config.php) via SHA-256. This defends against database-only leaks (e.g. SQL injection in another plugin, leaked DB backups). It does not defend against full server compromise — if an attacker has both the database andwp-config.php, the token can be decrypted. -
What if my Notion database fills up?
-
Notion databases cap at ~100 properties. Most sites stay well under this. If you have many forms with mostly-unique fields, the connection banner shows the property count so you can monitor it. The fix is either to share more field labels across forms (so they collapse into single columns) or to use multi-database routing to split forms across multiple Notion databases.
-
What if Notion is down?
-
The plugin retries once immediately, after a one-second pause — deliberately not the longer wait Notion’s
Retry-Afterheader asks for, because this runs while your visitor waits for the form to submit. If that retry also fails, the write is handed to a background queue with exponential backoff (1 min 5 min 30 min 2 hr 12 hr), where waiting properly costs nobody anything. After 5 attempts the entry is dead-lettered; dead-lettered writes are visible on the Tools tab with a “Clear” control.A failure that retrying cannot fix — no token, a revoked token, a deleted database — is reported rather than queued. Retrying those just fills the queue with the same error.
-
Can I send the same form to multiple Notion databases?
-
Not in this release. Each form has at most one destination (its override, or the default). If you need fan-out, the simplest workaround is to query the destination Notion database via Notion’s own automations to forward rows.
ریویو
There are no reviews for this plugin.
Contributors & Developers
“Gather Grove Sync for Notion” is open source software. The following people have contributed to this plugin.
حصہ پاوݨ آلے“Gather Grove Sync for Notion” دا آپݨی زبان وچ ترجمہ کرو۔
ڈیویلپمنٹ وچ دلچسپی ہے؟
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
تبدیلی لاگ
0.52.0
- Changed: the plugin’s internal settings, background jobs and admin actions now use its full
gather_grove_notion_sync_prefix. Your connection, settings and mappings carry over automatically on update. - Changed: the wp-config constant for the incoming-webhook secret is now
GATHER_GROVE_NOTION_SYNC_WEBHOOK_SECRET. The previous name keeps working. - Removed: the old submission action name deprecated in 0.28.0. Use
gather_grove/notion_sync/submission. - Changed: updated the bundled Gather Grove core to 0.63.2.
0.51.4
- Fixed: on a site with no other Gather Grove plugin, the settings page was missing from the admin menu. It is back under Settings.
- Fixed: opening a form on the Forms tab could stop with a fatal error instead of showing its field mapping.
- Hardening: column-rename names are sanitized before they are saved, and the Notion connect flow’s return step carries a WordPress nonce.
0.51.3
- Maintenance: admin actions and settings reads are written in the shapes WordPress.org’s plugin review expects, and diagnostic messages go to the site’s error log in a consistent format. Nothing changes in how the plugin works.
0.51.2
- Maintenance: database queries and admin-screen markup are written in the shapes WordPress.org’s plugin review expects, ahead of the plugin’s listing there. Nothing changes in how the plugin works.
0.51.1
- Changed: updated the bundled Gather Grove core to 0.55.0.
0.51.0
- Added: if you use Gather Grove Pulse, each member’s Notion row now stays up to date with their tags, pipeline stage and last activity — one row per member, updated in place rather than added again each time.
0.50.0
- Added: other plugins can now keep a single Notion row up to date — matched on a column you choose, updating in place rather than adding a new row each time. Groundwork for syncing member and lifecycle data to Notion.
0.49.0
- Added: Notion pages can now be mirrored into WordPress, so other Gather Grove plugins can display them — the groundwork for a Notion-backed wiki tab on Community Spaces. Content refreshes automatically, and a page that is deleted or unshared in Notion is flagged rather than disappearing silently.
0.48.0
- Housekeeping: the settings code is reorganised so each tab owns its own logic. No change to what any screen does or looks like.
0.47.0
- Fixed: submissions arriving from a webhook, the public API, or another plugin could be stored in Notion dated 31 December 1969 instead of when they were actually submitted. The timestamp is now read properly whether it arrives as a number or as a date.
- Fixed: rows already saved with that wrong date now correct themselves the next time the same person submits, and the correction is noted in the activity log. If you renamed a row in Notion, your name for it is kept.
0.46.0
- Changed: the settings screens now use the shared Gather Grove design — the same cards, badges and banners as the other Gather Grove plugins. Colours follow your site’s palette instead of being fixed green, so the plugin no longer clashes with your own brand.
- Changed: tables, notices and “nothing here yet” states have been rebuilt. Wide tables scroll on their own instead of pushing the page sideways, and every empty screen now explains what will appear there and how.
- Changed: notices are announced to screen readers, which WordPress’s default notices are not.
- Fixed: some help text on the Tools tab showed raw HTML tags.
- Fixed: the Export CSV button sat on its own line instead of beside Clear log.
Earlier releases: the complete version history is in CHANGELOG.md within the plugin.
