Batch Relay Forms

Collect the details.
Put them to work.

Build a form around your picture day. Give parents clear questions, and connect their answers to the details on each personalized print.

Try the picture-day form builder

Picture day / Form builderInteractive example

Try adding Jersey Number. Then make it your own.

Page 1

Athlete details

Drop a field here, or choose one from the library.

Try the builder, then change an answer in the parent preview. This is a self-contained example, using fictional details.

Make room for the right questions

A form that follows
your picture day.

Start with the athlete. Leave room for the details that make the print theirs. Move questions into place, pair shorter answers, and give longer answers their own row.

Split your form into pages when the questions need a little breathing room. Parents move through one form, with required answers checked along the way.

Try adding and arranging fields ↗

A label is what you ask

A meaning is
what connects it.

Call it “Name on print,” “Player name,” or something more like you. Map the answer to Print Name, and your connected template knows where it belongs.

You control the wording. The meaning stays consistent across the form and the design.

Explore the Template Engine ↗
“Uniform #”Your questionJersey NumberShared meaning38On the print
Print NameText

The name a parent wants on the print, including a preferred name or nickname.

Example: Alex Morgan

athlete_print_name
Jersey NumberNumber

The player's uniform number, ready to place in a personalized design.

Example: 38

athlete_jersey_number
TeamText or select

A team name collected as text or selected from your choices.

Example: Red Bluff

athlete_team
PositionText

The athlete's position, collected in their own words.

Example: Goalkeeper

athlete_position
GradeText

The athlete's school grade, using the wording your studio needs.

Example: 8th grade

athlete_grade
YearDate

A date-backed field. Its current input is a full date, rather than a standalone year number.

Example: 2026-09-06

athlete_year

Selected built-in meanings. Custom questions can also remain unmapped.

A head start on next season

Last season’s form.
This season’s starting point.

Fork a form you already use and make it your starting point. Keep last year’s questions, add Jersey Number for the new season, and leave the original in place. Preview the new draft and review your changes before publishing.

Last season’s formFork for this season + Jersey NumberReview → Publish a new revision
See how a browser agent helps with the draft ↗

For your own tools

Forms, also
from your terminal.

Read definitions. Create a draft. Update its fields and publish a revision with scoped permissions.

Explore the developer API ↗
# Read an event's form revisionsbatchrelay forms revisions list --event "$EVENT_ID"# HTTP APIGET /v1/studios/{studio_id}/events/{event_id}/form-revisions

Write access uses forms:write. Publication uses forms:publish. Live credentials are required for both.

OpenAPI specification ↗

Forms FAQ

Before your
first form.

Yes. Write labels and guidance in your studio's voice. A label such as Uniform # can still map to the shared Jersey Number meaning used by your templates.

Your questions.
Their picture day.

Start with a form that fits your studio. Connect the answers to your storefront and artwork, then make it your starting point for next season.