Dromlik Tables — Technical Overview
Overview
Dromlik Tables is a multi-tenant, cloud-hosted reservation and front-of-house platform for independent restaurants and hospitality groups. It is a standalone product, separate from the Dromlik cloud phone system, and connects to AI receptionists through a built-in MCP connector.
Tables covers front-of-house work only: reservations, table assignment, kitchen pacing, waitlists, a guest CRM and a public booking page.
| Built for | What they get |
|---|---|
| Independent and boutique restaurants | Fast table management without POS bloat or per-cover booking fees |
| Hospitality groups | Separate workspaces per location, switchable from one login |
| AI receptionist providers | Real-time MCP tools to take, change and cancel bookings on calls |
Out of scope
Tables deliberately does not include:
- POS hardware or terminal integrations
- Payment processing, pre-authorisations or deposits
- Diner accounts, passwords or loyalty apps
- A drawn floor-plan editor (tables and sections are managed in list and card views)
- Marketing email campaigns or public review boards
Access and roles
All staff sign in at tables.dromlik.com. Each restaurant's data is fully isolated from every other restaurant on the platform.
| Surface | Address | Used by |
|---|---|---|
| Staff app | tables.dromlik.com | Managers and staff |
| Public booking page | tables.dromlik.com/book?tenant={restaurant-slug} | Guests, no login |
| MCP connector | Private per-restaurant URL | AI receptionists |
Multiple restaurants
A user can belong to several restaurants and switch between them without signing in again.
Roles
| Role | Can do |
|---|---|
| Manager | Everything in the restaurant: tables, sections, combinations, pacing rules, opening hours, location, logo, MCP connector access |
| Staff | Create, edit and cancel reservations; manage the waitlist; look up guests. View tables and sections; no access to settings or the MCP connector |
New restaurants are set up by Dromlik. Contact us to get started.
Reservations and guests
Reservation statuses
| Status | Meaning |
|---|---|
pending | Booking received, not yet confirmed |
confirmed | Booking accepted and table held |
seated | Guest has arrived and is at the table |
completed | Visit finished; table released |
cancelled | Booking withdrawn before the visit |
no_show | Guest did not arrive |
Staff mark a no-show with one tap. If the guest turns up late, Undo restores the reservation with nothing lost.
The reservations view is split into Upcoming (current and future shifts) and Past (history), both with instant guest search.
Guest CRM
Guest profiles build automatically from bookings; diners never create an account.
Profiles are matched only on normalised phone number and email, never on name. Two guests with the same name stay separate, and the same guest booking by phone and online lands on one profile.
Each profile shows total visits, cancellations, no-shows, average party size, dietary and preference notes, and full booking history.
Table assignment and pacing
Tables are assigned automatically by one engine, so a booking made by staff, online or by an AI receptionist is placed the same way.
How assignment works
- Best fit: the smallest table that fits wins, so a party of 2 gets a 2-top, not a 4-top. Seating preferences are honoured: window, outdoor, wheelchair accessible, or a specific section.
- Moves: if no free table fits a new booking, the engine checks whether an existing booking can move to another table that still meets its needs, and moves it to make room.
- Locks: staff can lock a booking to a table so the engine never moves it. Seated guests are never moved.
- Combinations: managers define joinable tables (e.g. Table 1 + Table 2 = 6 seats). The engine uses a combination when no single table fits a large party.
Kitchen and seating pacing
Pacing rules stop the kitchen and floor being overloaded at peak times. Managers set:
| Setting | Options |
|---|---|
| Pacing interval | 15, 30 or 60 minutes |
| Covers per interval | Maximum covers starting in each interval |
| Simultaneous cap | Maximum bookings overlapping at any minute |
Limits apply to every channel: staff entry, the booking page and the MCP connector. A booking over the limit is rejected unless a Manager authorises a pacing override.
Waitlist
The waitlist has two separate flows: one for walk-ins tonight, one for fully booked future dates.
| Flow | Use it for | Captures | States |
|---|---|---|---|
| Door queue | Walk-ins during service | Party size, quoted wait (minutes), live elapsed timer | Waiting → Notified → Seated or Cancelled |
| Advance requests | Guests wanting a fully booked date | Requested date, preferred time, party size, contact details | Staff mark Booked when space opens |
Online booking and confirmations
Public booking page
Each restaurant has a public booking page that needs no login:
https://tables.dromlik.com/book?tenant={restaurant-slug}
Diners pick a date, party size and time slot. Available slots are calculated live, using the same opening hours, assignment engine and pacing rules as every other channel.
Guests only see available times. Table layouts, assignments and settings are never shown to them.
WhatsApp confirmations
Tables sends automated booking confirmations to guests over WhatsApp, including bookings taken by an AI receptionist on a call. This requires WhatsApp to be set up on the restaurant's Dromlik phone system.
MCP connector
Every restaurant gets its own MCP (Model Context Protocol) server, so an AI phone receptionist can work as an autonomous front desk: recognise callers, check availability, and take, change or cancel bookings in real time. No scraping or webhook setup is needed.
Endpoint and authentication
- Transport: JSON-RPC over Streamable HTTP / SSE.
- Connection: each restaurant has a private connector URL, available to Managers in settings. Paste it into your AI receptionist's MCP configuration.
- Isolation: a connector only ever reaches its own restaurant's data.
- Rotation: Managers can rotate the connector credentials at any time. Update the receptionist's configuration after rotating.
Treat the connector URL like a password: keep it out of logs, tickets and shared screenshots.
Tools
| Tool | What it does |
|---|---|
lookup_guest | Identifies a caller by phone number. Returns visit stats, notes, no-show rate and active reservations |
check_availability | Checks live availability against opening hours, existing bookings, table assignment and pacing caps |
create_reservation | Creates a booking and assigns a table, using combinations where needed |
get_reservation | Fetches one existing booking |
list_reservations | Lists bookings, e.g. a guest's upcoming visits |
update_reservation | Changes party size, date or time and re-runs assignment; also cancels bookings |
add_to_waitlist | Adds a walk-in or a caller who couldn't be accommodated to the waitlist |
get_waitlist_status | Checks a waitlist entry's progress, or cancels it, by phone number |
get_restaurant_info | Returns opening hours, section names, capacity and pacing rules |
get_directions | Gives the caller directions and a navigation link |
There is no separate cancel tool: cancel through update_reservation.
Typical call flow
- Call arrives; the receptionist calls
lookup_guestwith the caller ID. - Known guest: greet by name and note preferences, allergies and any active booking.
- Guest asks for a table; the receptionist calls
check_availability. - Slot available:
create_reservation. Fully booked: offeradd_to_waitlist. - The guest gets a WhatsApp confirmation.
To change or cancel, the receptionist finds the booking with get_reservation, list_reservations or lookup_guest (active reservations) and calls update_reservation.
Restaurant settings
Location from Google Maps
Managers paste a Google Maps link into Location settings. Tables resolves it through Google Places and fills in:
- Street address
- Verified phone number and website
- Latitude and longitude
- A normalised Google Maps link, used for automatic directions (including
get_directionson calls)
Branding and languages
Managers can upload the restaurant's logo. The staff app uses the dark "Obsidian" theme, designed for low-light dining rooms.
The interface is available in English, Swedish, French and Spanish. Users switch instantly and their choice is remembered.