Studio Magic · Back office — how a job flows
One job, from booking to delivered photos. Setting your studio up is a separate guide.
Print it. Each line names the screen.
| # | Step | Where you go | What happens |
|---|---|---|---|
| 1 | Get the job in | Booking Magic → 📥 Intake queue / 🎯 Book / Rebook, or Organizations → New | A job gets created |
| 2 | They get their portal | Automatic when you approve | Org gets ONE "you're booked" email + their picture-day home |
| 3 | Session details | Job → Send session details (or they fill it in-portal) | Headcount, schedule, arrival |
| 4 | Agreement | Agreements board → send for e-sign | They sign; a copy files itself |
| 5 | Marketing | Marketing Magic → make posters | Posters land in the org's portal |
| 6 | Roster | They upload it in their portal, or send it and you run Import Magic | The list of who's photographed — always from the organization. Sign-ups and registrations tick it, never replace it |
| 7 | Plan / schedule the day | Job → schedule → Picture-Day Planner / Schedule Magic / Build the Day | The day gets a schedule + call times |
| 8 | Staff the shoot | Shifts → the staffing sheet | Crew claim open seats, or you assign them |
| 9 | Equipment prep | Job → Equipment Prep (#/session-prep) | Each gear set gets an owner + a prep list, emailed & texted |
| 10 | Shoot day | Shoot-day home (#/shoot-day/home) + the job Brief | Crew see call time, details, scan subjects, log issues |
| 11 | Cull & production | Your culling tool + Backstage | Pick keepers, QC, prep for the lab |
| 12 | Deliver photos | Portal Magic → Photos & files; families buy through your gallery platform | Org & families get their pictures |
The tasks you mostly don't have to touch.
Every job has a task list — send the agreement, build the schedule, order the lab package.
Where: job → Tasks tab, or Tasks (#/tasks) for every job at once. Crew see only their tasks. Anything overdue also shows on the job's Overview card and your Dashboard.
Pick the door that matches.
Booking Magic → 🎯 Book / Rebook. Each org shows its next-step button:
The same buttons sit on an org's own page (Send portal / Send booking link + ➕ New job).
Booking Magic → 📥 Intake queue. Open the request:
Every job has a session type; each form asks different questions.
| Session type | Use it for | Its form mainly asks |
|---|---|---|
| School Portraits (Fall / Spring) | K-12 picture day | Headcount, bell schedule, arrival, yearbook |
| School (multi-level) | A campus with several session types | "What kind of school?" then the right sessions |
| Preschool / Daycare | Daycares & preschools | Rooms, headcount, parent sign-ups |
| School Sports | You dictate the day | Teams, athlete counts |
| Sports Leagues | League teams self-schedule | Team booking slots |
| Dance (Recital) | Parent-facing recital shoot | Dancers, costumes, schedule |
| Dance Company | Competition-team shoot | Teams, costume-per-team |
| Seniors | HS senior portraits | Headcount, look/attire |
| Staff Photo Day | Just staff / faculty headshots | Staff headcount, arrival — no yearbook |
Approve a booking (or click Send portal) and two things happen:
They open it to "What we need from you":
Below that, "We're handling these — nothing needed from you" — agreement, prep, marketing. An org with more than one session sees a card per session.
Headcount, bell schedule, arrival, yearbook. Two ways it gets filled in:
A "here's what we'll do together" letter, not a deposit contract. Agreements sorts every org into four columns:
One org: open its card → build it ✨ Full proposal or ✏️ From scratch → send for e-signature. Several: Send to all missing opens a review step first — one row per org with a Preview — before anything sends.
Picture-day posters for social media and parent apps, in the org's colors.
Auto-made posters are off by default (Marketing Magic → Approvals has the "Auto-marketing is off" button if you want them). Today it's make it, then share it.
One graphic you made elsewhere: Card Studio — upload it, drop the QR on, and send it into the same Marketing Materials folder.
The roster is the list of who's being photographed. The organization gives it to us — every job, no exceptions. No roster, no photos. We never type people in by hand.
Sign-ups and registrations come after the roster, and only ever tick it. Same public page (#/register, plus the name-free #/team-day QR for sports); what it does depends on the shoot:
A sign-up that matches a name on the roster exactly files itself. Anything less waits on the session's registrations screen for you to Link it to the right child — a near name reads "did they mean …?" and is never applied on its own; a typed team never makes a team. Without a roster, sign-ups wait — nothing lands on the session until the organization's list is in, and 📨 Ask for the roster is on that screen. The job's Subjects list marks each child Registered or Not registered against the roster, with a count at the top. Registered means a family said yes to pictures — never that anyone was photographed, and never that anyone was added. If the roster or the sign-ups can't be read it says so and marks nobody.
Who's photographed when, plus crew call times. Three tools; the session type decides which.
The three tools:
| Session type | How the day gets scheduled | Tool |
|---|---|---|
| School Portraits (Fall/Spring) | You lay it out from the roster's classes | Picture-Day Planner |
| School Sports (you dictate the day) | You lay teams on a time grid (+ run of show) | Picture-Day Planner |
| Sports — hand it to the booster | Booster lays out the run of show; you lock it | Build the Day |
| Sports Leagues (self-schedule) | Teams book their own slot | Schedule Magic |
| Seniors / self-book | Families pick their own time | Schedule Magic |
| Dance Company | You schedule internally (team → costume → size) | Dance Company Scheduler |
| Dance (Recital) | Parents self-book / walk-up / during class | Schedule Magic |
The schedule sets the crew's call/arrival times — what the staffing sheet and the shoot-day brief show.
Shifts. The default is the staffing sheet (▦ Sheet · ⊞ Grid · ☰ List toggle):
Two ways a seat gets filled:
# Stations = camera setups the day needs (it drives the prep list too). Time = the crew's call/arrival time, worked back from setup.
Open seats move. A claimed seat stays put — that time is in their calendar. Two places catch it:
Four prep sets. Each gets an Owner, who gets a checklist by email and text.
Electronics and Equipment are your Equipment registry — built live from Equipment (#/equipment) plus your station kits. Electronics is what you charge or format; Equipment is what you pack. Lenses stay on the cameras. Add or retire gear in Equipment and the lists follow.
They scale with the day — a per-station amount times # Stations from the staffing sheet: 4 stations → "charge 4 batteries, pack 4 SD cards."
QC and Cull are the same short checklist every job. Write them once.
Set up once: the sets' labels, where each is stored, and the QC/Cull steps live under Equipment Prep template setup (#/session-prep) — Electronics and Equipment preview your live gear there (edit it in Equipment); QC and Cull are tables you type into. After that, every job is pick an owner → Send list.
Crew live in Shoot-day home (#/shoot-day/home) on their phone.
Pick the keepers in your own culling tool — Cull Magic is on hold until it can get the photos straight from your gallery platform. After the cull:
Backstage. Tabs across the top, each with its count. What needs you now: Queue, Mentions, Production (still to build), Session issues (what crew flagged on shoot day). After the Season prep marker, the boards you open a few times a season: Yearbook readiness, the Makeup board (who still needs a makeup day), Production health (jobs sitting too long), and the SPA builder.
Two audiences:
That's the store. Parents never log into Studio Magic. Hand families their gallery links (or a QR / access-code sheet) and they shop there.
Portal Magic → 📸 Your photos, grouped by session. A file shows once it's marked delivered; a draft stays hidden. When something reaches delivered we email the org — unless they still have an unopened one from us. The screen tells you which happened right after the upload.
Portal → 🤝 Share with families: the access-code list (CSV), QR cards and proof sheets, a printable photo-gallery sheet, and copyable "find my photos" + makeup sign-up links.
Lists drift — a name typed a second way, somebody who turned up on the day, a gallery rebuilt without the codes you had. Import Magic → Check a session against its gallery takes the subject list exported from the live gallery and shows where the two disagree.
Drop the file in. It reads the session from the file's name — confirm that — then shows four things: names spelled two ways, people in the gallery not on the session, people on the session the gallery hasn't got, and whether the online codes line up. Nothing changes until you click something.
That's the line — from "I have a client" to families holding their photos.
| Moment | You click | Happens on its own |
|---|---|---|
| Approve a booking | Confirm → Create job | Creates org+contact+job; grants portal; sends ONE "you're booked" email |
| Org opens portal | — | Shows the "Your next steps" checklist |
| Session details submitted | (they submit) | Notifies you 3 ways, email lists the answers; marks the job |
| Agreement signed | (they sign) | Files a signed copy into Business documents |
| Marketing set finished | Generate & save | Drops posters into the Marketing Materials folder + emails the org |
| Roster dropped / a family signs up | — | Notifies you 3 ways |
| Import a roster / deliver files / sign an agreement | (you do the work) | Ticks the matching job Task — no box to check by hand |
| Confirm a job | Confirm it | Opens the right number of crew seats on the staffing sheet |
| Send an equipment prep list | Send list | Emails and texts the prep list to the set's owner |
| Crew claim / clock in | (they tap) | Fills the seat / logs their hours |
| File marked delivered | Mark it delivered | Emails the org "something new is ready" |