{"id":336175,"date":"2026-07-12T00:19:17","date_gmt":"2026-07-12T00:19:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/resayil-ai\/"},"modified":"2026-07-12T00:19:01","modified_gmt":"2026-07-12T00:19:01","slug":"resayil-ai","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/resayil-ai\/","author":23524294,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.3","stable_tag":"1.3.3","tested":"7.0.1","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Resayil AI","header_author":"Resayil","header_description":"Manage your store with the Resayil AI agent: native AI chat and store panels right inside your WordPress admin.","assets_banners_color":"23273d","last_updated":"2026-07-12 00:19:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ecomai.resayil.io\/","header_author_uri":"https:\/\/resayil.io\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.3":{"tag":"1.3.3","author":"resayilai","date":"2026-07-12 00:19:01"}},"upgrade_notice":{"1.2.0":"<p>Adds the AI Chat panel, Store panel, and all supporting REST endpoints. Security hardening (SSRF guard on backend URL, explicit channel keying). Contract fixes for polling cursor and history pagination.<\/p>","1.1.1":"<p>Compliance and privacy hardening for the WordPress.org directory. No change to the connection flow.<\/p>","1.1.0":"<p>Implements the one-click connection flow and adds optional (off-by-default) advanced capabilities.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3604379,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3604379,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3604379,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3604379,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3604379,"resolution":"1","location":"assets","locale":"","width":1280,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3604379,"resolution":"2","location":"assets","locale":"","width":1280,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3604379,"resolution":"3","location":"assets","locale":"","width":1280,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3604379,"resolution":"4","location":"assets","locale":"","width":1280,"height":900}},"screenshots":{"1":"The Resayil AI dashboard after connecting: your site, linked account, and WooCommerce status at a glance.","2":"AI chat inside your WordPress admin: ask about your products and orders in plain language and get live answers.","3":"The Store panel: your WooCommerce products and recent orders, right next to the chat.","4":"Store features: choose exactly what your AI is allowed to do; risky actions always need your approval."}},"plugin_section":[],"plugin_tags":[2353,1320,569,271142,231027],"plugin_category":[],"plugin_contributors":[271143],"plugin_business_model":[],"class_list":["post-336175","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-assistant","plugin_tags-automation","plugin_tags-ecomai","plugin_tags-store-management","plugin_contributors-resayilai","plugin_committers-resayilai"],"banners":{"banner":"https:\/\/ps.w.org\/resayil-ai\/assets\/banner-772x250.png?rev=3604379","banner_2x":"https:\/\/ps.w.org\/resayil-ai\/assets\/banner-1544x500.png?rev=3604379","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/resayil-ai\/assets\/icon-128x128.png?rev=3604379","icon_2x":"https:\/\/ps.w.org\/resayil-ai\/assets\/icon-256x256.png?rev=3604379","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/resayil-ai\/assets\/screenshot-1.png?rev=3604379","caption":"The Resayil AI dashboard after connecting: your site, linked account, and WooCommerce status at a glance."},{"src":"https:\/\/ps.w.org\/resayil-ai\/assets\/screenshot-2.png?rev=3604379","caption":"AI chat inside your WordPress admin: ask about your products and orders in plain language and get live answers."},{"src":"https:\/\/ps.w.org\/resayil-ai\/assets\/screenshot-3.png?rev=3604379","caption":"The Store panel: your WooCommerce products and recent orders, right next to the chat."},{"src":"https:\/\/ps.w.org\/resayil-ai\/assets\/screenshot-4.png?rev=3604379","caption":"Store features: choose exactly what your AI is allowed to do; risky actions always need your approval."}],"raw_content":"<!--section=description-->\n<p><strong>Resayil AI<\/strong> links your WordPress site to the <a href=\"https:\/\/ecomai.resayil.io\/\">Resayil AI<\/a> AI operations platform. Once connected, the Resayil AI agent can:<\/p>\n\n<ul>\n<li>Read and draft WordPress posts on your behalf<\/li>\n<li>Assist with WooCommerce product and order management (requires WooCommerce)<\/li>\n<li>Chat with the Resayil AI directly from your WordPress admin (Resayil AI &gt; AI Chat)<\/li>\n<li>View a live summary of your products and recent orders (Resayil AI &gt; Store)<\/li>\n<\/ul>\n\n<p>This plugin's own chat surface is the in-admin AI Chat panel above. Telegram and WhatsApp are additional chat channels available on paid Resayil AI plans and are provisioned from your Resayil AI dashboard (not by this plugin) \u2014 see your dashboard's Channels page once connected.<\/p>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Install and activate this plugin.<\/li>\n<li>Obtain a Connect Key from your Resayil AI dashboard (Account &gt; Connect new store).<\/li>\n<li>Paste the key into Settings &gt; Resayil AI &gt; Settings and click \"Connect this site\".<\/li>\n<li>The plugin generates a WordPress Application Password (and, if WooCommerce is active, a read-only WooCommerce REST API key) and securely registers your site with the Resayil AI backend. You never copy or paste credentials by hand. The agent starts in read-only mode; a read\/write WooCommerce key is issued only if and when you enable writes for the connection.<\/li>\n<\/ol>\n\n<h4>External Service Disclosure<\/h4>\n\n<p>This plugin connects to the <strong>Resayil AI backend service<\/strong> (<code>https:\/\/ecomai.resayil.io<\/code>, operated by Resayil) so the Resayil AI agent can operate your store on your behalf. By using this plugin you agree to the <a href=\"https:\/\/ecomai.resayil.io\/terms\">Resayil AI Terms of Service<\/a> and <a href=\"https:\/\/ecomai.resayil.io\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<p><strong>What is sent, and when:<\/strong><\/p>\n\n<ul>\n<li><strong>On connect (you click \"Connect this site\"):<\/strong> your site URL, the connecting user's login name, a newly generated WordPress Application Password, your one-time Connect Key, and \u2014 if WooCommerce is active \u2014 a newly generated read-only WooCommerce REST API key\/secret. A per-site secret used to verify signed requests from Resayil AI is also sent. These travel once, over HTTPS.<\/li>\n<li><strong>During normal use:<\/strong> the Resayil AI agent uses the stored Application Password \/ WooCommerce key to read and (only with your approval, and only once writes are enabled for your connection) update your content, products, and orders. These requests are initiated by you through the Resayil AI chat agent.<\/li>\n<li><strong>AI Chat panel:<\/strong> chat messages you type into the Resayil AI Chat panel (Resayil AI &gt; AI Chat in the WordPress admin) are sent to <code>ecomai.resayil.io<\/code> over HTTPS for AI processing; the AI reply is returned and displayed in the same panel. No chat content is stored by this plugin locally. The request is signed with your per-site secret so it is scoped to your account only.<\/li>\n<li><strong>On disconnect:<\/strong> the plugin revokes the Application Password and WooCommerce key it created and notifies Resayil AI (the notice is signed with your per-site secret so it cannot be spoofed for another site).<\/li>\n<\/ul>\n\n<p>No data is sent to the external service without the site administrator explicitly initiating a connection. The Application Password is never stored in plaintext by this plugin \u2014 only the handles needed to revoke them are kept.<\/p>\n\n<p><strong>WooCommerce key permission and storage:<\/strong> the WooCommerce REST key is minted <strong>read-only by default<\/strong> (least privilege), matching the agent's default read-only posture; a read\/write key is provisioned only when you deliberately enable writes for the connection. Note that WooCommerce core itself stores the REST key's consumer secret in plaintext in its own database table (<code>{prefix}woocommerce_api_keys<\/code>) \u2014 this is standard WooCommerce behavior, not introduced by this plugin. Keeping the key read-only by default limits the impact of any exposure of that table to read access.<\/p>\n\n<h4>Capability bridge (advanced, optional, off by default)<\/h4>\n\n<p>The plugin can optionally expose a small, named set of LOCAL operations to Resayil AI over a signed REST endpoint (<code>POST \/wp-json\/ecomai\/v1\/capability<\/code>). This is <strong>disabled by default<\/strong> and only runs when you enable it in Settings AND Resayil AI enables it for your account. It never executes remote or arbitrary code \u2014 only this fixed allowlist:<\/p>\n\n<ul>\n<li><code>wp.get_seo_meta<\/code> \u2014 read a post's SEO title\/description (Yoast).<\/li>\n<li><code>wp.set_seo_meta<\/code> \u2014 update a post's SEO title\/description (Yoast).<\/li>\n<li><code>wp.upload_media<\/code> \u2014 sideload an image into the media library from an HTTPS URL (the URL is validated against private\/reserved\/link-local addresses to prevent server-side request forgery).<\/li>\n<li><code>wp.schedule_post<\/code> \u2014 schedule a <strong>draft or pending<\/strong> post for future publication. It cannot schedule already-published content (which would unpublish it).<\/li>\n<\/ul>\n\n<p>Every call is authenticated with an HMAC signature using your per-site secret, is replay-protected, and each capability has its own on\/off switch (all default off). An optional storefront assistant widget is likewise off by default.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>Available at https:\/\/github.com\/soudshoja\/shopify-ai (private repository \u2014 source included in the zip).<\/p>\n\n<p>Build: no compile step is required (pure PHP + vanilla JS). To produce a clean\ndistributable archive (runtime files only, excluding dev tooling), run from the\nplugin directory:<\/p>\n\n<pre><code>bash bin\/build-zip.sh        # or: composer build-zip  \/  npm run zip\n<\/code><\/pre>\n\n<p>This writes <code>resayil-ai.zip<\/code> with <code>resayil-ai\/<\/code> as the archive root.\nA plain <code>zip -r resayil-ai.zip resayil-ai<\/code> from the parent directory\nalso works for manual builds.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>resayil-ai<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>Resayil AI &gt; Settings<\/strong> and enter your Connect Key.<\/li>\n<li>Click <strong>Connect this site<\/strong> on the Resayil AI dashboard page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20a%20connect%20key%3F\"><h3>Where do I get a Connect Key?<\/h3><\/dt>\n<dd><p>Sign in at <a href=\"https:\/\/ecomai.resayil.io\/\">ecomai.resayil.io<\/a>, go to <strong>Account &gt; Connect new store<\/strong>, and copy the generated key.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20without%20woocommerce%3F\"><h3>Does this plugin work without WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. The base plugin connects WordPress post management. WooCommerce features become available automatically if WooCommerce is installed and active.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20resayil%20ai%3F\"><h3>What data is sent to Resayil AI?<\/h3><\/dt>\n<dd><p>During the connection step: your site URL, the connecting user's login name, a generated WordPress Application Password, your one-time Connect Key, a per-site verification secret, and (if WooCommerce is active) a generated read-only WooCommerce REST API key\/secret. Subsequent requests are initiated by the AI agent and limited to the operations you authorise. See the External Service Disclosure above for full detail.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20run%20code%20sent%20from%20resayil%20ai%3F\"><h3>Does the plugin run code sent from Resayil AI?<\/h3><\/dt>\n<dd><p>No. The optional capability bridge runs only a fixed, named allowlist of local WordPress operations (SEO meta, media upload, post scheduling). It never evaluates or executes remote\/arbitrary code, and it is disabled by default.<\/p><\/dd>\n<dt id=\"can%20i%20disconnect%20my%20site%3F\"><h3>Can I disconnect my site?<\/h3><\/dt>\n<dd><p>Yes. Open Resayil AI in your WordPress admin and click \"Disconnect this site\". The plugin revokes the WordPress Application Password and WooCommerce key it created. Deleting the plugin also revokes those credentials and removes all stored settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Disconnecting now sends a signed notice to the Resayil AI backend so your account's connection record is removed automatically, not just the local WordPress credentials (the confirmation message now reflects whether the backend was reachable).<\/li>\n<li>Corrected the plugin description and feature list: this plugin's own chat surface is the in-admin AI Chat panel. Telegram and WhatsApp are described as paid-plan channels provisioned from the Resayil AI dashboard, not implied to be provisioned by this plugin.<\/li>\n<li>Backend coexistence fix: sites running both this plugin and the Resayil AI WooCommerce extension no longer interfere with each other's signed requests.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Renamed the storefront widget's localized JS object and the browser-facing REST namespace (chat, store, features) from a generic <code>ecomai<\/code> prefix to the plugin's own <code>resayil<\/code> prefix, to avoid naming collisions with other plugins.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Removed the manual <code>load_plugin_textdomain()<\/code> call \u2014 WordPress.org auto-loads translations for hosted plugins since WordPress 4.6, so the bundled call is no longer needed.<\/li>\n<li>Corrected the readme Contributors line to match the WordPress.org account username.<\/li>\n<li>Added an Author Email header to the plugin file for ownership clarity.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added Store Features page (Resayil AI &gt; Store Features): choose, per connected store, which capabilities the agent may use with read, view, and write tiers, mirroring the web dashboard. Selections are synced with the Resayil AI backend over the signed per-site channel and enforced server-side.<\/li>\n<li>Added \"Create account &amp; connect\": set up a Resayil AI account and connect this site in one step, with passwordless magic-link sign-in. The existing connect-key path is kept for merchants who already have an account.<\/li>\n<li>Hardening and WordPress.org compliance refinements.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added AI Chat panel (Resayil AI &gt; AI Chat): chat directly with the Resayil AI from the WordPress admin. Messages are sent to ecomai.resayil.io over HTTPS and signed with the per-site secret. History, real-time polling, and inline approval cards are included.<\/li>\n<li>Added Store panel (Resayil AI &gt; Store): responsive product and order card grid reading local WooCommerce \/ WordPress data, no network call required.<\/li>\n<li>Added \/wp-json\/ecomai\/v1\/{chat,history,poll,approvals,approvals\/{id}\/approve,approvals\/{id}\/reject} REST endpoints (manage_options + WP REST nonce on every route).<\/li>\n<li>Added \/wp-json\/ecomai\/v1\/store\/{products,orders,status} REST endpoints (local reads only, manage_options + nonce).<\/li>\n<li>Privacy: updated suggested policy text and disclosure to cover the AI Chat data flow.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>WordPress.org compliance: removed the <code>Update URI<\/code> header, refreshed \"Tested up to\", added a GPL <code>LICENSE<\/code> file and the translation template (.pot).<\/li>\n<li>Privacy: registered suggested privacy-policy text plus a personal-data exporter and eraser for the stored connecting username and timestamp.<\/li>\n<li>WooCommerce: declared High-Performance Order Storage (HPOS) and cart\/checkout Blocks compatibility, and added the WC version headers.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Connect flow implemented (GAP-B3, Option B): the plugin self-generates a WordPress Application Password and, when WooCommerce is active, a read-only WooCommerce REST API key (least privilege; upgraded to read\/write only when writes are enabled), then registers the site with the Resayil AI backend.<\/li>\n<li>Added Disconnect (revokes the generated credentials + clears local state).<\/li>\n<li>Added the optional, off-by-default capability bridge (HMAC-signed, named-allowlist REST endpoint) and the optional, off-by-default storefront assistant widget.<\/li>\n<li>Added text-domain loading and expanded external-service disclosure.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 plugin scaffold, Settings page, connection flow stub.<\/li>\n<\/ul>","raw_excerpt":"Chat with your AI store agent right inside wp-admin to draft WordPress posts and manage WooCommerce orders and products, all in one place.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/336175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=336175"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/resayilai"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=336175"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=336175"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=336175"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=336175"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=336175"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=336175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}