Chat assistantDemo project: fictional business, sample dataWorking demo

Salon booking assistant

A chat assistant for a fictional hair salon that answers questions from the salon’s FAQ and passes anything else to the team.

The problem

A busy salon gets the same questions all day: opening hours, cancellations, colour appointments, parking. Answering them by phone interrupts stylists in the middle of an appointment, and questions sent after closing wait until the next morning.

Our approach

The assistant answers only from the salon’s own FAQ. Every answer shows which FAQ entry it came from, so staff can check it and fix the source if something is out of date.

If no FAQ entry matches, the assistant says so and offers to pass the question to the team.

What we built

  • A chat window with suggested questions and free-text input.
  • Matching of each question against a sample FAQ, with the source shown under every answer.
  • A handoff step for questions the FAQ does not cover. In this demo nothing is sent.

Stack

This demo
  • HTML
  • CSS
  • JavaScript
A client build
  • FastAPI
  • Language model with retrieval
  • Supabase with pgvector
  • Booking system API

Live demo

This demo runs entirely in your browser and matches your question to the sample FAQ by keywords. A client build would use a language model that answers from the salon’s documents, and could connect to its booking system.

Demo project: fictional business, sample data

Salon assistant · sample FAQ
Try asking

This demo runs in your browser and needs JavaScript. The sample data it uses is listed below.

Sample data used by this demo: The sample FAQ
Children’s cuts
Yes, we cut children’s hair at any age. For little ones, a morning appointment is often calmer.
Colour patch test
If you’re new to us or haven’t had colour with us in the last six months, we need a quick patch test at least 48 hours before your colour appointment. You can drop in for it during opening hours.
Prices
Prices depend on the service and your hair length. You’ll see the price of each service on the booking page before you confirm, and for colour work your stylist can give you a quote at a free consultation.
Running late
If you’re running late, please give us a call. If you arrive more than 15 minutes late, we may need to shorten your service or move your appointment.
Walk-ins
Walk-ins are welcome when a stylist is free. Saturdays are usually fully booked, so we recommend booking ahead.
Payment and gift vouchers
You can pay by card or in cash. Gift vouchers are available at reception and can be used for any service or product.
Hair care products
We sell the shampoos, conditioners and styling products we use in the salon. Ask your stylist which ones suit your hair.
Cancelling or moving an appointment
Please cancel or move your appointment at least 24 hours in advance, using the link in your confirmation email or by phone. Later cancellations may be charged.
Booking an appointment
You can book online on our booking page at any time, or call us during opening hours. Tell us the service you’d like and we’ll suggest a stylist.
Opening hours
We’re open Tuesday to Friday from 9:00 to 19:00 and on Saturday from 9:00 to 16:00. We’re closed on Sunday and Monday.
Getting here and parking
The salon is on the ground floor with step-free access. There’s a public car park a two-minute walk away, and the address is on the booking page.
Services
We offer cuts for women, men and children, colour, highlights, balayage, blow-dries, treatments and styling for special occasions.

What a client would get

  • An assistant on your website and booking page that answers from your own FAQ and policies.
  • A source shown with every answer, so your team can check and correct it.
  • Questions it cannot answer forwarded to your team by email.
  • Optionally, a connection to your booking system so visitors can see free slots.

More projects

AI chatbot for small businesses

CreoBot

Our product
Your project

Want something like this for your business?

Tell us about the workflow you want to improve. We’ll reply with how we would approach it.