{"id":362829,"date":"2026-09-24T09:46:47","date_gmt":"2026-09-24T09:46:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ristoranteai\/"},"modified":"2026-09-24T14:25:58","modified_gmt":"2026-09-24T14:25:58","slug":"tavolix","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/tavolix\/","author":23412197,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.3","stable_tag":"1.4.3","tested":"7.1.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Tavolix","header_author":"Daniele Lanteri","header_description":"Gestione prenotazioni, layout tavoli con AI, notifiche email\/WhatsApp (Meta Cloud API), recensioni Google e scheda clienti per ristoranti.","assets_banners_color":"4c4f5e","last_updated":"2026-09-24 14:25:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/danielelanteri.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":48,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.2":{"tag":"1.4.2","author":"danilante","date":"2026-09-24 09:46:34","revision":3710989},"1.4.3":{"tag":"1.4.3","author":"danilante","date":"2026-09-24 14:25:58","revision":3711495}},"upgrade_notice":{"1.4.3":"<p>Fixes the guest-count selector on phones. Existing closing days are not changed.<\/p>","1.4.2":"<p>New optional webhook to send online bookings to your restaurant management software. Nothing changes unless you configure it.<\/p>","1.4.0":"<p>The plugin is now called Tavolix (was RistoranteAI) \u2014 same plugin, same data, no action needed on your end. The full JavaScript source code is now bundled under \/src.<\/p>","1.3.0":"<p>New: AI floor plan, WhatsApp, automatic Google review requests, the Customers tab, and the AI assistant are now Premium (79\u20ac\/year\/site, 14-day free trial, one click to start from Tavolix \u2192 Licenza). Everything else stays free with no changes to how it works.<\/p>","1.2.0":"<p>New: AI assistant command bar at the bottom of every admin screen (requires a Gemini API key already in use for AI floor plans). Commands are executed immediately, with no preview step \u2014 review the &quot;External services&quot; section above for what&#039;s sent to Gemini.<\/p>","1.1.0":"<p>WhatsApp now uses Meta&#039;s own Cloud API instead of Twilio. If you had Twilio credentials configured, re-enter your Meta Phone Number ID, WABA ID and Access Token in Tavolix \u2192 Impostazioni to keep WhatsApp notifications working.<\/p>","1.0.1":"<p>Version alignment release, no functional changes.<\/p>","1.0.0":"<p>Initial public release of Tavolix.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3710989,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3710989,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3710989,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3710989,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.2","1.4.3"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3710989,"resolution":"1","location":"assets","locale":"","width":1491,"height":812},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3710989,"resolution":"2","location":"assets","locale":"","width":1470,"height":745},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3710989,"resolution":"3","location":"assets","locale":"","width":1547,"height":784},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3710989,"resolution":"4","location":"assets","locale":"","width":1491,"height":780}},"screenshots":{"1":"Main Tavolix admin dashboard.","2":"Settings page for Gemini API key and Meta WhatsApp Business Platform credentials.","3":"Floor Plan editor \u2014 configure your room and tables, with AI-suggested layout support.","4":"Public booking widget, published via the <code>[ristorante_booking]<\/code> shortcode."}},"plugin_section":[],"plugin_tags":[269,164435,1475,20710,3160],"plugin_category":[39,40],"plugin_contributors":[282462,78154],"plugin_business_model":[],"class_list":["post-362829","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-floor-plan","plugin_tags-reservations","plugin_tags-restaurant","plugin_tags-whatsapp","plugin_category-business","plugin_category-calendar-and-events","plugin_contributors-danilante","plugin_contributors-freemius","plugin_committers-danilante"],"banners":{"banner":"https:\/\/ps.w.org\/tavolix\/assets\/banner-772x250.png?rev=3710989","banner_2x":"https:\/\/ps.w.org\/tavolix\/assets\/banner-1544x500.png?rev=3710989","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tavolix\/assets\/icon-128x128.png?rev=3710989","icon_2x":"https:\/\/ps.w.org\/tavolix\/assets\/icon-256x256.png?rev=3710989","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tavolix\/assets\/screenshot-1.jpg?rev=3710989","caption":"Main Tavolix admin dashboard."},{"src":"https:\/\/ps.w.org\/tavolix\/assets\/screenshot-2.jpg?rev=3710989","caption":"Settings page for Gemini API key and Meta WhatsApp Business Platform credentials."},{"src":"https:\/\/ps.w.org\/tavolix\/assets\/screenshot-3.jpg?rev=3710989","caption":"Floor Plan editor \u2014 configure your room and tables, with AI-suggested layout support."},{"src":"https:\/\/ps.w.org\/tavolix\/assets\/screenshot-4.jpg?rev=3710989","caption":"Public booking widget, published via the <code>[ristorante_booking]<\/code> shortcode."}],"raw_content":"<!--section=description-->\n<p>Tavolix is an all-in-one booking assistant for restaurants: a public reservation widget for your site, an admin dashboard to manage bookings and the floor plan, and automated customer notifications by email and WhatsApp.<\/p>\n\n<p>With Tavolix you can:<\/p>\n\n<ul>\n<li>Publish a public booking widget on any page via the <code>[ristorante_booking]<\/code> shortcode, with real-time availability based on your rules and table capacity.<\/li>\n<li>Manage incoming bookings (confirm, waitlist, reschedule, cancel) from a dedicated admin dashboard.<\/li>\n<li>Configure your restaurant's room, tables and seating capacity, and get an AI-suggested floor plan layout (Gemini-based, requires your own Google AI API key).<\/li>\n<li>Define advanced booking rules: closures, blocked or limited time slots, minimum party size, zone assignment, automatic waitlisting.<\/li>\n<li>Schedule special\/themed evenings with their own rules and capacity.<\/li>\n<li>Send automatic email notifications for confirmations, waitlist, reschedule and cancellations, to both customers and the restaurant owner.<\/li>\n<li>Optionally send the same notifications via WhatsApp, using your own Meta WhatsApp Business Platform account (Cloud API) \u2014 no third-party messaging provider or markup fees.<\/li>\n<li>Get a ready-to-use booking link for your Google Business Profile, and optionally request a Google review automatically the day after a visit.<\/li>\n<li>View an aggregated customer history (bookings, contact details) from a dedicated Customers tab.<\/li>\n<li>Let customers cancel their own booking from a secure, tokenized link in their confirmation email \u2014 no account required.<\/li>\n<li>Export or erase a customer's booking data on request, using WordPress' native Privacy Tools (Users \u2192 Personal Data Requests), for GDPR compliance.<\/li>\n<\/ul>\n\n<p>The plugin stores all its configuration and booking data in your own WordPress database. No data is sent anywhere unless you explicitly enable and configure one of the optional integrations described below.<\/p>\n\n<h4>Free vs. Premium<\/h4>\n\n<p>Tavolix's core is free forever: the public booking widget, the admin booking dashboard, manual floor plan\/table configuration, advanced booking rules and special events, automated email notifications, the guided setup wizard, and GDPR export\/erasure tools all work without any license.<\/p>\n\n<p>A Premium license (79\u20ac\/year per site, with a 14-day free trial, no credit card required to try) unlocks:<\/p>\n\n<ul>\n<li>AI-suggested floor plan layout (Gemini-based).<\/li>\n<li>Automatic WhatsApp notifications via the Meta WhatsApp Business Platform.<\/li>\n<li>Automatic post-visit Google review requests.<\/li>\n<li>The Customers tab (aggregated booking history per customer).<\/li>\n<li>The AI assistant command bar (natural-language commands across the admin).<\/li>\n<\/ul>\n\n<p>The trial doesn't start automatically at activation: start it with one click, no card required, from Tavolix \u2192 Licenza whenever you're ready. After the trial, these specific features pause until a license is activated from the same page; every free-tier feature keeps working normally, with no interruption and no nag screens blocking the rest of the plugin.<\/p>\n\n<h4>External services<\/h4>\n\n<p>Tavolix integrates with two optional third-party services. Both are <strong>off by default<\/strong> and only activate once you configure your own API credentials for that service in Tavolix \u2192 Impostazioni.<\/p>\n\n<p><strong>Google Gemini (AI floor plan suggestions, and the AI assistant command bar)<\/strong>\nIf you enter a Gemini API key, Tavolix uses Google's Generative Language API for two features: (1) the \"Suggerisci layout AI\" feature sends your restaurant's room dimensions and table configuration (numeric layout data only \u2014 never customer or booking data) to receive a suggested table arrangement, only when you explicitly click the AI suggestion button; (2) the AI assistant command bar, shown at the bottom of every admin screen, sends your typed command together with your current rules, opening hours\/closures, tables, events, email\/WhatsApp\/review settings, and a list of upcoming non-cancelled bookings (customer first\/last name, date, time, party size and status only \u2014 never email, phone or notes) so the assistant can carry out the request you typed (e.g. creating a closure rule, or cancelling\/rescheduling a specific booking) immediately, without a preview step. This call happens only when you send a message in the assistant bar.\nService: Google Gemini API \u2014 <a href=\"https:\/\/ai.google.dev\/gemini-api\/terms\">Terms of Service<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a>.<\/p>\n\n<p><strong>Meta WhatsApp Business Platform (Cloud API)<\/strong>\nIf you configure a Phone Number ID, WABA ID and Access Token and enable WhatsApp notifications, the plugin sends the customer's name and phone number, plus the restaurant name and booking date\/time\/party size, to Meta's WhatsApp Cloud API (<code>graph.facebook.com<\/code>) in order to deliver a booking confirmation, waitlist, reschedule or cancellation message. This only happens for bookings where the customer provided a phone number, and only while the WhatsApp toggle is enabled.\nService: Meta WhatsApp Business Platform \u2014 <a href=\"https:\/\/www.whatsapp.com\/legal\/business-terms\">WhatsApp Business Terms<\/a>, <a href=\"https:\/\/www.facebook.com\/privacy\/policy\">Meta Privacy Policy<\/a>, <a href=\"https:\/\/developers.facebook.com\/terms\">Meta Platform Terms<\/a>.<\/p>\n\n<p>Both integrations require you to create and own your own developer account\/API key with the respective provider; Tavolix does not proxy, log, or have access to this traffic beyond what your own site sends directly.<\/p>\n\n<p><strong>Your restaurant management software (optional booking webhook)<\/strong>\nIf you enter a webhook URL and an API key in Tavolix \u2192 Impostazioni \u2192 \"Gestionale di sala\", every successful online booking is also sent to that URL (customer name, phone number, booking date\/time, party size and notes), authenticated with your API key. The URL is chosen by you and points to your own restaurant management software: Tavolix does not operate this service and sends nothing unless both fields are filled in. A failed call never blocks the customer's booking.<\/p>\n\n<p><strong>Freemius (licensing for Premium features)<\/strong>\nIf you activate a Premium license (see \"Free vs. Premium\" above) or start the 14-day Premium trial, Tavolix uses the Freemius SDK to manage the license: this sends your site URL, plugin version, and \u2014 only if you complete a purchase \u2014 billing details you enter directly on Freemius' own checkout page (Tavolix itself never sees or stores payment details). This only happens if you activate a trial or license; the free tier works with no connection to Freemius at all.\nService: Freemius \u2014 <a href=\"https:\/\/freemius.com\/terms\/\">Terms of Service<\/a>, <a href=\"https:\/\/freemius.com\/privacy\/\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/ristorante-ai<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Open <strong>Tavolix<\/strong> in the admin menu to configure your floor plan, rules and tables \u2014 a setup wizard will guide you through the basics.<\/li>\n<li>Add the <code>[ristorante_booking]<\/code> shortcode to a page to publish the public booking widget.<\/li>\n<li>(Optional) Go to <strong>Tavolix \u2192 Impostazioni<\/strong> to enter your Gemini API key (for AI layout suggestions) and\/or your Meta WhatsApp Business credentials (for WhatsApp notifications).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20external%20ai%20api%20key%3F\"><h3>Do I need an external AI API key?<\/h3><\/dt>\n<dd><p>No. The Gemini API key is only needed if you want AI-suggested floor plan layouts; every other feature works without it.<\/p><\/dd>\n<dt id=\"do%20i%20need%20whatsapp%2Fmeta%20credentials%3F\"><h3>Do I need WhatsApp\/Meta credentials?<\/h3><\/dt>\n<dd><p>No. WhatsApp notifications are entirely optional. Without them, customers still receive email notifications for confirmations, waitlist, reschedule and cancellations.<\/p><\/dd>\n<dt id=\"where%20is%20customer%20data%20stored%3F\"><h3>Where is customer data stored?<\/h3><\/dt>\n<dd><p>Bookings (including customer name, email, phone and notes) are stored in a dedicated table in your own WordPress database. Settings, rules and configuration are stored as standard WordPress options. Nothing is stored outside your site unless you explicitly enable the Gemini or WhatsApp integrations described above.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens to my data if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Deleting the plugin (not just deactivating it) removes all Tavolix options, credentials and the bookings table from your database.<\/p><\/dd>\n<dt id=\"where%20is%20the%20source%20code%20for%20the%20bundled%20javascript%3F\"><h3>Where is the source code for the bundled JavaScript?<\/h3><\/dt>\n<dd><p>The <code>\/assets<\/code> folder ships a production build (bundled and minified) of the plugin's React\/TypeScript admin interface. The full, human-readable source code \u2014 including <code>package.json<\/code> and build instructions (<code>npm install &amp;&amp; npm run build<\/code>) \u2014 is included in this plugin package under <code>\/src<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Fixed the guest-count selector in the public booking widget on narrow phone screens: the \"+\" button was pushed outside the card and the \"-\" button was squeezed.<\/li>\n<li>New installs are now open every day by default (previously Monday was closed by default, while the setup wizard said \"every day\"). Choosing a shift preset in the setup wizard now also clears weekly closing days. Existing sites keep their saved closing days.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Added optional booking webhook: each successful online booking can be mirrored to your own restaurant management software (Tavolix \u2192 Impostazioni \u2192 \"Gestionale di sala\": webhook URL + API key, stored encrypted). Off by default; a failed call never blocks the customer's booking.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Removed the only remaining inline <code>&lt;style&gt;<\/code> tag (in the standalone customer self-service booking-management page) in favor of inline element styles, per WordPress.org guidelines on enqueuing CSS.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Renamed the plugin from \"RistoranteAI\" to \"Tavolix\" (display name and Text Domain only \u2014 internal PHP class names, the REST namespace, the <code>[ristorante_booking]<\/code> shortcode and admin URL slugs are unchanged for backward compatibility).<\/li>\n<li>Added the full React\/TypeScript source code for the admin interface under <code>\/src<\/code>, with build instructions, alongside the existing production build in <code>\/assets<\/code>.<\/li>\n<li>Fixed Contributors to match the actual WordPress.org account (<code>danilante<\/code>) that owns this plugin submission.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fixed Text Domain header to match the plugin slug (was \"ristorante-ai\", now \"ristoranteai\") so translations load correctly from WordPress.org.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Introduced a freemium licensing model: the core plugin (bookings, floor plan, rules, email, GDPR tools) remains free forever; AI floor plan suggestions, WhatsApp notifications, automatic Google review requests, the Customers tab, and the AI assistant bar are now Premium features (79\u20ac\/year per site, 14-day free trial, no card required to try, started with one click from Tavolix \u2192 Licenza).<\/li>\n<li>Added Tavolix \u2192 Licenza page to view trial\/license status and activate a Premium license.<\/li>\n<li>Licensing powered by Freemius; see the \"External services\" section above for what's shared.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added AI assistant command bar (requires a Gemini API key), shown at the bottom of every admin screen: type a request in plain language (e.g. \"chiudi il luned\u00ec da oggi a fine dicembre\") and it's carried out immediately across rules, opening hours\/closures, tables, special events, email\/WhatsApp\/review settings, and individual bookings (confirm\/cancel\/reschedule) \u2014 never against stored credentials or API keys.<\/li>\n<li>Added rate limiting to the new AI assistant endpoint.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>WhatsApp notifications rewritten to use the Meta WhatsApp Business Platform (Cloud API) directly, replacing the previous Twilio-based integration \u2014 no more third-party messaging markup.<\/li>\n<li>Settings page: Gemini API key and Meta Access Token are no longer echoed back in the page HTML; fields show a placeholder and a \"remove\" option instead, reducing exposure of stored secrets.<\/li>\n<li>Added rate limiting to the WhatsApp test-send endpoint.<\/li>\n<li>Added uninstall cleanup: all plugin options, credentials and the bookings table are now removed when the plugin is deleted.<\/li>\n<li>Added Email tab: automated confirmation\/waitlist\/reschedule\/cancellation emails to customers, plus owner notifications.<\/li>\n<li>Added Google tab: ready-to-use booking link for Google Business Profile, and automatic post-visit review request.<\/li>\n<li>Added Customers tab: aggregated booking history per customer.<\/li>\n<li>Added guided setup wizard and dashboard tour for first-time configuration.<\/li>\n<li>Added self-service booking cancellation link (tokenized, no account required) in confirmation emails.<\/li>\n<li>Added GDPR export\/erasure support via WordPress' native Privacy Tools.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Server-side validation of booking rules (closures, blocked\/limited slots, minimum covers) in <code>POST \/booking<\/code>, not just client-side.<\/li>\n<li><code>GET \/manage<\/code> (admin) supports filters and pagination (from\/to\/status\/limit\/offset) instead of always loading the full booking history.<\/li>\n<li>Real seating-capacity check per time slot based on tables mapped in the Floor Plan, in addition to the daily <code>maxDailyPax<\/code> cap.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Version alignment between plugin header and readme.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public version.<\/li>\n<li>React-based admin interface.<\/li>\n<li>REST API endpoints for data and layout.<\/li>\n<li>Settings page for Gemini API key.<\/li>\n<\/ul>","raw_excerpt":"AI-powered restaurant booking, floor plan management, and customer notifications (email + WhatsApp) for WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/362829","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=362829"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/danilante"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=362829"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=362829"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=362829"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=362829"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=362829"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=362829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}