Add-on · no fee per guest
A floating “Book a table” button, one form without registration — and the request appears in the Tables section of Cenaly.ru next to bookings taken by phone. For venues that would rather not pay for every guest they seat themselves.
No card. A minute to sign up, another for the tag.
The button sits in the corner of your site, and you can also open the same panel from your own link or a QR code on the table.
Name, phone, date, time, party size and a note — all on one screen. Today’s date is prefilled and no account is required.
The widget doesn’t promise a confirmed table: it says the venue will confirm, and offers to book again.
In the Tables section it lands next to bookings from the phone and the QR menu. You confirm it or offer another time.
A free Cenaly.ru account and your site domain in the "My website" section.
One line before </body> — in your theme, in a Tilda or Wix HTML block, in Shopify's theme.liquid. It serves every widget.
Each widget is a toggle and a settings form. Changes reach your site without touching code; CDN cache is five minutes.
The tag
<script src="https://cdn.cenaly.ru/site/v1.js" data-domain="your-site.com" async></script> One tag for all widgets. `data-domain` is your site; everything else lives in the admin.
One screen, no steps and no registration: name, phone, date, time, party size, note. Today is prefilled and the default time is in the evening. Best for sites where guests abandon long forms.
A website request enters the Tables section the same way a phone or QR-menu booking does — no second list and no separate spreadsheet appear. Best for venues whose bookings are scattered across email and messengers.
The widget button, a link in your site menu, a `window.CenalyBooking.open()` call from your own button, or a QR action link — the entry point is up to you. Best if your site already has its own “Book” button.
A failed submission is reported right under the form and the entered data stays in place, so the guest doesn’t retype everything. Best for mobile traffic and patchy signal.
Button colour, corner, label and your venue name in the panel header, taken from your public profile. It renders inside a Shadow DOM and won’t break your layout. Best for carefully designed sites.
If bookings are switched off for a location, the widget quietly doesn’t start: a button leading nowhere is worse than no button. Best for chains where some venues don’t take bookings.
On Tilda or WordPress the button appears with the same tag as the other widgets — no template surgery.
A designed “Book” button in your menu opens our panel with a single line of JavaScript.
An action link opens the booking form immediately — guests book their next visit while still sitting with you.
Your bio or story leads to the site where booking is one tap away, instead of a thread in direct messages.
Guests book while the manager is working the room, and requests wait in the Tables section instead of the missed-calls list.
Each location has its own settings and its own list of bookings, while the tag on the site stays the same.
Colour, position and labels adapt to your site. The widget lives in a Shadow DOM — your styles don't break it, and it doesn't break yours.
On desktop
On mobile
Exact menu names and plan requirements, taken from each platform’s own help center.
Sites built with our website builder ship with the widgets already wired — nothing to paste.
Step-by-step guides per platform — in the help center →Add-on, price in the catalogue
| Without the widget | With the widget | |
|---|---|---|
| How guests book | ✕ The guest calls, and at peak time nobody picks up straight away | ✓ They book from the site themselves: one form, no call, no account |
| Price | ✕ Booking platforms charge for every guest you seat | ✓ A flat add-on price that doesn’t move with the number of bookings |
| Where bookings live | ✕ Website bookings arrive by email and live in a separate spreadsheet | ✓ The request lands in the Tables section next to phone bookings |
| After-hours requests | ✕ At night there is nobody to take the request and the guest goes elsewhere | ✓ The form accepts requests around the clock and you handle them in the morning |
| Confirmation | ✕ The guest has no idea whether they are expected | ✓ The venue confirms, and the guest gets an answer |
A table booking widget is a button and a short form on a venue’s website through which a guest requests a table: date, time and party size. The request lands where you already keep phone bookings, so no duplicate work appears.
It matters where the call is the bottleneck: the evening rush, one manager covering the room and the phone, and guests who would rather tap a button than talk. And where bookings currently go to platforms that charge for every guest you seat.
Here it is an add-on with a flat price and no per-guest fee: however many bookings arrive, the bill stays the same. Bookings from the phone, the QR menu and your Cenaly.ru storefront remain free — only the widget on your own website is paid.
The “Booking widget” add-on is $9 a month or $90 a year — paying yearly means 10 months instead of 12. There is no per-guest commission: the number of bookings doesn’t affect the price.
Into the Tables section of your dashboard, next to bookings from the phone and the QR menu. No second list and no separate spreadsheet appear.
No. Booking works without a table layout, as a list of requests for a date. A floor plan adds seating by specific table, but the widget doesn’t require it.
Once the venue confirms the booking. The widget itself says “request sent, the venue will confirm” — it will not promise a table on your behalf.
Yes: `window.CenalyBooking.open()` opens the panel from any button or link of yours. There is also an action link for QR codes — on the table or printed on the bill.
The form takes them around the clock and you handle them in the morning — they wait in the list. If a voice conversation is needed, add the callback widget with its morning queue.
The shared “My website” tag plus the Booking toggle. WordPress — footer.php or a plugin, Tilda — HTML code in head, Shopify — theme.liquid, Webflow — Custom code.
A table booking is a request for seating that the room distributes. An appointment picks a specific staff member and a free slot from a live schedule — that is the neighbouring free widget.
The loader is one small `async` script; widgets load as separate bundles and only the ones you switched on. Nothing blocks page rendering.
No. Widgets render inside a Shadow DOM: your site's CSS doesn't affect them and theirs doesn't leak out.
It reads your page's `<html lang>` or a `data-lang` attribute on the tag. Built-in labels are translated into 45 languages; your own texts you write in the admin in the languages you need.
In the cloud your account lives in: cenaly.com — AWS, cenaly.ru — Yandex Cloud in Russia. Requests, conversations and bookings stay within the brand's contour.
More — installation per platform, settings and troubleshooting — in the help center. Installation guide →
Switch the add-on on — the tag is already there. One screen of form, and bookings appear in your floor plan.
Start for freeNo fee per guest · yearly = 10 months instead of 12