Scenarios/Photographer

Photographer

Holiday Mini Session Booking Page

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

Pro ($29/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 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.

2Launch

Deploy the booking page with photos and analytics in one call

curl -X POST https://sutrena.com/api/launch \
  -H "Authorization: Bearer st_live_k7xM9..." \
  -H "Content-Type: application/json" \
  -d '{
    "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='"'"'PHOTO_1_URL'"'"' alt='"'"'Family portrait'"'"' style='"'"'width:100%;border-radius:8px'"'"'/><img src='"'"'PHOTO_2_URL'"'"' alt='"'"'Child portrait'"'"' style='"'"'width:100%;border-radius:8px'"'"'/><img src='"'"'PHOTO_3_URL'"'"' alt='"'"'Couple portrait'"'"' style='"'"'width:100%;border-radius:8px'"'"'/></div><h2>Book Your Slot</h2><p>Only 12 slots available.</p><div data-sutrena-form='"'"'FORM_ID'"'"'></div><script src='"'"'https://sutrena.com/embed.js'"'"'></script></div>"
      }
    ],
    "analytics": true
  }'

Landing page live with photo grid, pricing, and analytics auto-tracking. The _next response suggests creating a booking form.

3Collect

Create the booking form with a 12-slot cap in one call

curl -X POST https://sutrena.com/api/pipeline \
  -H "Authorization: Bearer st_live_k7xM9..." \
  -H "Content-Type: application/json" \
  -d '{
    "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" }
    ],
    "successMessage": "You'"'"'re booked! Check your email for a confirmation with location details and what to wear."
  }'

One call creates the booking form. Query submissions via the API to see slots filled and all bookings. Update the form with maxSubmissions: 12 to cap at 12 slots, then embed the formId in the landing page.

What you get

  • Three sample photos hosted on CDN
  • Landing page with photo grid and analytics, deployed via sutrena_launch
  • Booking form created via sutrena_collect, with submissions queryable via API
  • 12-slot cap set via follow-up form update

Why this works

A photographer running mini sessions does not need a full scheduling platform. Sutrena gives you a landing page with your photos and a booking form with a hard cap -- all through the API, no website builder required. Query submissions to see who booked which slot. When the 12 slots fill up, the form closes on its own. Next season, duplicate the form and update the page. Automations can send a booking confirmation email with the session time, park location, and prep instructions — what to wear, when to arrive — the moment a client books.

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?

Set up an automation that queries submission count and updates the landing page via the update_page step. Or use the form's submission count from the API to display availability. When the form hits maxSubmissions, visitors see the closed message automatically.

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

Yes. The Pro plan ($29/month) includes 5 custom domains. 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.

Can clients get a booking confirmation automatically?

Yes. Set up an automation triggered by form submission to send a confirmation email with the session time, park location, and prep instructions — what to wear, when to arrive, and what to expect.

What is Sutrena?

Sutrena is the web runtime for AI agents. Forms, Pages, Analytics, Webhooks, Automations — all through 67 MCP tools and one REST API. Your agent creates web artifacts, humans interact with them, and your agent gets the data back. Use any one feature or all of them together.

Pages

Deploy HTML instantly

Forms

Collect structured data

Automations

DSL-based pipelines with 14 step types

Analytics

Privacy-first, no cookies

Webhooks

Slack, Discord, Telegram

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 anything — a page, form, automation, or analytics site

# Create a form
curl -X POST https://sutrena.com/api/forms \
  -H "Authorization: Bearer st_trial_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name": "waitlist", "fields": [{"name": "email", "label": "Email", "type": "email", "required": true}]}'

# Or deploy a page
curl -X POST https://sutrena.com/api/pages \
  -H "Authorization: Bearer st_trial_xxx" \
  -H "Content-Type: application/json" \
  -d '{"slug": "index", "title": "My Site", "html": "<h1>Live</h1>"}'

Ready to build?

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

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