Automated Spa/Salon Management System: Booking, Reminders & Revenue Reports (Telegram + Google Sheets)

Hello n8n Community! :waving_hand:

I wanted to share a comprehensive automation system I built for a Spa/Salon business. This system manages the entire lifecycle of a booking—from the initial customer message to revenue reporting—using n8n, Telegram, Google Sheets, and Google Calendar.

Here is a breakdown of how the system works.

1. System Overview

The system consists of 5 main workflows that work together to replace manual administrative tasks:

  • Workflow C - New Order Processing: Automatically handles manual entries from Google Sheets, calculates revenue, creates calendar events, and notifies the team.

  • Workflow D (Chat) - Telegram Booking Bot: Parses natural language messages from customers (e.g., “Book for Anna, 2 PM”) using Regex and saves them to the database.

  • Workflow D (Form) - Web Booking: A clean n8n Form for standardized booking input.

  • Workflow B - Staff Reminders: A background cron job that scans upcoming appointments and tags the specific staff member on Telegram 2 hours before the service.

  • Workflow E - Revenue Reporting: Generates a weekly financial report with “Top Staff” and “Top Services” rankings and sends it to the management group.


2. Block-by-Block Analysis

:small_blue_diamond: Workflow C: New Order Processing (From Sheets)

Trigger: Row Added in Google Sheets (when a receptionist manually enters a booking).

  1. Get Price List: Fetches service prices from a config sheet.

  2. Code Node: Matches the requested service strings with the price list to auto-calculate Revenue.

  3. Update Row: Writes the calculated revenue back to the Sheet.

  4. Google Calendar: Creates a time-block event for the appointment.

  5. Telegram: Sends a “New Booking” notification to the general group.

:small_blue_diamond: Workflow D (Chat): Telegram Booking Bot

Trigger: Telegram Trigger (listens for messages).

  1. Switch Node: Routes commands (e.g., /booking sends a Form link) vs. normal text (processed for booking info).

  2. Code Node (Regex): Extracts Customer Name, Phone, Service, and Time from the chat message.

  3. Append Row: Saves the extracted data into Google Sheets.

  4. Response: The bot replies to confirm the booking was saved.

:small_blue_diamond: Workflow B: Staff Reminders (The “No-Show” Killer)

Trigger: Schedule Trigger (Runs every minute).

  1. Get Appointments: Fetches today’s bookings.

  2. Filter Logic: Checks if (Appointment Time - Current Time) <= 120 minutes AND System_Notified != TRUE.

  3. Notify Staff: Sends a Telegram message tagging the specific staff member (e.g., @StaffName).

  4. Update Row: Marks the row as Notified to prevent duplicate alerts.

:small_blue_diamond: Workflow E: Revenue Reporting

Trigger: Weekly Schedule (e.g., Sunday at 10 PM).

  1. Analysis: Aggregates data from the current month.

  2. Logic: Calculates Total Revenue, ranks Staff by performance, and identifies Top Services.

  3. HTML Formatting: Formats the message nicely (using bold text and code blocks for currency) for Telegram.

  4. Archive: Saves the report summary to a “Monthly_Report” sheet.


3. Workflow Summary Table

Here is the technical logic behind the nodes:

Workflow Node Name Functional Role Logic/Notes
New Order Code (Calc Revenue) Calculation Uses JS includes() to match service names with prices.
New Order Create Event Calendar Integration Converts formats to ISO Date for Google Calendar.
Chat Bot Switch Routing Separates Slash Commands (/book) from natural text.
Chat Bot Code (Extract) Parsing Uses Regex to handle price shortcuts (e.g., “500k” → 500,000).
Reminder Filter Coming Soon Logic Filters: Diff <= 120 mins & Notified is FALSE.
Reporting Send Message Reporting Uses HTML Parse Mode for rich text in Telegram.

Workflow C - Báo Đơn Mới

Workflow E - Báo Cáo Doanh Thu

Workflow D - Form Đặt Lịch

Workflow D - Bắt Tin

Workflow B - Nhắc Lịch KTV