Appointment Booking System
A complete appointment booking and management system for service businesses. Handles booking intake, confirmation emails, automated reminders, no-show detection, and daily schedule reports.
Problem
Service businesses (salons, clinics, consultants, studios) lose revenue from missed appointments, no-shows, and scheduling chaos. Booking platforms charge $30-100+/month and often lack customization. Manual reminders are unreliable.
This system provides self-hosted booking management with zero monthly fees.
What It Does
- 1. Booking Intake — Webhook API receives bookings, validates fields, generates booking ID, stores in Sheets
- Confirmation — Sends confirmation email to client and notification to staff immediately
- Smart Reminders — Sends 24-hour and 2-hour reminders automatically
- No-Show Followup — Detects missed appointments and sends rescheduling email
- Daily Schedule — Morning email with today's and tomorrow's appointments plus weekly stats
Included Workflows
| # | File | Purpose |
|---|
| 01 | INLINECODE0 | Webhook → validate → store → confirm client → notify staff |
| 02 |
02-booking-confirmation.json | Update booking status (confirm/cancel) via webhook |
| 03 |
03-reminder-engine.json | Hourly check → send 24h and 2h reminders |
| 04 |
04-noshow-followup.json | Check past appointments → detect no-shows → followup email |
| 05 |
05-daily-schedule.json | Morning report with today's schedule and weekly stats |
Architecture
CODEBLOCK0
Required n8n Credentials
| Credential Type | Used For | Placeholder in JSON |
|---|
| Google Sheets OAuth2 | Appointment storage | INLINECODE5 |
| SMTP |
Confirmations, reminders, reports |
YOUR_SMTP_CREDENTIAL_ID |
Environment Variables
CODEBLOCK1
Note: The Google Sheet ID is configured as a YOUR_BOOKING_SHEET_ID placeholder in the workflow JSON files (not an environment variable). Replace it directly in n8n after import.
Configuration Placeholders
| Placeholder | Description |
|---|
| INLINECODE8 | Google Sheet ID for appointments |
| INLINECODE9 |
n8n Google Sheets credential ID |
|
YOUR_SMTP_CREDENTIAL_ID | n8n SMTP credential ID |
|
YOUR_NOTIFICATION_EMAIL | Staff email for schedule reports |
Google Sheets Schema (Appointments)
| Column | Type | Description |
|---|
| booking_id | text | Unique booking ID (auto-generated) |
| name |
text | Client full name |
| email | text | Client email |
| phone | text | Client phone |
| service | text | Service type (e.g., haircut, consultation) |
| date | date | Appointment date (YYYY-MM-DD) |
| time | text | Appointment time (HH:MM) |
| notes | text | Client notes |
| status | text | confirmed / cancelled / no-show / completed |
| showed_up | boolean | Whether client attended |
| reminder_24h | boolean | 24h reminder sent |
| reminder_2h | boolean | 2h reminder sent |
| created_at | datetime | Booking creation timestamp |
Quick Start
1. Prerequisites
- - n8n v2.4+ (self-hosted)
- Google Sheets OAuth2 credentials
- SMTP email credentials
2. Create Appointments Sheet
Create a Google Sheet with the columns above. Name the tab "Appointments".
3. Import & Configure
Import all 5 JSON files into n8n. Replace all
YOUR_* placeholders and set environment variables.
4. Test Booking
CODEBLOCK2
Use Cases
- 1. Hair salons — Booking, reminders, and no-show tracking for stylists
- Medical/dental clinics — Patient appointment management
- Consultants — Strategy call scheduling with automated reminders
- Fitness studios — Class and personal training bookings
- Auto repair shops — Service appointment scheduling
Requirements
- - n8n v2.4+ (self-hosted or cloud)
- Google Sheets OAuth2 credentials
- SMTP email credentials
预约预订系统
面向服务型企业的完整预约预订和管理系统。处理预订接收、确认邮件、自动提醒、未到店检测以及每日日程报告。
问题
服务型企业(美发沙龙、诊所、顾问、工作室)因错过预约、客户未到店和日程混乱而损失收入。预订平台每月收费30-100+美元,且往往缺乏定制化功能。手动提醒不可靠。
本系统提供零月费的自托管预订管理方案。
功能说明
- 1. 预订接收 — Webhook API接收预订信息,验证字段,生成预订ID,存储至表格
- 确认通知 — 立即向客户发送确认邮件,并向员工发送通知
- 智能提醒 — 自动发送24小时和2小时提醒
- 未到店跟进 — 检测错过预约并发送改期邮件
- 每日日程 — 早晨发送包含今日和明日预约及周统计数据的邮件
包含的工作流
| 序号 | 文件 | 用途 |
|---|
| 01 | 01-booking-intake.json | Webhook → 验证 → 存储 → 确认客户 → 通知员工 |
| 02 |
02-booking-confirmation.json | 通过Webhook更新预订状态(确认/取消) |
| 03 | 03-reminder-engine.json | 每小时检查 → 发送24小时和2小时提醒 |
| 04 | 04-noshow-followup.json | 检查过往预约 → 检测未到店 → 发送跟进邮件 |
| 05 | 05-daily-schedule.json | 早晨发送包含今日日程和周统计数据的报告 |
架构
客户在线预订(表单/API)
|
v
工作流01:预订接收
+-> 验证必填字段
+-> 生成预订ID
+-> 保存至Google Sheets
+-> 向客户发送确认邮件
+-> 向员工发送通知邮件
+-> 返回预订ID
状态更新(确认/取消):
|
v
工作流02:预订确认
+-> 更新表格中的状态
每小时:
|
v
工作流03:提醒引擎
+-> 读取已确认的预约
+-> 检查:预约是否在24小时内?→ 发送提醒
+-> 检查:预约是否在2小时内?→ 发送提醒
+-> 在表格中标记提醒已发送
每2小时:
|
v
工作流04:未到店跟进
+-> 检查过往预约(1-48小时前)
+-> 若无到场状态 → 标记为未到店
+-> 发送改期邮件
每日上午7点:
|
v
工作流05:每日日程
+-> 生成今日和明日的日程表
+-> 计算周统计数据(已完成、未到店、已取消)
+-> 发送邮件给员工
所需n8n凭证
| 凭证类型 | 用途 | JSON中的占位符 |
|---|
| Google Sheets OAuth2 | 预约存储 | YOURGOOGLESHEETSCREDENTIALID |
| SMTP |
确认、提醒、报告 | YOUR
SMTPCREDENTIAL_ID |
环境变量
bash
企业信息(用于面向客户的邮件)
BUSINESS_NAME=您的企业名称
BUSINESS_PHONE=+1234567890
STAFF_EMAIL=staff@yourbusiness.com
注意: Google Sheet ID在工作流JSON文件中配置为YOURBOOKINGSHEET_ID占位符(非环境变量)。导入n8n后直接替换。
配置占位符
| 占位符 | 描述 |
|---|
| YOURBOOKINGSHEETID | 预约用的Google Sheet ID |
| YOURGOOGLESHEETSCREDENTIAL_ID |
n8n Google Sheets凭证ID |
| YOUR
SMTPCREDENTIAL_ID | n8n SMTP凭证ID |
| YOUR
NOTIFICATIONEMAIL | 用于日程报告的员工邮箱 |
Google Sheets架构(预约表)
| 列名 | 类型 | 描述 |
|---|
| booking_id | 文本 | 唯一预订ID(自动生成) |
| name |
文本 | 客户全名 |
| email | 文本 | 客户邮箱 |
| phone | 文本 | 客户电话 |
| service | 文本 | 服务类型(如理发、咨询) |
| date | 日期 | 预约日期(YYYY-MM-DD) |
| time | 文本 | 预约时间(HH:MM) |
| notes | 文本 | 客户备注 |
| status | 文本 | 已确认/已取消/未到店/已完成 |
| showed_up | 布尔值 | 客户是否到场 |
| reminder_24h | 布尔值 | 24小时提醒已发送 |
| reminder_2h | 布尔值 | 2小时提醒已发送 |
| created_at | 日期时间 | 预订创建时间戳 |
快速开始
1. 前置条件
- - n8n v2.4+(自托管)
- Google Sheets OAuth2凭证
- SMTP邮件凭证
2. 创建预约表
创建包含上述列的Google Sheet。将工作表命名为Appointments。
3. 导入与配置
将所有5个JSON文件导入n8n。替换所有YOUR_*占位符并设置环境变量。
4. 测试预订
bash
curl -X POST https://your-n8n.com/webhook/booking/new \
-H Content-Type: application/json \
-d {
name: Jane Smith,
email: jane@example.com,
phone: +1234567890,
service: Consultation,
date: 2026-03-10,
time: 14:00,
notes: First visit
}
应用场景
- 1. 美发沙龙 — 发型师的预订、提醒和未到店追踪
- 医疗/牙科诊所 — 患者预约管理
- 顾问 — 带自动提醒的策略通话安排
- 健身工作室 — 课程和私教训练预订
- 汽车修理店 — 服务预约安排
要求
- - n8n v2.4+(自托管或云端)
- Google Sheets OAuth2凭证
- SMTP邮件凭证