Your printed QR code
The window, the counter, a poster, a flyer, an invoice, the van. A phone camera is the only thing the customer needs, and it is the option that works with no website at all.
OpusDone answers a customer on your website widget or your Telegram bot, checks your live calendar, and books the appointment inside the same conversation. Every channel enters the same function, so the answer does not depend on the door the customer came through. This page follows one message through every step the runtime takes.
Reviewed

None of them are optional, and none of them depend on the customer being polite about it.
Everything above is the setup. This is the part most small businesses never plan: which surface a customer is actually standing in front of when the question occurs to them. Same knowledge, same rules about what it will never say, one inbox.
The window, the counter, a poster, a flyer, an invoice, the van. A phone camera is the only thing the customer needs, and it is the option that works with no website at all.
One script tag on the site you already have. The conversation it starts is the same conversation a printed code would have started, from the same knowledge, into the same inbox.
Nobody is watching the widget. Here is what happens anyway.
Someone opens the widget before you have unlocked the door and asks whether you are open on Sunday.
Your assistant replies in the language they wrote in, using only the entries you marked live.
With Google Calendar or Cal.com connected, availability is re-read at the moment of writing, so the slot cannot be taken twice.
An email address is captured and scored, then written to your Google Sheet or posted to your endpoint within a minute.
The escalation card reaches your Telegram alerts bot with the customer, the channel, the reason and the last five messages.
Greeting, question, answer, real times from your calendar, the booking written in, and the lead in your inbox — in one conversation, with nobody asked to fill in a form. When it does not know something it says so and fetches you, which is the only reason the rest of it can be trusted.
The full thread as the customer saw it, with the AI disclosure prepended to the first reply before the message was stored, and the escalation reason attached if one was raised.
Five escalation reasons: low confidence, sensitive, explicit request, tool failure, other.

The slot the customer picked, written straight into Google Calendar or Cal.com with two hours’ minimum notice by default. Closed days and working hours were checked before any option was offered.
Availability is read again at the moment of writing, so it cannot double-book.

One lead per person, deduped on email, phone or visitor key across channels, and scored on published weights: opened chat +10, engaged +10, name +10, company or website +25, email +40, phone +40, booked +40, capped at 100.
You are alerted at 50. Hot is 75, warm 50, cool 30.

A small chat window in the corner, your business name on it, and a greeting you wrote. One script tag, and the conversation it starts is the same conversation that would have started from a printed code.

None of it needs a developer after the first line.
These are not tendencies or defaults. They are rules in the runtime, and they hold when the customer is persistent.
Prices, timelines, capabilities, availability: if it is not in the knowledge you approved, it is not in the reply. The instruction is explicit, and the way out is a human, not a guess.
A separate block forbids offering actions it cannot perform. It cannot check stock, track an order, send a document, apply a discount, or say it will find out and come back. That rule was written after a sandbox reply offered to look up a price history it had no way to reach.
There is no vision capability. A photo or a file it cannot read skips the model entirely: an honest acknowledgement, an escalation, and your inbox shows what arrived.
If a customer asks for a human and the model does not escalate, the runtime creates the escalation itself. Any tool that fails escalates too, and the conversation carries on rather than stopping dead.
Pages imported from your website land as awaiting approval, never live. You read them and approve them, or they never reach a customer.
Free to build and test, no card. The trial runs fourteen days from the day you go live. See the pricing page for today’s plans.
Request access