Free · numbers computed server-side
A small badge in the corner: “14 orders today”, “7 appointments this week”, “★ 4.8”. The numbers are computed by our backend from your own orders, bookings and appointments — the settings have no free-text field at all. For sites where the numbers genuinely exist.
No card. A minute to sign up, another for the tag.
Nothing jumps out immediately: you set the first delay, and by default the widget lets people look around first.
“14 orders today” or “★ 4.8 from 37 ratings”. The wording is assembled by the system from the fact type and the number, plurals included.
It stays for a few seconds and disappears; the next one comes no sooner than the silence you configured — 45 seconds by default.
The ✕ switches the badges off for the rest of the visit. A hidden tab never spends an impression: the cycle waits for the visitor to come back.
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.
Four fact types: orders today or this week, table bookings, service appointments and the average rating over 90 days. Only a real event moves the counter — there is no manual entry of “purchases” anywhere. Best where the flow exists but visitors can’t see it.
There is no “badge text” field: the wording is built from the fact type and the number. The public projection contains no free-form strings apart from dates and a time zone, so a guest’s name has nowhere to go. Best for anyone who wants their numbers to be checkable.
Data older than 36 hours is never shown, and “today” is checked against the venue’s own calendar: at 00:10 yesterday’s twelve orders stop being today’s. Best for venues with closing days and uneven demand.
A number below your threshold is not shown at all (3 by default). The average rating has its own floor — 5 ratings over 90 days — and it cannot be lowered: “★ 4.0 from two reviews” works against you. Best for new and seasonal businesses.
Up to 4 badges per visit, the pause counted from when the previous one left, no impressions spent on a hidden tab, the ✕ silencing the rest of the session, and animation that respects “reduce motion”. Best for sites with long sessions.
Any of the four corners, your accent colour, URL patterns, device and schedule. If one of our buttons is already at the bottom, the badge rises above it instead of sitting on top. Best for sites running several widgets.
“14 orders today” on the menu page tells the visitor the kitchen is working right now.
“7 appointments this week” on a service page shows demand without a single invented review.
“Booked 5 times today” belongs exactly where the guest is choosing between you and the place next door.
“★ 4.8 from 37 ratings” comes from your own reviews of the last 90 days and appears only from 5 ratings up.
URL patterns keep the badges on paid landing pages and out of the blog.
Every location has its own numbers, so a badge on a venue page speaks about that venue, not the group total.
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.
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 →Free
Widgets are the door into the Cenaly.ru platform: requests, chats and orders from your site land in the same admin as everything else, and some owners later buy extensions. We charge nothing per visitor, request or site; only products with our own running costs stay paid.
| Without the widget | With the widget | |
|---|---|---|
| Where the number comes from | ✕ The badge arrives by webhook and its contents are on the sender’s conscience | ✓ The number is computed server-side when an order, booking, appointment or review happens |
| Badge text | ✕ The text is written by the site owner and the visitor cannot verify it | ✓ There is no “badge text” field: wording is assembled from the type and the number |
| Stale data | ✕ Yesterday’s figures keep being shown as today’s | ✓ Nothing older than 36 hours is shown, and “today” is checked against the venue calendar |
| Personal data | ✕ The notification carries a real person’s name, city and purchase | ✓ The public file holds numbers and dates only — names are absent by design |
| Cost | ✕ A social proof service is another subscription | ✓ The widget is free and covers your site and your storefront at once |
Social proof on a website means short messages about what other people have already done: how many orders today, how many bookings this week, what the average rating is. It works for a simple reason — being somewhere others have already been feels safer.
The category damaged its own reputation. In most tools the badge is arbitrary text delivered by webhook, and several of them let you type events in by hand. Visitors sense it, and “Maria from Kazan just bought this” produces suspicion instead of trust.
Our badge is built differently at the schema level: the number is computed by the backend when the order, booking, appointment or review happens, and the public file contains no free-form text fields at all — an invented purchase physically has nowhere to live. Stale data retires itself: nothing older than 36 hours is shown, and “today” is checked against the venue’s calendar.
Then there is no badge. The widget stays quiet until the number clears the decency threshold (3 by default), and that is deliberate: advertising emptiness hurts more than silence.
No. Only aggregates go out — counts of orders, bookings and appointments, plus the average rating and how many ratings it is based on. Names, cities and products are absent from the public projection by schema, not by promise.
No, and that is the point of the widget. Any free-text field turns social proof into a fiction tool; the wording is assembled by the system from the fact type and the number.
From your own events: an order reaching “placed”, a table booking or an appointment being created, a review arriving. The recalculation happens at that moment, not on a schedule.
Up to 4 per visit by default, each visible for a few seconds, with the pause counted from when the previous one left (45 seconds by default). The ✕ silences them for the rest of the session.
The average and the number of ratings over the last 90 days from your own reviews — three numbers and nothing else. It is published from 5 ratings up; review texts and names are not in the public file.
Yes, one toggle covers both surfaces with the same selection rules, timings and wording. It has no separate “show on storefront” setting on purpose — the widget moves nothing on the page.
Nothing: there is deliberately no entry for it in the extensions catalogue. Switch it on if orders, bookings or appointments are coming in.
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 →
Modals, slide-ins, bars and lead forms with triggers and A/B testing
Add-on, price in the catalogue
A “Book a table” button → one form → a reservation in your floor plan
Add-on, price in the catalogue
An order button or an embedded storefront — delivery and pickup, commission-free
Free
Free, one toggle. The server does the counting — you never invent a figure or refresh one by hand.
Start for freeNo card required · no “badge text” field · stale numbers retire themselves