Go to the dashboard URL — it opens straight to the login screen. Enter the restaurant's shared email and password and tap Sign in.
Your login stays active for the browser tab's session (it refreshes itself automatically in the background, so a long shift won't log you out mid-task). Use 🚪 Log Out in the top bar when you're done on a shared device. If you're bounced back to the login screen unexpectedly, just log in again — nothing is lost, all data lives on the server, not in the browser.
The Pipeline tab is the home screen — every active event across every client, as a card you can scan at a glance.
The row of tiles above the cards (Inquiry → Menu → Quote → Deposit → Contract → Confirmed → Complete) shows a live count per stage. Tap a tile to filter the board down to just that stage; tap it again to clear the filter.
The search box matches client name or event name/occasion. The two dropdowns filter by concept (Magnolia Room / Catering / Cotillion Cafe / Sweetery) and by stage.
Without opening the full event, you can ✉ Email (opens a template ready to copy, or to open in your email app), 📅 Calendar (creates a Google Calendar event), or 📋 Copy Note (copies a formatted summary block — handy for pasting into Apple Notes or a text).
A client is just contact info — name, phone, email, referral source, general notes. Every booking they make is a separate event nested under that client, each with its own occasion, dining style, date, worksheet fields, stage, and activity log. This keeps repeat customers from blurring together: someone who books three parties a year shows up as one client card with three event cards underneath, not three unrelated entries.
This is the same client database the Reservations tab uses — a client doesn't need any events to exist, and a client with reservations but no catering event yet still shows up here with an empty event list. There's one contact database for the whole business, not a separate one per tab.
Opening any card shows the full picture: the ball-in-court banner (tap Flip to Client / Flip to Me any time the plan changes), the info grid, notes, AI triage summary (if the event came in through the intake form or inbox scan), the stage picker, the activity log, email templates, calendar shortcuts, and deposit toggle.
Activity log is the running history for that event — type a note and hit Enter or tap + Log. Every email, calendar event, and AI approval also drops its own automatic log line, so the log ends up being a fairly complete record of everything that happened on that booking.
📋 Apple Notes copies a clean, formatted text block of the whole event to your clipboard — paste it straight into a new Apple Note if you want an offline copy.
On the event detail screen, Create Square Invoice opens a box where you type or paste the items to bill for, one per line, ending in a dollar amount — e.g. Plated dinner x40 — $3200. Dashes, colons, or just a trailing $amount all work as the separator. Tap Preview Line Items to see exactly what will be itemized before anything is created.
Any line that doesn't end in a recognizable amount is left alone rather than guessed at — it shows up as a warning in the preview instead of silently vanishing. The Custom / Catch-all Amount field is where that gets resolved: fill it in and any lines that didn't parse get folded into one extra line item using that amount, so nothing typed is ever lost. If nothing on the page parses as an item at all, that field becomes the entire invoice — a single line for the full amount, described by whatever you typed.
Pick which Square location the invoice bills from, an optional due date (defaults to 14 days out if left blank), then Create Invoice (Draft). It requires a client email on file — Square needs one to know who the invoice belongs to. The invoice is created in Square as a draft — nothing is emailed to the client automatically; open it in Square yourself when you're ready to review and send.
Every event has its own Files section on the event detail screen — attach a menu, quote, contract, or anything else specific to that booking and it lives right there alongside the rest of the event, not buried in email or a shared drive. Choose a file, pick a category (Menu, Quote, Contract, Invoice, Photo, Other), and tap Upload. Each file shows its category, size, and upload date; tap ⬇ to download or ✕ to remove it. Files are capped at 6MB each — plenty for PDFs and photos, but scanned images or long contracts sometimes need compressing first.
A general to-do list, independent of any specific client — grouped by priority. + Add Task lets you optionally link a task to a client name (free text, not a hard link) and tag it with a category (Menu, Finance, Operations, POS, HR, Follow-Up, Other). Check the box to mark done; the ✕ removes it entirely.
A queue of people to call back — separate from the pipeline because not every callback turns into a booking. + Log Callback captures name, phone, reason, a scheduled time (free text, e.g. "June 5, 2pm"), and priority. If it came in through the intake form's AI triage, you'll see a short 🤖 summary line on the card too. ✓ Done marks it handled (and can be reopened); Remove deletes it.
A read-only, auto-generated view — every quote deadline, menu deadline, and event date across all events, plus any task with a due date, sorted soonest-first and bucketed into Overdue / Next 3 Days / This Week / Next 2 Weeks / Upcoming. Nothing is entered here directly; it's assembled from what's already on the events and tasks. Use the 📅 and ✉ shortcuts on each row to jump straight to a calendar entry or follow-up email.
A day-of-service table reservation system — separate from the catering/event pipeline above. Built directly against Square's Orders API rather than Square's own native reservations feature, which turned out to require a paid Square for Restaurants Plus plan connected to a third-party partner (OpenTable or ResDiaryLite) with no public API of its own to build against.
For parties too big for any one table, create a named combo from Manage Tables (e.g. "Table 3+4"): pick two or more existing tables, and it shows up as its own bookable option with the member tables' capacities summed. Booking a combo blocks every table it's made of for that time window, and booking any one of those tables individually blocks the combo right back — there's no way to accidentally double-book the same physical table through two different bookable "tables." Removing a table that's part of a combo warns you first; if it would drop the combo below two tables, the combo itself is removed too (any reservations still pointing at it are flagged in the warning).
Delete buttons for tables and combos are hidden by default — tap 🔓 Enable Table Editing at the top of Manage Tables to reveal them, then 🔒 Lock Editing when you're done. This is a same-password speed bump against one-tap accidents, not a separate login; a real per-staff admin/manager/staff permission system is planned as a later step once the dashboard supports individual staff logins.
Toggle 🗺 Floor Plan (top of the Reservations tab) for a visual, always-live-for-today view instead of the day list. Each table is a tile colored by its current real-time status — open, reserved later today, or occupied (someone checked in and seated). Tap a tile to see that table's reservations for today with a quick Check-In action, or jump straight to a new reservation pre-set to that table. To actually reposition tables into your real floor layout, tap 🔓 Edit Layout (the same lock as table deletion) and drag tiles where you want them — position saves automatically when you let go.
The date field at the top of the tab filters the list to one day at a time, sorted by time. Each row shows the guest, party size, assigned table, and status. Typing in the search box next to it looks up a guest by name or phone across every date — handy for "do you have my reservation?" calls when you don't know which day it was made for; it disables the date filter while a search is active.
Checking a reservation in is deliberately a separate step from booking it — Check In only appears once a reservation is Confirmed, and tapping it opens a real, empty ticket in Square at that table's location (tagged with the reservation so it's traceable back from Square's own dashboard). Staff then ring up the order at the POS as normal. This means a no-show never leaves a stray open ticket sitting in Square — nothing is created in Square until the guest is actually seated.
No-show sits next to Check In on a Confirmed reservation — use it when the guest never arrives, rather than Cancel, so the two stay distinguishable in the record. Edit is available on any Confirmed or Seated reservation to fix a detail (phone number, party size, table, time) without deleting and recreating it — changing the table or time re-runs the same conflict check as a new booking. Cancel is available any time before check-in and immediately frees that table/time slot for a new booking.
If a table still has upcoming reservations attached to it, removing it from Manage Tables now warns you first (naming one of the affected reservations) rather than silently leaving those bookings pointing at a table that no longer exists.
Reservations and the catering Pipeline share one client database — there's no separate "guest" record anymore. Someone can have five dinner reservations over the years all tied to one client profile, and that same profile is what shows up if you ever start a catering event for them. Reservations tab → 👤 Manage Clients to search, add, or remove profiles, and to see how many reservations and Pipeline events are linked to each one; a View Profile button on any client opens their full Pipeline contact profile.
Nothing about a reservation contact ever lives only on that one booking. When booking or editing a reservation, the optional Link to Existing Client search box at the top of the form fills in name/phone/email from that profile and ties the reservation to it. Leave it unlinked and type a phone or email instead, and a client profile is matched or created for you automatically the moment the reservation saves — matching is by email first, then phone.
Two separate CSV imports, both under 👤 Manage Clients and the Reservations tab respectively — bring in the customers file first if you want bookings linked to a profile on import:
Both are one-time only — there's no ongoing sync with the other system afterward.
🔀 Find & Merge Duplicates (Manage Clients) scans for profiles that share the exact same email or phone number and groups them for review — nothing merges automatically. Pick which profile in each group to keep; the others are removed, every reservation and Pipeline event that was linked to them gets re-pointed to (or combined into) the profile you kept, so booking and event history doesn't get lost in the merge.
The Settings tab is split into categories with its own sub-menu on the left — House Rules & Style Guide, Public Booking Page, and Reservation Hours & Time Slots — rather than one long scrolling page. Switching categories keeps any unsaved edits in the other categories; only a full navigation away from the Settings tab (or a page reload) discards them, same as everywhere else in the app.
A no-login, embeddable page (book.html) guests can use to request or book a table themselves — turn it on and configure it from Settings → Public Booking Page:
<iframe> snippet for your own website. It always reflects your current settings, so changing the color or welcome message later doesn't require re-pasting anything.Its own category under Settings — set opening and closing times per day of the week (or mark a day fully closed), and add breaks to block out a window in the middle of a day (e.g. between breakfast and lunch service). A single slot interval (5 to 60 minutes) applies across all days. Generates the time choices offered in the dashboard's own New/Edit Reservation forms and on the public booking page, so both stay in sync automatically, and both re-generate the options whenever the reservation's date changes.
The Calendar tab (in the left menu under Home, and on the phone's bottom bar) shows everything Parlor looks after in one place: emails booked to go out (a dashed outline is only a plan), events and private parties from the Pipeline, ticketed events, quote and menu deadlines and tasks with a due date, one line a day for your bookings ("14 bookings · 52 covers", with parties of 8 or more listed on their own), and closed days. Switch between Month, Week and List; the coloured buttons hide or show each kind of thing. Tap anything to open it where it lives.
+ Add to calendar (or tap a day) adds your own entry: a staff meeting, a delivery, a day off. Choose Business or Personal, and who sees it: Just me (nobody else, owners included) or Whole team. It can repeat every week, month or year. Owners and managers can change or delete team entries; only you can see or change your "Just me" ones.
What you see depends on your role: emails need the same access as Campaigns, and Pipeline events need the same access as the Pipeline.
The Capacity tab is the one place that overlays both halves of the business on top of each other — Pipeline event guest counts and Reservations covers, day by day — so a big Magnolia Room wedding and a packed dining room the same night show up together before it's a surprise, instead of living in two tabs no one cross-references.
Each row is one upcoming day: covers and reservation count on the left, Pipeline guest count and event count in the middle, a combined total, and a status pill once that total crosses your Daily Threshold (editable right on the tab — Approaching past 75%, Over Capacity past 100%). Tap any day to see exactly what's booked — reservations and events both, with times where they apply.
Pipeline events count toward a day's total at every stage, not just Confirmed — an early Inquiry still represents real potential kitchen load worth seeing coming. Cancelled and No-show reservations are excluded. The threshold is a per-device display preference (not shared data), so each person viewing the dashboard can set their own sense of "busy."
Paste your filled-in Menu House Rules / style guide worksheet here — dining-style-by-dining-style guidance on what a plated dinner, buffet, tea, etc. should include. This is the single source of truth the AI reads every time it drafts a menu (see AI Drafting below), so keeping it current is the highest-leverage thing you can do to improve the quality of AI-drafted menus. Tap Save House Rules after editing.
Header button, available from anywhere. Pulls overdue and upcoming quote/menu/event deadlines plus pending high-priority callbacks and writes a short prioritized summary — read-only, nothing is sent or changed automatically.
On an event detail screen: reads that event's full worksheet, its notes, and your House Rules, and drafts both a proposed menu and a client-facing email introducing it, in one step. The draft is always shown for review first — edit anything you like, then either:
Nothing is ever sent automatically — every AI draft, everywhere in this dashboard, stops with you for a final human look before it goes out.
A lighter-weight version for when you just want a standalone quote or menu draft to copy elsewhere, without going through the full menu+email flow or touching Gmail. Prices are always left as a [PRICE] placeholder — the AI never invents a dollar figure.
Inside any email template modal — rewrites the selected template using that specific client's real notes and recent activity log, instead of the generic boilerplate.
Runs automatically (not something you trigger) on both the staff intake form and the inbox scan — pulls out dietary needs, an estimated guest count, a budget note, and urgency from free-text notes, shown as a clearly-labeled, review-before-relying-on-it block. It never overwrites your own fields.
Go to Settings → Integrations (or tap Reconnect Google in the header) and complete Google's consent screen. Connecting Google lets Parlor open the Google Drive files you pick and add events to your Google Calendar — nothing else. Only an admin (the venue's owner) can connect, reconnect or disconnect the Google account; everyone else can still use it once it is connected.
Coming soon. It will look through your inbox for new catering and event enquiries. (Restaurants testing new features with us already have it, marked Test feature.)
Every manual email flow in this dashboard — templates, personalized emails, and the AI menu+email draft — ends the same way: the email ready on screen, with Copy (then paste it into a new email) and Open in my email app (opens a new email with it filled in). A very long email is too long to hand to an email app in one go; Parlor says so, and you use Copy instead. Restaurants testing new features also see Save to Gmail Drafts, marked Test feature. The one exception is automatic guest confirmations and reminders, described below — those really do send on their own.
From an event's 📅 Add to Google Calendar section, pick Event Date / Quote Due / Menu Due — it pre-fills a title, date/time, and description from that event's info, and creates a real calendar event with a 1-hour popup and 24-hour email reminder.
This is the one place in Parlor that emails a guest or client automatically, with no draft step and no human click — it only fires for things that are genuinely confirmed, on two triggers:
Each only sends once — a reservation edited after it's already Confirmed doesn't trigger a second confirmation, and a reminder that already went out doesn't repeat the next time the daily check runs.
Every one of these arrives as a branded HTML email — the business name banner, gold accent rule, and a clean details table for the date/time/party size — with a plain-text version underneath for any mail client that can't render HTML.
Parlor sends these for you, so they go out even if you never connect an email account. Guests see them from "Your restaurant via Parlor", and when they press Reply it goes to your own inbox. Settings → Guest & Staff Email → Guest emails shows exactly who they come from and where replies land, and has a Send me a test confirmation button.
A separate quick page (intake-handler.html) meant to be bookmarked on a phone at the host stand or wherever calls come in. It asks for the same sign-in as the dashboard, and works for owners, managers and hosts (server and viewer accounts cannot add records). Two options: