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. Each answer (Yes and No) can carry a points value for scoring.
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.

Change a field's type​

Picked the wrong type, or want to turn a short-text question into a dropdown? Use the type selector at the top of any field card to switch it in place. The field keeps its label, help text, position, and conditional logic; type-specific settings that no longer apply are reset (a note warns you when that happens). Options and matrix rows are kept when the new type also uses them (e.g. single choice to dropdown). Existing answers are never touched.


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.

Countdown teaser​

Turn on Countdown on the public hub (in the scheduling section) to build hype for a form that opens later. While the form is scheduled:

  • Its card on the public hub shows a live countdown to the opening time instead of a plain date.
  • The form page shows the same countdown and, the moment it opens, fires a confetti burst and reveals the form automatically.

Off by default, a scheduled form otherwise just shows its opening time.


One submission per person​

By default, each signed-in applicant can have only one active submission per form. While their submission is still open (not yet at a terminal status), reopening the form sends them straight to its status page instead of a blank form, and the submit endpoint refuses a duplicate. Once a reviewer sets a terminal status (Accepted, Rejected, Withdrawn, or a custom terminal status) they can apply again.

  • It only applies to signed-in applicants, anonymous submissions can't be tied to a person.
  • Turn it off in the builder (the One active submission per person toggle) for forms that should accept repeated submissions, e.g. surveys or feedback.

Quiz & scoring​

Give choice options a points value and MSK Forms scores each submission automatically. Yes / No fields join the same system: give the Yes and the No answer their own points in the field editor.

  • 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.


Categories​

Group your forms into categories, e.g. In-game jobs vs Staff applications. Manage them under Dashboard → your server → Categories (managers only): add, rename, recolor, and reorder. Then pick a category for each form in the builder.

Categories drive the grouping on your public form hub, applicants see your forms split into sections, with uncategorized forms under Other forms. See Branding & Custom Domains → Public form hub.


Import & export (JSON)​

Pro feature

Importing and exporting a form definition requires a Pro subscription.

Move a form between servers, keep a backup, or reuse a template:

  • Export: download a form's definition (its structure and settings, not its submissions) as a JSON file from the Forms list.
  • Import: upload a JSON file as a new form, or replace an existing form's content from a file. Imported as new, the slug is reused (and de-duplicated if already taken); on replace, the form keeps its current public link. The form's category travels with the file by name and is recreated on the target server if missing.

Saving & going live​

  • Save stores the form as a draft.
  • Set the status to Live to start accepting submissions (subject to any schedule).
  • Archive takes a form out of use without losing anything (see below).

Archiving & deleting forms​

Forms are not deleted from the Forms list, they are archived:

  • An archived form disappears from the Forms list, its public link shows the form as closed, and it is removed from the public hub and the bot's form list.
  • Its submissions are kept. They leave the Submissions list and the Board together with the form and stay readable from the archive (Archive → View submissions). Applicants' status links keep working.
  • Restore brings the form back with the status it had before, including its public link if it was live.

Open the archive with the Archive (n) button above the Forms list. Everyone who manages a form (Owner, Admin, or a per-form Manage grant) can archive and restore it.

Delete permanently is only available inside the archive and removes the form, its submissions and uploaded files for good. By default only the server owner can do that. The owner can allow admins as well on the Team page (Deleting forms). Per-form managers can never delete permanently.

Archiving, restoring, deleting and changes to that setting all show up in the activity log.

Free plan

Archived forms don't count toward the Free plan's form limit. Restoring one is blocked while you are at the limit.

Preview before you publish. Every form has a Preview action (managers, opens in a new tab) that renders the exact public form, branding, multi-step flow, all field types, for any status, including drafts. Preview validates and lets you walk the pages like the real thing, but never submits.

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.