Running today on a real restaurant's menu and orders

An AI waiter for every table. And every call.

Bluefork picks up the phone, serves the QR-code tables, answers questions about the menu in the diner's own language, and drops the finished order on your kitchen board the moment it's placed.

No app for diners. No account to create. Works with a new number or the one on your door.

orders — the live board
The Bluefork order board showing incoming orders with accept and decline controls
A diner's order details card, built by talking to the assistant
3 languagesEnglish, French and Arabic — inside one call
~2 ringsAnswered, with the greeting a second later
0 appsDiners scan a code and start talking
24/7Nothing rings out during service, or after close

The problem

Every call that rings out is an order
that went somewhere else.

Service is the worst possible time to answer a phone, and it is exactly when the phone rings. Meanwhile the table in the corner is waiting to ask whether the risotto has nuts in it.

The phone wins, or the room does

Someone leaves the floor to take an order, or nobody picks up at all. Both cost you — one in service, one in revenue you never even see.

Questions nobody has time for

Allergens, substitutions, what's good tonight, what's actually still on. Answered brilliantly by your best server and vaguely by everyone else.

Orders retold three times

Caller to server, server to paper, paper to kitchen. Every hop is a chance to lose a modifier — and a table's evening with it.

Two doors, one assistant

The same brain answers the phone
and the table.

A caller and a diner holding a QR code reach the identical assistant — only the transport differs. Speech on one side, a chat screen on the other. They can't drift apart in quality, because there is only one of them.

The phone line

Answered in about two rings, greeted in your restaurant's language, and taken end to end — menu, questions, modifiers, the whole order.

  • Follows the caller's language mid-call — opens in French, switches to English or Arabic the moment they do.
  • Never dead air. If an answer takes a beat, it says "one moment, let me check that for you" rather than going silent.
  • Every call is written down — caller number, duration, and a readable transcript of what was said and what was ordered.
  • Your number, your carrier. A new local number, or the one already printed on your window.
diner — table #5 · an allergy question
A diner asks about a nut allergy and the assistant lists the vegetarian mains that are safe
diner — the menu, as cards
The menu rendered as photographed cards inside the diner chat

The table

A QR code on a brass stand. Scan it and the conversation is already open with the table number attached. No download, no sign-up, no waiting to catch someone's eye.

  • The real menu, with photographs — categories, items and option groups straight from your own data.
  • A basket they can see, a live order card, and a status that moves as your staff move the order.
  • Split the bill, pay, take a receipt — per-person portions and currency-aware totals.
  • "Call the waiter" still exists — it just flags your board instead of a raised hand across the room.

Your side of it

Orders land on a board.
That's the whole workflow.

Staff sign in and see one screen: what's come in, what needs accepting, what's paid. Whether the order arrived by phone or from table nine makes no difference to them.

orders — a new order arriving
A new order appearing live on the order board
menu — items and option groups
The menu manager listing categories and menu items

The live board

New, waiter requested, accepted, payment, closed, cancelled — filter tabs, and one tap to accept or decline.

Table QR codes

Generate a code for every table and download the set as a print-ready PDF.

Accounts and 2FA

Owner and staff sign-in, two-factor authentication, notification and payment settings.

Multi-branch

Each branch keeps its own menu, its own board and its own number. Orders stay pinned to the branch that took them.

See it

Fifty-six seconds.

The scan, the questions, the order reaching the kitchen, the phone getting answered.

Trilingual by design

It greets them the way you would.

You choose the greeting and the language it opens in. From there it follows the diner — including the caller who switches language halfway through a sentence.

English
Hi, welcome to Bluefork AI Restaurant! What can I get started for you?
Français
Bonjour, bienvenue chez Bluefork AI Restaurant ! Que puis-je vous servir ?
العربية
مرحباً بكم في مطعم بلوفورك للذكاء الاصطناعي! ماذا أحضر لكم؟

How it works

What happens between "hello"
and the pass.

The call is answered

Your number routes to the assistant over a carrier SIP trunk. It picks up in about two rings and speaks your greeting, unprompted.

A session opens for that diner

An anonymous guest session is created against the right branch and table. Nobody makes an account; nothing personal is asked for.

It reads your live menu

Items, prices, options and allergens come out of your own data at that moment. Nothing is copied into a second system to fall out of date.

The basket is built server-side

Every item the diner agrees to is written to a real cart — not held in a chat's memory. What they hear read back is what's actually in the order.

The order hits the board

Placed, routed to the branch that owns the conversation, and pushed live to your staff's screen — where they accept it and it goes to the pass.

Under the hood

For whoever asks the technical questions.

Telephony
A carrier SIP trunk into LiveKit Cloud's managed SIP, with a dispatch rule per number. Canadian local numbers today; France on the same trunk with no code change.
Voice pipeline
Local voice-activity detection, OpenAI speech-to-text with language auto-detect, OpenAI text-to-speech. No language model runs in the phone process — it transcribes, forwards, and speaks.
The assistant
A Python service on FastAPI and LangGraph that owns the dialogue and the ordering tools: menu search, allergens, cart, order placement.
System of record
A NestJS and Prisma API over PostgreSQL and Redis. The assistant holds no business data of its own — every cart write is an authenticated server-to-server call into the platform.
Diner identity
Guest tokens scoped to a single conversation, rejected by every route that doesn't explicitly opt in, and rate-limited at the point they're issued.
Branch safety
Orders route by the branch that owns the conversation, and an item belonging to another branch is refused at the cart. A multi-branch restaurant can't cross its own wires.
Deployment
Containers, hosted by us or run next to your own data. The phone worker scales separately from the platform.

Getting started

What we need from you.

Your menu

An export, a PDF, or access to whatever you use today. We bring across categories, items, options, prices and allergens.

A number

We provision a local one, or you point your existing number at us — so nothing printed anywhere has to change.

Your voice

The greeting, the language it opens in, and how it should sound. We write those with you, and you can change them any time.

Half an hour of staff time

One walkthrough of the board. It's a list of orders with an accept button — there isn't much to learn.

Questions

The ones we always get.

Do diners have to download anything?

No. A caller just talks. A table scans the QR code and the conversation opens in their browser with the table already attached — no app, no account, no email address.

What happens when the assistant can't handle something?

It says so rather than guessing, and the diner can ask for a person — "call the waiter" puts a flag on your board. At the carrier level, calls can also fail over to a destination you choose, so the number never rings into nothing.

Can we keep our existing phone number?

Yes. Port it, or forward it to the number we provision. Nothing printed on your door, your bags or your listings has to change.

Does it use our menu, or its own?

Yours. The menu, prices, options and hours live in one place and the assistant reads them there. Change a price in the menu manager and the next caller hears the new one.

Which languages does it speak?

English, French and Arabic today, including switching between them inside a single call. Adding a language is a configuration change rather than a rebuild — ask us about the one you need.

What about payment?

Diners can pay from the order card, split a bill into per-person portions and download a receipt. Your staff can also mark an order paid from the board, for cash and terminal payments.

Where does the data live, and who can see it?

In your restaurant's database — orders, conversations and call transcripts included. Transcripts contain customer speech, so they're treated as customer data: kept for you, not shared, and deployable inside your own infrastructure if that's what you need.

How many branches can it handle?

As many as you have. Each branch gets its own menu, board and number, and orders are pinned to the branch that took them — an item from another branch is refused outright.

Hear it answer your restaurant's phone.

Send us your menu and we'll put a working number in front of you — your dishes, your prices, your greeting. Then call it yourself.

or write to admin@bluefork.ai