Magic Year Photography
The Operator's
Manual
Everything you need to run the studio through this platform — from the first inbound text to the final referral payout. This guide assumes no technical background.
Overview
Magic Year Photography is a complete operating platform for an editorial senior-portrait studio. It handles five jobs that used to live across half a dozen tools:
- Marketing site — a one-page cinematic site that showcases work and drives bookings.
- Lead capture — an AI-powered SMS auto-responder qualifies text inquiries instantly, plus quick-call and date-request forms.
- Payments — Stripe checkout for three session tiers and a deposit, with ambassador referral tracking built in.
- Client onboarding — a prep guide and a detailed intake form sent automatically after payment.
- Ambassador program — student reps earn commission on referrals, with a self-service portal, W-9 collection, and automated payout accounting.
Everything is automated where it should be and manual where you want control. The rest of this manual walks through each piece in the order you'll touch it day to day.
First-Time Setup
Most of the platform is pre-configured. Before going live, verify these four things in Settings → Secrets:
- Stripe keys (
STRIPE_SECRET_KEY,STRIPE_PUBLISHABLE_KEY) — connect your Stripe account so checkout works. The webhook secret is already wired.- Stripe keys (
- Twilio keys (
TWILIO_ACCOUNT_SID,TWILIO_AUTH_TOKEN,TWILIO_FROM_NUMBER) — powers the SMS auto-responder.- Twilio keys (
- Photographer phone (
PHOTOGRAPHER_PHONE) — where AI summaries of inbound texts get forwarded.- Photographer phone (
- Custom domain — connect one (Settings → Domains) so automated emails to clients and ambassadors deliver reliably.
Your Dashboard
Your control center lives at /portal (log in with your admin account). It opens to a tabbed admin dashboard with five views, each showing a live count of items needing attention:
- Quick Call Leads — people who requested a 15-min consult.
- Date Requests — prospective clients who submitted preferred dates.
- Ambassadors — applications awaiting approval and active reps.
- Referrals — every referral with commission status.
- Intake Forms — completed client questionnaires.
The number badges show how many items in each tab are new or pending — start your day there.
Leads & Inquiries
The AI SMS Auto-Responder
When someone texts your studio number, the AI assistant replies within seconds — answering pricing and availability questions in your brand voice, capturing intent, and forwarding a summary to your phone so you can follow up personally. Every conversation is logged in the InboundMessage records (visible to admins via the API, and summarized in your text forward).
What the assistant does automatically:
- Classifies the inquiry (pricing, booking, availability, referral, general).
- Replies with accurate package info and a prompt to book.
- Flags whether you need to call them back.
- Texts you a short summary so nothing slips through.
Quick Call Requests
A floating "Quick Call" button on the site lets visitors request a 15-minute consultation. They submit name, phone, and a message. These land in the Quick Call Leads tab — mark them "contacted" once you've reached out.
Date Requests
The "Request a Date" form captures a prospect's name, email, phone, school, school city, three preferred dates, and package interest. These appear in the Date Requests tab with all dates visible — confirm one and move the status to "scheduled."
Payments & Packages
The /payment page offers three session tiers and a refundable deposit, all processed through Stripe:
- Essential — $349: 30–40 min, 1 location, 2 outfits, 15 images.
- Signature — $549 (most popular): 60–75 min, 1–2 locations, 3 outfits, 30 images.
- Ultimate — $849: up to 2 hrs, 2–3 locations, unlimited outfits, 50+ images.
- Booking Deposit — $150: holds a date; balance settled at/after the session.
Clients can enter an ambassador referral code at checkout. The code is attached to the Stripe session as metadata, so when payment succeeds the webhook automatically credits the referring ambassador.
Client Onboarding
The moment a client pays, the platform emails them two links automatically:
- Prep Guide & Release (/prep-guide) — what to wear, how to prepare, and the model release + sideline video consent forms.
- Intake Form (/intake) — a detailed questionnaire capturing their story, the people and places that matter, outfit plans, and consent/signature. Submissions land in the Intake Forms tab.
Both links also appear on the payment success screen so clients can fill them in immediately. You'll find completed intake forms in the dashboard — review the story and outfit notes before the session.
Sessions & Follow-ups
After a session, a 3-day automated follow-up sends the client a review request and a gentle referral nudge. This runs on a schedule — you don't touch it. The follow-up is tracked per session so it never sends twice.
Session records (created when a booking is confirmed) carry the client name, package, date, location, and status. Mark a session "completed" after delivery; the follow-up workflow handles the rest.
The Ambassador Program
Student reps drive referrals and earn a 10% commission on every booked session they refer. Here's the full lifecycle:
1. Application
Students apply through the Ambassadors section on the site. The form captures name, school, school city, year, birthday, work authorization, activities, organizations, post-grad plans, and why they applied. Applications land in the Ambassadors tab as "pending."
2. Approval
When you approve an application, the platform automatically:
- Generates a unique referral code (e.g.
AMB-EMMA-K3).- Generates a unique referral code (e.g.
- Creates a magic-link access token for their portal.
- Sets their status to "active" and requests their W-9.
- Emails them a welcome link to their onboarding page.
3. Welcome & W-9
The ambassador's welcome page (/ambassador-welcome?token=…) shows their referral link and code, a downloadable QR code for easy sharing, and the W-9 form. They must submit a W-9 before earning — it's collected right on the welcome page. The W-9 status shows in your dashboard as "submitted" then "on file" once reviewed.
4. The Portal
Each ambassador has a permanent self-service portal (/ambassador-portal?token=…) showing their referral count, total earned, commission rate, their shareable link, and a full referral history. They never need to log in — the token in their link is their access. You can open any ambassador's portal directly from the dashboard.
5. Referrals & Commissions
When a client pays with an ambassador's code, the Stripe webhook creates a Referral record and increments the ambassador's totals automatically. Commissions are calculated at the ambassador's rate (default 10%) and visible in both the dashboard and the ambassador's portal. You pay out earned commissions on your own schedule; the platform tracks what's owed.
Automated Workflows
Two background workflows run without any action from you:
- Session Follow-up — 3 days after a completed session, emails the client a review request and referral nudge. Fires once per session.
- A2P Status Check — monitors your Twilio A2P 10DLC campaign registration (required for business texting) and notifies you of status changes so your SMS channel stays live.
These are visible in the Workflows dashboard. You can pause or reactivate them there if needed.
Settings & Secrets Reference
All configuration lives in Settings → Secrets. Here's what each controls:
STRIPE_SECRET_KEY/STRIPE_PUBLISHABLE_KEY— Stripe account connection for checkout.STRIPE_WEBHOOK_SECRET— verifies Stripe webhook events (already set; only delete if re-registering the webhook).TWILIO_ACCOUNT_SID/TWILIO_AUTH_TOKEN/TWILIO_FROM_NUMBER— the SMS auto-responder.PHOTOGRAPHER_PHONE— where AI text summaries are forwarded.STRIPE_TEST_*— test-mode keys for sandbox checkout (optional).
Troubleshooting
Checkout won't load in preview
Expected — checkout is blocked inside the builder iframe. Open the live /payment page on the published domain.
Ambassador portal says "Link not found"
The portal needs a ?token= in the URL. Ambassadors get this link by email on approval. To preview, open the ambassador's row in the dashboard and click "Open Portal."
A referral didn't credit
Check that the client entered the ambassador's code at checkout and that the Stripe webhook is enabled (Workflows / Stripe dashboard). The webhook only fires on live payments.
Emails aren't arriving
Automated emails to clients and ambassadors require a connected custom domain on a paid plan. Registered app users always receive email; external addresses need the domain.
SMS auto-responder stopped
Your Twilio A2P 10DLC campaign must be approved for business texting in the US. The platform monitors this automatically and alerts you — check the A2P workflow status in the dashboard.
Magic Year Photography · Operator's Manual
Print or export this page to PDF to share with your team.