⏱ Total: 1.5–2.5 hours — spread across two sittings if needed. Progress saves while you stay on this page.
Have ready: Collection names & prices · State sales tax rules · GHL account access · Payment processor login
Step 1 of 8
Your Studio Details
Foundation of your booking system. Appears exactly as typed on your booking page.
Studio Identity
Sales Tax
Tax rules vary significantly by state. What applies in Pennsylvania does not automatically apply to you. Answer the three questions below. If unsure, stop and ask your accountant first.
DisclaimerWe are not accountants. This is general guidance only. Always confirm with a licensed CPA who knows your state's photography and digital product laws.
Scenario A
Images Only
Tax on digital images/prints. Session fee exempt as a service retainer. Pennsylvania works this way.
Scenario B
Everything
Tax on the full transaction including the session fee. State treats the whole package as a taxable product sale.
Scenario C
No Tax
State doesn't require tax on photography or digital image delivery. Some states have no ruling on digital files.
Stop HereYou answered "not sure" to at least one question. Do not guess on tax. Ask your accountant what your state requires for photography and digital product delivery specifically before continuing.
Tax Configuration
No TaxYour booking page will not apply sales tax. Update this section if your situation changes.
Studio Contact & Links
These appear in your booking page footer so clients can reach you and follow you.
Heading Font
This font appears on your H1 and H2 headings on your booking page. Click a card to select -- the preview shows exactly how your heading text will look in that font.
Body text stays the sameYour body copy, labels, and buttons always use Jost (clean, modern sans-serif). Only your display headings use this font.
The non-refundable retainer clients pay to hold their date. Payment plan clients pay this first. Pay-in-full clients pay their full collection total instead.
Payment Plan vs Pay-In-FullPayment plan clients pay the session fee today to book, then make installments toward their collection before their session date.
Pay-in-full clients pay session fee + image investment in one payment at booking. Tax applied automatically based on ZIP.
Creating Your Session Fee Link in GHLGo to Payments → Products, create a product for your session fee amount. Then go to Payments → Payment Links, create a one-time payment link attached to that product, and copy the URL. Paste it above.
Step 2 of 8
Your Session Experience
These details build the "Before You Book" walkthrough your clients see on Page 1. Only what's true for your studio appears -- everything else is hidden automatically.
Session Length
Total studio time from when the client arrives to when they leave.
Hair & Makeup
H&MU DurationAppears as "Your session starts with [X] of hair and makeup." Helps clients plan their day.
Client Closet
Closet DetailsAppears as "The client closet has [X] pieces in sizes [Y]." If you select No, this block is completely removed from your booking page.
Image Reveal
Parking & Entry (optional)
Leave blank and this block is completely hidden on your booking page.
What to Bring (optional)
Appears as a checklist on the booking page. Separate items with commas. Leave blank to hide this block entirely.
Anything Else? (optional)
A personal note at the bottom of the walkthrough. Great for something unique to your studio. Leave blank to hide.
Step 3 of 8
Your Collections
Add every collection you offer. Clients will choose from these on your booking page.
Collection Price = Images OnlyEnter the image investment only — do NOT include the session fee. If your full package is $3,400 and your session fee is $600, enter $2,800 here. The system adds the session fee on top automatically.
Payment Links — Read FirstEach collection needs two GHL payment links: one for pay-in-full (session fee + image investment combined) and one for payment plan installments (image investment only, split across installments). If you charge tax, you need a second version of each with tax included. Full instructions in Step 6.
Step 4 of 8
Payment Plan Rules
These numbers go directly into your booking page. Take your time.
Booking Window
How far out do you book? This determines how many installments are possible before each session date.
Installment Limits
Plan Types You Offer
Step 5 of 8
Session Availability
Select every month you are currently booking. Clients can only choose from these months.
Updating LaterAvailable months are stored in a short list in your HTML file. When a month fills up, you remove it. When you open new dates, you add one. The Edit Later tab in Step 7 shows exactly how.
Select Available Months
Step 6 of 8
Promo Codes
Optional. Add discount codes now or skip and add them directly in the code later.
How They WorkCodes discount the image investment only — session fee is never discounted. The system recalculates all installment amounts automatically from the discounted total.
Promo Codes
Step 7 of 8
GoHighLevel Setup
Set up these pieces in GHL before generating. The form will not work without them.
Your Webhook URL
1
Get Your Webhook URL from GHL
Go to Automation → Workflows → + New Workflow → Start from Scratch
Click the trigger → select Inbound Webhook → GHL generates a URL → copy it → paste below.
12 Custom Fields to Create in GHL
Settings → Custom Fields → Contacts → + Add Field for each. Double-check the key matches exactly.
Field Name
Key
Type
Preferred Session Month
preferred_session_month
Text
Prepayment Collection
prepayment_collection
Text
Pay In Full Or Payment Plan
pay_in_full_or_payment_plan
Text
Payments Process Weekly Biweekly Or Monthly
payments_process_weekly_biweekly_or_monthly
Text
First Payment Date
first_payment_date
Date
Final Payment Date
final_payment_date
Date
First Payment Amount
first_payment_amount
Number
Final Payment Amount
final_payment_amount
Number
Promo Code Used
promo_code_used
Text
Discount
discount
Number
Contact Preference
contact_preference
Text
Tax Applied
tax_applied
Text
Payment Links
1
Create Products
Payments → Products → + Add Product — create products for each collection at the correct amounts:
Pay-In-Full products: session fee + image investment combined (e.g. $600 session + $2,800 images = $3,400 product). If you charge tax, create a tax-included version too.
Payment Plan products: image investment only (e.g. $2,800). The system splits this into installments. Tax version if needed.
Also create a product for your session fee alone — this is what payment plan clients pay at booking.
2
Create Payment Links
Payments → Payment Links → + New Payment Link — set to one-time payment.
PIF link (no tax): attach the session fee + image investment product (e.g. $3,400) PIF link (with tax): attach the session fee + image investment + tax product Payment plan installment links: attach the image-investment-only products (system handles the math) Session fee link: used for payment plan clients at booking
Paste PIF links into Step 2 under each collection. Session fee link goes in Step 2 above.
3
Build Your Workflow
After your first test submission GHL shows all incoming fields. Add Create or Update Contact, map every field to its custom field, add follow-up automations (welcome email, tags, tasks), then publish.
Step 8 of 8 — Done
✦
Your Studio
Complete Booking Page — Ready to Deploy
⏳ Settings saved 21 days — return anytime to edit and regenerate
Need to change something? Click any step above to edit and regenerate.
◆ Last Step Before You Go LiveSet your GHL contact form redirect to your booking page URL.
Once you upload this file to Netlify and get your live URL, you need to tell GHL to send clients there after they submit your contact form. That's how a lead turns into a booking.
In GHL, go to:
Sites → Funnels (or Forms, depending on how your contact form is set up)
→ Open your contact form or funnel step
→ Find Redirect URL or Thank You / Confirmation Page
→ Paste your booking page URL there
→ Save and publish
If your contact form lives on a third-party site (Showit, Squarespace, etc.), look for the form's "success redirect" or "confirmation URL" setting and paste your booking page URL there instead.
Complete HTML Page
GHL Checklist
Editing Later
This is your complete, working booking page. Download the file and upload it to Netlify, paste it into a GHL funnel page custom code block, or host it anywhere that accepts HTML. It works immediately with no further setup beyond what you completed in Steps 1–6.
Click "Generate My Booking Page" to see your complete page here.
Check everything before sharing your link with anyone.
📅
Updating Available Months
Open your .html file in any text editor. Find the line that says availableMonths: near the top inside the CONFIG block. Edit the list of month strings. Each must be in quotes, separated by commas. Save and re-upload.
💰
Changing Prices
In the CONFIG block find the collections: array. Change the price: value for any collection. Also update your GHL payment links if the price changed. Save and re-upload.
🎟
Promo Codes
In the CONFIG block find promoCodes:. Add a code: "SAVE200": { type: "fixed", amount: 200, active: true }. To disable a code without deleting it, set active: false. Save and re-upload.
🔄
Regenerate Instead
Come back to this generator within 21 days. Update your answers and click Generate again. Download the new file and re-upload wherever it's hosted. Your 21-day window resets every time you generate.