Scenarios/Photographer

Photographer

Holiday Mini Session Booking Page

12 slots, sample photos, one landing page -- fully booked in a weekend.

Builder ($9/month) for assets + custom domainUpdated March 2026

The situation

You offer holiday mini portrait sessions in a park or studio, limited to 12 slots over a Saturday and Sunday. You need a booking page that shows sample photos from last year, lists session details and pricing, and lets clients pick a time slot. Once all 12 slots are taken, the form closes automatically. You also want a dashboard to see how many slots are filled and who booked.

What they said

I need a booking page for my holiday mini sessions -- only 12 slots

What the agent builds

1Asset

Upload sample photos as page assets so they can be referenced in the landing page HTML.

POST /api/pages/assets
{
  "filename": "mini-session-sample-1.jpg",
  "contentType": "image/jpeg",
  "sizeBytes": 482000
}
// Response includes uploadUrl (PUT the file there) and publicUrl
// Repeat for mini-session-sample-2.jpg and mini-session-sample-3.jpg

Three sample photos uploaded to CDN. Each returns a publicUrl like https://assets.sutrena.com/pages/{userId}/assets/{uuid}_mini-session-sample-1.jpg.

2Page

Deploy a landing page with the uploaded photos, session details, and pricing. The page includes an embedded booking form placeholder.

POST /api/pages
{
  "slug": "holiday-mini-sessions",
  "title": "Holiday Mini Sessions 2026",
  "html": "<div style='max-width:800px;margin:0 auto;font-family:Georgia,serif;padding:2rem'><h1>Holiday Mini Sessions</h1><p>20-minute portrait sessions in Riverside Park. $150 per session, 5 edited digital images delivered within one week.</p><div style='display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0'><img src='https://assets.sutrena.com/pages/.../mini-session-sample-1.jpg' alt='Family portrait in autumn leaves' style='width:100%;border-radius:8px'/><img src='https://assets.sutrena.com/pages/.../mini-session-sample-2.jpg' alt='Child portrait with golden light' style='width:100%;border-radius:8px'/><img src='https://assets.sutrena.com/pages/.../mini-session-sample-3.jpg' alt='Couple portrait at sunset' style='width:100%;border-radius:8px'/></div><h2>Book Your Slot</h2><p>Only 12 slots available -- first come, first served.</p><div data-sutrena-form='FORM_ID'></div><script src='https://sutrena.com/embed.js'></script></div>"
}

Landing page live at /p/holiday-mini-sessions with photo grid, pricing details, and an embedded form.

3Form

Create a booking form with client details and time slot selection, capped at 12 submissions.

POST /api/forms
{
  "name": "Holiday Mini Session Booking",
  "fields": [
    { "name": "name", "label": "Your Name", "type": "text", "required": true },
    { "name": "email", "label": "Email", "type": "email", "required": true },
    { "name": "phone", "label": "Phone Number", "type": "tel", "required": true },
    {
      "name": "preferred_time",
      "label": "Preferred Time Slot",
      "type": "select",
      "required": true,
      "options": [
        "Sat 9:00 AM", "Sat 9:30 AM", "Sat 10:00 AM", "Sat 10:30 AM",
        "Sat 11:00 AM", "Sat 11:30 AM",
        "Sun 9:00 AM", "Sun 9:30 AM", "Sun 10:00 AM", "Sun 10:30 AM",
        "Sun 11:00 AM", "Sun 11:30 AM"
      ]
    },
    { "name": "children_count", "label": "Number of Children", "type": "number", "required": false, "min": 0, "max": 5, "placeholder": "0" }
  ],
  "maxSubmissions": 12,
  "successMessage": "You're booked! Check your email for a confirmation with location details and what to wear.",
  "submitLabel": "Reserve My Slot"
}

Booking form created with 12-slot cap. Returns formId, hostedFormUrl, and submitUrl. The form auto-closes after the 12th booking.

4Dashboard

Create a dashboard to track bookings with a slot counter and a table of all reservations.

POST /api/dashboards
{
  "title": "Mini Session Bookings",
  "formId": "FORM_ID",
  "dsl": {
    "version": 1,
    "widgets": [
      { "type": "metric_card", "title": "Slots Filled", "value": "count(*)" },
      {
        "type": "data_table",
        "title": "All Bookings",
        "columns": ["name", "email", "phone", "preferred_time", "children_count"],
        "sort": "newest",
        "limit": 12
      }
    ]
  }
}

Dashboard created showing how many of the 12 slots are filled and a table of every booking with contact details and chosen time.

What you get

  • Landing page with sample photo grid, pricing, and session details
  • Booking form embedded in the page, auto-closing after 12 submissions
  • Dashboard showing slots filled and all bookings
  • Three sample photos hosted on CDN

Why this works

A photographer running mini sessions does not need a full scheduling platform. Sutrena gives you a landing page with your photos, a booking form with a hard cap, and a dashboard to track it -- all through the API, no website builder required. When the 12 slots fill up, the form closes on its own. Next season, duplicate the form and update the page. An agent could set this up end-to-end — upload photos, create the booking form, deploy the landing page, and configure the dashboard — in a single conversation.

FAQ

What happens when all 12 slots are taken?

The form automatically stops accepting submissions once it reaches the maxSubmissions limit of 12. Visitors who try to book after that see a closed message. You do not need to manually disable anything.

Can I show how many spots are remaining on the page?

Yes. Make the dashboard public (set isPublic: true) and embed a link or iframe on your landing page. The metric_card widget shows the count in real time. Visitors can see '8 of 12 slots filled' without you updating anything.

Can I use my own domain like book.janephoto.com?

Yes. The Builder plan ($9/month) includes one custom domain. Add it via POST /api/account/domains with your domain, then create a CNAME record pointing to cname.sutrena.com. SSL is provisioned automatically. Your landing page will be served at your custom domain.

What is Sutrena?

Sutrena is the web runtime for AI agents. Three primitives — pages, forms, and dashboards — accessible through one API. Your agent creates web artifacts, humans interact with them, and your agent gets the data back. Framework-agnostic. Works from any MCP client or HTTP client.

Get started in two API calls

1. Get a trial key (no auth, no signup)

curl -X POST https://sutrena.com/api/trial

2. Create a form + dashboard from a template

curl -X POST https://sutrena.com/api/forms \
  -H "Authorization: Bearer st_trial_xxx" \
  -H "Content-Type: application/json" \
  -d '{"templateId": "waitlist", "createDashboard": true}'

Ready to build?

Tell your AI agent what you need. It handles the rest.

Photographer: Holiday Mini Session Booking Page -- Sutrena | Sutrena