M cenaly.com

Task · three widgets · two of them free

Take table reservations from the website you already have

The site exists, but reservations still arrive by phone and in the evening nobody can pick up. This bundle fixes that without moving the site: a guest books a table right on your page, the one who could not get through leaves a number, and those who prefer messengers write from a single button. Everything lands in your Cenaly.com back office, not in somebody’s inbox.

  • The reservation is made on your site — no phone call, no third-party page
  • No answer? The guest leaves a number and the server says honestly what happens next
  • WhatsApp, Telegram, Viber and a phone call in one button instead of a pile of icons
  • The whole shift sees it: a card in the «Needs a decision» queue

Callback and the messenger button are free. Table booking is a paid extension.

Reservations from the site you already have
  • Table booking
  • Callback
  • Messenger button
One tag for every widget8 of 12 widgets are freeShadow DOM — your layout stays intactRequests land in your own back officeTwo clouds: AWS and Russia
tag for all three widgets — you touch the code once
1
widgets in the bundle are free: callback and the messenger button
2 of 3
callback outcomes, and each one is named by the server, not by the form
4
is how long a change in the admin panel takes to reach the site — CDN cache
5 min

What the guest sees

The guest never leaves your page and registers nothing.

  1. 1

    Sees a button in the corner

    Label, colour and corner are yours to set, so the button looks like part of the site rather than an add-on. It can also be opened from your own «Book a table» button in the header.

  2. 2

    Fills one short form

    Name, phone, date, time, party size (1 to 50) and a comment. No steps, no jumping to another site: the panel opens over your page and carries your venue name in its header.

  3. 3

    Gets an honest answer

    «Request sent — the venue will confirm your reservation.» The widget never draws a confirmed table: you confirm it, and the guest knows that from the start.

  4. 4

    Or picks their own channel

    They tap the handset and hear from the server what will happen: «calling you now», «we will try again at 14:20», «we will call at 09:00», «we will call you back». The time is a number, in the venue’s time zone. Prefer a messenger? It opens from the same button.

What happens on your side

The request does not settle in an inbox — it lands in the section where the shift works with it.

The reservation appears in «Tables»

With time, party size, phone and comment — the same path a reservation from our storefront takes. From there it is an ordinary reservation: confirm, seat, serve.

Reservations and tables →

A card joins the «Needs a decision» queue

The whole shift sees it in the team chat; «👤 Take it» shows colleagues who already picked it up without locking anyone out.

Team chat →

The callback request goes to «Requests»

With a source passport: which page the person came from, which ad, which kind of device. Groups by source build themselves.

Requests →

Website widgets feed the dashboard

Impressions, opens and submitted forms are a separate data source next to orders, reservations and calls.

Dashboard →

Which widgets to switch on

In this order: first what the guest came for, then the fallback doors.

$9/mo

Table booking

The main door: a booking form right on your page

A floating button and a single-screen form. It only shows up when reservations are enabled for the venue. It also opens programmatically — from your header button or from the messenger button — and can be pre-filled with a date and time (say, from your «private events» page). The server does not wait for a confirmation: this is a request, and the decision stays with the venue.

Widget page →
Free

Callback

For people who would rather talk than type

The guest leaves a number and the server, not the form, names the outcome: with a live outgoing channel the PBX dials right away, without one the request waits for you. There are retries, an overnight queue for the morning, page masks (up to 20), a display delay from 0 to 600 seconds, and a schedule tied to your opening hours.

Widget page →
Free

Messenger button

One button instead of a pile of icons

A fan of channels: WhatsApp, Telegram, Viber, VK, Instagram, Facebook, TikTok, YouTube, phone, e-mail, a custom link — up to 12. The «Book a table» item opens the very same booking form. It hides the buttons of neighbouring widgets itself, so the corner stays clean.

Widget page →

All 12 widgets →

What you do once

1

Create a free account

A Cenaly.com account and your website domain in the «My website» section. The site stays yours — we do not move or copy it.

2

Paste one tag

One line before </body>: into your WordPress theme, the HTML block on Tilda or Wix, theme.liquid on Shopify. The tag is shared by all widgets — you will not touch the code again.

3

Switch on the widgets you need

