Skip to main content

Form Builder

The builder lives at Dashboard → your server → Forms → New form (or Edit on an existing form). This page is the complete tour of what it can do.

Only managers (owner / admin) can create and edit forms. Reviewers can see them read-only.


Fields

Click Add field to open the field picker — an icon grid of every available type. Pick one and it's inserted; then set its label, description, placeholder, and whether it's required.

Text & contact

TypeNotes
Short textSingle line. Optional min/max length and regex pattern.
Long textMulti-line textarea.
EmailValidated as an email address.
URLValidated as a URL.
PasswordMasked input (e.g. an access code an applicant should type).
NumberNumeric, with optional min / max.
PhoneCountry dial-code selector (flag + code) plus a digits-only field; stored as +<dial> <number>.

Choices

TypeNotes
Single choiceRadio buttons, one answer.
Multiple choice / Multi-selectCheckboxes, zero or more answers.
DropdownA select menu — good for long option lists.
Yes / NoA boolean toggle.
ConsentA single checkbox (e.g. "I agree to the rules").
Age checkA single checkbox confirmation.

Each choice option can carry a points value for scoring.

Date & time

TypeNotes
DateStyled calendar popover (not the native browser picker).
TimeStyled hour / minute selector.
Date & timeCombined.

Ratings

TypeNotes
Star rating1–N stars (default 5).
NPSFixed 0–10 buttons.
Emoji scale1–5 emoji buttons.
SliderMin / max / step (default 0–100).

Rich inputs

TypeNotes
File uploadAny file, with a size and MIME limit. Stored securely (see Privacy).
Image uploadSame as file upload, restricted to images.
SignatureA canvas the applicant draws on; saved as a PNG via the upload pipeline.
MatrixA grid — rows × columns, one choice per row.
CalculatedA read-only field derived from other answers — see Calculated fields.

Layout blocks

Non-input blocks for structure — headings, descriptive text, dividers. They never count as answers and are never required.


Multi-step pages

A form is a list of pages. With one page it's a single screen; add more and the builder renders a multi-step form with Next / Back buttons and a progress bar.

  • Add, remove, reorder, and title pages in the builder.
  • Each page validates its own required fields before Next advances.
  • A page whose fields are all hidden by conditional logic is automatically skipped.

Conditional logic

Every field can carry rules that react to other answers. A rule has an action, a target field, an operator, and a value:

  • Actions: show the field, hide it, make it required, or jump to a page (skip to).
  • Operators: equals, not equals, contains, greater than, less than, is empty, is not empty, … (8 in total).

Hidden fields are never validated and never required — visibility, progress, and validation all follow the same resolved path. Combined with skip to, you can branch the flow: "if you picked Staff, jump to page 3."


Scheduling

Each form can have an optional open / close window:

  • Opens at — before this time the form shows "Opens <time>" and rejects submissions.
  • Closes at — after this time it's closed. Within the last 24 hours before closing it shows an "Ending soon" banner.

Times are shown in each viewer's local timezone. Closed forms drop out of the public index automatically.


Quiz & scoring

Give choice options a points value and MSK Forms scores each submission automatically:

  • The score is the sum of points across the chosen options, computed server-side (the client preview is never trusted).
  • Forms where no option has points stay score-less — nothing changes for non-quiz forms.
  • The score shows in the submissions table and on the submission detail page.
  • The score is also available to automations under the reserved field Score — e.g. "if Score ≥ 80 → Accepted" for auto-acceptance.

Calculated fields

A Calculated field derives its value from other answers with a formula:

  • Syntax: {fieldId} placeholders plus + - * / ( ) and numbers — e.g. {price} * {qty}.
  • Reference resolution: Number/Rating → the value; Single choice → the option's score; Multi-select → the sum; booleans → 1 / 0; empty/unknown → 0.
  • The value is computed server-side and stored with the answers — the client preview is never authoritative.
  • It renders as a read-only live preview; it's never editable or required.

In the builder you write the formula in a textarea and click chips to insert referenceable fields.


A/B testing

Pro feature

A/B testing requires a Pro subscription.

Split-test a form's copy:

  • Define variants in the builder — each with a name, a weight, and optionally an overriding title and/or description.
  • The public page assigns a variant stickily (a cookie, otherwise weighted-random) and shows that variant's copy.
  • Views are tracked on mount; conversions are tracked when the form is submitted with that variant.
  • A results page (per form) shows Views / Submissions / Conversion-% and marks the leader once a variant has ≥ 10 views.

Automations

Pro feature

Automations require a Pro subscription.

Per-form when-then rules. On submission, the first rule whose conditions all match is applied:

  • Conditions use the same field-condition form and operators as conditional logic, AND-combined (an empty condition set always matches).
  • Action (v1): set the submission to a target status.

Because the action runs through the same status-change path as a manual review, it cascades everywhere: the status event, the applicant DM, webhooks, and the live status page. The classic use case is auto-acceptance: "if Score ≥ 80 → Accepted", which (with an accepted role configured) also hands out the Discord role.


Per-form overrides

Some guild-wide settings can be overridden on a single form:

  • Review channel — post this form's new-submission embeds to a specific channel instead of the guild default.
  • Accepted role(s) — grant these role(s) on acceptance instead of (or in addition to) the guild default. Multiple roles are supported (comma-separated).

See Discord Bot for how these drive the review workflow.


Saving & going live

  • Save stores the form as a draft.
  • Set the status to Live to start accepting submissions (subject to any schedule).
  • Delete removes a form and its submissions (cascade), including any uploaded files.
Free plan limit

The Free plan allows up to 3 forms per server, and Pro features (CSS, automations, A/B, custom domain) are stripped or gated for Free guilds. See Plans & Limits.


info

Next: Submissions & Review — what happens after applicants hit submit.