> For the complete documentation index, see [llms.txt](https://zoomiescore.gitbook.io/zoomiescore-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zoomiescore.gitbook.io/zoomiescore-docs/docs/features/forms.md).

# forms

Build application forms, feedback questionnaires, or nomination pools and share them via a public URL. Submissions land in the dashboard for mod review.

## Building a form

Dashboard → **Forms** → **New form**.

Each form has:

* **Title** and **description**
* Up to **25 questions**, each with:
  * Label (max 100 chars)
  * Style: `short` (single-line) or `paragraph` (textarea)
  * Required toggle
  * Max length (1–4000 chars)
* **Public URL** — auto-generated at `/forms/<token>`, share anywhere.
* **Publish** toggle — unpublished forms return `"form not accepting submissions"` on the public URL.

## Submissions

Anyone with the form URL and a signed-in Discord account can submit. Login is required to attribute submissions to a real user.

Submissions show up in Dashboard → **Forms → Submissions** with:

* Every answer inline
* Applicant Discord profile (avatar + username)
* Submission timestamp
* Status: `pending`, `approved`, `rejected`
* Reviewer notes

## Review actions

For each pending submission, a mod can:

* **Approve** — marks reviewed, optionally sends a DM to the applicant.
* **Reject** — same, but with a rejection reason.
* **Comment internally** — not sent to applicant.

## Rate limits

* Public form endpoint validates Discord session before accepting a submission.
* Server-side max-length enforcement per question.
* Required fields are checked before persist.
