Let’s Make this a Little Easier for you!
With a little bit of guidance I’m sure that we can get you on your way
to having the perfect booking system for your business.
We’ll get you up and running in three easy steps.
Let’s Take This Step By Step
Step 1
Download MorphBook — Click the download button and save the file (morphbook-v1.0.0-complete.zip) to your computer. Once downloaded, find it in your Downloads folder and unzip/extract it. You’ll see 3 files inside — you only need two of them: install.php and dog-grooming-system-v1.0.0.tar.gz.
We’re going to use Hostinger as the example for setting up in your hosting platform and website.
Set up a home for MorphBook on your hosting — MorphBook needs to be installed on a domain or subdomain. We recommend creating a subdomain like app.yourdomain.com so it stays separate from your main website. In Hostinger: from the home screen click Websites, then click Manage on your domain. In the left menu go to Domains → Subdomains, type a name like app and click Create.
Open File Manager — Still inside your Hostinger dashboard, look in the left menu under Files and click File Manager. Once it opens, you’ll see a folder called public_html — open it. Inside you’ll find a folder named after your subdomain (for example, if you created a subdomain called app, open the folder called app). If you’re installing on your main domain instead, just stay inside public_html.
Upload both files — Click the Upload button at the top of File Manager and select both install.php and dog-grooming-system-v1.0.0.tar.gz at the same time. Wait for both to finish uploading before moving on.
Step 2
Licensing Key – You should have received an email along with the download that refers to the MorphBook licensing key you will need to copy this and paste it when prompted after you’ve loaded the installer in the URL.
Run the installer – Open a new browser tab and go to your website address with /install.php at the end. For example, if your website is www.happypaws.com, you would go to: www.app.happypaws.com/install.php as app was the subdomain we chose.
Step 3
Choose your Database – You’ll see the MorphBook installer page. It will check your server automatically. Select SQLite as your database (recommended — no extra setup needed), confirm your website address, and click Install. It only takes a few seconds.
Complete your setup – After the installer finishes, it will redirect you to your website automatically. A setup wizard will appear walking you through creating your admin login, uploading any config file for the program you may have if you played with the program on the demo page, uploading any existing client data if you have any, and instructions on how to put it into your website. Follow the steps and you’ll be up and running.
Log in and go live – Once the setup wizard is done, log in with the admin account you just created. Your booking system is live — your clients can now start booking appointments.
Adding the MorphBook Program Into Your Website
There are three ways to add MorphBook to your website. Pick the one that fits your site best.
Every MorphBook install has a booking URL:
Just paste this link anywhere — as a menu item, a button, a social media post, or text it to clients. No embedding required.
This puts the full booking form directly on a page of your website.
Your embed code:
In your WordPress dashboard, go to Pages and open (or create) the page where you want the booking form (e.g. “Book Now”).
Click the + button to add a new block, type HTML in the search box, and select Custom HTML.
Paste the embed code above into that block.
Click Update or Publish. Your booking form will now appear on that page.
In the Wix Editor, click + → Embed → HTML iFrame.
Click Enter Code, paste the embed code above, then click Update.
Add a Code / Embed block to any page and paste the code above.
A small button floats in the corner of every page on your site. Clients click it to open booking in a pop-up.
Your widget code:
Change the position to bottom-left, top-right, or top-left if you prefer.
Go to Plugins → Add New. Search for Insert Headers and Footers and install the one by WPCode.
Activate the plugin, then go to Settings → Insert Headers and Footers.
Paste the widget code above into the Scripts in Footer box.
Click Save. Visit your site — a Book Now button will appear on every page.
Why a plugin? Most modern WordPress themes (including Elementor and Hello Elementor) don’t have a built-in place to add custom scripts. This free plugin is the standard safe way to do it without editing theme files.
Each has a “Custom Code” or “Header/Footer Code Injection” setting in site settings — paste the widget code into the footer section.
Just want the link? → Option 1
Want booking to feel like part of your site? → Option 2
Want a button visible on every page? → Option 3
You can use more than one at the same time (e.g. embed on a “Book” page AND have the floating button on every page).
Replace “app.yourdomain.com" with the domain where you installed MorphBook (the one you see in your browser when you log into your admin dashboard). Remember it also depends on whether you chose to use a subdomain or put it directly in your domain files. So if you chose to do a subdomain and called it app, then app.yourdomain is the url, but if you just placed it in the domain files, then yourdomain.com is the url.
I realize you may not have played with the demo page, or don’t see the things you want to do to make the booking program work for your business. Let’s walk through the different configurations together so we can make this booking program your own. Please feel free to open up another tab and play with the demo page if you don’t feel comfortable using your own booking program to make the changes right now.
Services & Add-ons – How to Set Up
In the navigation bar, click Admin (note: if you’ve renamed this in your branding settings, look for whatever label you’ve set for the admin page). Once on the Admin Dashboard, click the Settings tab. Scroll down until you find the Bookable Services and Add-ons section.
Step 1 — Choose how pricing works for your business
At the top of the section you’ll see a Booking Features panel with two toggles — Enable Services and Enable Add-ons — along with a Flat Rate Price field.
If you offer multiple booking types at different prices (e.g. a basic package vs. a premium package), leave Enable Services on and set up each one individually in Step 2.
If you charge a single price for every booking regardless of what’s done, turn Enable Services off. Enter your standard price in the Flat Rate Price field that appears.
Click Save Settings after making your choice.
Step 2 — Add your services (skip this if you set a flat rate)
Click + Add Service and fill in:
Name — what clients will see when booking
Description — optional, briefly describes what’s included
Price per size — if size-based pricing is enabled, set a price for each size. If everyone is charged the same, enter the same price in each row
Duration — how long this booking type takes in minutes
Click Save. Repeat for each offering.
To temporarily hide a service without deleting it, click the eye icon. To remove it permanently click the bin icon.
Step 3 — Add your add-ons (optional)
Add-ons are optional extras clients can choose during booking, each with their own price added on top.
If you don’t offer extras, turn off the Enable Add-ons toggle at the top and click Save Settings.
If you do, click + Add Add-on, fill in the name, optional description, and price, then click Save. Repeat for each extra.
Step 4 — Set your default duration and daily capacity
Still in the same Booking Features panel:
Default Duration — fallback appointment length in minutes if a service doesn’t have its own duration set
Daily Capacity — maximum number of appointments that can be booked per day
Click Save Settings when done.
Service Subjects — How to Set Up
A “subject” is whatever your service is performed on — for a pet groomer that’s a pet, for a landscaper it’s a lawn, for a detailer it’s a vehicle, and so on. MorphBook is built to work with any type of subject, or none at all.
In the navbar, click Admin, then the Settings tab. Scroll all the way to the bottom until you reach the Other Settings section. Click Manage Service Subjects — this opens a dedicated configuration page.
Step 1 — Decide if your business uses subjects
At the top you’ll see an Enable Service Subjects toggle.
If your service is applied to a specific thing (a pet, a car, a property, etc.), leave this on. Clients will register their subjects in their profile before booking and select one at the start of each booking.
If your service doesn’t involve a specific recurring subject (e.g. consulting, tutoring, general appointments), turn this off. The subject step is removed from the booking flow entirely.
Click Save Settings after making your choice.
Step 2 — Name your subjects (if enabled)
Fill in:
Singular Name — what one subject is called (e.g. Pet, Dog, Lawn, Vehicle, Property)
Plural Name — the plural version (e.g. Pets, Dogs, Lawns, Vehicles, Properties)
Icon/Emoji — an emoji that represents your subject, shown in the UI
Then decide:
Require a subject to book — if ticked, clients must have at least one subject added to their profile before they can make a booking. If unticked, booking can proceed without selecting one.
Click Save Settings.
Step 3 — Set up your subject fields
These are the details collected when a client registers a subject — essentially the profile form for each one.
Click + Add Field for each piece of information you want to collect. For each field:
Field Label — what clients see (e.g. Name, Breed, Colour, Make, Model, Size)
Field Type — choose from text, number, date, dropdown, checkbox, or notes/textarea
Required or Optional — required fields must be filled in before the subject can be saved
For dropdown fields, you’ll be prompted to enter the list of options (e.g. Small, Medium, Large)
To temporarily hide a field without deleting it, click the eye icon. To toggle whether a field is required, click the Required/Optional button next to it. To remove it permanently, click the bin icon.
How this affects your clients
When subjects are enabled, clients add their subjects (e.g. their pet/vehicle/property) to their account from their Profile page. When they go to book an appointment, the first step asks them to choose which of their subjects the appointment is for. If they haven’t added one yet and subjects are set to required, they’ll be prompted to add one before they can continue.
Clients — How to Manage
In the navigation bar, click Clients (or whatever label you’ve set for it in your branding settings). This opens the Client Management page.
At the top you’ll see a quick overview showing your total clients, how many are active (have had at least one appointment), and — if subjects are enabled — the total number of subjects registered across all accounts.
Use the search bar to find any client by name, email, or phone number.
Creating a client manually
Click + New Client in the top right. Fill in the client’s details and click Save. The fields shown here are the same ones configured under your Client Form Fields settings — so if you’ve added custom fields, they’ll appear here too.
Clients can also create their own accounts by registering on your booking page.
What you can do on each client card
Click any client in the list to reveal their actions:
Book Appointment — opens a booking form on behalf of the client. You select their subject (if applicable), service, staff member (optional), date, available time slot, any add-ons, and special requests. You can also process payment right here — full payment, a deposit, or set it to pay in person — depending on your payment settings. The appointment is created with a pending status and will need to be confirmed.
Add [Subject] — only visible if subjects are enabled. Adds a new subject (e.g. a pet, vehicle, property) to the client’s profile. The form shown uses whatever subject fields you’ve configured.
Edit Info — updates the client’s contact details and any custom profile fields.
View Details — expands the client card to show:
Account Notes — an internal staff-only notes area. Use this for anything you want to remember about the client (e.g. payment arrangements, special instructions, flags). Clients cannot see these. You can add, edit, or clear notes here.
Their subjects (if enabled) — lists all subjects registered to this account
Recent appointments — shows their last three bookings with status and date
Delete — permanently removes the client, all their subjects, and all their appointments. This cannot be undone — a confirmation prompt will appear before anything is deleted.
Employees — How to Set Up and Manage
In the navigation bar, click Employees (default label — customisable in your branding settings). This page is only visible to admins. It shows a count of your current admins, employees, and total staff.
Creating an employee account
Click Create Employee and fill in:
First Name, Last Name, Email, Password — the employee will use the email and password to log in. Set a password and share it with them directly; minimum 6 characters
Phone — optional contact number
Bio / Description (client visible) — a short description shown to clients when they’re choosing a staff member during booking. Use this for skills, experience, or a friendly introduction
Notes (internal) — visible to the employee and admins only. Use for working arrangements, preferences, etc.
Admin Notes (admin only) — private notes only admins can see. The employee has no access to this field
Click Create Employee to save.
Managing existing accounts
Use the filter buttons — All Staff, Admin, Employee — to narrow the list, and the search bar to find by name or email.
Each account in the list shows:
Role dropdown — change an account between Client, Employee, and Admin at any time
Edit (pencil icon) — update all profile fields including bio, notes, and admin notes
Delete (bin icon) — permanently removes the account
If a client has accidentally registered when they should be an employee (or vice versa), use the Merge Users button to combine two accounts into one without losing their data.
Setting up employee booking availability
An employee account alone doesn’t make them bookable — you also need to set their working hours.
Go to Admin → Settings, scroll down to Employee Schedules (Booking Availability). Select an employee from the list on the left. Their weekly schedule grid appears, showing each day with hourly time slots drawn from your business hours.
Click individual slots to mark when they’re available. Use Select All or Clear All per day for speed. Days where your business is closed will show as unavailable automatically. Click Save Schedule when done.
These hours are what control when clients can book appointments with that specific employee. If an employee has no schedule set, no slots will appear for them during booking.
Time off requests
Employees can submit time off requests from the Time Off nav item (visible to both admins and employees). They enter a date range, optionally specific times for a partial day, and a reason.
As admin, you’ll see all pending requests on the same page and can Approve or Reject each one. Approved time off automatically blocks that employee’s availability during those periods so clients cannot book them.
Employee permissions
Go to Admin → Settings, scroll down to Employee Permissions.
Currently this controls Quick Buy access — a feature that lets employees process in-person sales quickly. There are two levels:
Enable the Quick Buy Feature global toggle first
Then tick the checkbox next to each individual employee you want to grant access to
Click Save Permissions when done. Changes take effect immediately across all sessions.
How clients book an appointment
Clients click Clients (or Book, depending on their nav label) or go to Book in the navbar. The booking form is a multi-step process that adjusts dynamically based on your configuration:
Select a subject — if subjects are enabled (e.g. a pet), the client selects or adds one
Select a service — if services are enabled, they choose what they’re booking
Select a staff member — clients can pick a specific employee or choose no preference (this step can be hidden — see Settings below)
Pick a date and time — a calendar and available time slots appear based on the selected employee’s schedule and your business hours
Add-ons — if add-ons are enabled, the client can select optional extras
Payment — if online payments are configured, the client chooses how to pay
Confirmation — a summary of all details including total price; special requests can be entered here before submitting
Staff and admins booking on behalf of a client go through the same flow, but start with a client selection step first.
Payment options at booking
Depending on your payment settings, clients may see up to three options:
Pay Full Amount Now — pay the total via your configured online payment provider (Stripe, PayPal, or Square)
Pay Deposit — pay a set percentage now (e.g. 50%) and the remainder at the appointment. This option only appears if partial payments are enabled in your payment settings
Pay in Person — no payment taken online; the client pays when they arrive. This option appears if the cash/in-person provider is active
If payment is marked as required in your settings, the “Pay in Person” option is hidden and the client must pay online to complete the booking.
Appointment statuses
Every appointment moves through the following statuses:
Pending Approval — newly booked, awaiting confirmation
Confirmed — approved and scheduled
Completed — the appointment took place
Cancelled — declined or cancelled by client, employee, or admin
No Show — the client did not attend
Not Completed — marked manually when an appointment couldn’t be finished
Approving, rejecting, and managing appointments
Go to Appointments in the navbar. Admins see all appointments labelled “All Appointments.” Employees see only their assigned appointments under “My Schedule.” Clients see “My Appointments.”
Use the filter buttons to sort by status — All, Pending, Confirmed, Completed, Cancelled, No Show, Not Completed. Admins also have an employee filter to view one person’s schedule at a time.
Admin actions per status:
Pending — Approve (moves to Confirmed) or Reject (moves to Cancelled)
Confirmed — Mark Complete or Cancel
Not Completed — Mark Complete, Mark No Show, or Cancel
No Show — Mark Complete or Cancel
Employee actions:
Employees see an Approve button on pending appointments assigned to them only if employee self-approval is enabled (see Settings)
Employees see Mark Complete on confirmed appointments assigned to them
Client actions:
Clients can Cancel Appointment on anything that is still pending or confirmed
Reassigning employees
If the reassign setting is enabled, a reassign icon appears next to the assigned employee’s name on each appointment card. Click it to choose a different employee from a dropdown. Admins can always reassign regardless of this setting.
Discounts and refunds
Admins can apply financial adjustments to any appointment directly from the Appointments page. On each appointment card:
Add/Edit Discount — enter a dollar amount and a reason. The discount is subtracted from the original price and shown as a line item on the appointment. The final adjusted price is displayed separately
Add/Edit Refund — same process, for recording a refund after payment has been taken
Both the amounts and reasons are visible on the appointment card for record-keeping. Either can be edited or removed after the fact.
Note: Discounts here are manual post-booking adjustments applied by staff. They are not promo codes entered by clients during booking.
Processing payments after booking
If an appointment was booked as “pay in person” or only partially paid, payment buttons appear on the appointment card:
Record Partial Payment — log a cash or manual payment amount
Process Online Payment — take a card payment through your connected payment provider
Link Square Payment — attach an existing Square transaction to the appointment
Appointment Settings
Go to Admin → Settings and scroll to Appointment Settings. Four toggles control how the system handles appointments:
Auto-Approve Appointments — when on, every new booking is immediately confirmed with no manual review needed. When off, all new appointments sit in Pending until manually approved
Allow Employee Self-Approval — when on, employees can approve pending appointments assigned to them. This is greyed out and has no effect if auto-approve is enabled
Allow Employee Selection During Booking — when on, the staff member selection step is shown to clients during booking. When off, that step is hidden and the assignment is handled manually or automatically
Allow Employees to Reassign Groomers — when on, employees can change which staff member is assigned to an appointment. When off, only admins can do this
Click Save Appointment Settings after making any changes.
Email and SMS notifications
Go to Admin → Settings and scroll to Email Settings.
Email providers supported: SMTP (Gmail, Outlook, Yahoo, Shaw, and any other), SendGrid, Mailgun. Configure your provider credentials and set a “From” address and name that recipients will see.
A Send Test Email button is available once your settings are saved — use this to verify everything is working before going live.
Client notifications (sent to the client’s email and/or phone):
Appointment confirmation — sent when a booking is made or approved
Appointment reminder — sent a configurable number of hours before the appointment (e.g. 24 hours)
Cancellation notification — sent when an appointment is cancelled
Each of these can be toggled on or off independently.
Admin notifications — enable a separate set of email alerts sent to one or more admin addresses. You control exactly which events trigger them:
A new appointment is booked (pending approval)
An appointment is approved or confirmed
An appointment is cancelled
A status change (completed, no-show, etc.)
A discount or refund is applied
Add as many recipient email addresses as you need — useful for notifying multiple staff or a business email inbox.
SMS is configured separately in the SMS Settings section just below, supporting Twilio, Vonage, and AWS SNS. A Send Test SMS button is also available once credentials are entered and saved.
Archiving old appointments
Admins have an Archive Old Appointments button at the top of the Appointments page. This removes old completed/cancelled appointments from the active list to keep things tidy. The last archive date and count of removed records is shown once archiving has been run at least once.
Size-Based Options — The Complete Guide
MorphBook has four separate but interconnected systems for controlling size-based behaviour. All are found by going to Admin → Settings and scrolling down the page. They are listed here in the order they appear.
Location: Admin → Settings → Size Categories
This is the foundation. Everything else — pricing, capacity limits, and employee speeds — references the size categories you define here.
Global settings:
Enable Size-Based Pricing — the master switch. Turn this off if your business doesn’t differentiate by size at all (e.g. one-price-fits-all). When off, all size-specific features simplify to a single “standard” option
Size Field Label — what clients see as the field name during booking. Defaults to “Size” but can be renamed to anything (e.g. “Yard Size”, “Vehicle Type”, “Dog Size”)
Allow Size Override in Booking — when on, staff can change the registered size of a subject at the time of booking. Useful if a client’s pet has grown since they registered. When off, the subject’s saved size is always used
After adjusting these, click Save Settings.
Creating size categories:
Click Add Category to create a new size. Fill in:
Category Name — what is displayed throughout the system (e.g. “Small (0-25 lbs)”, “Medium”, “Large”)
Description — optional extra detail shown to staff
Display Order — lower numbers appear first in all lists and booking forms
The system auto-generates an internal ID from the name. If you rename a size category after the fact, the system automatically migrates all linked services, speeds, and bookings — you don’t need to manually update anything elsewhere.
Each category can be individually toggled active or inactive using the eye icon. Inactive categories don’t appear in booking or pricing forms but their data is preserved. Categories can also be permanently deleted, but only if no data depends on them.
Important: Set up your size categories before configuring anything else. The pricing, capacity, and speed sections all pull from this list.
Location: Admin → Settings → Bookable Services & Add-ons → Services tab
When size-based pricing is enabled, every service has a separate price and a separate duration for each active size category. When you create or edit a service, the form shows one row per size with two fields each:
Price — how much this service costs for that size
Duration (minutes) — how long this service takes at the default/standard pace
These durations are the baseline the rest of the system builds on. Employee speed adjustments are calculated as multipliers against these values.
When size-based pricing is disabled, each service instead has a single price and single duration (labelled “Standard”).
If services themselves are fully disabled, three fallback settings appear instead:
Default Appointment Duration — a single fixed slot length for all appointments (choose from presets or enter a custom number of minutes)
Flat Rate Price — a base charge applied to every appointment; set to $0 if you charge nothing by default
Default Daily Capacity — the maximum number of appointments bookable per day across the whole business
Click Save Feature Settings after making any changes to these.
Location: Admin → Settings → Daily Capacity Limits
This sets the maximum number of appointments that can be booked business-wide per day, broken down by size. When a size reaches its limit, clients are blocked from booking that size for the day.
Toggle Enable Daily Capacity Limits on or off. When disabled, there is no system-wide cap (bookings are only limited by employee availability).
When enabled and sizing is active, you’ll see one row per active size category with a numeric input:
Enter the maximum number of appointments allowed per day for that size
Set to 0 to completely block bookings for that size on any given day
These limits apply to both pending and confirmed appointments combined
When sizing is disabled, only a single “Standard Daily Capacity” field appears — one number covering all appointments.
Click Save Changes to apply. Changes take effect immediately for any new booking attempts.
Location: Admin → Settings → Employee Service Speeds
This controls how long each individual employee takes to complete a service for each size. It requires sizing to be enabled to function.
Toggle Enable Employee Service Speeds on or off. When disabled, every employee uses the standard service durations defined in the service pricing (section 2 above). When enabled, each employee can have their own custom duration per service/size combination.
The interface shows a grid with one section per employee. Within each employee’s section, each service is listed with one input per size. Enter the actual number of minutes that employee needs to complete that service for that size.
If an employee is faster than the default, enter fewer minutes
If slower, enter more
The “Base” duration (from the service pricing) is shown as a reference below each input when it differs from the entered value
The system uses these durations to calculate appointment slot lengths and prevent double-booking — if an employee takes 90 minutes for a Large Full Groom, the system blocks that 90-minute window in their schedule.
Click Save Groomer Speeds when done.
Note: If a service and size combination shows “No matching size categories,” it means the service’s pricing entries don’t match the current active size categories. Edit the service to realign the pricing.
Location: Admin → Settings → Employee Capacity Management
This is separate from the system-wide capacity limits. Here you set how many appointments each individual employee can handle per day, with the ability to filter by size and service type.
Select an employee from the dropdown. Two tabs appear:
Default Limits tab
Sets limits that apply every day unless a date override exists. Click Add Default Capacity Limit and fill in:
Size (optional) — leave blank to apply to all sizes, or choose a specific size
Service (optional) — leave blank to apply to all services, or choose a specific service
Max Per Day — the maximum number of appointments for that combination
Examples:
Size: (blank), Service: (blank), Max: 8 → this employee can take no more than 8 appointments total per day
Size: Large, Service: (blank), Max: 3 → no more than 3 large appointments regardless of service
Size: Large, Service: Full Groom, Max: 2 → no more than 2 large full grooms specifically
More specific rules take priority over general ones. If both a “Large” rule (max 3) and a “Large + Full Groom” rule (max 2) exist, the system uses max 2 for Large Full Grooms and max 3 for other large services.
Set a limit to 0 to prevent that employee from taking that combination entirely.
Date Overrides tab
Works the same as default limits but for a specific date. Add a date alongside the size/service/max fields. These take priority over default limits for that date — useful for reducing an employee’s load on a busy day or before a holiday.
Delete any limit or override using the trash icon next to it.
When sizing and services are both disabled, this section simplifies to a single Max Appointments Per Day field per employee — no size or service filtering.
The booking system enforces all four systems simultaneously. A time slot becomes unavailable if any of the following is true:
The system-wide daily capacity for that size has been reached
The selected employee has hit their personal daily limit for that size/service combination
The selected employee’s schedule doesn’t cover that time slot (set in Employee Schedules)
The time block needed (based on the employee’s speed for that service/size) overlaps with another appointment
Sizing must be enabled in Size Categories for the size-specific parts of all four systems to function. Disabling sizing collapses everything to simple flat-rate, single-duration, and overall-count settings.
Didn’t find the answers you were looking for? Please feel free to reach out on our contact page by clicking the ‘Contact Me’ button below.
Just wanted to share your experience or thoughts, I’d love to see them on the testimonials page by clicking the ‘Leave a Review?’ button below.