Every widget is a toggle with its own settings. Changes reach the site without a developer; the CDN cache is five minutes.

The tag itself

<script src="https://cdn.cenaly.com/site/v1.js" data-domain="your-site.com" async></script>

One tag for every widget. `data-domain` is your site, everything else lives in the admin panel.

How it plays out in different venues

Restaurant and café

A booking button on the home and menu pages turns evening seating into requests instead of phone calls. The messenger button collects WhatsApp and Telegram into one corner — on a phone that is one button instead of three.

Bar, karaoke, hookah lounge

Groups of up to 50 book a table themselves, and the comment («birthday, we need a sofa») arrives with the request. The callback picks up whoever wants to discuss the deposit out loud.

Hotel with a restaurant

The tag goes on the hotel site: a guest books dinner without leaving the room-booking page, and the request lands in the same back office where the restaurant already lives.

Salon, retail, services

If what you sell is a specialist’s slot rather than a table, the job is a different one — it is about empty slots in the schedule, and it has its own bundle.

What this bundle does not do

  • The booking widget produces a request, not a confirmed table: it does not calculate room occupancy and does not pick a table — the venue does.
  • There is no deposit or online payment in table booking — prepayment exists for service appointments, not here.
  • «Request accepted» is not «the call happened»: the callback states exactly the outcome the server confirmed.
  • Without connected telephony the callback stays a request — the live dialling is done by your PBX, and the minutes are billed by your carrier.
  • We do not call at night on our own: outside the schedule it is either a morning queue with a named hour or a plain request.
  • A tap on a messenger opens that messenger — the conversation lives there, not in your back office; to receive those messages you connect the channel as a separate integration.
  • If your site does not hand us the settings (blocked by headers, network dropped), the button stays visible: an owner never notices a silently hidden button, but they do notice missing requests.

What the bundle costs

Two of the three widgets are free forever; only table booking is paid.

  • Callback and the messenger button are free, with no cap on requests, sites or pages.
  • Table booking is a paid extension from the catalogue.
  • We do not charge per visitor, per widget view, per request or per «successful call».
  • Call minutes belong to your carrier: we charge nothing per minute.

Questions and answers

My site runs on Tilda (WordPress, Wix). Do I have to migrate it?

No. One line goes into the HTML block on Tilda, the theme template on WordPress or theme.liquid on Shopify — that covers all three widgets at once.

Where does the reservation arrive?

In the «Tables» section of your back office — the same path a reservation from our storefront takes — and as a card in the «Needs a decision» queue of the team chat, so the whole shift sees it.

Will the guest think the table is already held?

No: the widget says «Request sent — the venue will confirm your reservation». We deliberately do not show a confirmation that never happened.

Does the widget know which tables are free?

No. It is a request form: it does not compute occupancy and does not choose a table. Free slots are computed by the neighbouring bundle — the one about service appointments.

Is telephony required for the callback?

Not necessarily. Without it the guest leaves a number and sees «we will call you back». With an outgoing channel connected the PBX dials immediately and the guest sees «calling you now».

How many buttons end up in the corner?

One. The messenger button hides its neighbours and collects their actions into its own fan; if you would rather keep separate buttons, one tag attribute turns that off.

Do I have to rebuild my website?

No. The widgets live on your site: one tag before `</body>`, and everything else is toggles in the admin panel. Your layout, hosting and domain stay as they are.

Will this slow the site down?

The loader is one small `async` script and never blocks rendering. Only the widgets you enabled are downloaded, and the heavy parts wait for the visitor: the back-in-stock form weighs 13.7 KB and loads after the click, while the page carries an 889-byte launcher until then.

Will a widget break my layout?

No. Widgets render inside Shadow DOM: your site styles do not reach them, their styles do not leak out.

Where is the data stored?

In the cloud your account lives in: cenaly.com — AWS, cenaly.ru — Yandex Cloud in Russia. Requests, conversations, reservations and appointments never leave the brand perimeter.

Platform-by-platform installation, settings and troubleshooting are in the docs. Setup guide in the docs →

Let reservations arrive from the site, not only by phone

One tag, three widgets, requests in the back office your shift already uses.

Start free

No card. Callback and the messenger button are free; booking is a catalogue extension.