Descripción
This is the official Zavora 360 plugin, built and maintained by Royal Bengal AI — the team behind the Zavora 360 Virtual Receptionist platform at zavora360.royalbengal.ai.
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 — 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.
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 — it all runs in the browser.
What this plugin does
- Adds a floating “Talk to Us” voice button to every page of your site (configurable)
- Adds a floating Chat button alongside the voice button (v1.2.0+, independent toggle)
- Lets you place either surface mid-content with the
[zavora_360](voice) and[zavora_360_chat](chat) shortcodes - Customize each button’s color, label, position, and size independently
- Hide either button on specific pages, or only show on specific pages
- Auto-detects WooCommerce and lets you hide both buttons on cart/checkout
Requires a Zavora 360 account
This plugin is the WordPress connector for the Zavora 360 platform. You’ll need an account at zavora360.royalbengal.ai — the Free plan includes 10 minutes per month at no cost and no credit card.
Privacy and data
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 privacy policy.
The plugin stores your API key and display preferences in your WordPress database (wp_options table). No visitor data is stored by the plugin.
External services
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 — without a valid Zavora 360 account and API key, the button will not load. The plugin does not contact any other third-party services.
What the plugin sends to Zavora 360:
- When you save an API key on the settings page, the plugin makes a single GET request to
https://zavora360.royalbengal.ai/api/external/widget-configwith the API key in anX-API-Keyheader. This validates the key and fetches your account’s button configuration (label, color, position, size, plan, minute balance). The request also includes aUser-Agentheader in the formZavora360-WP/{version}; {your-site-url}/so the platform’s logs can distinguish plugin traffic from other API consumers. - When a visitor clicks the Talk-to-Us button, a popup window opens at
https://zavora360.royalbengal.ai/call?company={your-company-slug}. The browser handles the voice conversation directly with the platform from that point on — the plugin and your WordPress server are not involved in the conversation itself.
What the plugin does NOT send:
- No visitor data (name, email, IP, behavior) is sent to Zavora 360 by the plugin.
- No post content, page content, or WordPress database content is sent.
- No data about your other WordPress plugins or theme is sent.
- The plugin makes no analytics, tracking, or telemetry calls of any kind.
When the calls happen:
- The
widget-configAPI 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 — the configuration is cached in WordPress options. - 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.
Terms and privacy:
- Zavora 360 terms of service: https://zavora360.royalbengal.ai/terms
- Zavora 360 privacy policy: https://zavora360.royalbengal.ai/privacy
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.
Instalación
- In your WordPress admin, go to Plugins Add New.
- Search for Zavora 360 and click Install Now.
- Click Activate.
- Go to Settings Zavora 360.
- Paste your API key (get one from your Zavora 360 dashboard Settings API Keys).
- Optionally configure button color, position, and visibility.
- Save. The button now appears on your website.
Preguntas frecuentes
-
Do I need a Zavora 360 account?
-
Yes. This plugin is the WordPress connector for the Zavora 360 platform. Sign up free at zavora360.royalbengal.ai — Free plan includes 10 minutes per month.
-
How does pricing work?
-
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 pricing.
-
Yes — the floating button is responsive and the call popup works in mobile browsers. Visitors need to allow microphone permission when prompted.
-
Does this plugin slow down my site?
-
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.
-
Where does the voice processing happen?
-
All voice processing happens on the Zavora 360 platform (zavora360.royalbengal.ai). The plugin only embeds the popup link — no voice processing runs on your WordPress server.
-
Can I customize what the agent says?
-
Yes — 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.
-
Is the plugin GDPR compliant?
-
The plugin itself stores no visitor data. When a visitor interacts with the Virtual Receptionist, that interaction is governed by the Zavora 360 privacy policy. For GDPR compliance, mention Virtual Receptionist usage in your own privacy policy and consider a cookie/consent banner if you’re in the EU.
-
Yes — use the shortcode
[zavora_360]in any page or post. Optional attributes:label,color,size. Example:[zavora_360 label="Call us now" color="#dc2626" size="large"]. -
Cart Recovery is enabled but no calls go out on my live site — why?
-
Cart Recovery runs on a scheduled background task (about every 10 minutes). As of v1.3.4 the plugin self-heals: at the end of any request to your site (an admin page, a visitor, a bot, an uptime monitor) it will run an overdue scan in the background, so on any normally-trafficked store recovery works automatically once you turn it on — no setup needed. The catch is that WordPress has no internal clock; it only runs when a request hits the site. On a brand-new or zero-traffic site with nobody visiting and nobody logged in, nothing can trigger the scan, and you will see an admin notice saying so. The fix for that case is a real server cron: add
define('DISABLE_WP_CRON', true);towp-config.php(above the “stop editing” line), then have your host callhttps://YOURSITE/wp-cron.php?doing_wp_cronevery 5 minutes. On cPanel/Plesk use the Cron Jobs tool; on a raw server add*/5 * * * * curl -s "https://YOURSITE/wp-cron.php?doing_wp_cron" >/dev/null 2>&1to your crontab; on managed WordPress hosts (Kinsta, WP Engine, SiteGround, Cloudways) use their built-in cron manager or contact support; and if you can install plugins but not edit server cron, a free external service such as cron-job.org can hit that URL on a schedule. This is standard production hygiene for any WordPress site that depends on scheduled tasks, not specific to this plugin.
Reseñas
No hay reseñas para este plugin.
Colaboradores y desarrolladores
Este software es de código abierto. Las siguientes personas han contribuido a este plugin.
ColaboradoresTraduce “Zavora 360” a tu idioma.
¿Interesado en el desarrollo?
Revisa el código, echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.3.4
- New: Cart Recovery now self-heals. WordPress only runs scheduled tasks when a request hits the site and its built-in cron spawn is unreliable on quiet sites, so recovery could sit dormant. The plugin now runs an overdue scan in the background at the end of any request (after the page is sent, so no added load time), throttled to at most once every five minutes and locked so it never double-runs. On any normally-trafficked store, recovery now works automatically once enabled — the manual server cron is only needed for genuinely zero-traffic sites.
- New: admin notice when Cart Recovery is enabled but the scan has not run for 30+ minutes (a quiet site with no real cron), with a link to the fix and a one-click dismiss-for-12-hours. The last scan time and summary are now stored so the dormancy check (and a future settings readout) work without reading the debug log.
- Docs: the cron FAQ now explains the self-heal behavior and exactly when a real server cron is still required.
1.3.3
- Docs: added a FAQ entry explaining how to keep Cart Recovery running on a live site. WordPress only runs scheduled tasks on visitor traffic, so on a quiet site the recovery scan can sit idle and place no calls; the FAQ walks through disabling traffic-triggered cron (
DISABLE_WP_CRON) and drivingwp-cron.phpfrom a real server cron every five minutes, with guidance for cPanel/Plesk, raw servers, managed WordPress hosts, and external cron services. No code or behavior change — documentation only.
1.3.2
- Diagnostics: the Cart Recovery scan now writes a single summary line to the WordPress debug log on every run, so it always reports what it did even when it places no call. The line records how many checkout drafts and how many logged-in carts were considered, how many calls were queued, and the exact reason each candidate was skipped (already queued, no phone, below minimum value, already at checkout, empty cart). When the feature is off, the key is missing, or WooCommerce is unavailable, the scan now says so instead of returning silently. No behavior or calling logic changed — this release only makes a scan that queues nothing explain itself.
1.3.1
- New: Cart Recovery now also covers logged-in shoppers who leave a cart before reaching checkout, when they have a phone number saved on their account. Previously recovery only fired once a shopper reached checkout and entered a phone; now a registered customer who adds items and leaves can be called using their account phone. Guests, and logged-in customers without a saved phone, are unchanged — for them only the checkout stage qualifies.
- Behavior: the logged-in cart layer never double-calls. A shopper who later reaches checkout is handed to the checkout path (the cart call is cancelled), and completing, cancelling, or emptying the cart cancels a pending cart call. Because WooCommerce does not timestamp the cart, a cart only becomes eligible once it is touched while v1.3.1 is active.
1.3.0
- New: Cart Recovery (Smart Outreach). When a shopper enters their phone at WooCommerce checkout but doesn’t complete the order, your Virtual Receptionist can call them back after a delay you choose to help them finish. Configure it on the new Cart Recovery tab in Plugin Settings: enable the feature, paste your Outreach API key (from the Smart Outreach tab of your dashboard), set how long to wait before a checkout counts as abandoned, the delay before calling, an optional minimum cart value, and an optional context line for the call.
- New: if the shopper completes (or cancels) the order before the scheduled call, the call is cancelled automatically — a customer who already bought is never called.
- Notes: Cart Recovery requires WooCommerce and only fires for checkouts where a phone number was entered, in dialable international format. Detection runs on an approximately 10-minute schedule, and calls are placed inside the calling window you set on the dashboard. Requires a Zavora 360 platform on v3.29.4 or later (for the outreach trigger and cancel endpoints).
1.2.1
- 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 — voice-only customers see no change.
- 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.
1.2.0
- 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 — 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.
- New:
[zavora_360_chat]shortcode for inline placement, mirroring the existing[zavora_360]voice shortcode. Supports per-shortcode overrides:color,label,position(br/bl/tr/tl), andgreeting. - 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 — keep it up to date by clicking Refresh on the Connection tab whenever you change your enabled languages on the dashboard.
- 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.
- 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 — chat-related fields are optional in the platform’s widget-config response and degrade gracefully when absent.
1.1.4
- 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.
- Maintenance: renamed the admin-page JavaScript localization handle from
rvaAdmintoz360Adminfor consistency with the plugin’sz360prefix 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. - Removal: the legacy
[royal_voice_agent]shortcode alias added in v1.1.0 for backward compatibility with v1.0.x installs is removed. The canonical[zavora_360]shortcode remains the only supported form. If you have any content using[royal_voice_agent], update it to[zavora_360]— both render the same Talk-to-Us button.
1.1.3
- Maintenance: documentation alignment with the Zavora 360 platform’s v3.4.2 release, which migrated the platform’s API key format to the new
z360_prefix. If your API key was issued before May 23 2026 and starts withrva_, regenerate it from your Zavora 360 dashboard and paste the new key into Plugin Settings API & Connection. - Maintenance: clarified plugin ownership in the Description — this is the official plugin, built and maintained by Royal Bengal AI.
1.1.2
- Maintenance: refined plugin description and FAQ language for consistency with the Zavora 360 brand voice. No functional change.
- 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 — meeting current WordPress.org plugin directory guidelines for plugins that communicate with external services.
1.1.1
- Maintenance: removed legacy
class-rva-*.phpfiles and theroyal-voice-agent.pottranslation template that were left behind after the v1.1.0 rebrand. Dead code only — autoloader has always loadedZ360_*classes exclusively, so this is a pure cleanup with no functional change.
1.1.0
- Rebrand: Royal Voice Agent is now Zavora 360. New brand, same plugin — connects to the same platform at the new URL https://zavora360.royalbengal.ai.
- New: canonical shortcode is now
[zavora_360]. The legacy[royal_voice_agent]shortcode tag still works for any existing content — both tags map to the same handler. Use[zavora_360]going forward. - Internal: the plugin folder is now
zavora-360/, the main file iszavora-360.php, and the PHP class prefix changed fromRVA_toZ360_. Option keys migrated fromrva_*toz360_*on activation (your saved API key, button settings, etc. carry over automatically — no reconfiguration needed). - Maintenance: developer comments and documentation updated for the new name. No functional changes beyond the rebrand and shortcode alias.
1.0.3
- Improvement: the Visibility picker gains three new tools — 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 — e.g. search “blog”, then click Select all visible), and a “Clear all” link that unticks every item across both tabs.
1.0.2
- 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.
- Improvement: a selection counter under the picker shows how many pages and posts you currently have ticked — useful as a sanity check before saving.
1.0.1
- Fix: live preview on the Appearance tab now updates in real time as you change label, color, position, or size.
- 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 — one click per pick, no Ctrl/Cmd-click needed.
- New: clicking the Talk-to-Us button now opens the Virtual Receptionist in a centered popup window (480×720) 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.
- Improvement: the Help tab now includes step-by-step instructions for adding the
[royal_voice_agent]shortcode in both the Block Editor and Classic Editor.
1.0.0
- Initial release.
