{"id":401887,"date":"2026-11-11T18:35:51","date_gmt":"2026-11-11T18:35:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/nextial-form-events\/"},"modified":"2026-11-13T07:13:32","modified_gmt":"2026-11-13T07:13:32","slug":"nextial-form-events","status":"publish","type":"plugin","link":"https:\/\/ca.wordpress.org\/plugins\/nextial-form-events\/","author":23587241,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.2","stable_tag":"0.1.2","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Nextial Form Events","header_author":"Nextial","header_description":"MCP Events for WordPress forms. ChatGPT and other MCP clients get a signed notification for every new Contact Form 7, WPForms, Fluent Forms or Gravity Forms submission and react automatically.","last_updated":"2026-11-13 07:13:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/nextial.it\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":148,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"nextial","date":"2026-11-11 18:38:39","revision":3796877},"0.1.1":{"tag":"0.1.1","author":"nextial","date":"2026-11-12 07:08:12","revision":3797661},"0.1.2":{"tag":"0.1.2","author":"nextial","date":"2026-11-13 07:13:32","revision":3799814}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3796873,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3796873,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3796873,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3796873,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.1","0.1.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3796873,"resolution":"1","location":"assets","locale":"","width":1280,"height":815},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3796873,"resolution":"2","location":"assets","locale":"","width":580,"height":460},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3796873,"resolution":"3","location":"assets","locale":"","width":1120,"height":1846}},"screenshots":{"1":"Settings \u2192 Nextial Form Events: choose the forms sent to ChatGPT, fields that are never sent, and the connection URL.","2":"The consent screen shown when ChatGPT connects to the site.","3":"Built-in self-test and test receiver: a real Contact Form 7 quote request delivered as a signed form.submitted event, with field labels."}},"plugin_section":[],"plugin_tags":[216196,1152,14097,242115,130711],"plugin_category":[],"plugin_contributors":[288508],"plugin_business_model":[],"class_list":["post-401887","plugin","type-plugin","status-publish","hentry","plugin_tags-chatgpt","plugin_tags-contact-form-7","plugin_tags-lead-management","plugin_tags-mcp","plugin_tags-wpforms","plugin_contributors-nextial","plugin_committers-nextial"],"banners":{"banner":"https:\/\/ps.w.org\/nextial-form-events\/assets\/banner-772x250.png?rev=3796873","banner_2x":"https:\/\/ps.w.org\/nextial-form-events\/assets\/banner-1544x500.png?rev=3796873","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/nextial-form-events\/assets\/icon-128x128.png?rev=3796873","icon_2x":"https:\/\/ps.w.org\/nextial-form-events\/assets\/icon-256x256.png?rev=3796873","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/nextial-form-events\/assets\/screenshot-1.png?rev=3796873","caption":"Settings \u2192 Nextial Form Events: choose the forms sent to ChatGPT, fields that are never sent, and the connection URL."},{"src":"https:\/\/ps.w.org\/nextial-form-events\/assets\/screenshot-2.png?rev=3796873","caption":"The consent screen shown when ChatGPT connects to the site."},{"src":"https:\/\/ps.w.org\/nextial-form-events\/assets\/screenshot-3.png?rev=3796873","caption":"Built-in self-test and test receiver: a real Contact Form 7 quote request delivered as a signed form.submitted event, with field labels."}],"raw_content":"<!--section=description-->\n<p><strong>Before you install, you need:<\/strong> one of the supported form plugins, a ChatGPT plan with <strong>Work<\/strong> chats and custom MCP servers (ChatGPT <strong>Plus<\/strong> or higher), and a site on <strong>HTTPS<\/strong>. Without Work chats ChatGPT can read your form entries but cannot react to new ones.<\/p>\n\n<p>Nextial Form Events connects your WordPress forms to ChatGPT with <strong>MCP Events<\/strong>, the way ChatGPT reacts when something happens in a connected app. Each time a visitor submits a form, your site sends ChatGPT a signed notification and ChatGPT does what you asked it to, in plain language:<\/p>\n\n<ul>\n<li>\"When someone fills in my contact form, tell me if it is a real lead and draft a reply in my tone.\"<\/li>\n<li>\"When a quote request arrives, estimate the budget and list what is missing.\"<\/li>\n<li>\"Ignore messages that look like sales pitches, and tell me about the rest.\"<\/li>\n<\/ul>\n\n<p>ChatGPT subscribes to the event, your site notifies it the moment a form is submitted, and ChatGPT does the rest. No Zapier, no polling, no code.<\/p>\n\n<p>https:\/\/youtu.be\/Tr4-CdZGUyI<\/p>\n\n<h4>Supported form plugins<\/h4>\n\n<ul>\n<li>Contact Form 7<\/li>\n<li>WPForms (Lite and Pro)<\/li>\n<li>Fluent Forms<\/li>\n<li>Gravity Forms<\/li>\n<li>Formidable Forms<\/li>\n<li>Ninja Forms<\/li>\n<\/ul>\n\n<p>You choose which forms notify ChatGPT and which fields are never sent.<\/p>\n\n<h4>Event<\/h4>\n\n<ul>\n<li><strong>form.submitted<\/strong> \u2013 a visitor submitted a form. ChatGPT can listen to all forms, one form (<code>form_id<\/code>) or one plugin (<code>plugin<\/code>). Free, no limits.<\/li>\n<\/ul>\n\n<h4>Read-only tools<\/h4>\n\n<p>ChatGPT can look things up when it needs more context: <code>list_forms<\/code>, <code>list_recent_submissions<\/code> (for example \"has this person written before?\") and <code>get_submission<\/code>. Only submissions sent to ChatGPT, or kept while an assistant you authorised is connected, are available (the last 50, up to 30 days). With <code>since<\/code>, an assistant without live events (for example a Claude scheduled task) can ask only for what arrived since its last check. Nextial Form Events never changes your site or your form entries.<\/p>\n\n<h4>Privacy and security<\/h4>\n\n<ul>\n<li><strong>You choose what is sent.<\/strong> Untick forms you don't want ChatGPT to see, and list fields that must never be sent.<\/li>\n<li>Password, file-upload, credit-card, payment, CAPTCHA and the form plugins' technical fields are never sent.<\/li>\n<li>Entries your form plugin marks as spam are never sent.<\/li>\n<li><strong>Sign in with OAuth<\/strong>: ChatGPT opens your site, you log in and press <em>Allow<\/em>. Disconnect at any time from Settings \u2192 Nextial Form Events; tokens and subscriptions are removed at once.<\/li>\n<li>The last 50 submissions (at most 30 days) are kept only while ChatGPT is subscribed or an assistant you authorised is connected, so it can look them up.<\/li>\n<li>Only administrators can connect the site.<\/li>\n<li>Every notification is signed (Standard Webhooks, HMAC-SHA256). Callbacks are verified with a challenge before any data is sent.<\/li>\n<li>Outgoing requests go only to public HTTPS addresses (no private networks, no redirects).<\/li>\n<li>ChatGPT is told that field values are written by visitors and must be treated as data, not as instructions.<\/li>\n<\/ul>\n\n<h4>Built-in tests<\/h4>\n\n<p>The settings page has a <strong>self-test<\/strong> (subscribe \u2192 verify \u2192 signed delivery \u2192 unsubscribe on your own site), a <strong>\"listen for real form submissions\"<\/strong> mode, an <strong>OAuth check<\/strong> and a delivery log.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>One of the supported form plugins.<\/li>\n<li>A ChatGPT plan that includes <strong>Work<\/strong> chats and custom MCP servers (developer mode). On plans without Work chats ChatGPT can use the read-only tools but cannot subscribe to events.<\/li>\n<li>For OAuth sign-in: pretty permalinks (any setting other than \"Plain\"). Without them you can still connect with a secret URL.<\/li>\n<li>Your site must be reachable over HTTPS.<\/li>\n<\/ul>\n\n<p>From the makers of <a href=\"https:\/\/wordpress.org\/plugins\/nextial-order-events-for-woocommerce\/\">Nextial Order Events for WooCommerce<\/a>. Both plugins can run on the same site.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Nextial Form Events does not contact any service on its own. It only talks to the AI assistant (MCP client) that you connect and approve:<\/p>\n\n<ul>\n<li><strong>Event notifications.<\/strong> When ChatGPT \u2013 or another MCP client you connected \u2013 subscribes to an event, it gives Nextial Form Events a webhook URL (for ChatGPT, on <code>connectors.api.openai.com<\/code>). Each time a form is submitted, Nextial Form Events sends that URL a signed JSON message with: the form plugin, form ID and title, the entry ID (if the form plugin stores entries), the submitted field names, labels and values (except the ones excluded above), the page URL, the date and a link to the entry or form in your admin. Before the first message the URL is verified with a signed challenge.<\/li>\n<li><strong>Read-only tools.<\/strong> When the assistant calls a tool, the response contains your list of forms or submissions that were already sent as events.<\/li>\n<li><strong>Client identification.<\/strong> When an assistant connects with OAuth and identifies itself with a Client ID Metadata Document (ChatGPT uses <code>https:\/\/chatgpt.com\/oauth\/client.json<\/code>), Nextial Form Events downloads that public JSON file to check the app's name and allowed redirect addresses. Nothing about your site is sent in that request.<\/li>\n<\/ul>\n\n<p>No data is sent until an administrator connects an assistant and it subscribes to events or calls a tool. Form submissions contain personal data written by your visitors: mention in your privacy policy that form entries may be processed by the AI assistant you use. When you connect ChatGPT, OpenAI's terms and privacy policy apply to the data it receives: <a href=\"https:\/\/openai.com\/policies\/terms-of-use\/\">Terms of use<\/a>, <a href=\"https:\/\/openai.com\/policies\/privacy-policy\/\">Privacy policy<\/a>.<\/p>\n\n<h4>Trademarks<\/h4>\n\n<p>ChatGPT is a trademark of OpenAI. Contact Form 7, WPForms, Fluent Forms, Gravity Forms, Formidable Forms and Ninja Forms belong to their respective owners. Nextial Form Events is an independent plugin by nextial and is not affiliated with, endorsed or sponsored by any of them.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin, then open <strong>Settings \u2192 Nextial Form Events<\/strong>.<\/li>\n<li>Check which forms should notify ChatGPT, then copy the connection URL.<\/li>\n<li>In ChatGPT open <strong>Plugins \u2192 Add \u2192 Add custom MCP server<\/strong>, paste the URL and choose <strong>OAuth<\/strong> as authentication.<\/li>\n<li>ChatGPT opens your site: sign in and press <strong>Allow<\/strong>.<\/li>\n<li>Switch to a <strong>Work<\/strong> chat, type <code>@<\/code> and pick your site, then ask for example: \"Tell me here whenever someone fills in a form on my site, and draft a reply.\"<\/li>\n<li>Submit one of your forms: ChatGPT writes in the chat by itself, usually within a few minutes (your site notifies ChatGPT within seconds; ChatGPT then runs the task).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"chatgpt%20says%20the%20plugin%20has%20no%20events\"><h3>ChatGPT says the plugin has no events<\/h3><\/dt>\n<dd><p>ChatGPT keeps a copy of the plugin's tools and events. After installing or updating Nextial Form Events, open ChatGPT Settings \u2192 Plugins \u2192 your site \u2192 <strong>Refresh tools<\/strong>, then start a new Work chat. If needed, mention the event explicitly: \"@YourSite use the plugin's MCP events: tell me here whenever a form is submitted.\"<\/p><\/dd>\n<dt id=\"will%20spam%20reach%20chatgpt%3F\"><h3>Will spam reach ChatGPT?<\/h3><\/dt>\n<dd><p>Entries that your form plugin (or its Akismet \/ CAPTCHA integration) rejects as spam are never sent. Turn on your form plugin's spam protection for best results.<\/p><\/dd>\n<dt id=\"which%20form%20fields%20are%20sent%3F\"><h3>Which form fields are sent?<\/h3><\/dt>\n<dd><p>All visible fields of the forms you selected, except password, file-upload, payment, CAPTCHA and technical fields, and any field you list under \"Never send these fields\". Long values are cut at 2,000 characters and at most 50 fields are sent.<\/p><\/dd>\n<dt id=\"can%20chatgpt%20reply%20to%20the%20visitor%20by%20itself%3F\"><h3>Can ChatGPT reply to the visitor by itself?<\/h3><\/dt>\n<dd><p>Nextial Form Events only notifies ChatGPT and lets it read submissions; it cannot send e-mails or change anything on your site. ChatGPT can draft the reply for you, and send it only if you connected an e-mail app to ChatGPT yourself and asked it to.<\/p><\/dd>\n<dt id=\"notifications%20arrive%20late\"><h3>Notifications arrive late<\/h3><\/dt>\n<dd><p>Deliveries are sent in the background with WP-Cron (or Action Scheduler, if another plugin provides it), usually within a minute. On sites with little traffic, consider a real server cron for wp-cron.php.<\/p><\/dd>\n<dt id=\"the%20oauth%20check%20fails\"><h3>The OAuth check fails<\/h3><\/dt>\n<dd><p>Your server must let WordPress answer <code>\/.well-known\/oauth-protected-resource\/...<\/code> and <code>\/.well-known\/oauth-authorization-server\/...<\/code>. Some hosts reserve <code>\/.well-known\/<\/code>. Meanwhile you can use the secret URL option.<\/p><\/dd>\n<dt id=\"other%20assistants%3F\"><h3>Other assistants?<\/h3><\/dt>\n<dd><p>Nextial Form Events implements the open Model Context Protocol (2026-07-28, with compatibility for 2025 revisions) and MCP Events webhook delivery, so any compatible client can connect.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Works with assistants that have no live events (Claude, Claude Code, VS Code): while one you authorised is connected, recent submissions are kept so it can list them.<\/li>\n<li>\"What's new since last time\": list_recent_submissions accepts since and returns checked_at and has_more, for example for a Claude scheduled task that checks every hour.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Sign-in: native MCP clients that listen on a random local port (such as Claude Code) can now connect. Loopback redirect URIs are matched without the port (RFC 8252); everything else still needs an exact match.<\/li>\n<li>The consent screen recognises Claude as well as ChatGPT.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release: form.submitted event for Contact Form 7, WPForms, Fluent Forms, Gravity Forms, Formidable Forms and Ninja Forms, per-form switch, excluded fields, read-only tools (list_forms, list_recent_submissions, get_submission), OAuth 2.1 or secret URL, signed webhooks with retries, self-test and delivery log.<\/li>\n<\/ul>","raw_excerpt":"ChatGPT handles every new Contact Form 7, WPForms, Fluent, Gravity, Formidable or Ninja Forms entry: sorts the lead and drafts the reply.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/401887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=401887"}],"author":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nextial"}],"wp:attachment":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=401887"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=401887"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=401887"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=401887"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=401887"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=401887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}