Documentation
Technical documentation for connecting and configuring AI Waiter.
Quick start — any site (manual script)
Connecting AI Waiter to any website takes two steps:
- Copy your widget key and embed code from Site Integration in your panel.
- Paste the code before the closing
</body>tag of your website:
<script defer src="https://waiter24.ai/widget.js" data-key="YOUR_KEY"></script>
That is all — the widget appearance, texts, language behaviour and features are managed from your panel, with no code changes. It works with any site, including SPAs (React, Vue, Next.js) and site builders. After changing settings, refresh your website page.
Recommended setup order
- Menu — load your dishes. If you run an online store, the native plugin syncs them automatically; otherwise import from a photo/PDF, upload JSON or add them by hand. See Getting your menu into AI Waiter. The AI only recommends what is on your menu.
- Chat Test — talk to your assistant in the panel before going live.
- Site Integration — embed the code (or connect your store plugin) and point the assistant at your site.
- Widget Settings — choose the widget mode (restaurant Assistant or Support desk), then tune texts, language and features.
- About the venue — your address, phone, weekly opening hours and house rules (parking, wi-fi, payment, reservations, pets). The assistant answers venue questions only from what you enter here.
- Optionally connect Telegram and WhatsApp bots, configure delivery zones, loyalty, reservations and other features from the sidebar.
Getting your menu into AI Waiter
The assistant only ever recommends dishes that are on your menu, so loading it is the first thing to do. Pick whichever way fits how your menu already exists — you can combine them and re-import at any time.
- Native store plugin — the easiest way. If you run an online store on WooCommerce, Shopify, Magento 2 or Shopware, install our plugin/app for it. It pushes your whole product catalogue to AI Waiter and then keeps it in sync automatically on a schedule — new dishes, price changes and sold-out items flow through with no manual re-import. The same plugin also embeds the chat widget for you. See E-commerce integrations below.
- Photo or PDF of your menu. On the Menu page choose Import from photo/PDF and upload a picture or PDF of your paper menu — the AI reads it and creates the categories and dishes for you. Ideal when you have no online catalogue.
- JSON file. Choose JSON → Import to upload a menu file (download the sample first to see the format), or Export to back your menu up. Handy for a bulk load or for moving a menu between accounts.
- By hand. Add categories, subcategories and dishes directly in the Menu editor — with prices, variations, photos, weight, tags and allergen/nutrition info.
- Sizes that import as bare numbers. Stores often name pizza sizes "24", "30", "40" and leave "cm" to a photo. Set the unit of measurement for sizes once — on the dish, or on a whole category at once — and the assistant says "40 cm" everywhere instead of a naked "40". It never guesses a unit on its own.
Every import lets you choose Replace (treat the file as the whole menu) or Upsert (update matching dishes and add new ones). Dishes that disappear from an import are hidden from the assistant, never deleted — re-import to bring them back. Every attempt, manual or automatic, is listed in the import history on the Menu page.
Need a clean slate? Clear menu in the menu toolbar deletes every dish and category of the selected menu after a confirmation, and keeps the menu itself — its name, its main-menu flag and any QR page bound to it — so your next import lands in the same place.
E-commerce integrations
If you run an online store, install the native plugin/module for your platform — it is the easiest way to load your menu and keep it in sync. It pushes your product catalogue to AI Waiter automatically and embeds the chat widget — no manual script or menu upload needed.
WordPress / WooCommerce
Install the plugin, paste your import token from Site Configuration and press Export Now — that first click loads your whole catalogue. To keep it current without touching anything, set Automatic Sync to Daily, Weekly or Monthly; it is off on a new install, so nothing is sent until you ask for it.
Repository & installation guide: github.com/waiter24ai/waiter24-woocommerce
Shopify
Install the Shopify app, connect your store and the catalogue syncs automatically; the widget is added to your storefront.
Repository & installation guide: github.com/waiter24ai/waiter24-shopify
Magento 2
Install the module via Composer, enter your import token in the admin configuration and press Export Now. Set Automatic Sync to Yes when you want the daily cron to keep the catalogue current — it is off on a new install, so nothing is sent until you ask for it.
Repository & installation guide: github.com/waiter24ai/waiter24-magento2
Shopware 6
Install the plugin, configure your import token in the plugin settings and run the export once. Turn Automatic Sync on to have the daily scheduled task keep the catalogue current — it is off on a new install, so nothing is sent until you ask for it.
Repository & installation guide: github.com/waiter24ai/waiter24-shopware
Messaging channels
Telegram
Create a bot with @BotFather, copy its token and paste it in Telegram settings in your panel. The same menu, prompts and features power the bot — including order collection.
Personal notifications: at the top of Telegram settings you can also subscribe your own Telegram to order/reservation/callback notifications via waiter24.ai's own notification bot — no customer-facing bot required, and no need to look up a chat ID. One tap on the link, and it takes priority over the manual "Telegram chat ID" field below it.
Connect via WhatsApp Business Cloud API credentials (phone number ID and token) in WhatsApp settings. Configure the webhook as described on that page to start receiving messages.
Billing & subscription
Every new account starts with a 14-day free trial — full access, no card required. When it ends, choose a plan on the Billing page to keep your assistant running.
Plans are billed monthly or yearly and charged automatically by our payment provider — Paddle (international cards) or LiqPay (UAH, for Ukrainian businesses). You get an email receipt for every charge and can cancel any time, keeping access until the end of the paid period.
If the trial ends without a subscription, or a renewal payment fails, the chat widget and bots pause until payment is restored — your menu, settings and history are kept. Full details: Billing & subscription guide.
Digital QR menu
Turn your menu into a public page guests open by scanning a QR code — no app, no login. Enable it under QR menu in your panel, set a logo, a short description and the display language, then download the QR image (PNG or SVG) and print it.
The page shows your menu as a mobile-friendly accordion (categories → subcategories → dishes) with photos, prices, weight, nutrition and allergens. Dishes with sizes or variants get a dropdown to pick one. Guests flip a switch on any dish to collect it in a favourites list — a popup from the bottom of the screen shows each pick, the variant chosen and a running total, and their selection survives a page reload. If you enter a number of tables, we generate one QR per table (table_1, table_2, …) plus a generic one, so a scan already knows the table — guests can then call a waiter or order through the assistant in one tap. The public link is a private, revocable token: if a printed QR ever leaks, regenerate it and the old codes stop working.
Your menu in several languages
A QR menu can be published in more than one language, so a foreign guest reads your dishes in their own. In the Languages block of the QR menu settings, say which language your menu is already written in, then add the others you want to offer — around fifty are available, right-to-left ones such as Hebrew and Arabic included. Save, and a Machine translation panel appears with one row per language you added: press Translate and dish names, descriptions, categories, tags, weights and size labels are translated in the background. On a large menu that takes a few minutes and you can leave the page; progress is shown right there.
Prices, numbers and photos are never touched. A language switcher appears at the top of the public page, and the printed QR code keeps opening your original language — so adding a language never means reprinting codes. Translations are stored per dish and survive a menu re-import or a sync from your website, and pressing Translate again only fills in what is new, so the dishes already done cost nothing. If you rewrite a translated name by hand, later runs keep your wording. Treat a machine translation as a good first draft rather than a proofread menu: read the public page before you print.
Multiple menus
Depending on your plan you can create several menus — for example a main menu, a bar card and a seasonal brunch. One menu is the main menu: it powers the chat widget on your site and the Telegram/WhatsApp bots. The others are extra menus you can point a QR page at — and the AI consultant on that QR page answers from the menu that page shows, so a bar QR never recommends dishes from the kitchen card. Create, duplicate, rename or switch the main menu from the Menu page; the counter there shows how many menus your plan allows.
Frequently asked questions
Do I need to install anything on my server?
No. One line of code on your website is enough — or a native plugin if you use WooCommerce, Shopify, Magento or Shopware.
How do I load my menu?
Four ways: our native store plugin auto-syncs it from your online shop (the easiest), an AI photo/PDF import reads your paper menu, a JSON file import handles bulk loads, or you add dishes by hand in the editor. See Getting your menu into AI Waiter.
How do I update the menu?
Edit it in the Menu section of your panel — changes reach the assistant immediately, with no code changes on your site. If your menu comes from an online store through our plugin, just update the products there and the next sync pushes the changes across automatically.
Can I use my own AI provider key?
Yes — enable «Use my own API key» in AI Settings and choose your provider (OpenAI, Gemini, Mistral and others, or a self-hosted endpoint).
What happens when my daily limit is reached?
The chat politely tells the guest it is temporarily unavailable, and you receive a notification. Limits reset daily in your restaurant's time zone.
How do guests see my menu without using the chat?
Enable the QR menu, print the generated QR code, and guests open a clean, mobile digital menu by scanning it — categories, photos, prices, nutrition and a favourites list, in the language you choose. No app and no login required.
Can I have more than one menu?
Yes, if your plan allows it. The main menu drives the website assistant and the bots; extra menus can be created or duplicated on the Menu page and bound to a QR page, whose own AI consultant then answers from that menu. You can make any menu the main one at any time.
How do I tell guests about my current promotions?
There are three places, depending on how the discount is applied. A cut price on a single dish goes into that dish's Sale price field in the menu editor — the assistant then quotes the new price and order totals are calculated from it. A code the guest types goes under Promo Codes, where the server validates it and applies the discount. Everything else — "second pizza half price", a holiday menu, happy hour — is described on the Promotions & schedule page, with the dates, weekdays or hours it runs; the assistant mentions it only during that window. Promotions described there are announced, not calculated, so state who applies the discount: your checkout or your staff.
Need something custom?
If your platform is not listed or you need a bespoke integration, contact our support team and we will help.