Mise
Salon Bfield salon
APPS AND AGENTS

Stations

What the salon and its clients use: first running in a sandbox on this salon's config, then where each one stands on the real Lollicut stack.

On the real Lollicut stack

Booking site

clientsno config yet
Public page with the salon's facts and a three-step booking form. A booking is confirmed at once or clearly refused.
STILL LOLLICUT-SPECIFICCopy, FAQ and photos are constants in site/content.ts, and the design is Lollicut's. Hours, phone and services already come from GET /salon.
CHECKEDHAC-70: confirmed, slot taken, duplicate, expired quote, lost response and double tap, each against real Postgres.
+ 6 endpoints · 3 folders
GET /salonGET /servicesGET /availabilityGET /availabilityPOST /booking-quotesPOST /bookingsfrontend/src/features/site/frontend/src/features/booking/frontend/src/features/seo/

Staff dashboard

front desk, ownerno config yet
The day's book with a column per stylist. Staff add, move, cancel and complete visits, mark arrivals and edit settings.
STILL LOLLICUT-SPECIFICReads stylists, services and hours from the settings API. The brand name sits in a few strings.
CHECKEDHAC-71: owner and staff runs on the real backend; 0 axe violations at 390, 1180 and 1440 px.
+ 14 endpoints · 4 folders
GET /calendarPOST /staff/bookingsPOST /appointments/{appointment_id}/reschedulePOST /appointments/{appointment_id}/cancelPOST /appointments/{appointment_id}/completePOST /appointments/{appointment_id}/arrivalGET /settingsPUT /settingsPOST /settings/servicesPOST /settings/stylistsGET /customersPATCH /staff/me/preferencesGET /staff-notesPOST /staff-notes/{note_id}/handlefrontend/src/features/calendar/frontend/src/features/overview/frontend/src/features/settings/frontend/src/features/auth/

Staff agent

front desk, ownerno config yet
Answers questions from the records and cites them. A change is a proposal that waits for a Confirm tap.
STILL LOLLICUT-SPECIFICThe system prompt names Lollicut and Los Angeles.
CHECKEDHAC-68, HAC-71: a sourced answer, a move applied only after Confirm, a phone change refused.
+ 2 endpoints · 2 folders
POST /askPOST /agent-proposals/{proposal_id}/confirmbackend/app/features/agent/frontend/src/features/assistant/

Texting agent

clientsno config yet
Answers questions and books by text under the same rules as the site. Code, not the model, writes the confirmation.
STILL LOLLICUT-SPECIFICThe prompt and a few facts (lollipops, car chairs) are written for Lollicut. Services, prices, hours and phone load from the backend.
CHECKEDHAC-34: 64 scripted conversations, 471 of 471 assertions, 64 of 64 safety checks. HAC-69: 32 of 32 safety checks on the real backend.
+ 6 endpoints · 2 folders
POST /integrations/photon/bookingsPOST /integrations/photon/conversations/lookupPUT /integrations/photon/conversationsPOST /integrations/photon/opt-outsPOST /integrations/photon/eventsPOST /integrations/photon/staff-notesagents/photon/lollicut_photon/agents/photon/evals/

Voice line

clientsno config yet
A voice layer over the texting agent's tools. It reads the booking back before booking, and pressing 1 rings the salon.
STILL LOLLICUT-SPECIFICThe prompt names Lollicut. The forward number is an environment value.
CHECKEDHAC-37: 46 scripted calls, 244 of 244 assertions, 46 of 46 safety checks on mock telephony. Never run on a live call.
+ 2 endpoints · 1 folders
POST /integrations/photon/bookingsPOST /integrations/photon/staff-notesagents/photon/voice/

Reminders

clientsno config yet
A confirmation at booking and a reminder the day before, only to clients who opted in. Every delivery is recorded.
STILL LOLLICUT-SPECIFICThe wording is one TOML file, written for Lollicut.
CHECKEDHAC-26: dry run unless live sends are on and the number is allow-listed.
+ 2 endpoints · 1 folders
POST /internal/reminders/runGET /reminder-deliveriesbackend/app/features/reminders/

Payments

ownerno config yet
The owner records what was paid for a completed visit and sees the day's total. Recorded, not processed.
STILL LOLLICUT-SPECIFICMethods are cash, debit and other.
CHECKEDHAC-71: a payment on a completed visit changes the day's total.
+ 4 endpoints · 2 folders
POST /appointments/{appointment_id}/paymentsGET /paymentsPOST /payments/{payment_id}/correctionsGET /payments/dailybackend/app/features/payments/frontend/src/features/payments/