Support & Guides
Help Center
Everything you need to know about running your business on Pinkbook.
Getting Started
Account setup, profile configuration, and your first booking.
Booking & Calendar
How clients book, managing your calendar, and availability settings.
Services & Pricing
Adding services, setting durations, pricing, and color codes.
Clients & Import
Managing your client database, CSV import, and client history.
Payments & Deposits
Stripe setup, e-transfer deposits, and tax configuration.
Integrations
Instagram, Facebook, SendGrid email, Twilio SMS, and Google Calendar.
Policies
Cancellation, deposits, no-show fees, and late arrival policies.
Notifications
Email and SMS reminders, notification preferences, and alerts.
Plans & Subscription
Starter, Pro, Salon, and Studio Elite β features, pricing, and how to upgrade.
Security & Privacy
Password requirements, data encryption, and account security.
Custom Domain Email
Connect your business domain, configure DNS records, verify ownership, and send branded emails.
Admin Debug Panel
Monitor domain statuses, review email logs, troubleshoot DNS issues, and debug delivery failures.
π Getting Started
Set up your workspace and make your first booking.
How do I create my account? βΆ
Visit the Sign Up page where you'll complete a 3-step registration:
Step 1 β Account:
β’ Choose your specialty: Hair Stylist, Nail Technician, Lash Artist, or Wax Specialist
β’ Choose your account setup: Solo / Independent or Studio / Salon
β’ Enter the name you want displayed in the app
Step 2 β Profile & Logo:
β’ Add your email address and phone number
β’ Enter your full address, country, and timezone
β’ Create a password that meets all requirements
β’ Optionally upload your logo
Step 3 β Payment:
β’ Add a payment method now, or skip and configure it later from Settings
Once submitted, you'll be redirected to the Dashboard where a one-time Welcome Tour walks you through every section of the app.
Step 1 β Account:
β’ Choose your specialty: Hair Stylist, Nail Technician, Lash Artist, or Wax Specialist
β’ Choose your account setup: Solo / Independent or Studio / Salon
β’ Enter the name you want displayed in the app
Step 2 β Profile & Logo:
β’ Add your email address and phone number
β’ Enter your full address, country, and timezone
β’ Create a password that meets all requirements
β’ Optionally upload your logo
Step 3 β Payment:
β’ Add a payment method now, or skip and configure it later from Settings
Once submitted, you'll be redirected to the Dashboard where a one-time Welcome Tour walks you through every section of the app.
What are the password requirements? βΆ
Your password must meet all five of these requirements:
1. Length: Between 8 and 16 characters
2. Uppercase: At least one capital letter (AβZ)
3. Lowercase: At least one lowercase letter (aβz)
4. Number: At least one digit (0β9)
5. Special character: At least one symbol (!@#$%^&*()_+-=[]{}|;:,.<>?)
As you type, a live checklist shows which rules you've met with green checkmarks. A strength bar rates your password from Weak β Fair β Good β Strong β Excellent. You cannot submit the form until all five requirements are satisfied.
1. Length: Between 8 and 16 characters
2. Uppercase: At least one capital letter (AβZ)
3. Lowercase: At least one lowercase letter (aβz)
4. Number: At least one digit (0β9)
5. Special character: At least one symbol (!@#$%^&*()_+-=[]{}|;:,.<>?)
As you type, a live checklist shows which rules you've met with green checkmarks. A strength bar rates your password from Weak β Fair β Good β Strong β Excellent. You cannot submit the form until all five requirements are satisfied.
How do I set up my profile? βΆ
Go to Settings β Profile to configure your business identity:
β’ Profession: Choose the specialty your workspace should use across booking, services, and team labels
β’ Display Name: Your personal name or studio-facing brand name
β’ Studio Name: If your account type is studio-based, this name appears on your booking page, invoices, and receipts instead of your personal name
β’ Account Type: Switch between Solo / Independent and Studio / Salon at any time β changes take effect immediately without leaving the page
β’ Logo Upload: Upload a JPG/PNG image (recommended 200Γ200px or larger). Your logo appears in the sidebar on every page, on your client booking page, and on downloaded receipts/invoices
Your profile information auto-populates across the entire app including the booking page sidebar, receipt downloads, the dashboard greeting, and notification headers.
β’ Profession: Choose the specialty your workspace should use across booking, services, and team labels
β’ Display Name: Your personal name or studio-facing brand name
β’ Studio Name: If your account type is studio-based, this name appears on your booking page, invoices, and receipts instead of your personal name
β’ Account Type: Switch between Solo / Independent and Studio / Salon at any time β changes take effect immediately without leaving the page
β’ Logo Upload: Upload a JPG/PNG image (recommended 200Γ200px or larger). Your logo appears in the sidebar on every page, on your client booking page, and on downloaded receipts/invoices
Your profile information auto-populates across the entire app including the booking page sidebar, receipt downloads, the dashboard greeting, and notification headers.
How do I share my booking link? βΆ
There are multiple ways to share your booking page:
β’ Sidebar button: Click "Share Booking Link" at the bottom of the sidebar on any page β the URL is copied to your clipboard instantly
β’ Direct URL: Your booking page is at
β’ Social media: If you've connected Instagram or Facebook in Settings β Integrations, those links appear on your booking page sidebar so clients can find and follow you
β’ "View Client Booking Page" in the sidebar opens your booking page in a new tab so you can preview exactly what clients see
β’ Sidebar button: Click "Share Booking Link" at the bottom of the sidebar on any page β the URL is copied to your clipboard instantly
β’ Direct URL: Your booking page is at
pinkbook-booking.html β clients see your logo, brand name, social links, and the full 5-step booking flowβ’ Social media: If you've connected Instagram or Facebook in Settings β Integrations, those links appear on your booking page sidebar so clients can find and follow you
β’ "View Client Booking Page" in the sidebar opens your booking page in a new tab so you can preview exactly what clients see
What is the Welcome Tour? βΆ
The Welcome Tour is a 9-step guided walkthrough that runs automatically the first time you sign up. Each step highlights a specific section of the Dashboard with a spotlight effect and explains what it does:
1. Dashboard overview β your command center with stats
2. Calendar β managing your schedule
3. Appointments β viewing and confirming bookings
4. Services & Pricing β setting up what you offer
5. Clients β your client database
6. Notifications β staying on top of activity
7. Settings β configuring your account
8. Booking link β sharing your booking page
9. Sign Out β logging out safely
You can skip the tour at any time. To replay it later, click the "βΆ Replay Welcome Tour" button at the top of this Help Center page.
1. Dashboard overview β your command center with stats
2. Calendar β managing your schedule
3. Appointments β viewing and confirming bookings
4. Services & Pricing β setting up what you offer
5. Clients β your client database
6. Notifications β staying on top of activity
7. Settings β configuring your account
8. Booking link β sharing your booking page
9. Sign Out β logging out safely
You can skip the tour at any time. To replay it later, click the "βΆ Replay Welcome Tour" button at the top of this Help Center page.
π
Booking & Calendar
How the booking flow works for you and your clients.
How do clients book appointments? βΆ
Clients follow a guided 5-step booking flow on your personal booking page:
Step 1 β Service Focus: The client selects the intake option that best matches the appointment, such as hair texture, set preference, service focus, or target area depending on your profession. This helps you prep the right products and timing.
Step 2 β Choose Service: They browse your service menu (only services you've published appear). Each service shows name, price, and estimated duration. Optional add-ons can be selected here too, with prices clearly shown.
Step 3 β Pick Date & Time: An interactive calendar shows available dates. Unavailable days are greyed out. After selecting a date, available time slots appear based on your working hours and existing bookings. The calendar respects your configured view (month, quarter, or year).
Step 4 β Client Information: They enter their name, email, phone number, and any notes. If you have Stripe connected, they can enter card details for a deposit. If you accept e-transfer, your e-transfer email is displayed with instructions.
Step 5 β Review & Confirm: A full summary shows the selected service, add-ons, date/time, price breakdown (subtotal, tax, deposit, total), and your cancellation/deposit policies. Client confirms to submit the booking request.
Step 1 β Service Focus: The client selects the intake option that best matches the appointment, such as hair texture, set preference, service focus, or target area depending on your profession. This helps you prep the right products and timing.
Step 2 β Choose Service: They browse your service menu (only services you've published appear). Each service shows name, price, and estimated duration. Optional add-ons can be selected here too, with prices clearly shown.
Step 3 β Pick Date & Time: An interactive calendar shows available dates. Unavailable days are greyed out. After selecting a date, available time slots appear based on your working hours and existing bookings. The calendar respects your configured view (month, quarter, or year).
Step 4 β Client Information: They enter their name, email, phone number, and any notes. If you have Stripe connected, they can enter card details for a deposit. If you accept e-transfer, your e-transfer email is displayed with instructions.
Step 5 β Review & Confirm: A full summary shows the selected service, add-ons, date/time, price breakdown (subtotal, tax, deposit, total), and your cancellation/deposit policies. Client confirms to submit the booking request.
How do I set my available hours? βΆ
Go to Settings β Preferences:
β’ Working Hours: Set your start and end times (e.g. 9:00 AM β 6:00 PM). Only time slots within this window appear on the booking calendar.
β’ Days Off: Select which days of the week you don't work (e.g. Sunday, Monday). These days show as unavailable on the client booking calendar.
β’ Blocked Dates: From the Calendar page, you can block specific dates for vacations, holidays, or personal time. Blocked dates won't show any available slots.
Time slots are calculated by subtracting existing bookings and the selected service duration from your available hours. If a slot doesn't have enough contiguous time for the service, it won't appear.
β’ Working Hours: Set your start and end times (e.g. 9:00 AM β 6:00 PM). Only time slots within this window appear on the booking calendar.
β’ Days Off: Select which days of the week you don't work (e.g. Sunday, Monday). These days show as unavailable on the client booking calendar.
β’ Blocked Dates: From the Calendar page, you can block specific dates for vacations, holidays, or personal time. Blocked dates won't show any available slots.
Time slots are calculated by subtracting existing bookings and the selected service duration from your available hours. If a slot doesn't have enough contiguous time for the service, it won't appear.
How do I confirm or deny a booking? βΆ
When a client submits a booking request:
1. A "Pending" badge appears on the booking in your Appointments page and Dashboard
2. You receive a notification (bell icon badge count increases)
3. The Dashboard stat card "Pending Confirmations" updates with the count
4. Click on any pending booking to open the confirmation modal
5. From there you can:
β’ Confirm β the booking moves to "Confirmed" status and the client is notified (if email/SMS is connected)
β’ Deny β the booking is rejected and the client is notified
β’ Reschedule β suggest a different date/time
You can also click the "Pending Confirmations" stat card on the Dashboard to quickly access all pending bookings at once.
1. A "Pending" badge appears on the booking in your Appointments page and Dashboard
2. You receive a notification (bell icon badge count increases)
3. The Dashboard stat card "Pending Confirmations" updates with the count
4. Click on any pending booking to open the confirmation modal
5. From there you can:
β’ Confirm β the booking moves to "Confirmed" status and the client is notified (if email/SMS is connected)
β’ Deny β the booking is rejected and the client is notified
β’ Reschedule β suggest a different date/time
You can also click the "Pending Confirmations" stat card on the Dashboard to quickly access all pending bookings at once.
Can repeat clients skip confirmation? βΆ
Yes. In Settings β Preferences, enable "Auto-confirm Repeat Clients."
When enabled, any client whose email matches a previously completed booking will be automatically confirmed without requiring your manual approval. This saves time for loyal clients while still requiring manual review for first-time bookings.
The auto-confirmed booking still appears in your Appointments list and calendar, and you still receive a notification β it just skips the "Pending" state.
When enabled, any client whose email matches a previously completed booking will be automatically confirmed without requiring your manual approval. This saves time for loyal clients while still requiring manual review for first-time bookings.
The auto-confirmed booking still appears in your Appointments list and calendar, and you still receive a notification β it just skips the "Pending" state.
What calendar views are available? βΆ
The client-facing booking calendar supports three views, configurable in Settings β Preferences β Client Booking Calendar View:
β’ Month View: Shows a traditional monthly grid with day numbers. Clients click a day to see available times. This is the default and works well for most beauty pros.
β’ Quarter View (Pro+): Shows three months at once, giving clients more flexibility to plan ahead. Great for providers who book out several weeks in advance.
β’ Year View (Pro+): Shows the entire year at a glance. Ideal for long-term planning or seasonal businesses.
Quarter and Year views require a Pro or Salon plan. On Starter, the selector is locked to Month view.
Your internal Calendar page (your management view) always has full navigation controls regardless of plan.
β’ Month View: Shows a traditional monthly grid with day numbers. Clients click a day to see available times. This is the default and works well for most beauty pros.
β’ Quarter View (Pro+): Shows three months at once, giving clients more flexibility to plan ahead. Great for providers who book out several weeks in advance.
β’ Year View (Pro+): Shows the entire year at a glance. Ideal for long-term planning or seasonal businesses.
Quarter and Year views require a Pro or Salon plan. On Starter, the selector is locked to Month view.
Your internal Calendar page (your management view) always has full navigation controls regardless of plan.
How do I view and manage my daily schedule? βΆ
Your daily schedule is visible in several places:
β’ Dashboard: The "Today's Schedule" section shows all appointments for the selected date with times, client names, and services. Click the mini calendar to jump to any date.
β’ Calendar page: Full calendar view with color-coded appointments matching each service's assigned color. Click any appointment to view details.
β’ Appointments page: A searchable, filterable list of all bookings with status badges (Pending, Confirmed, Completed, Cancelled). You can search by client name, service, or date.
The Dashboard stat card "Today's Appointments" shows a live count and is clickable to scroll directly to the schedule view.
β’ Dashboard: The "Today's Schedule" section shows all appointments for the selected date with times, client names, and services. Click the mini calendar to jump to any date.
β’ Calendar page: Full calendar view with color-coded appointments matching each service's assigned color. Click any appointment to view details.
β’ Appointments page: A searchable, filterable list of all bookings with status badges (Pending, Confirmed, Completed, Cancelled). You can search by client name, service, or date.
The Dashboard stat card "Today's Appointments" shows a live count and is clickable to scroll directly to the schedule view.
βοΈ Services & Pricing
Manage your service offerings.
How do I add a new service? βΆ
Go to the Services & Pricing page and click "+ Add Service". A modal form opens where you configure:
β’ Service Name: The display name clients see (e.g. "Silk Press," "Box Braids," "Balayage")
β’ Duration: Two dropdown selectors for minimum and maximum time. Options range from 30 minutes to 12 hours in 30-minute increments. If the service has a fixed duration, set both to the same value. The booking calendar uses the maximum duration to calculate available time slots.
β’ Price: The base price in your local currency. Enter a numeric value (e.g. 85.00). This is the amount shown to clients before tax and add-ons.
β’ Color: Pick from a 60-swatch full-spectrum palette. The chosen color appears as the service card's left border, the calendar event color, and the appointment badge color. Hover any swatch to see its hex code.
β’ Add-on Option: Check "Available as add-on" if this service can also be selected as an optional extra on top of a main service (see add-ons below).
Click "Save Service" to add it to your menu. The service immediately becomes visible on your client booking page.
β’ Service Name: The display name clients see (e.g. "Silk Press," "Box Braids," "Balayage")
β’ Duration: Two dropdown selectors for minimum and maximum time. Options range from 30 minutes to 12 hours in 30-minute increments. If the service has a fixed duration, set both to the same value. The booking calendar uses the maximum duration to calculate available time slots.
β’ Price: The base price in your local currency. Enter a numeric value (e.g. 85.00). This is the amount shown to clients before tax and add-ons.
β’ Color: Pick from a 60-swatch full-spectrum palette. The chosen color appears as the service card's left border, the calendar event color, and the appointment badge color. Hover any swatch to see its hex code.
β’ Add-on Option: Check "Available as add-on" if this service can also be selected as an optional extra on top of a main service (see add-ons below).
Click "Save Service" to add it to your menu. The service immediately becomes visible on your client booking page.
How do add-ons work? βΆ
Add-ons are optional extras that clients can select alongside a main service during Step 2 of the booking flow.
Setting up add-ons:
When creating or editing a service, check the "Available as add-on" toggle. This makes the service appear in the add-ons list during bookingβin addition to appearing as a standalone service.
How clients interact with add-ons:
After selecting a primary service, clients see a list of available add-ons below. Each add-on displays its name and price. Clients can select multiple add-ons. The booking summary (Step 5) shows each selected add-on as a separate line item.
Pricing:
Add-on prices are added to the base service price. For example, if a "Silk Press" is $85 and a "Deep Conditioning Treatment" add-on is $25, the subtotal before tax is $110. Tax is calculated on the combined total if tax is enabled.
Common add-on examples: Deep conditioning, scalp treatment, trim, blowout, hair glossing, extensions install.
Setting up add-ons:
When creating or editing a service, check the "Available as add-on" toggle. This makes the service appear in the add-ons list during bookingβin addition to appearing as a standalone service.
How clients interact with add-ons:
After selecting a primary service, clients see a list of available add-ons below. Each add-on displays its name and price. Clients can select multiple add-ons. The booking summary (Step 5) shows each selected add-on as a separate line item.
Pricing:
Add-on prices are added to the base service price. For example, if a "Silk Press" is $85 and a "Deep Conditioning Treatment" add-on is $25, the subtotal before tax is $110. Tax is calculated on the combined total if tax is enabled.
Common add-on examples: Deep conditioning, scalp treatment, trim, blowout, hair glossing, extensions install.
What are the color codes for? βΆ
Each service is assigned a color from a 60-swatch palette spanning the full spectrum (reds, oranges, yellows, greens, blues, purples, pinks, neutrals). Colors are used throughout the app to visually distinguish services:
β’ Service cards: A colored left border on each card on the Services & Pricing page
β’ Calendar events: Appointments on the Calendar page use the service's color as the event background
β’ Appointment badges: Status indicators on the Appointments page match the service color
β’ Dashboard schedule: Today's schedule entries show the service color accent
Hover over any color swatch to see its exact hex code (e.g. #FF6B6B). Choosing distinct colors for different services makes it easy to scan your calendar at a glance and quickly identify what type of appointment is coming up.
β’ Service cards: A colored left border on each card on the Services & Pricing page
β’ Calendar events: Appointments on the Calendar page use the service's color as the event background
β’ Appointment badges: Status indicators on the Appointments page match the service color
β’ Dashboard schedule: Today's schedule entries show the service color accent
Hover over any color swatch to see its exact hex code (e.g. #FF6B6B). Choosing distinct colors for different services makes it easy to scan your calendar at a glance and quickly identify what type of appointment is coming up.
Can I edit or delete services? βΆ
Editing: Click any service card to reopen the edit form. You can change the name, duration, price, color, or add-on status at any time. Changes take effect immediately β the updated details appear on your booking page and in any future bookings.
Deleting: Click the delete button (trash icon) on a service card. A confirmation dialog appears to prevent accidental deletion. Once deleted:
β’ The service is removed from your booking page menu
β’ Existing confirmed bookings for that service are not affected β they retain the service name and price as recorded at booking time
β’ The service is removed from the add-on list if it was marked as an add-on
Note: There is no undo for deletion. If you want to temporarily hide a service without losing it, consider changing its name to indicate it's inactive (e.g. "[PAUSED] Silk Press") rather than deleting it.
Deleting: Click the delete button (trash icon) on a service card. A confirmation dialog appears to prevent accidental deletion. Once deleted:
β’ The service is removed from your booking page menu
β’ Existing confirmed bookings for that service are not affected β they retain the service name and price as recorded at booking time
β’ The service is removed from the add-on list if it was marked as an add-on
Note: There is no undo for deletion. If you want to temporarily hide a service without losing it, consider changing its name to indicate it's inactive (e.g. "[PAUSED] Silk Press") rather than deleting it.
π₯ Clients & Import
Build and manage your client database.
How do I add a client manually? βΆ
On the Clients page, click "+ Add Client" to open the new client form. Fill in:
β’ Name: Required β the client's full name
β’ Email: Used for sending confirmations and reminders (if email integration is connected)
β’ Phone: Used for SMS reminders (if Twilio is connected)
β’ Service Focus: Select the intake option that matches your profession and the type of appointment the client usually books
β’ Notes: Free-text field for recording preferences, allergies, formulas, sensitivities, or anything you want to remember for next time
Automatic client creation: When a new client books through your booking link, their information is automatically saved to your client database. If a returning client books again with the same email, their existing record is updated with the latest visit and service info rather than creating a duplicate.
β’ Name: Required β the client's full name
β’ Email: Used for sending confirmations and reminders (if email integration is connected)
β’ Phone: Used for SMS reminders (if Twilio is connected)
β’ Service Focus: Select the intake option that matches your profession and the type of appointment the client usually books
β’ Notes: Free-text field for recording preferences, allergies, formulas, sensitivities, or anything you want to remember for next time
Automatic client creation: When a new client books through your booking link, their information is automatically saved to your client database. If a returning client books again with the same email, their existing record is updated with the latest visit and service info rather than creating a duplicate.
How does CSV import work? βΆ
The CSV import feature lets you bring in your existing client list from other platforms. Here's the full process:
Step 1 β Upload: Click "Import CSV" on the Clients page. Drag and drop a .csv file onto the upload area, or click "Browse" to select one. Maximum file size depends on your browser.
Step 2 β Column Mapping: PinkBook automatically detects and maps columns for: name, email, phone, intake preference, notes, last visit date, and last service. It recognizes column headers from popular platforms including Vagaro, Fresha, Square, GlossGenius, Booksy, and generic CSV exports. If a column isn't auto-detected, you can manually assign it from a dropdown.
Step 3 β Preview: A table preview shows how your data will be imported. Review it to make sure names, emails, and other fields are mapped correctly.
Step 4 β Import: Click "Import" to add all clients. The system automatically:
β’ Skips rows with no name
β’ Detects duplicates by email address and skips them
β’ Reports how many clients were imported vs. skipped
Tip: Export your client list from your current platform as a CSV file first. Most booking platforms (Vagaro, Fresha, Square) have an export option under Settings or Clients.
Step 1 β Upload: Click "Import CSV" on the Clients page. Drag and drop a .csv file onto the upload area, or click "Browse" to select one. Maximum file size depends on your browser.
Step 2 β Column Mapping: PinkBook automatically detects and maps columns for: name, email, phone, intake preference, notes, last visit date, and last service. It recognizes column headers from popular platforms including Vagaro, Fresha, Square, GlossGenius, Booksy, and generic CSV exports. If a column isn't auto-detected, you can manually assign it from a dropdown.
Step 3 β Preview: A table preview shows how your data will be imported. Review it to make sure names, emails, and other fields are mapped correctly.
Step 4 β Import: Click "Import" to add all clients. The system automatically:
β’ Skips rows with no name
β’ Detects duplicates by email address and skips them
β’ Reports how many clients were imported vs. skipped
Tip: Export your client list from your current platform as a CSV file first. Most booking platforms (Vagaro, Fresha, Square) have an export option under Settings or Clients.
What information is stored per client? βΆ
Each client record in PinkBook stores the following data:
β’ Name β displayed on appointments, invoices, and receipts
β’ Email Address β used for email confirmations, reminders, and cancellation notices (requires SendGrid integration)
β’ Phone Number β used for SMS reminders (requires Twilio integration)
β’ Intake Preference β the client detail that helps you prepare, such as texture, set preference, service focus, or target area depending on your profession
β’ Last Service β automatically updated each time the client completes a booking, showing what they last had done
β’ Last Visit Date β automatically tracked so you can see how recently each client visited
β’ Notes β your private notes about the client (formulas, sensitivities, preferences, conversation notes, aftercare reminders, etc.)
All client data is stored locally and encrypted. Client records are never shared with other users or third parties.
β’ Name β displayed on appointments, invoices, and receipts
β’ Email Address β used for email confirmations, reminders, and cancellation notices (requires SendGrid integration)
β’ Phone Number β used for SMS reminders (requires Twilio integration)
β’ Intake Preference β the client detail that helps you prepare, such as texture, set preference, service focus, or target area depending on your profession
β’ Last Service β automatically updated each time the client completes a booking, showing what they last had done
β’ Last Visit Date β automatically tracked so you can see how recently each client visited
β’ Notes β your private notes about the client (formulas, sensitivities, preferences, conversation notes, aftercare reminders, etc.)
All client data is stored locally and encrypted. Client records are never shared with other users or third parties.
Can I search or filter clients? βΆ
Yes β the Clients page has a real-time search bar at the top that instantly filters your client list as you type. You can search by:
β’ Name: First name, last name, or both (e.g. "Sarah" or "Johnson" or "Sarah Johnson")
β’ Email: Full or partial email address (e.g. "gmail" finds all Gmail clients)
β’ Phone: Full or partial phone number
The list updates instantly with each keystroke β no need to press Enter. The search is case-insensitive, so "sarah" matches "Sarah." Click a client card to view their full profile, edit their details, or review their booking history.
β’ Name: First name, last name, or both (e.g. "Sarah" or "Johnson" or "Sarah Johnson")
β’ Email: Full or partial email address (e.g. "gmail" finds all Gmail clients)
β’ Phone: Full or partial phone number
The list updates instantly with each keystroke β no need to press Enter. The search is case-insensitive, so "sarah" matches "Sarah." Click a client card to view their full profile, edit their details, or review their booking history.
π³ Payments & Deposits
Accept payments and manage financial settings.
How do I connect Stripe? βΆ
Stripe enables credit/debit card payments for deposits during booking. To connect:
Step 1: Create a free Stripe account at stripe.com if you don't already have one.
Step 2: In your Stripe Dashboard, go to Developers β API Keys. Copy your Publishable Key (starts with
Step 3: In PinkBook, go to Settings β Integrations and find the Stripe card.
Step 4: Paste both keys into the input fields.
Step 5: Toggle the switch ON.
Step 6: Click "Test Stripe" to verify the connection works.
Once connected, the client booking flow (Step 4) shows a secure card input field. Clients enter their card details and the deposit amount (based on your deposit policy) is charged when they confirm the booking. Stripe handles all PCI compliance β PinkBook never stores raw card numbers.
Important: Use test keys (starting with
Step 1: Create a free Stripe account at stripe.com if you don't already have one.
Step 2: In your Stripe Dashboard, go to Developers β API Keys. Copy your Publishable Key (starts with
pk_) and Secret Key (starts with sk_).Step 3: In PinkBook, go to Settings β Integrations and find the Stripe card.
Step 4: Paste both keys into the input fields.
Step 5: Toggle the switch ON.
Step 6: Click "Test Stripe" to verify the connection works.
Once connected, the client booking flow (Step 4) shows a secure card input field. Clients enter their card details and the deposit amount (based on your deposit policy) is charged when they confirm the booking. Stripe handles all PCI compliance β PinkBook never stores raw card numbers.
Important: Use test keys (starting with
pk_test_ / sk_test_) while setting up. Switch to live keys when you're ready to accept real payments.How do e-transfer deposits work? βΆ
E-transfer is an alternative deposit method for clients who prefer not to use a credit card:
Setup: Go to Settings β Preferences and enter your email address in the "E-Transfer Deposit Email" field. This is the email clients will send their e-transfer to.
How it works during booking:
1. In Step 4 of the booking flow, clients see the option to pay via e-transfer instead of card
2. Your e-transfer email is displayed prominently with clear instructions
3. The client sends the deposit amount to your email via their banking app
4. The booking is submitted as "Pending" β you can confirm it once you've received the transfer
Note: E-transfer deposits are not automatically tracked by PinkBook. You'll need to manually verify receipt in your bank account and then confirm the booking. For automatic deposit tracking, use Stripe instead.
Setup: Go to Settings β Preferences and enter your email address in the "E-Transfer Deposit Email" field. This is the email clients will send their e-transfer to.
How it works during booking:
1. In Step 4 of the booking flow, clients see the option to pay via e-transfer instead of card
2. Your e-transfer email is displayed prominently with clear instructions
3. The client sends the deposit amount to your email via their banking app
4. The booking is submitted as "Pending" β you can confirm it once you've received the transfer
Note: E-transfer deposits are not automatically tracked by PinkBook. You'll need to manually verify receipt in your bank account and then confirm the booking. For automatic deposit tracking, use Stripe instead.
How do I configure taxes? βΆ
PinkBook supports automatic tax calculation on all bookings. To configure:
Step 1: Go to Settings β Preferences
Step 2: Toggle "Charge Taxes" to ON
Step 3: Select which taxes to apply:
β’ Ontario HST (13%) β Harmonized Sales Tax for Ontario, Canada
β’ Federal GST (5%) β Goods and Services Tax for other Canadian provinces
β’ You can enable one or both depending on your location and tax obligations
How taxes are calculated:
Tax is applied to the total booking amount (base service + any add-ons). For example:
β’ Service: $100 + Add-on: $25 = $125 subtotal
β’ HST 13%: $16.25
β’ Total: $141.25
Where taxes appear:
β’ Client booking page (Step 5 β Review & Confirm): Tax is shown as a separate line item
β’ Finances page: The "Tax Collected" card shows total taxes collected for the current tax year
β’ Auto-generated receipts: Tax amount is itemized on each receipt
Tip: Consult your accountant to determine which tax rates apply to your services in your province/state.
Step 1: Go to Settings β Preferences
Step 2: Toggle "Charge Taxes" to ON
Step 3: Select which taxes to apply:
β’ Ontario HST (13%) β Harmonized Sales Tax for Ontario, Canada
β’ Federal GST (5%) β Goods and Services Tax for other Canadian provinces
β’ You can enable one or both depending on your location and tax obligations
How taxes are calculated:
Tax is applied to the total booking amount (base service + any add-ons). For example:
β’ Service: $100 + Add-on: $25 = $125 subtotal
β’ HST 13%: $16.25
β’ Total: $141.25
Where taxes appear:
β’ Client booking page (Step 5 β Review & Confirm): Tax is shown as a separate line item
β’ Finances page: The "Tax Collected" card shows total taxes collected for the current tax year
β’ Auto-generated receipts: Tax amount is itemized on each receipt
Tip: Consult your accountant to determine which tax rates apply to your services in your province/state.
Where can I see my financial summary? βΆ
The Finances page (accessible from the sidebar on every page) provides a comprehensive financial overview:
Revenue Breakdown:
β’ Revenue This Week: Total earnings from Monday through today
β’ Revenue This Month: Total earnings from the 1st of the current month
β’ Revenue This Year: Total earnings from January 1st of the current year
β’ Tax Collected (Year): Total taxes collected for the current tax year β useful for filing your tax return
Payments Table:
A scrollable table showing every completed payment with columns for date, client name, service, amount, payment method, and status. The table has sticky headers so column labels remain visible as you scroll.
Auto-Generated Receipts:
A scrollable list of all auto-invoiced receipts. Each receipt shows the date, client, service, and total. You can:
β’ Download individual receipts by clicking the β¬ button next to any receipt β choose from PDF, DOCX, or TXT format
β’ Download all receipts at once using the "Download All" button β also available in PDF, DOCX, or TXT
The Finances page also shows your total revenue and total bookings at a glance. You can also access it by clicking the "Revenue This Week" card on the Dashboard page.
Revenue Breakdown:
β’ Revenue This Week: Total earnings from Monday through today
β’ Revenue This Month: Total earnings from the 1st of the current month
β’ Revenue This Year: Total earnings from January 1st of the current year
β’ Tax Collected (Year): Total taxes collected for the current tax year β useful for filing your tax return
Payments Table:
A scrollable table showing every completed payment with columns for date, client name, service, amount, payment method, and status. The table has sticky headers so column labels remain visible as you scroll.
Auto-Generated Receipts:
A scrollable list of all auto-invoiced receipts. Each receipt shows the date, client, service, and total. You can:
β’ Download individual receipts by clicking the β¬ button next to any receipt β choose from PDF, DOCX, or TXT format
β’ Download all receipts at once using the "Download All" button β also available in PDF, DOCX, or TXT
The Finances page also shows your total revenue and total bookings at a glance. You can also access it by clicking the "Revenue This Week" card on the Dashboard page.
π Integrations
Connect your tools and social accounts.
How do I link my Instagram? βΆ
Instagram integration puts your profile link directly on your client booking page. To set it up:
1. Go to Settings β Integrations
2. Find the Instagram card
3. Enter your handle β with or without the @ symbol (e.g.
4. Toggle the switch ON
5. Click "Preview Link" to verify it opens your Instagram profile in a new tab
Once enabled, an Instagram icon with your handle appears in the sidebar of your client booking page. This lets clients browse your portfolio, see your latest work, and follow you β all while they're in the process of booking. It's a great way to build confidence and showcase your style.
1. Go to Settings β Integrations
2. Find the Instagram card
3. Enter your handle β with or without the @ symbol (e.g.
@yourstudio or yourstudio)4. Toggle the switch ON
5. Click "Preview Link" to verify it opens your Instagram profile in a new tab
Once enabled, an Instagram icon with your handle appears in the sidebar of your client booking page. This lets clients browse your portfolio, see your latest work, and follow you β all while they're in the process of booking. It's a great way to build confidence and showcase your style.
How do I link my Facebook page? βΆ
Facebook integration works the same way as Instagram:
1. Go to Settings β Integrations
2. Find the Facebook card
3. Enter your full Facebook page URL (e.g.
4. Toggle the switch ON
5. Click "Preview Link" to test the URL opens correctly
The Facebook link appears alongside Instagram (if enabled) in the client booking page sidebar. Clients can visit your page to read reviews, see photos, and learn more about your business before committing to a booking.
1. Go to Settings β Integrations
2. Find the Facebook card
3. Enter your full Facebook page URL (e.g.
https://facebook.com/yourstudiopage)4. Toggle the switch ON
5. Click "Preview Link" to test the URL opens correctly
The Facebook link appears alongside Instagram (if enabled) in the client booking page sidebar. Clients can visit your page to read reviews, see photos, and learn more about your business before committing to a booking.
How do I set up email notifications? βΆ
Email notifications are powered by SendGrid and allow PinkBook to automatically send emails to your clients. To connect:
1. Create a free SendGrid account at sendgrid.com
2. Generate an API Key in SendGrid (Settings β API Keys β Create API Key)
3. Set up a verified sender email in SendGrid (Settings β Sender Authentication) β this is the "From" address clients see
4. In PinkBook, go to Settings β Integrations β SendGrid card
5. Paste your API Key and Sender Email
6. Toggle the switch ON
What emails are sent automatically:
β’ Booking confirmation: When you confirm a pending booking
β’ Appointment reminder: Sent before the appointment (based on your reminder lead time setting β 24, 48, or 72 hours)
β’ Cancellation notice: If a booking is cancelled
All emails use your business name and logo for professional branding.
1. Create a free SendGrid account at sendgrid.com
2. Generate an API Key in SendGrid (Settings β API Keys β Create API Key)
3. Set up a verified sender email in SendGrid (Settings β Sender Authentication) β this is the "From" address clients see
4. In PinkBook, go to Settings β Integrations β SendGrid card
5. Paste your API Key and Sender Email
6. Toggle the switch ON
What emails are sent automatically:
β’ Booking confirmation: When you confirm a pending booking
β’ Appointment reminder: Sent before the appointment (based on your reminder lead time setting β 24, 48, or 72 hours)
β’ Cancellation notice: If a booking is cancelled
All emails use your business name and logo for professional branding.
How do I set up SMS notifications? βΆ
SMS notifications are powered by Twilio and send text messages directly to your clients' phones. To connect:
1. Create a Twilio account at twilio.com
2. From your Twilio Console, copy your Account SID and Auth Token
3. Purchase or set up a Twilio phone number (this is the "From" number that sends texts)
4. In PinkBook, go to Settings β Integrations β Twilio card
5. Enter your Account SID, Auth Token, and From Phone Number
6. Toggle the switch ON
What SMS messages are sent:
β’ Appointment reminders: Text reminders sent before the appointment based on your lead time setting
β’ Booking confirmations: Quick text confirmation when you approve a booking
Tip: Twilio offers pay-as-you-go pricing. Each SMS costs approximately $0.0079 in the US and $0.0085 in Canada. For most stylists, this amounts to just a few dollars per month.
1. Create a Twilio account at twilio.com
2. From your Twilio Console, copy your Account SID and Auth Token
3. Purchase or set up a Twilio phone number (this is the "From" number that sends texts)
4. In PinkBook, go to Settings β Integrations β Twilio card
5. Enter your Account SID, Auth Token, and From Phone Number
6. Toggle the switch ON
What SMS messages are sent:
β’ Appointment reminders: Text reminders sent before the appointment based on your lead time setting
β’ Booking confirmations: Quick text confirmation when you approve a booking
Tip: Twilio offers pay-as-you-go pricing. Each SMS costs approximately $0.0079 in the US and $0.0085 in Canada. For most stylists, this amounts to just a few dollars per month.
What is Google Calendar Sync? βΆ
Google Calendar Sync connects your PinkBook appointments with your personal or business Google Calendar so everything appears in one place.
How to enable:
1. Go to Settings β Integrations β Google Calendar card
2. Toggle the switch ON
3. Authorize PinkBook to access your Google Calendar when prompted
What gets synced:
β’ Confirmed bookings are created as Google Calendar events with the client's name, service, and time
β’ Cancelled bookings are removed from Google Calendar
β’ Changes to appointment times are reflected in both directions
Benefits:
β’ See PinkBook appointments alongside personal events, other work schedules, and family commitments
β’ Get Google Calendar's native push notifications on your phone
β’ Share your availability with others who can see your Google Calendar
β’ Access your schedule from any device with Google Calendar access
How to enable:
1. Go to Settings β Integrations β Google Calendar card
2. Toggle the switch ON
3. Authorize PinkBook to access your Google Calendar when prompted
What gets synced:
β’ Confirmed bookings are created as Google Calendar events with the client's name, service, and time
β’ Cancelled bookings are removed from Google Calendar
β’ Changes to appointment times are reflected in both directions
Benefits:
β’ See PinkBook appointments alongside personal events, other work schedules, and family commitments
β’ Get Google Calendar's native push notifications on your phone
β’ Share your availability with others who can see your Google Calendar
β’ Access your schedule from any device with Google Calendar access
Are integrations available on all plans? βΆ
Here's a breakdown of integration availability by plan:
Starter (Free):
β’ β Instagram link
β’ β Facebook link
β’ β E-transfer deposits
Pro ($24/mo):
β’ β Everything in Starter
β’ β Stripe payments
β’ β Google Calendar Sync
β’ β Advanced calendar views (Quarter, Year)
β’ β Branded email notifications
β’ β SMS reminders via Twilio
β’ β Custom policies & deposits
β’ β Brand Studio (booking page customization)
Salon ($79/mo):
β’ β Everything in Pro
β’ β Multi-stylist management
β’ β Team availability coordination
β’ β Shared team calendar
β’ β Brand Studio Pro (banners, advanced tone)
Studio Elite ($149/mo):
β’ β Everything in Salon
β’ β White-label mode
β’ β Custom booking domain
β’ β Custom email domain
β’ β Service Gallery
Social links and e-transfer are available on all plans. Stripe payments, email, SMS, and custom policies require Pro or higher. Multi-stylist features require Salon or higher. White-label and Service Gallery require Studio Elite.
Starter (Free):
β’ β Instagram link
β’ β Facebook link
β’ β E-transfer deposits
Pro ($24/mo):
β’ β Everything in Starter
β’ β Stripe payments
β’ β Google Calendar Sync
β’ β Advanced calendar views (Quarter, Year)
β’ β Branded email notifications
β’ β SMS reminders via Twilio
β’ β Custom policies & deposits
β’ β Brand Studio (booking page customization)
Salon ($79/mo):
β’ β Everything in Pro
β’ β Multi-stylist management
β’ β Team availability coordination
β’ β Shared team calendar
β’ β Brand Studio Pro (banners, advanced tone)
Studio Elite ($149/mo):
β’ β Everything in Salon
β’ β White-label mode
β’ β Custom booking domain
β’ β Custom email domain
β’ β Service Gallery
Social links and e-transfer are available on all plans. Stripe payments, email, SMS, and custom policies require Pro or higher. Multi-stylist features require Salon or higher. White-label and Service Gallery require Studio Elite.
π‘οΈ Policies
Set expectations with your clients.
What policies can I configure? βΆ
PinkBook lets you define several booking policies that protect your time and set clear expectations. Go to the Policies page to manage them:
1. Cancellation Policy:
Set how far in advance clients must cancel to avoid a fee. Options include 24 hours, 48 hours, 72 hours, or a custom window. If a client cancels within the window, your no-show/late-cancel fee applies.
2. Deposit Requirement:
Choose whether clients must pay a deposit when booking. You can set this as:
β’ A percentage of the total (e.g. 25%, 50%)
β’ A fixed amount (e.g. $30 flat deposit)
Deposits are collected via Stripe (card) or e-transfer, depending on your payment configuration.
3. No-Show Fee:
Define the penalty amount charged when a client doesn't show up and didn't cancel within your cancellation window. This amount can be deducted from a held deposit or invoiced separately.
4. Late Arrival Grace Period:
Set how many minutes late a client can arrive before the appointment is considered a no-show (e.g. 10 minutes, 15 minutes, 30 minutes). This helps standardize your late policy.
5. Custom Policy Message:
Write a free-text policy statement displayed to clients during booking. Use this for anything not covered above β e.g. allergy notices, parking instructions, child/pet policies, or COVID protocols.
All policies can be toggled on or off individually. Only enabled policies are shown to clients.
1. Cancellation Policy:
Set how far in advance clients must cancel to avoid a fee. Options include 24 hours, 48 hours, 72 hours, or a custom window. If a client cancels within the window, your no-show/late-cancel fee applies.
2. Deposit Requirement:
Choose whether clients must pay a deposit when booking. You can set this as:
β’ A percentage of the total (e.g. 25%, 50%)
β’ A fixed amount (e.g. $30 flat deposit)
Deposits are collected via Stripe (card) or e-transfer, depending on your payment configuration.
3. No-Show Fee:
Define the penalty amount charged when a client doesn't show up and didn't cancel within your cancellation window. This amount can be deducted from a held deposit or invoiced separately.
4. Late Arrival Grace Period:
Set how many minutes late a client can arrive before the appointment is considered a no-show (e.g. 10 minutes, 15 minutes, 30 minutes). This helps standardize your late policy.
5. Custom Policy Message:
Write a free-text policy statement displayed to clients during booking. Use this for anything not covered above β e.g. allergy notices, parking instructions, child/pet policies, or COVID protocols.
All policies can be toggled on or off individually. Only enabled policies are shown to clients.
When do clients see the policies? βΆ
Your policies are displayed at two key points in the client experience:
1. Booking Flow β Step 5 (Review & Confirm):
Before clients submit their booking, a "Policies" section shows all your active policies in a clear, formatted list. This includes your cancellation window, deposit amount, no-show fee, and any custom policy text. The deposit amount is itemized in the price breakdown (subtotal β tax β deposit β total due).
2. Booking Page Sidebar:
If you have a custom policy message enabled, it may also appear in the sidebar of your booking page for visibility before the client even starts the flow.
Important: Clients must scroll past and acknowledge your policies before the "Confirm Booking" button becomes active. This ensures every client has seen your terms before completing a booking, which protects you in disputes.
1. Booking Flow β Step 5 (Review & Confirm):
Before clients submit their booking, a "Policies" section shows all your active policies in a clear, formatted list. This includes your cancellation window, deposit amount, no-show fee, and any custom policy text. The deposit amount is itemized in the price breakdown (subtotal β tax β deposit β total due).
2. Booking Page Sidebar:
If you have a custom policy message enabled, it may also appear in the sidebar of your booking page for visibility before the client even starts the flow.
Important: Clients must scroll past and acknowledge your policies before the "Confirm Booking" button becomes active. This ensures every client has seen your terms before completing a booking, which protects you in disputes.
Can I have different policies per service? βΆ
Currently, policies apply globally to all services. This means every booking uses the same cancellation window, deposit percentage, no-show fee, and custom message regardless of which service the client selects.
Workaround for different deposit amounts:
If you use a percentage-based deposit (e.g. 25%), the actual deposit amount automatically scales with each service's price β a $200 service would require a $50 deposit while an $80 service would require a $20 deposit.
Service-specific policies (e.g. different cancellation windows for braiding vs. a quick trim) may be available in a future update.
Workaround for different deposit amounts:
If you use a percentage-based deposit (e.g. 25%), the actual deposit amount automatically scales with each service's price β a $200 service would require a $50 deposit while an $80 service would require a $20 deposit.
Service-specific policies (e.g. different cancellation windows for braiding vs. a quick trim) may be available in a future update.
π Notifications
Stay on top of booking activity.
What notifications will I receive? βΆ
PinkBook sends you notifications for all important booking activity. There are two places to view them:
1. Notification Bell (every page):
The bell icon in the sidebar shows a red badge with the count of unread notifications. Click it to see a dropdown with recent alerts.
2. Notifications Page:
The dedicated Notifications page shows a full scrollable history of all notifications with timestamps.
Types of notifications you'll receive:
β’ π New Booking Request: "You have a new booking request from [Client Name] for [Service] on [Date]" β appears when a client submits a booking through your link
β’ β Booking Confirmed: Confirmation acknowledgment after you approve a pending booking
β’ β Booking Cancelled: Alert when a booking is cancelled (by you or by the client if cancellation is allowed)
β’ β° Upcoming Appointment: Reminder about an appointment happening soon (based on your lead time)
β’ βοΈ System Alerts: Account updates, integration status changes, and plan-related notices
Notifications are synced across all pages β dismissing one on the Notifications page also clears it from the bell dropdown.
1. Notification Bell (every page):
The bell icon in the sidebar shows a red badge with the count of unread notifications. Click it to see a dropdown with recent alerts.
2. Notifications Page:
The dedicated Notifications page shows a full scrollable history of all notifications with timestamps.
Types of notifications you'll receive:
β’ π New Booking Request: "You have a new booking request from [Client Name] for [Service] on [Date]" β appears when a client submits a booking through your link
β’ β Booking Confirmed: Confirmation acknowledgment after you approve a pending booking
β’ β Booking Cancelled: Alert when a booking is cancelled (by you or by the client if cancellation is allowed)
β’ β° Upcoming Appointment: Reminder about an appointment happening soon (based on your lead time)
β’ βοΈ System Alerts: Account updates, integration status changes, and plan-related notices
Notifications are synced across all pages β dismissing one on the Notifications page also clears it from the bell dropdown.
How do I set reminder lead times? βΆ
Reminder lead time controls how far before an appointment reminders are sent to both you and your clients:
1. Go to Settings β Preferences
2. Find "Reminder Lead Time"
3. Choose: 24 hours, 48 hours, or 72 hours before the appointment
How reminders are delivered:
β’ Email: An email reminder is sent to the client if SendGrid is connected. The email includes the appointment date, time, service name, and your location.
β’ SMS: A text message reminder is sent to the client's phone if Twilio is connected. The message is concise with key details.
β’ In-app: You receive a notification in PinkBook's bell icon regardless of whether email/SMS is connected.
Recommendation: 24 hours works well for most stylists. Choose 48 or 72 hours if your services require advance preparation (e.g. ordering specific products or extensions).
1. Go to Settings β Preferences
2. Find "Reminder Lead Time"
3. Choose: 24 hours, 48 hours, or 72 hours before the appointment
How reminders are delivered:
β’ Email: An email reminder is sent to the client if SendGrid is connected. The email includes the appointment date, time, service name, and your location.
β’ SMS: A text message reminder is sent to the client's phone if Twilio is connected. The message is concise with key details.
β’ In-app: You receive a notification in PinkBook's bell icon regardless of whether email/SMS is connected.
Recommendation: 24 hours works well for most stylists. Choose 48 or 72 hours if your services require advance preparation (e.g. ordering specific products or extensions).
Can I clear all notifications? βΆ
Yes, there are two ways to manage notifications:
Clear all at once:
Click the notification bell icon, then click "Clear all" at the top of the dropdown. This dismisses all current notifications and resets the badge count to zero.
Clear individually:
On the Notifications page, each notification card has a dismiss button. Click it to remove just that one notification while keeping the rest.
Note: Cleared notifications are permanently removed β there's no "undo" or archive. If you need to reference a past booking, use the Appointments page instead, which maintains a complete history regardless of notification status.
The notification badge count on the bell icon updates in real time across all pages as you clear or receive notifications.
Clear all at once:
Click the notification bell icon, then click "Clear all" at the top of the dropdown. This dismisses all current notifications and resets the badge count to zero.
Clear individually:
On the Notifications page, each notification card has a dismiss button. Click it to remove just that one notification while keeping the rest.
Note: Cleared notifications are permanently removed β there's no "undo" or archive. If you need to reference a past booking, use the Appointments page instead, which maintains a complete history regardless of notification status.
The notification badge count on the bell icon updates in real time across all pages as you clear or receive notifications.
π Plans & Subscription
Understand your plan and how to upgrade.
What plans are available? βΆ
PinkBook offers four subscription tiers:
πΈ Starter (Free):
Everything you need to get started β no credit card required.
β’ Up to 20 bookings per month
β’ Full 5-step booking flow with profession-aware intake selection
β’ Service & add-on management with color coding
β’ Client database with manual add
β’ E-transfer payment processing
β’ Tax configuration (HST/GST)
β’ Instagram and Facebook integration
β’ Basic calendar (month view only)
β’ Notification center
π Pro ($24/mo):
Everything a solo beauty pro needs to run bookings, collect payments, and keep clients coming back.
β’ β Everything in Starter, plus:
β’ Unlimited bookings and clients
β’ Stripe payment integration
β’ CSV client import
β’ Auto-generated receipts and invoices
β’ Smart scheduling and buffer controls
β’ Full client profiles and notes
β’ Extended calendar views (Quarter and Year)
β’ Google Calendar Sync
β’ Branded email notifications
β’ SMS reminders via Twilio
β’ Custom policies and deposits
β’ π¨ Brand Studio β customize your booking page with brand colors, fonts, logo, booking link, and custom email tone
π Salon ($79/mo):
For multi-stylist studios and team-based businesses.
β’ β Everything in Pro, plus:
β’ Multiple stylist profiles with individual schedules
β’ Team availability management
β’ Shared team calendar
β’ Priority support
β’ π¨ Brand Studio Pro β banner image, gradient themes, announcement banners on booking page
β Studio Elite ($149/mo):
Full white-label brand ownership. Remove all Pinkbook branding.
β’ β Everything in Salon, plus:
β’ π White-Label Mode β hide all Pinkbook branding from client-facing pages
β’ Custom booking domain (yourbusiness.com)
β’ Custom email domain & sender address
β’ Branded PWA & app icon
β’ πΌοΈ Service Gallery β showcase up to 24 before/after images on your booking page
β’ Before/after image pairs with captions & drag-to-reorder
β’ Advanced analytics & revenue insights
β’ Dedicated priority support queue
β’ Early access to new features
πΈ Starter (Free):
Everything you need to get started β no credit card required.
β’ Up to 20 bookings per month
β’ Full 5-step booking flow with profession-aware intake selection
β’ Service & add-on management with color coding
β’ Client database with manual add
β’ E-transfer payment processing
β’ Tax configuration (HST/GST)
β’ Instagram and Facebook integration
β’ Basic calendar (month view only)
β’ Notification center
π Pro ($24/mo):
Everything a solo beauty pro needs to run bookings, collect payments, and keep clients coming back.
β’ β Everything in Starter, plus:
β’ Unlimited bookings and clients
β’ Stripe payment integration
β’ CSV client import
β’ Auto-generated receipts and invoices
β’ Smart scheduling and buffer controls
β’ Full client profiles and notes
β’ Extended calendar views (Quarter and Year)
β’ Google Calendar Sync
β’ Branded email notifications
β’ SMS reminders via Twilio
β’ Custom policies and deposits
β’ π¨ Brand Studio β customize your booking page with brand colors, fonts, logo, booking link, and custom email tone
π Salon ($79/mo):
For multi-stylist studios and team-based businesses.
β’ β Everything in Pro, plus:
β’ Multiple stylist profiles with individual schedules
β’ Team availability management
β’ Shared team calendar
β’ Priority support
β’ π¨ Brand Studio Pro β banner image, gradient themes, announcement banners on booking page
β Studio Elite ($149/mo):
Full white-label brand ownership. Remove all Pinkbook branding.
β’ β Everything in Salon, plus:
β’ π White-Label Mode β hide all Pinkbook branding from client-facing pages
β’ Custom booking domain (yourbusiness.com)
β’ Custom email domain & sender address
β’ Branded PWA & app icon
β’ πΌοΈ Service Gallery β showcase up to 24 before/after images on your booking page
β’ Before/after image pairs with captions & drag-to-reorder
β’ Advanced analytics & revenue insights
β’ Dedicated priority support queue
β’ Early access to new features
How do I change my plan? βΆ
There are several ways to change your plan:
From Settings:
1. Go to Settings β π Subscription
2. See your current plan with all included features
3. Click "Upgrade Plan" to go to the Plans page
4. Or expand the Developer Override to manually switch tiers for testing
From the Plans page:
1. Click "View Plans" from any upgrade prompt, or navigate to pinkbook-upgrade.html
2. Review the 4-plan comparison including the full feature table
3. Click the plan button under the tier you want
From locked features:
When you try to access a feature that requires a higher plan, an upgrade modal appears. Click "View Plans" to jump directly to plan selection.
Note: Downgrading from a higher tier may disable features you previously had access to. Your data is always preserved.
From Settings:
1. Go to Settings β π Subscription
2. See your current plan with all included features
3. Click "Upgrade Plan" to go to the Plans page
4. Or expand the Developer Override to manually switch tiers for testing
From the Plans page:
1. Click "View Plans" from any upgrade prompt, or navigate to pinkbook-upgrade.html
2. Review the 4-plan comparison including the full feature table
3. Click the plan button under the tier you want
From locked features:
When you try to access a feature that requires a higher plan, an upgrade modal appears. Click "View Plans" to jump directly to plan selection.
Note: Downgrading from a higher tier may disable features you previously had access to. Your data is always preserved.
What is Brand Studio? βΆ
Brand Studio is Pinkbook's built-in brand builder for your booking page. Available on Pro and above, it lets you customize every aspect of your public-facing booking experience.
What's in Brand Studio (Pro+):
β’ Identity β profile photo, business name, tagline, bio, appointment type
β’ Visual β logo, banner image, gradient themes, accent colors, button styles, typography
β’ Booking Link β custom URL slug (e.g. pinkbook.app/janesnails), social links (Instagram, Facebook, TikTok)
β’ Voice & Tone β custom email sender name, confirmation message, cancellation note, SMS signoff
Salon additions ($79/mo):
β’ Announcement banner on your booking page
β’ Advanced email/SMS tone settings
Studio Elite additions ($149/mo):
β’ White-Label Mode β removes "Powered by Pinkbook" badge and all Pinkbook branding
β’ Service Gallery β upload up to 24 images showcasing your work, with before/after pairs, captions, and drag-to-reorder
β’ Custom booking domain and email domain
Access Brand Studio from Settings β π¨ Brand Studio or from the sidebar under Business.
What's in Brand Studio (Pro+):
β’ Identity β profile photo, business name, tagline, bio, appointment type
β’ Visual β logo, banner image, gradient themes, accent colors, button styles, typography
β’ Booking Link β custom URL slug (e.g. pinkbook.app/janesnails), social links (Instagram, Facebook, TikTok)
β’ Voice & Tone β custom email sender name, confirmation message, cancellation note, SMS signoff
Salon additions ($79/mo):
β’ Announcement banner on your booking page
β’ Advanced email/SMS tone settings
Studio Elite additions ($149/mo):
β’ White-Label Mode β removes "Powered by Pinkbook" badge and all Pinkbook branding
β’ Service Gallery β upload up to 24 images showcasing your work, with before/after pairs, captions, and drag-to-reorder
β’ Custom booking domain and email domain
Access Brand Studio from Settings β π¨ Brand Studio or from the sidebar under Business.
What is White-Label Mode? βΆ
White-Label Mode is a Studio Elite exclusive feature that removes all Pinkbook branding from your client-facing booking pages.
What it hides:
β’ The "Powered by Pinkbook" footer badge on your booking page
β’ The Pinkbook logo in browser tabs (replaced with your own)
β’ Pinkbook references in email headers
What it enables:
β’ Your studio name appears everywhere β browser tab, booking page header, email sender name
β’ Your logo replaces all Pinkbook logos on client-facing pages
β’ Your custom domain (e.g. book.mystudio.com) serves your booking page instead of a pinkbook.app URL
β’ Your custom email domain sends all client confirmations and reminders
Enable White-Label Mode from Settings β π¨ Brand Studio (Studio Elite only) or from inside Brand Studio in the Voice & White Label step.
What it hides:
β’ The "Powered by Pinkbook" footer badge on your booking page
β’ The Pinkbook logo in browser tabs (replaced with your own)
β’ Pinkbook references in email headers
What it enables:
β’ Your studio name appears everywhere β browser tab, booking page header, email sender name
β’ Your logo replaces all Pinkbook logos on client-facing pages
β’ Your custom domain (e.g. book.mystudio.com) serves your booking page instead of a pinkbook.app URL
β’ Your custom email domain sends all client confirmations and reminders
Enable White-Label Mode from Settings β π¨ Brand Studio (Studio Elite only) or from inside Brand Studio in the Voice & White Label step.
What is "Force Full Access"? βΆ
"Force Full Access" is a development/testing toggle found in Settings β π Subscription β Developer Override.
What it does:
When enabled, it unlocks all premium features across every page β regardless of your actual subscription tier. This means:
β’ All Brand Studio tiers including Studio Elite features are accessible
β’ White-Label Mode is available
β’ Service Gallery is available
β’ Quarter and Year calendar views become available
β’ All Studio Elite features are accessible
β’ No "upgrade required" modals appear
What it does NOT do:
β’ It does not change your actual subscription or billing status
β’ It does not affect any backend security or payment processing
Who should use it:
This toggle is primarily for testing and demo purposes β it lets you explore the full app experience before committing to a paid plan.
What it does:
When enabled, it unlocks all premium features across every page β regardless of your actual subscription tier. This means:
β’ All Brand Studio tiers including Studio Elite features are accessible
β’ White-Label Mode is available
β’ Service Gallery is available
β’ Quarter and Year calendar views become available
β’ All Studio Elite features are accessible
β’ No "upgrade required" modals appear
What it does NOT do:
β’ It does not change your actual subscription or billing status
β’ It does not affect any backend security or payment processing
Who should use it:
This toggle is primarily for testing and demo purposes β it lets you explore the full app experience before committing to a paid plan.
π Security & Privacy
How we protect your data.
Is my data encrypted? βΆ
Yes β PinkBook uses multiple layers of encryption to protect your data:
Data at Rest:
All sensitive information β client records, booking details, API keys, and payment data β is encrypted using AES-256-GCM encryption with versioned encryption keys. This is the same standard used by banks and government agencies.
Data in Transit:
All communication between your browser and PinkBook servers uses HTTPS/TLS encryption. This prevents anyone from intercepting your data as it travels over the internet.
Payment Data:
Credit card numbers are handled entirely by Stripe and never touch PinkBook's servers. Stripe is PCI DSS Level 1 certified β the highest level of payment security certification.
API Keys:
Your integration credentials (Stripe keys, SendGrid API key, Twilio tokens) are stored encrypted and are never exposed in the UI after initial entry. They are masked with dots (β’β’β’) in the settings interface.
Local Storage:
Data stored in your browser's local storage (offline access, session data) follows browser-native security policies and is accessible only from the PinkBook domain.
Data at Rest:
All sensitive information β client records, booking details, API keys, and payment data β is encrypted using AES-256-GCM encryption with versioned encryption keys. This is the same standard used by banks and government agencies.
Data in Transit:
All communication between your browser and PinkBook servers uses HTTPS/TLS encryption. This prevents anyone from intercepting your data as it travels over the internet.
Payment Data:
Credit card numbers are handled entirely by Stripe and never touch PinkBook's servers. Stripe is PCI DSS Level 1 certified β the highest level of payment security certification.
API Keys:
Your integration credentials (Stripe keys, SendGrid API key, Twilio tokens) are stored encrypted and are never exposed in the UI after initial entry. They are masked with dots (β’β’β’) in the settings interface.
Local Storage:
Data stored in your browser's local storage (offline access, session data) follows browser-native security policies and is accessible only from the PinkBook domain.
How are passwords stored? βΆ
PinkBook follows industry best practices for password security:
Hashing:
Passwords are hashed using bcrypt β a deliberately slow hashing algorithm designed to resist brute-force attacks. Each password is salted with a unique random value before hashing, so even identical passwords produce different hashes.
No Plaintext Storage:
Your actual password is never stored anywhere. When you log in, the password you enter is hashed and compared against the stored hash. Even PinkBook administrators cannot see your password.
Strength Requirements:
The 8β16 character minimum with mandatory uppercase, lowercase, numeric, and special characters ensures a strong baseline. The live strength meter during signup rates your password from Weak to Excellent and won't let you proceed until all requirements are met.
If you forget your password:
Use the password reset flow, which sends a secure reset link to your registered email. Reset links expire after a limited time for security.
Hashing:
Passwords are hashed using bcrypt β a deliberately slow hashing algorithm designed to resist brute-force attacks. Each password is salted with a unique random value before hashing, so even identical passwords produce different hashes.
No Plaintext Storage:
Your actual password is never stored anywhere. When you log in, the password you enter is hashed and compared against the stored hash. Even PinkBook administrators cannot see your password.
Strength Requirements:
The 8β16 character minimum with mandatory uppercase, lowercase, numeric, and special characters ensures a strong baseline. The live strength meter during signup rates your password from Weak to Excellent and won't let you proceed until all requirements are met.
If you forget your password:
Use the password reset flow, which sends a secure reset link to your registered email. Reset links expire after a limited time for security.
How do I sign out? βΆ
Click "Sign Out" at the bottom of the sidebar on any page. Here's what happens when you sign out:
1. Your active session is terminated
2. Session-specific data is cleared from your browser
3. You are redirected to the PinkBook landing page
4. Any unsaved changes on the current page are discarded
Security tips:
β’ Always sign out when using a shared or public computer
β’ Don't rely on just closing the browser tab β explicitly sign out to ensure your session is terminated
β’ If you believe someone has accessed your account without authorization, sign out immediately and reset your password
Your booking page remains accessible to clients even when you're signed out β it doesn't require your active session to work.
1. Your active session is terminated
2. Session-specific data is cleared from your browser
3. You are redirected to the PinkBook landing page
4. Any unsaved changes on the current page are discarded
Security tips:
β’ Always sign out when using a shared or public computer
β’ Don't rely on just closing the browser tab β explicitly sign out to ensure your session is terminated
β’ If you believe someone has accessed your account without authorization, sign out immediately and reset your password
Your booking page remains accessible to clients even when you're signed out β it doesn't require your active session to work.
π Custom Domain Email
Send booking confirmations and reminders from your own business domain.
What is custom domain email and why do I need it? βΆ
Custom domain email lets you send booking confirmations, appointment reminders, and campaign emails from your own business email address (e.g.
Benefits:
β’ Brand recognition: Clients see your business name in their inbox, not "noreply@pinkbook.app"
β’ Improved deliverability: Emails from verified domains are less likely to end up in spam folders
β’ Professional appearance: A custom sender email builds trust and credibility with clients
β’ Consistent branding: Every touchpoint β booking page, confirmation email, reminder text β carries your brand
To get started, navigate to Custom Domain Email from the sidebar (π§ icon) or from Settings β Integrations.
bookings@mybusiness.com) instead of a generic PinkBook sender address.Benefits:
β’ Brand recognition: Clients see your business name in their inbox, not "noreply@pinkbook.app"
β’ Improved deliverability: Emails from verified domains are less likely to end up in spam folders
β’ Professional appearance: A custom sender email builds trust and credibility with clients
β’ Consistent branding: Every touchpoint β booking page, confirmation email, reminder text β carries your brand
To get started, navigate to Custom Domain Email from the sidebar (π§ icon) or from Settings β Integrations.
How do I connect my domain? βΆ
Connecting your domain is a straightforward process:
Step 1 β Enter Your Domain:
On the Connect Domain tab, type your business domain into the input field (e.g.
Step 2 β DNS Records Are Generated:
After connecting, PinkBook generates four DNS records you need to publish with your domain registrar. A modal window opens showing all four records with copy buttons:
1. Ownership Token (TXT record) β Required. Proves you own the domain.
2. SPF Record (TXT record) β Required. Authorizes PinkBook to send email on your behalf.
3. DKIM Record (TXT record) β Required. Cryptographic signature that prevents email spoofing.
4. DMARC Record (TXT record) β Optional but recommended. Tells receiving servers how to handle unauthenticated emails.
Each record displays the Type, Host/Name, Value, and TTL. Click the "Copy" button next to any field to copy it to your clipboard (shows "β Copied" for 2 seconds).
Step 3 β Publish DNS Records:
Log into your domain registrar (e.g. GoDaddy, Namecheap, Cloudflare, Google Domains) and add each record to your DNS settings. The exact steps vary by registrar β search their help docs for "Add TXT record."
Step 4 β Verify:
Return to PinkBook and click "Verify Domain". The system checks all DNS records and reports the result.
Important: DNS changes can take up to 48 hours to propagate worldwide. If verification fails immediately after publishing, wait a few hours and try again.
Step 1 β Enter Your Domain:
On the Connect Domain tab, type your business domain into the input field (e.g.
mybusiness.com). You can paste a full URL β PinkBook automatically strips https://, trailing paths, and lowercases everything. Click "Connect Domain".Step 2 β DNS Records Are Generated:
After connecting, PinkBook generates four DNS records you need to publish with your domain registrar. A modal window opens showing all four records with copy buttons:
1. Ownership Token (TXT record) β Required. Proves you own the domain.
2. SPF Record (TXT record) β Required. Authorizes PinkBook to send email on your behalf.
3. DKIM Record (TXT record) β Required. Cryptographic signature that prevents email spoofing.
4. DMARC Record (TXT record) β Optional but recommended. Tells receiving servers how to handle unauthenticated emails.
Each record displays the Type, Host/Name, Value, and TTL. Click the "Copy" button next to any field to copy it to your clipboard (shows "β Copied" for 2 seconds).
Step 3 β Publish DNS Records:
Log into your domain registrar (e.g. GoDaddy, Namecheap, Cloudflare, Google Domains) and add each record to your DNS settings. The exact steps vary by registrar β search their help docs for "Add TXT record."
Step 4 β Verify:
Return to PinkBook and click "Verify Domain". The system checks all DNS records and reports the result.
Important: DNS changes can take up to 48 hours to propagate worldwide. If verification fails immediately after publishing, wait a few hours and try again.
What do the domain statuses mean? βΆ
Each connected domain shows one of three status badges in the Your Domains list:
β’ β³ Pending β Domain has been connected but DNS records haven't been verified yet. You need to publish the DNS records and click "Verify Domain."
β’ β Verified β All required DNS records (ownership token, SPF, DKIM) have been confirmed. Emails are now actively sending from this domain. The card shows the verification date.
β’ β Failed β Verification was attempted but one or more DNS records were not found. The card shows the last attempt timestamp and an error message explaining which record failed. Common causes:
β DNS hasn't propagated yet (wait 2β48 hours)
β Record was published with a typo in the host or value field
β Wrong record type (e.g. CNAME instead of TXT)
β Domain registrar requires you to omit the root domain from the host field
You can retry verification as many times as needed β click "Verify Domain" again after correcting the records.
β’ β³ Pending β Domain has been connected but DNS records haven't been verified yet. You need to publish the DNS records and click "Verify Domain."
β’ β Verified β All required DNS records (ownership token, SPF, DKIM) have been confirmed. Emails are now actively sending from this domain. The card shows the verification date.
β’ β Failed β Verification was attempted but one or more DNS records were not found. The card shows the last attempt timestamp and an error message explaining which record failed. Common causes:
β DNS hasn't propagated yet (wait 2β48 hours)
β Record was published with a typo in the host or value field
β Wrong record type (e.g. CNAME instead of TXT)
β Domain registrar requires you to omit the root domain from the host field
You can retry verification as many times as needed β click "Verify Domain" again after correcting the records.
How does the verification process work? βΆ
When you click "Verify Domain", PinkBook performs three DNS lookups against your domain:
1. Ownership Token Check:
Looks for a specific TXT record at a designated host (e.g.
2. SPF Record Check:
Looks for an SPF TXT record on your root domain or a designated subdomain that includes PinkBook's mail servers. SPF (Sender Policy Framework) tells email providers that PinkBook is authorized to send mail from your domain.
3. DKIM Record Check:
Looks for a DKIM TXT record at a specific selector (e.g.
Results Panel:
After verification completes, a results panel expands below the domain card showing:
β’ β or β for each of the three checks
β’ Specific error details if any check failed
β’ A tip about DNS propagation delays
All three checks must pass for the domain to reach Verified status. If any check fails, the domain remains in Pending or moves to Failed status with a detailed error message.
1. Ownership Token Check:
Looks for a specific TXT record at a designated host (e.g.
_pinkbook-verify.mybusiness.com) containing your unique verification token. This proves you control the domain.2. SPF Record Check:
Looks for an SPF TXT record on your root domain or a designated subdomain that includes PinkBook's mail servers. SPF (Sender Policy Framework) tells email providers that PinkBook is authorized to send mail from your domain.
3. DKIM Record Check:
Looks for a DKIM TXT record at a specific selector (e.g.
pinkbook._domainkey.mybusiness.com) containing a public cryptographic key. DKIM (DomainKeys Identified Mail) digitally signs every email to prove it hasn't been tampered with.Results Panel:
After verification completes, a results panel expands below the domain card showing:
β’ β or β for each of the three checks
β’ Specific error details if any check failed
β’ A tip about DNS propagation delays
All three checks must pass for the domain to reach Verified status. If any check fails, the domain remains in Pending or moves to Failed status with a detailed error message.
How do I view or re-access DNS records? βΆ
You can view your DNS records at any time after connecting a domain:
1. Go to the Custom Domain Email page β Connect Domain tab
2. Find your domain in the "Your Domains" list
3. Click "View DNS Records" on the domain card
4. The DNS Instructions modal opens with all four records and their copy buttons
This is useful when:
β’ You need to re-check the exact values after a failed verification
β’ You're setting up the same domain on a new registrar
β’ Your IT person or hosting provider needs the records and you need to share them
Each record displays the Type, Host/Name, Value, and TTL β and every field has a one-click copy button.
1. Go to the Custom Domain Email page β Connect Domain tab
2. Find your domain in the "Your Domains" list
3. Click "View DNS Records" on the domain card
4. The DNS Instructions modal opens with all four records and their copy buttons
This is useful when:
β’ You need to re-check the exact values after a failed verification
β’ You're setting up the same domain on a new registrar
β’ Your IT person or hosting provider needs the records and you need to share them
Each record displays the Type, Host/Name, Value, and TTL β and every field has a one-click copy button.
How do I send a test email? βΆ
The Send Test Email tab lets you send a real email through PinkBook's email system to verify that your domain is working correctly. Here's how:
Step 1 β Fill in the form:
β’ Recipient Email: The address to send the test to (usually your own email)
β’ Template: Choose from three templates:
β Booking Confirmation: The email clients receive when their booking is confirmed
β Appointment Reminder: The email sent before an upcoming appointment
β Campaign Email: A promotional or marketing email
Step 2 β Customize template variables:
Each template shows relevant fields that auto-populate with defaults:
β’ Booking Confirmation / Reminder: Business Name, Client Name, Service Name, Date, Time, Reminder Window (hours)
β’ Campaign Email: Business Name, Client Name, Campaign Title, Campaign Message, CTA Button Text, CTA Button URL
Step 3 β Click "Send Test Email":
The button shows a loading spinner while sending. On success, a green result panel confirms:
β’ From address: Which email address was used as the sender
β’ Sender domain: Whether it used your custom domain or the default PinkBook domain
β’ Provider: Which email service delivered it (e.g. SendGrid)
Check your inbox (and spam folder) for the test email. If it arrives from your custom domain with proper formatting, everything is working correctly.
Tip: Send a test to Gmail, Outlook, and Yahoo accounts to verify deliverability across major providers.
Step 1 β Fill in the form:
β’ Recipient Email: The address to send the test to (usually your own email)
β’ Template: Choose from three templates:
β Booking Confirmation: The email clients receive when their booking is confirmed
β Appointment Reminder: The email sent before an upcoming appointment
β Campaign Email: A promotional or marketing email
Step 2 β Customize template variables:
Each template shows relevant fields that auto-populate with defaults:
β’ Booking Confirmation / Reminder: Business Name, Client Name, Service Name, Date, Time, Reminder Window (hours)
β’ Campaign Email: Business Name, Client Name, Campaign Title, Campaign Message, CTA Button Text, CTA Button URL
Step 3 β Click "Send Test Email":
The button shows a loading spinner while sending. On success, a green result panel confirms:
β’ From address: Which email address was used as the sender
β’ Sender domain: Whether it used your custom domain or the default PinkBook domain
β’ Provider: Which email service delivered it (e.g. SendGrid)
Check your inbox (and spam folder) for the test email. If it arrives from your custom domain with proper formatting, everything is working correctly.
Tip: Send a test to Gmail, Outlook, and Yahoo accounts to verify deliverability across major providers.
How do I remove a connected domain? βΆ
To disconnect a domain:
1. Go to Custom Domain Email β Connect Domain tab
2. Find the domain in the "Your Domains" list
3. Click the "Remove" button (red) on the domain card
4. A confirmation prompt asks you to confirm the deletion
5. Click "OK" to permanently remove the domain
What happens after removal:
β’ The domain is deleted from PinkBook's database
β’ Future emails will be sent from the default PinkBook sender address
β’ DNS records you published remain in your registrar until you manually delete them (they're harmless if left in place)
β’ Any verified status is lost β if you reconnect the same domain later, you'll need to re-verify
Note: Removing a domain does not affect past emails already sent or existing bookings.
1. Go to Custom Domain Email β Connect Domain tab
2. Find the domain in the "Your Domains" list
3. Click the "Remove" button (red) on the domain card
4. A confirmation prompt asks you to confirm the deletion
5. Click "OK" to permanently remove the domain
What happens after removal:
β’ The domain is deleted from PinkBook's database
β’ Future emails will be sent from the default PinkBook sender address
β’ DNS records you published remain in your registrar until you manually delete them (they're harmless if left in place)
β’ Any verified status is lost β if you reconnect the same domain later, you'll need to re-verify
Note: Removing a domain does not affect past emails already sent or existing bookings.
Troubleshooting: DNS verification keeps failing βΆ
If your domain verification fails, work through this checklist:
1. Wait for propagation:
DNS changes can take anywhere from 5 minutes to 48 hours to propagate. If you just published the records, wait at least 1β2 hours before trying again.
2. Check record types:
All PinkBook DNS records are TXT records. Make sure you didn't accidentally create a CNAME, A, or MX record instead.
3. Verify the Host/Name field:
Some registrars want just the subdomain (e.g.
4. Check for typos:
DKIM values and verification tokens are long strings. Use the "Copy" button in PinkBook rather than typing them manually. Even one wrong character will cause verification to fail.
5. Check for conflicting records:
If you already have an SPF record (e.g. from Google Workspace or Microsoft 365), you need to merge PinkBook's include directive into your existing SPF record rather than creating a second one. Having two SPF records causes both to fail.
6. Use a DNS lookup tool:
Use a free DNS checker like
7. Check the Admin Debug Panel:
Open the Admin / Debug Panel (link at the bottom of the Custom Domain page sidebar) to see detailed verification logs, exact error messages, and raw DNS record data for each domain.
If issues persist after all checks, contact support with your domain name and the error message shown on the verification result panel.
1. Wait for propagation:
DNS changes can take anywhere from 5 minutes to 48 hours to propagate. If you just published the records, wait at least 1β2 hours before trying again.
2. Check record types:
All PinkBook DNS records are TXT records. Make sure you didn't accidentally create a CNAME, A, or MX record instead.
3. Verify the Host/Name field:
Some registrars want just the subdomain (e.g.
_pinkbook-verify), while others want the full hostname with the root domain appended (e.g. _pinkbook-verify.mybusiness.com). Check your registrar's documentation.4. Check for typos:
DKIM values and verification tokens are long strings. Use the "Copy" button in PinkBook rather than typing them manually. Even one wrong character will cause verification to fail.
5. Check for conflicting records:
If you already have an SPF record (e.g. from Google Workspace or Microsoft 365), you need to merge PinkBook's include directive into your existing SPF record rather than creating a second one. Having two SPF records causes both to fail.
6. Use a DNS lookup tool:
Use a free DNS checker like
mxtoolbox.com or dnschecker.org to verify your records are live before clicking "Verify" in PinkBook.7. Check the Admin Debug Panel:
Open the Admin / Debug Panel (link at the bottom of the Custom Domain page sidebar) to see detailed verification logs, exact error messages, and raw DNS record data for each domain.
If issues persist after all checks, contact support with your domain name and the error message shown on the verification result panel.
π οΈ Admin Debug Panel
Monitor domains, troubleshoot email delivery, and inspect system logs.
What is the Admin Debug Panel? βΆ
The Admin Debug Panel is an internal diagnostic tool found at pinkbook-admin-domains.html. It provides a centralized view of all connected domains, their verification statuses, and a complete history of every email sent through the system.
How to access it:
β’ From the Custom Domain Email page, click "Admin / Debug Panel" at the bottom of the sidebar
β’ Or navigate directly to the Admin Domains page
Who should use it:
β’ Account owners troubleshooting email delivery issues
β’ Developers debugging domain verification failures
β’ Anyone investigating why a client didn't receive a confirmation or reminder email
Overview at a glance:
The top stats bar shows four cards:
β’ Total Domains: Number of all connected domains
β’ Verified: How many are actively sending emails
β’ Pending: How many are awaiting DNS verification
β’ Emails Logged: Total number of email send attempts on record
The panel has two main tabs: All Domains and Email Logs.
How to access it:
β’ From the Custom Domain Email page, click "Admin / Debug Panel" at the bottom of the sidebar
β’ Or navigate directly to the Admin Domains page
Who should use it:
β’ Account owners troubleshooting email delivery issues
β’ Developers debugging domain verification failures
β’ Anyone investigating why a client didn't receive a confirmation or reminder email
Overview at a glance:
The top stats bar shows four cards:
β’ Total Domains: Number of all connected domains
β’ Verified: How many are actively sending emails
β’ Pending: How many are awaiting DNS verification
β’ Emails Logged: Total number of email send attempts on record
The panel has two main tabs: All Domains and Email Logs.
How do I use the All Domains tab? βΆ
The All Domains tab shows every connected domain in a detailed table with the following columns:
β’ Domain: The domain name (e.g.
β’ Status: Color-coded badge β Pending, Verified, or Failed
β’ User ID: The account that connected the domain (monospace format)
β’ Connected: Date the domain was initially added
β’ Last Verification: Date and result of the most recent verification attempt. If it failed, the error message is shown inline.
β’ DNS Records: Click "View records βΎ" to expand and see the raw DNS record data in a scrollable monospace block
Filtering & Search:
β’ Search box: Type any part of a domain name or user ID to filter instantly (case-insensitive, filters in real-time as you type)
β’ Status dropdown: Filter by All, Pending, Verified, or Failed
β’ Refresh button (βΊ): Reload data from the backend
Domain Detail Panel:
Click any domain row to expand a detailed panel below the table showing the complete domain record:
β’ Domain ID, Domain Name, User ID, Status
β’ SPF Record, DKIM Selector, Verification Token
β’ Creation Date, Verification Date, Last Check Date, Last Error
β’ Full DNS Records block
Click the β button to close the detail panel.
β’ Domain: The domain name (e.g.
mybusiness.com)β’ Status: Color-coded badge β Pending, Verified, or Failed
β’ User ID: The account that connected the domain (monospace format)
β’ Connected: Date the domain was initially added
β’ Last Verification: Date and result of the most recent verification attempt. If it failed, the error message is shown inline.
β’ DNS Records: Click "View records βΎ" to expand and see the raw DNS record data in a scrollable monospace block
Filtering & Search:
β’ Search box: Type any part of a domain name or user ID to filter instantly (case-insensitive, filters in real-time as you type)
β’ Status dropdown: Filter by All, Pending, Verified, or Failed
β’ Refresh button (βΊ): Reload data from the backend
Domain Detail Panel:
Click any domain row to expand a detailed panel below the table showing the complete domain record:
β’ Domain ID, Domain Name, User ID, Status
β’ SPF Record, DKIM Selector, Verification Token
β’ Creation Date, Verification Date, Last Check Date, Last Error
β’ Full DNS Records block
Click the β button to close the detail panel.
How do I use the Email Logs tab? βΆ
The Email Logs tab shows a complete history of every email sent through PinkBook's email system. This is essential for diagnosing delivery issues.
Table columns:
β’ Timestamp: When the email was sent (formatted date/time)
β’ To: Recipient email address (may be partially masked for privacy)
β’ Subject: Email subject line (truncated if long)
β’ From: Sender address used (your custom domain or PinkBook default)
β’ Sender: Badge showing "Custom" (your domain) or "Default" (PinkBook sender)
β’ Status: β Sent or β Failed
β’ Provider: Which email service handled delivery (e.g. SendGrid, AWS SES)
β’ Template: Which email template was used (Booking Confirmation, Reminder, Campaign, etc.)
Filtering & Search:
β’ Search box: Search by recipient, subject, sender address, or domain (real-time)
β’ Status filter: All, Sent, or Failed
β’ Sender filter: All senders, Custom domain only, or Default sender only
β’ Refresh button (βΊ): Reload logs from the backend
Pagination:
Logs are paginated at 25 entries per page. Navigation buttons at the bottom let you move between pages. The total entry count is displayed.
Email Detail Modal:
Click any row to open a detailed modal showing the complete log record:
β’ Log ID, Timestamp, User ID
β’ Full recipient email, recipient domain, recipient hash
β’ Complete subject, sender address, reply-to address
β’ Status, Provider, Domain Used, From Domain
β’ Template name, Message ID, Error details (if failed)
Click β or the overlay background to close the modal.
Table columns:
β’ Timestamp: When the email was sent (formatted date/time)
β’ To: Recipient email address (may be partially masked for privacy)
β’ Subject: Email subject line (truncated if long)
β’ From: Sender address used (your custom domain or PinkBook default)
β’ Sender: Badge showing "Custom" (your domain) or "Default" (PinkBook sender)
β’ Status: β Sent or β Failed
β’ Provider: Which email service handled delivery (e.g. SendGrid, AWS SES)
β’ Template: Which email template was used (Booking Confirmation, Reminder, Campaign, etc.)
Filtering & Search:
β’ Search box: Search by recipient, subject, sender address, or domain (real-time)
β’ Status filter: All, Sent, or Failed
β’ Sender filter: All senders, Custom domain only, or Default sender only
β’ Refresh button (βΊ): Reload logs from the backend
Pagination:
Logs are paginated at 25 entries per page. Navigation buttons at the bottom let you move between pages. The total entry count is displayed.
Email Detail Modal:
Click any row to open a detailed modal showing the complete log record:
β’ Log ID, Timestamp, User ID
β’ Full recipient email, recipient domain, recipient hash
β’ Complete subject, sender address, reply-to address
β’ Status, Provider, Domain Used, From Domain
β’ Template name, Message ID, Error details (if failed)
Click β or the overlay background to close the modal.
How do I diagnose a failed email? βΆ
When a client reports they didn't receive an email, follow these steps:
Step 1 β Open Email Logs:
Go to the Admin Debug Panel β Email Logs tab.
Step 2 β Search for the email:
Type the client's email address or name into the search box. You can also filter by Status: Failed to see only failed deliveries.
Step 3 β Check the status:
β’ If the status is "Sent" β: The email was delivered to the email provider successfully. The issue is likely on the client's end (spam filter, full inbox, wrong email address).
β’ If the status is "Failed" β: Click the row to open the detail modal and read the Error field for the specific failure reason.
Common failure reasons:
β’ "Invalid recipient" β The client's email address is misspelled or doesn't exist
β’ "Sender domain not verified" β Your custom domain lost verification (DNS records may have been deleted)
β’ "Rate limit exceeded" β Too many emails sent in a short period (SendGrid/Twilio rate limits)
β’ "Authentication failed" β Your SendGrid API key is invalid or expired
β’ "Connection refused" β Backend server is not running or is unreachable
Step 4 β Check the sender:
Look at the Sender badge and From address. If it says "Default" but you expected "Custom," your domain may not be verified. Check the All Domains tab for the domain's current status.
Step 5 β Verify the template:
Make sure the Template column shows the expected type (Booking Confirmation, Reminder, etc.). If no log entry exists at all for the expected email, the trigger may not have fired β check that the booking was confirmed and that email notifications are enabled in Settings.
Step 1 β Open Email Logs:
Go to the Admin Debug Panel β Email Logs tab.
Step 2 β Search for the email:
Type the client's email address or name into the search box. You can also filter by Status: Failed to see only failed deliveries.
Step 3 β Check the status:
β’ If the status is "Sent" β: The email was delivered to the email provider successfully. The issue is likely on the client's end (spam filter, full inbox, wrong email address).
β’ If the status is "Failed" β: Click the row to open the detail modal and read the Error field for the specific failure reason.
Common failure reasons:
β’ "Invalid recipient" β The client's email address is misspelled or doesn't exist
β’ "Sender domain not verified" β Your custom domain lost verification (DNS records may have been deleted)
β’ "Rate limit exceeded" β Too many emails sent in a short period (SendGrid/Twilio rate limits)
β’ "Authentication failed" β Your SendGrid API key is invalid or expired
β’ "Connection refused" β Backend server is not running or is unreachable
Step 4 β Check the sender:
Look at the Sender badge and From address. If it says "Default" but you expected "Custom," your domain may not be verified. Check the All Domains tab for the domain's current status.
Step 5 β Verify the template:
Make sure the Template column shows the expected type (Booking Confirmation, Reminder, etc.). If no log entry exists at all for the expected email, the trigger may not have fired β check that the booking was confirmed and that email notifications are enabled in Settings.
What do the stats cards show? βΆ
The four stats cards at the top of the Admin Debug Panel provide a real-time dashboard summary:
π Total Domains
The total number of domains that have been connected to your PinkBook account, regardless of status. Includes pending, verified, and failed domains.
β Verified
How many domains have passed all DNS checks and are actively able to send emails. Shows in green. Ideally, this should match your total domains β any gap means domains need attention.
β³ Pending
How many domains are waiting for DNS verification. Shows in orange. These domains have been connected but their DNS records haven't been verified yet.
π§ Emails Logged
The total number of email send attempts recorded in the system. This includes both successful and failed sends. Use this to gauge overall email volume and compare against expected sends.
All stats update when you click the Refresh (βΊ) button or when the page loads.
π Total Domains
The total number of domains that have been connected to your PinkBook account, regardless of status. Includes pending, verified, and failed domains.
β Verified
How many domains have passed all DNS checks and are actively able to send emails. Shows in green. Ideally, this should match your total domains β any gap means domains need attention.
β³ Pending
How many domains are waiting for DNS verification. Shows in orange. These domains have been connected but their DNS records haven't been verified yet.
π§ Emails Logged
The total number of email send attempts recorded in the system. This includes both successful and failed sends. Use this to gauge overall email volume and compare against expected sends.
All stats update when you click the Refresh (βΊ) button or when the page loads.
How do I check DNS records for a domain? βΆ
From the All Domains tab, there are two ways to inspect DNS records:
Method 1 β Quick view in the table:
Click "View records βΎ" in the DNS Records column for any domain. This expands a monospace block directly in the table showing the raw DNS configuration data including verification tokens, SPF includes, DKIM selectors, and record values.
Method 2 β Full detail panel:
Click anywhere on a domain row to open the Domain Detail Panel below the table. This shows a comprehensive 2-column grid with:
β’ ID: Internal database identifier
β’ Domain: The connected domain name
β’ User ID: Which account owns this domain
β’ Status: Current verification status
β’ SPF Record: The SPF include directive
β’ DKIM Selector: The DKIM subdomain selector
β’ Verification Token: The ownership proof token
β’ Created: When the domain was connected
β’ Verified At: When it was successfully verified (blank if pending)
β’ Last Check: Timestamp of the most recent verification attempt
β’ Last Error: Error message from the last failed check (blank if successful)
β’ DNS Records: Complete raw DNS record block
The detail panel auto-scrolls into view when opened. Click β to close it.
Method 1 β Quick view in the table:
Click "View records βΎ" in the DNS Records column for any domain. This expands a monospace block directly in the table showing the raw DNS configuration data including verification tokens, SPF includes, DKIM selectors, and record values.
Method 2 β Full detail panel:
Click anywhere on a domain row to open the Domain Detail Panel below the table. This shows a comprehensive 2-column grid with:
β’ ID: Internal database identifier
β’ Domain: The connected domain name
β’ User ID: Which account owns this domain
β’ Status: Current verification status
β’ SPF Record: The SPF include directive
β’ DKIM Selector: The DKIM subdomain selector
β’ Verification Token: The ownership proof token
β’ Created: When the domain was connected
β’ Verified At: When it was successfully verified (blank if pending)
β’ Last Check: Timestamp of the most recent verification attempt
β’ Last Error: Error message from the last failed check (blank if successful)
β’ DNS Records: Complete raw DNS record block
The detail panel auto-scrolls into view when opened. Click β to close it.
What should I do if the backend is not reachable? βΆ
If the Admin Debug Panel shows "β Backend not reachable" in the domains table or email logs area, it means PinkBook's backend server is not running or is unreachable from your browser.
To resolve:
1. Start the backend server:
Open a terminal, navigate to the
The server should start on the configured port (default: 3001).
2. Check the port:
The Admin Debug Panel connects to
3. Check for errors in the terminal:
If
4. Refresh the page:
After the backend is running, click the Refresh (βΊ) button or reload the page to re-fetch data.
Note: All domain management and email features require the backend server. The frontend pages will display data from the last successful fetch, but no new operations (connect, verify, send) will work until the server is available.
To resolve:
1. Start the backend server:
Open a terminal, navigate to the
backend folder, and run:cd backend && npm startThe server should start on the configured port (default: 3001).
2. Check the port:
The Admin Debug Panel connects to
http://localhost:3001/api. If your server runs on a different port, the connection will fail.3. Check for errors in the terminal:
If
npm start fails, check for missing dependencies (npm install first), port conflicts (another process using 3001), or missing environment variables.4. Refresh the page:
After the backend is running, click the Refresh (βΊ) button or reload the page to re-fetch data.
Note: All domain management and email features require the backend server. The frontend pages will display data from the last successful fetch, but no new operations (connect, verify, send) will work until the server is available.
How do I filter and search effectively? βΆ
Both the All Domains and Email Logs tabs have search and filter controls that work in real-time:
All Domains Tab:
β’ Search: Type any part of a domain name or user ID. The table filters instantly as you type. For example, typing "salon" would match
β’ Status Filter: Select a status from the dropdown to show only Pending, Verified, or Failed domains. Choose "All" to reset.
Email Logs Tab:
β’ Search: Type any part of a recipient email, subject line, sender address, or domain. For example, typing "gmail" shows all emails sent to Gmail addresses.
β’ Status Filter: Show only Sent or Failed emails.
β’ Sender Filter: Show only emails sent from your custom domain or only those sent from the default PinkBook sender. This is useful for verifying your custom domain is actually being used.
Tips:
β’ All searches are case-insensitive β you don't need to match capitalization
β’ Filters combine β you can search for "reminder" while filtering by "Failed" to find all failed reminder emails
β’ Filters reset when you switch tabs or reload the page
β’ Use the Refresh (βΊ) button to pull the latest data from the server while keeping your current filters
All Domains Tab:
β’ Search: Type any part of a domain name or user ID. The table filters instantly as you type. For example, typing "salon" would match
salonbyjane.com and any user IDs containing "salon."β’ Status Filter: Select a status from the dropdown to show only Pending, Verified, or Failed domains. Choose "All" to reset.
Email Logs Tab:
β’ Search: Type any part of a recipient email, subject line, sender address, or domain. For example, typing "gmail" shows all emails sent to Gmail addresses.
β’ Status Filter: Show only Sent or Failed emails.
β’ Sender Filter: Show only emails sent from your custom domain or only those sent from the default PinkBook sender. This is useful for verifying your custom domain is actually being used.
Tips:
β’ All searches are case-insensitive β you don't need to match capitalization
β’ Filters combine β you can search for "reminder" while filtering by "Failed" to find all failed reminder emails
β’ Filters reset when you switch tabs or reload the page
β’ Use the Refresh (βΊ) button to pull the latest data from the server while keeping your current filters