{"id":368013,"date":"2026-09-29T05:39:48","date_gmt":"2026-09-29T05:39:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/agent-zappy\/"},"modified":"2026-09-29T05:48:58","modified_gmt":"2026-09-29T05:48:58","slug":"agent-zappy","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/agent-zappy\/","author":23248938,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.9","stable_tag":"1.2.9","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Agent Zappy","header_author":"Communication Technologies","header_description":"Adds the Agent Zappy floating WhatsApp contact widget to WooCommerce storefronts.","assets_banners_color":"","last_updated":"2026-09-29 05:48:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/agentzappy.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":64,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.9":{"tag":"1.2.9","author":"agentzappy","date":"2026-09-29 05:48:58","revision":3718315}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3718378,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3718378,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.9"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[5707,42241,59098,3160,286],"plugin_category":[41,45],"plugin_contributors":[283333],"plugin_business_model":[],"class_list":["post-368013","plugin","type-plugin","status-publish","hentry","plugin_tags-chat","plugin_tags-product-sync","plugin_tags-stock-management","plugin_tags-whatsapp","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-agentzappy","plugin_committers-agentzappy"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/agent-zappy\/assets\/icon-128x128.jpg?rev=3718378","icon_2x":"https:\/\/ps.w.org\/agent-zappy\/assets\/icon-256x256.jpg?rev=3718378","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Your customers have questions before they buy. Agent Zappy helps your business answer them and take orders inside WhatsApp.<\/p>\n\n<p>This plugin connects your WooCommerce store to Agent Zappy, keeping product prices and stock status updated so your AI sales agent has current information when helping customers.<\/p>\n\n<h4>Turn product interest into a WhatsApp conversation<\/h4>\n\n<p>Add a floating WhatsApp button to your store so shoppers can easily contact your business. On product pages, the pre-filled message automatically includes the product name, helping customers start the conversation without explaining which item they mean.<\/p>\n\n<p>Choose your preferred button position, business WhatsApp number, and default message from the WordPress dashboard.<\/p>\n\n<h4>Keep prices and stock status updated<\/h4>\n\n<p>When a WooCommerce product or variation changes, the plugin automatically sends its ID, price, and stock status to Agent Zappy. Stock changes caused by purchases can also trigger updates.<\/p>\n\n<p>Choose whether to sync stock changes, price changes, or both. View recent delivery results directly in WordPress.<\/p>\n\n<h4>What can the Agent Zappy service do?<\/h4>\n\n<p>Agent Zappy is an AI sales assistant that helps businesses:<\/p>\n\n<ul>\n<li>Answer customer questions around the clock.<\/li>\n<li>Help shoppers discover products and choose what to buy.<\/li>\n<li>Share product images and relevant information.<\/li>\n<li>Collect order details and take orders inside WhatsApp.<\/li>\n<li>Follow up with interested customers.<\/li>\n<li>Communicate in English, Sinhala, and Tamil, including mixed-language conversations.<\/li>\n<li>Manage conversations and orders through the Agent Zappy dashboard.<\/li>\n<\/ul>\n\n<p>These capabilities are provided by the separate Agent Zappy service and depend on your service plan and configuration. This WordPress plugin provides the WhatsApp contact button and WooCommerce product-sync connection.<\/p>\n\n<h4>Simple setup<\/h4>\n\n<ol>\n<li>Install and activate WooCommerce and this plugin.<\/li>\n<li>Add your business WhatsApp number.<\/li>\n<li>Enter your Agent Zappy API key to enable product syncing.<\/li>\n<li>Choose your automatic update settings.<\/li>\n<\/ol>\n\n<p>An Agent Zappy account and API key are required for product syncing. The WhatsApp contact button works without an Agent Zappy API key. The Agent Zappy service may require a paid subscription.<\/p>\n\n<p>Learn more at https:\/\/agentzappy.com\/.<\/p>\n\n<h4>Privacy and external services<\/h4>\n\n<p>Product syncing sends the WooCommerce product or variation ID, stock status, and price to the configured Agent Zappy endpoint. The saved API key authenticates these requests. Customer and order details are not included in product-sync requests.<\/p>\n\n<p>The WhatsApp button opens WhatsApp only when a visitor clicks it. See the External Services section below for full details, including service terms and privacy policies.<\/p>\n\n<h3>External Services<\/h3>\n\n<h4>Agent Zappy product-sync service<\/h4>\n\n<p>This plugin connects to Agent Zappy, provided by Communication Technologies, to keep product information updated for your AI sales assistant.<\/p>\n\n<p>After you save an API key and enable syncing, product and variation changes\u2014including purchase-driven stock changes\u2014send the product ID, price, and stock status to api.agentzappy.com. Your API key authenticates requests. Temporary failures may be retried. No customer or order details are included.<\/p>\n\n<p>The receiving service also receives standard connection information, including your server\u2019s IP address and WordPress user-agent. If you configure a custom endpoint, requests go there instead. Disable both automatic sync options to stop new automatic updates.<\/p>\n\n<p>Terms of Service: https:\/\/agentzappy.com\/terms\nPrivacy Policy: https:\/\/agentzappy.com\/privacy<\/p>\n\n<p>Service information: https:\/\/agentzappy.com\/<\/p>\n\n<p>Terms of Service: https:\/\/agentzappy.com\/terms<\/p>\n\n<p>Privacy Policy: https:\/\/agentzappy.com\/privacy<\/p>\n\n<h4>WhatsApp chat links<\/h4>\n\n<p>The optional storefront button links to WhatsApp using <code>wa.me<\/code>. The plugin does not contact WhatsApp when merely displaying the button. When a visitor clicks it, the visitor's browser sends the configured business phone number and pre-filled message to WhatsApp. On WooCommerce product pages, that message can include the displayed product name.<\/p>\n\n<p>WhatsApp Terms of Service: https:\/\/www.whatsapp.com\/legal\/terms-of-service<\/p>\n\n<p>WhatsApp Privacy Policy: https:\/\/www.whatsapp.com\/legal\/privacy-policy<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Agent Zappy does not add tracking scripts or send telemetry. Product data is sent to the configured webhook only after an administrator connects the plugin with an API key. Visitors choose whether to open the WhatsApp link. Site owners are responsible for describing their use of Agent Zappy and WhatsApp in their own privacy policy where required.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload and activate Agent Zappy from Plugins &gt; Add New Plugin.<\/li>\n<li>Open Agent Zappy from the left WordPress admin menu.<\/li>\n<li>Add the WhatsApp number in international format and choose the button position.<\/li>\n<li>Paste the Agent Zappy API key supplied by Communication Technologies to enable product updates.<\/li>\n<li>Review the automatic stock and price update options, then save them.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20configure%20the%20whatsapp%20button%3F\"><h3>Where do I configure the WhatsApp button?<\/h3><\/dt>\n<dd><p>Go to Agent Zappy in the left WordPress admin panel.<\/p><\/dd>\n<dt id=\"what%20phone%20number%20format%20should%20i%20use%3F\"><h3>What phone number format should I use?<\/h3><\/dt>\n<dd><p>Use the full international phone number with digits only, such as <code>15551234567<\/code>.<\/p><\/dd>\n<dt id=\"what%20does%20the%20product%20webhook%20send%3F\"><h3>What does the product webhook send?<\/h3><\/dt>\n<dd><p>When a WooCommerce product or variation changes, Agent Zappy sends a POST request to the product webhook URL saved in Agent Zappy settings. The saved API key is used as the <code>x-wc-zappy<\/code> header value. The JSON body contains <code>id<\/code>, <code>stock_status<\/code>, and <code>price<\/code>. The <code>id<\/code> is the WooCommerce product or variation ID. The stock status is WooCommerce's native value, such as <code>instock<\/code>, <code>outofstock<\/code>, or <code>onbackorder<\/code>. Price is sent in the store currency's configured minor units.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20customer%20or%20order%20data%20to%20agent%20zappy%3F\"><h3>Does the plugin send customer or order data to Agent Zappy?<\/h3><\/dt>\n<dd><p>No. Product-sync requests contain only the WooCommerce product or variation ID, stock status, and price. The API key is sent as an authentication header. Purchase-driven stock changes can trigger a product-sync request, but customer and order details are not included.<\/p><\/dd>\n<dt id=\"what%20is%20stored%20in%20wordpress%3F\"><h3>What is stored in WordPress?<\/h3><\/dt>\n<dd><p>The plugin stores its settings, the latest 20 simple product delivery results, and the last sync result on affected products. Detailed webhook diagnostics are stored only when an administrator enables that option. The API key is never included in either history. Plugin-owned data is removed when the plugin is deleted from WordPress.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.9<\/h4>\n\n<ul>\n<li>Added translator guidance for all five placeholders reported by Plugin Check.<\/li>\n<li>Clarified that the legacy AWS URL is used only for settings migration, not remote assets.<\/li>\n<\/ul>\n\n<h4>1.2.8<\/h4>\n\n<ul>\n<li>Corrected the WordPress.org contributor username.<\/li>\n<li>Added Agent Zappy terms and privacy links and clarified external endpoints, triggers, retries, and connection metadata.<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>Added clear WordPress.org external-service and privacy disclosures.<\/li>\n<li>Updated compatibility metadata for current WordPress and WooCommerce releases.<\/li>\n<li>Fixed admin JavaScript loading so the saved API-key interaction works without storefront notices.<\/li>\n<li>Tightened output escaping and removed an unused legacy query-string notice handler.<\/li>\n<li>Added clean removal of plugin settings, histories, scheduled jobs, and product sync metadata on uninstall.<\/li>\n<li>Replaced an unverified ranking claim in the admin heading with factual product wording.<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Fixed the API-key row layout so the key field remains full width and the save button keeps its natural size, with a clean stacked layout on mobile screens.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Enforced the current UI-saved <code>api_key<\/code> as the only source for the <code>x-wc-zappy<\/code> request header.<\/li>\n<li>Removed the legacy webhook-secret credential fallback and explicitly reject the visual API-key mask as a credential.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Added a dedicated Save API key button beside the key field.<\/li>\n<li>Show a safe fixed mask and Saved badge after connection instead of a misleading empty field, without exposing the actual API key in the page source.<\/li>\n<li>Preserve the existing key when the security mask is submitted unchanged.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Clarified recent-update prices by showing the exact API value as cents for two-decimal currencies, together with the readable WooCommerce currency amount.<\/li>\n<li>Label non-two-decimal currency values as smallest currency units so zero- and three-decimal stores are not misrepresented.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Restored reliable near-real-time delivery for WordPress admin, variation editor, AJAX, and REST product updates without depending on Action Scheduler or WP-Cron.<\/li>\n<li>Collapse repeated WooCommerce save hooks into one final update per product or variation, reducing duplicate webhook calls and plugin conflicts.<\/li>\n<li>Keep background delivery for checkout traffic and automatically queue transient failures for retry.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Simplified the WhatsApp customer-chat settings with business-friendly language and a cleaner closed-by-default setup panel.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Renamed the plugin folder, files, package, text domain, code identifiers, asset selectors, settings page slug, and storage keys to the clean <code>agent-zappy<\/code> brand.<\/li>\n<li>Added rollback-safe migration for settings and webhook histories stored by versions using the previous technical slug.<\/li>\n<li>Added compatibility protection against duplicate webhook delivery while a previous plugin copy is still active during the rename transition.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Updated the default production webhook to <code>https:\/\/api.agentzappy.com\/manager\/woocommerce\/webhook\/v2\/product<\/code> and migrate sites still using the previous plugin default.<\/li>\n<li>Hid webhook URL editing inside an advanced control while preserving custom endpoint support.<\/li>\n<li>Added clear connected\/API-key-required states and prevent product details from being sent until the UI-saved API key is available.<\/li>\n<li>Continue using the UI-saved API key as the <code>x-wc-zappy<\/code> request header.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Made the floating WhatsApp button product-aware. Product pages now pre-fill a message containing the current WooCommerce product name, while other pages keep the saved default message.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Removed the manual test-update form from the right-side settings panel to keep the production interface focused on automatic syncing and recent delivery status.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Added a customer-friendly Recent product updates summary with the latest 20 product and variation deliveries, their sent details, and a simple Sent or Failed status.<\/li>\n<li>Redesigned the Agent Zappy settings page around a clear WhatsApp floating-button setup and a separate product auto-sync workflow.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Renamed the webhook credential to API key and use the saved UI value as the <code>x-wc-zappy<\/code> header value.<\/li>\n<li>Automatically migrate credentials saved under the previous webhook-secret option name.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Hardened configurable webhook URLs with HTTPS and WordPress safe-request validation.<\/li>\n<li>Disabled redirects so the webhook secret cannot be forwarded to another host.<\/li>\n<li>Moved variation delivery back to the background queue so slow endpoints cannot block WooCommerce product saves.<\/li>\n<li>Added per-request variation deduplication and stale-job protection.<\/li>\n<li>Made webhook debug history opt-in and limited its retained response data.<\/li>\n<li>Removed test-era endpoint migration and unused API-key settings.<\/li>\n<li>Clean up pending Agent Zappy jobs when the plugin is deactivated.<\/li>\n<\/ul>\n\n<h4>1.0.21<\/h4>\n\n<ul>\n<li>Changed automatic and manual product webhook requests from PATCH to POST.<\/li>\n<\/ul>\n\n<h4>1.0.20<\/h4>\n\n<ul>\n<li>Declared the webhook debug storage constant and registered the debug action handler, fixing the remaining settings-page fatal error.<\/li>\n<\/ul>\n\n<h4>1.0.19<\/h4>\n\n<ul>\n<li>Fixed a critical admin error caused by missing webhook debug callback methods in version 1.0.18.<\/li>\n<\/ul>\n\n<h4>1.0.18<\/h4>\n\n<ul>\n<li>Added a settings-page Webhook debug panel that records request payloads, HTTP responses, response bodies, and transport errors without recording the webhook secret.<\/li>\n<\/ul>\n\n<h4>1.0.17<\/h4>\n\n<ul>\n<li>Added WooCommerce variation data-store hooks and immediate webhook delivery when a variation is saved in the product editor.<\/li>\n<\/ul>\n\n<h4>1.0.16<\/h4>\n\n<ul>\n<li>Made the product webhook URL configurable again; automatic and manual updates use the URL saved in Agent Zappy settings.<\/li>\n<\/ul>\n\n<h4>1.0.15<\/h4>\n\n<ul>\n<li>Hardcoded the Agent Zappy production product webhook so saved legacy or custom API URLs cannot receive product updates.<\/li>\n<li>Renamed the manual product form to Test product webhook for direct delivery checks from the settings screen.<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>Updated the integration to use the WooCommerce product webhook contract: <code>x-wc-zappy<\/code>, <code>id<\/code>, <code>stock_status<\/code>, and <code>price<\/code>.<\/li>\n<li>Store the webhook secret in WordPress settings rather than shipping it in the plugin source.<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Set the default API URL to the Agent Zappy production endpoint instead of a public test webhook.<\/li>\n<li>Keep only the newest queued product update, so an older retry cannot overwrite newer product data.<\/li>\n<li>Retry only temporary request failures, rate limits, and server errors.<\/li>\n<li>Send prices in the configured WooCommerce currency's minor units instead of assuming two decimal places.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Fixed automatic stock syncing for every stock status transition, including returning to in stock or changing to backorder.<\/li>\n<li>Added product-object change detection so stock and price changes saved through WooCommerce are queued reliably.<\/li>\n<li>Enabled automatic price syncing by default for new installations.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Added an order-stock-reduction sync pass so purchases that reduce WooCommerce stock are checked and pushed to Agent Zappy after stock is reduced.<\/li>\n<li>Updated the packaging script to refresh the text-safe Base64 package whenever the ZIP is rebuilt.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Added automatic real-time Agent Zappy availability sync when WooCommerce product stock status changes.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Updated plugin and author website links to https:\/\/agentzappy.com\/.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Redesigned the Agent Zappy settings screen with admin cards, setup status, and clearer WooCommerce workflows.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Updated plugin author branding to Communication Technologies.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added a WooCommerce product edit-screen Agent Zappy Availability box that sends the WooCommerce product ID to the API payload field named <code>sku<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added an Agent Zappy API key setting and a manual WooCommerce product ID availability updater.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Renamed the plugin to Agent Zappy and added a dedicated Agent Zappy left-panel admin menu item.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added a root plugin bootstrap so GitHub repository ZIP downloads install as valid WordPress plugins.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Replaced the committed binary ZIP with a text-safe Base64 package for PR systems that do not support binary files.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added WooCommerce plugin dependency metadata, WooCommerce compatibility declaration, and ZIP packaging instructions.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Connect WooCommerce to Agent Zappy, keep product prices and stock status in sync, and automate your WhatsApp sales","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368013","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=368013"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/agentzappy"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368013"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368013"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368013"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368013"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368013"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}