{"id":317971,"date":"2026-05-29T17:57:47","date_gmt":"2026-05-29T17:57:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/zavora-360\/"},"modified":"2026-05-29T18:05:04","modified_gmt":"2026-05-29T18:05:04","slug":"zavora-360","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/zavora-360\/","author":23500097,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Zavora 360","header_author":"Royal Bengal AI","header_description":"Add a \"Talk to Us\" Virtual Receptionist button to your WordPress site. Visitors click to speak with your Virtual Receptionist \u2014 no installs, no phone calls, just a browser-based conversation in their language.","assets_banners_color":"5c5f7a","last_updated":"2026-05-29 18:05:04","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/zavora360.royalbengal.ai","header_author_uri":"https:\/\/royalbengal.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"mohimenol","date":"2026-05-29 18:05:04"}},"upgrade_notice":{"1.1.3":"<p>Maintenance release. If your Zavora 360 API key was issued before May 23 2026 (starts with <code>rva_<\/code>), regenerate it from your dashboard for compatibility with the current platform.<\/p>","1.1.2":"<p>Maintenance release. Refined description language for brand consistency, added the formal External services disclosure section. No functional change, no reconfiguration needed.<\/p>","1.1.1":"<p>Maintenance release. Removes leftover legacy files from the v1.1.0 rebrand. No functional change, no reconfiguration needed.<\/p>","1.1.0":"<p>Rebrand to Zavora 360. Your saved settings carry over automatically. Existing <code>[royal_voice_agent]<\/code> shortcodes keep working; use <code>[zavora_360]<\/code> going forward.<\/p>","1.0.3":"<p>The Visibility picker now has bulk-action shortcuts: &quot;Show selected only&quot;, &quot;Select all visible&quot;, and &quot;Clear all&quot;. Useful on content-heavy sites where you want to tag many items at once.<\/p>","1.0.2":"<p>The pages\/posts picker on the Visibility tab now has type tabs and a search box, so finding a specific item on a content-heavy site is fast.<\/p>","1.0.1":"<p>Bug fix: live preview on the Appearance tab now updates in real time. Visibility tab now lists Posts as well as Pages and uses a checkbox list. Button clicks now open the Virtual Receptionist in a centered popup window instead of a new tab.<\/p>","1.0.0":"<p>First release of Zavora 360 for WordPress.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3553998,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3553998,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3554017,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3554017,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Floating \"Talk to Us\" button on the website","2":"Settings page \u2014 connect your account","3":"Settings page \u2014 customize button appearance","4":"Settings page \u2014 control which pages show the button"}},"plugin_section":[],"plugin_tags":[2734,264999,264998,4013,63792],"plugin_category":[],"plugin_contributors":[265000],"plugin_business_model":[],"class_list":["post-317971","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-button","plugin_tags-talk-to-us","plugin_tags-virtual-receptionist","plugin_tags-voice","plugin_tags-voice-chat","plugin_contributors-mohimenol","plugin_committers-mohimenol"],"banners":{"banner":"https:\/\/ps.w.org\/zavora-360\/assets\/banner-772x250.png?rev=3554017","banner_2x":"https:\/\/ps.w.org\/zavora-360\/assets\/banner-1544x500.png?rev=3554017","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/zavora-360\/assets\/icon-128x128.png?rev=3553998","icon_2x":"https:\/\/ps.w.org\/zavora-360\/assets\/icon-256x256.png?rev=3553998","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This is the official Zavora 360 plugin, built and maintained by Royal Bengal AI \u2014 the team behind the Zavora 360 Virtual Receptionist platform at <a href=\"https:\/\/zavora360.royalbengal.ai\">zavora360.royalbengal.ai<\/a>.<\/p>\n\n<p>Zavora 360 is a Virtual Receptionist that answers your website visitors' questions in real time using advanced voice technology. This plugin adds a floating \"Talk to Us\" button to your WordPress site \u2014 visitors click it, a small popup opens, and they're talking to your custom-trained Virtual Receptionist within seconds. As of v1.2.0, you can also add a floating Chat button so visitors who prefer text get the same Virtual Receptionist in a chat window.<\/p>\n\n<p>The agent speaks the visitor's language (English, Hindi, Bengali, Spanish, Arabic, French, and more), is trained on your own knowledge base, and is available 24\/7. No phone calls needed \u2014 it all runs in the browser.<\/p>\n\n<h4>What this plugin does<\/h4>\n\n<ul>\n<li>Adds a floating \"Talk to Us\" voice button to every page of your site (configurable)<\/li>\n<li>Adds a floating Chat button alongside the voice button (v1.2.0+, independent toggle)<\/li>\n<li>Lets you place either surface mid-content with the <code>[zavora_360]<\/code> (voice) and <code>[zavora_360_chat]<\/code> (chat) shortcodes<\/li>\n<li>Customize each button's color, label, position, and size independently<\/li>\n<li>Hide either button on specific pages, or only show on specific pages<\/li>\n<li>Auto-detects WooCommerce and lets you hide both buttons on cart\/checkout<\/li>\n<\/ul>\n\n<h4>Requires a Zavora 360 account<\/h4>\n\n<p>This plugin is the WordPress connector for the Zavora 360 platform. You'll need an account at <a href=\"https:\/\/zavora360.royalbengal.ai\">zavora360.royalbengal.ai<\/a> \u2014 the Free plan includes 10 minutes per month at no cost and no credit card.<\/p>\n\n<h4>Privacy and data<\/h4>\n\n<p>This plugin doesn't collect or transmit any visitor data on its own. When a visitor clicks the button, a popup window opens pointing to the Zavora 360 platform (zavora360.royalbengal.ai). All voice processing happens there, under Zavora 360's <a href=\"https:\/\/zavora360.royalbengal.ai\/privacy\">privacy policy<\/a>.<\/p>\n\n<p>The plugin stores your API key and display preferences in your WordPress database (wp_options table). No visitor data is stored by the plugin.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Zavora 360 platform, an external service provided by Royal Bengal AI. The connection is required for the plugin to function \u2014 without a valid Zavora 360 account and API key, the button will not load. The plugin does not contact any other third-party services.<\/p>\n\n<p><strong>What the plugin sends to Zavora 360:<\/strong><\/p>\n\n<ul>\n<li>When you save an API key on the settings page, the plugin makes a single GET request to <code>https:\/\/zavora360.royalbengal.ai\/api\/external\/widget-config<\/code> with the API key in an <code>X-API-Key<\/code> header. This validates the key and fetches your account's button configuration (label, color, position, size, plan, minute balance). The request also includes a <code>User-Agent<\/code> header in the form <code>Zavora360-WP\/{version}; {your-site-url}\/<\/code> so the platform's logs can distinguish plugin traffic from other API consumers.<\/li>\n<li>When a visitor clicks the Talk-to-Us button, a popup window opens at <code>https:\/\/zavora360.royalbengal.ai\/call?company={your-company-slug}<\/code>. The browser handles the voice conversation directly with the platform from that point on \u2014 the plugin and your WordPress server are not involved in the conversation itself.<\/li>\n<\/ul>\n\n<p><strong>What the plugin does NOT send:<\/strong><\/p>\n\n<ul>\n<li>No visitor data (name, email, IP, behavior) is sent to Zavora 360 by the plugin.<\/li>\n<li>No post content, page content, or WordPress database content is sent.<\/li>\n<li>No data about your other WordPress plugins or theme is sent.<\/li>\n<li>The plugin makes no analytics, tracking, or telemetry calls of any kind.<\/li>\n<\/ul>\n\n<p><strong>When the calls happen:<\/strong><\/p>\n\n<ul>\n<li>The <code>widget-config<\/code> API call runs once when you save the API key on the settings page, and again whenever you click \"Refresh config\" on the same page. It does not run on visitor page loads \u2014 the configuration is cached in WordPress options.<\/li>\n<li>The popup-window URL is constructed in the browser when the visitor clicks the button. No server-side call from your WordPress site is made at click time.<\/li>\n<\/ul>\n\n<p><strong>Terms and privacy:<\/strong><\/p>\n\n<ul>\n<li>Zavora 360 terms of service: <a href=\"https:\/\/zavora360.royalbengal.ai\/terms\">https:\/\/zavora360.royalbengal.ai\/terms<\/a><\/li>\n<li>Zavora 360 privacy policy: <a href=\"https:\/\/zavora360.royalbengal.ai\/privacy\">https:\/\/zavora360.royalbengal.ai\/privacy<\/a><\/li>\n<\/ul>\n\n<p>By using this plugin, you agree to the Zavora 360 terms of service. If you are subject to GDPR or similar privacy regulations, you should mention Virtual Receptionist usage in your own site's privacy policy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin, go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for <strong>Zavora 360<\/strong> and click <strong>Install Now<\/strong>.<\/li>\n<li>Click <strong>Activate<\/strong>.<\/li>\n<li>Go to <strong>Settings \u2192 Zavora 360<\/strong>.<\/li>\n<li>Paste your API key (get one from your <a href=\"https:\/\/zavora360.royalbengal.ai\">Zavora 360 dashboard<\/a> \u2192 Settings \u2192 API Keys).<\/li>\n<li>Optionally configure button color, position, and visibility.<\/li>\n<li>Save. The button now appears on your website.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20zavora%20360%20account%3F\"><h3>Do I need a Zavora 360 account?<\/h3><\/dt>\n<dd><p>Yes. This plugin is the WordPress connector for the Zavora 360 platform. Sign up free at <a href=\"https:\/\/zavora360.royalbengal.ai\">zavora360.royalbengal.ai<\/a> \u2014 Free plan includes 10 minutes per month.<\/p><\/dd>\n<dt id=\"how%20does%20pricing%20work%3F\"><h3>How does pricing work?<\/h3><\/dt>\n<dd><p>Free plan: 10 minutes per month, no credit card needed. Paid plans from $4.99\/month for more minutes plus outbound calling and call forwarding to your human team. See <a href=\"https:\/\/zavora360.royalbengal.ai\/#pricing\">pricing<\/a>.<\/p><\/dd>\n<dt id=\"will%20the%20button%20work%20on%20mobile%3F\"><h3>Will the button work on mobile?<\/h3><\/dt>\n<dd><p>Yes \u2014 the floating button is responsive and the call popup works in mobile browsers. Visitors need to allow microphone permission when prompted.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20slow%20down%20my%20site%3F\"><h3>Does this plugin slow down my site?<\/h3><\/dt>\n<dd><p>No noticeable impact. The plugin's frontend footprint is a small CSS file (~2 KB) and an HTML button. No JavaScript loads on the frontend unless a visitor actually clicks the button.<\/p><\/dd>\n<dt id=\"where%20does%20the%20voice%20processing%20happen%3F\"><h3>Where does the voice processing happen?<\/h3><\/dt>\n<dd><p>All voice processing happens on the Zavora 360 platform (zavora360.royalbengal.ai). The plugin only embeds the popup link \u2014 no voice processing runs on your WordPress server.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20what%20the%20agent%20says%3F\"><h3>Can I customize what the agent says?<\/h3><\/dt>\n<dd><p>Yes \u2014 in your Zavora 360 dashboard, not in WordPress. The dashboard has a Knowledge Base section where you can add information about your business, services, FAQs, etc. The agent uses that to answer questions.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20gdpr%20compliant%3F\"><h3>Is the plugin GDPR compliant?<\/h3><\/dt>\n<dd><p>The plugin itself stores no visitor data. When a visitor interacts with the Virtual Receptionist, that interaction is governed by the Zavora 360 <a href=\"https:\/\/zavora360.royalbengal.ai\/privacy\">privacy policy<\/a>. For GDPR compliance, mention Virtual Receptionist usage in your own privacy policy and consider a cookie\/consent banner if you're in the EU.<\/p><\/dd>\n<dt id=\"can%20i%20place%20the%20button%20inside%20a%20specific%20page%2C%20not%20floating%3F\"><h3>Can I place the button inside a specific page, not floating?<\/h3><\/dt>\n<dd><p>Yes \u2014 use the shortcode <code>[zavora_360]<\/code> in any page or post. Optional attributes: <code>label<\/code>, <code>color<\/code>, <code>size<\/code>. Example: <code>[zavora_360 label=\"Call us now\" color=\"#dc2626\" size=\"large\"]<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>New: the Connection tab's status table now shows your current chat credit balance alongside the existing Minutes row. The figure is fetched from the Zavora 360 platform on Connect \/ Refresh, formatted in USD as \"$X.XX remaining\". The row only appears when chat is enabled on your tenant \u2014 voice-only customers see no change.<\/li>\n<li>Compatibility: requires a Zavora 360 platform on v3.11.1 or later to populate the chat balance figure. Against older platforms the row is silently suppressed and the Connection tab behaves exactly as in v1.2.0.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Chat tab. The plugin now supports the Zavora 360 Chat Receptionist alongside the existing voice button. Enable chat from the new Chat tab in Plugin Settings \u2014 pick a button label, color, position, and an optional welcome greeting. The chat panel is independent from the voice button; you can run either, both, or neither.<\/li>\n<li>New: <code>[zavora_360_chat]<\/code> shortcode for inline placement, mirroring the existing <code>[zavora_360]<\/code> voice shortcode. Supports per-shortcode overrides: <code>color<\/code>, <code>label<\/code>, <code>position<\/code> (br\/bl\/tr\/tl), and <code>greeting<\/code>.<\/li>\n<li>New: visitors picking from your enabled languages on the first screen of the chat panel. Your tenant's language list is fetched from the Zavora 360 platform on Connect \/ Refresh \u2014 keep it up to date by clicking Refresh on the Connection tab whenever you change your enabled languages on the dashboard.<\/li>\n<li>Improvement: the Connection tab's Refresh action now also caches the chat widget public key, default language, and language list locally, so the chat button renders without an extra round-trip per page load.<\/li>\n<li>Compatibility: requires a Zavora 360 platform on v3.10.0 or later for the chat surface. The voice button continues to work against any prior platform version \u2014 chat-related fields are optional in the platform's widget-config response and degrade gracefully when absent.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Maintenance: documentation URLs for the Zavora 360 platform's privacy policy and terms of service now point at the platform's actual subdomain (zavora360.royalbengal.ai) instead of the parent corporate domain. Affects the Privacy and data section, the GDPR FAQ, and the External services section in this readme.<\/li>\n<li>Maintenance: renamed the admin-page JavaScript localization handle from <code>rvaAdmin<\/code> to <code>z360Admin<\/code> for consistency with the plugin's <code>z360<\/code> prefix used throughout the rest of the codebase since v1.1.0. Internal-only change with no impact on the plugin's functionality, settings, or user-facing surfaces.<\/li>\n<li>Removal: the legacy <code>[royal_voice_agent]<\/code> shortcode alias added in v1.1.0 for backward compatibility with v1.0.x installs is removed. The canonical <code>[zavora_360]<\/code> shortcode remains the only supported form. If you have any content using <code>[royal_voice_agent]<\/code>, update it to <code>[zavora_360]<\/code> \u2014 both render the same Talk-to-Us button.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Maintenance: documentation alignment with the Zavora 360 platform's v3.4.2 release, which migrated the platform's API key format to the new <code>z360_<\/code> prefix. If your API key was issued before May 23 2026 and starts with <code>rva_<\/code>, regenerate it from your Zavora 360 dashboard and paste the new key into Plugin Settings \u2192 API &amp; Connection.<\/li>\n<li>Maintenance: clarified plugin ownership in the Description \u2014 this is the official plugin, built and maintained by Royal Bengal AI.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Maintenance: refined plugin description and FAQ language for consistency with the Zavora 360 brand voice. No functional change.<\/li>\n<li>Documentation: added a dedicated External services section to this readme covering exactly which endpoint is called, what data is sent, what data is not sent, and when the calls happen \u2014 meeting current WordPress.org plugin directory guidelines for plugins that communicate with external services.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Maintenance: removed legacy <code>class-rva-*.php<\/code> files and the <code>royal-voice-agent.pot<\/code> translation template that were left behind after the v1.1.0 rebrand. Dead code only \u2014 autoloader has always loaded <code>Z360_*<\/code> classes exclusively, so this is a pure cleanup with no functional change.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Rebrand: Royal Voice Agent is now Zavora 360. New brand, same plugin \u2014 connects to the same platform at the new URL https:\/\/zavora360.royalbengal.ai.<\/li>\n<li>New: canonical shortcode is now <code>[zavora_360]<\/code>. The legacy <code>[royal_voice_agent]<\/code> shortcode tag still works for any existing content \u2014 both tags map to the same handler. Use <code>[zavora_360]<\/code> going forward.<\/li>\n<li>Internal: the plugin folder is now <code>zavora-360\/<\/code>, the main file is <code>zavora-360.php<\/code>, and the PHP class prefix changed from <code>RVA_<\/code> to <code>Z360_<\/code>. Option keys migrated from <code>rva_*<\/code> to <code>z360_*<\/code> on activation (your saved API key, button settings, etc. carry over automatically \u2014 no reconfiguration needed).<\/li>\n<li>Maintenance: developer comments and documentation updated for the new name. No functional changes beyond the rebrand and shortcode alias.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Improvement: the Visibility picker gains three new tools \u2014 a \"Show selected only\" toggle that hides unticked items so you can review your picks at a glance, a \"Select all visible\" link that ticks every item currently shown (great combined with search \u2014 e.g. search \"blog\", then click Select all visible), and a \"Clear all\" link that unticks every item across both tabs.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Improvement: the pages-and-posts picker on the Visibility tab now has type tabs (Pages \/ Posts) and a search box so you can quickly find a specific item on sites with lots of content. Each tab shows its item count. Search filters within the active tab.<\/li>\n<li>Improvement: a selection counter under the picker shows how many pages and posts you currently have ticked \u2014 useful as a sanity check before saving.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: live preview on the Appearance tab now updates in real time as you change label, color, position, or size.<\/li>\n<li>Improvement: the Visibility tab now lists both Pages and Posts (each with a \"Page\" or \"Post\" badge), so you can target either type. The previous Pages-only multi-select has been replaced with a checkbox list \u2014 one click per pick, no Ctrl\/Cmd-click needed.<\/li>\n<li>New: clicking the Talk-to-Us button now opens the Virtual Receptionist in a centered popup window (480\u00d7720) instead of a new tab. Modifier-click (Ctrl\/Cmd\/Shift) still opens in a new tab. If the popup is blocked, falls back to the original new-tab behavior.<\/li>\n<li>Improvement: the Help tab now includes step-by-step instructions for adding the <code>[royal_voice_agent]<\/code> shortcode in both the Block Editor and Classic Editor.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Floating voice + chat Virtual Receptionist for WordPress. Trained on your knowledge base, speaks your visitors&#039; language, available 24\/7.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/317971","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=317971"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mohimenol"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=317971"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=317971"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=317971"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=317971"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=317971"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=317971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}