NexaDocs
DocsNexaBotApplications

Applications

The Applications module lets staff build application forms — staff applications, partner applications, whatever your server needs — post them as a panel, and let members apply through Discord's native modal forms. Submissions land in a review channel with Accept/Deny buttons.

Currently in testing

Applications is locked to a single test server right now and isn't available server-wide yet. Every command checks the guild server-side, so this can't accidentally activate anywhere else even if commands get re-deployed globally.

Creating an application

/application create name:<name> review_channel:<channel> [cooldown] [max_active] [required_role] [blocked_role] [accept_role] [deny_role] [reviewer_role]
OptionRequiredWhat it does
nameYesApplication name, up to 80 characters. Must be unique per server.
review_channelYesWhere submissions get posted for staff review. NexaBot needs Send Messages and Embed Links there.
cooldownNoHow long a user has to wait before reapplying — 30d, 7d, 12h, etc. Defaults to no cooldown.
max_activeNoMax pending submissions per user for this application, 1–10. Defaults to 1.
required_roleNoA role a user must have to apply.
blocked_roleNoA role that blocks a user from applying.
accept_roleNoRole granted automatically when a submission is accepted.
deny_roleNoRole granted automatically when a submission is denied.
reviewer_roleNoRole allowed to Accept/Deny this application, in addition to Admins.

An application starts with no questions — add those next.

Adding and removing questions

/application addquestion application:<name> question:<text> [required] [max_length] [style]
OptionWhat it does
applicationWhich application to add the question to (autocompletes)
questionThe question text, up to 300 characters
requiredWhether the question is required. Defaults to true.
max_lengthMax answer length, 1–4000. Defaults to 500.
styleShort (single line) or Paragraph. Defaults to Paragraph.

An application can hold up to 25 questions. Duplicate question text (exact match, case-insensitive) is rejected.

/application removequestion application:<name> number:<n>

Removes a question by its number, as shown in /application view.

Posting a panel

/application panel title:<text> description:<text> channel:<channel> application_1:<name> [application_2] [application_3] [application_4] [application_5]

A panel can include up to 5 applications. It always posts as a dropdown ("Make a selection") in the target channel, even if you only add one application — the panel format doesn't change based on how many you're offering. Every application on the panel needs at least one question configured first, or the command rejects it.

Managing applications

CommandWhat it does
/application listList every application on the server, with question count and enabled/disabled status
/application view application:<name>View an application's full config and question list
/application toggle application:<name> enabled:<true/false>Enable or disable an application
/application delete application:<name> confirm:<true>Permanently delete an application — confirm must be set to true

Reviewer roles

/application reviewers application:<name> [role]

Sets which role can Accept/Deny submissions for a specific application. Admins can always review, regardless of this setting — a reviewer role adds to that, it never replaces it, so a deleted or misconfigured role can't lock admins out of their own application. Leave role empty to clear it back to admins-only.

How members apply

  1. A member clicks an application in the panel dropdown
  2. NexaBot checks eligibility: required role, blocked role, cooldown, and whether they already have a pending submission at the max_active limit
  3. If eligible, a modal opens with up to 5 questions at a time — if an application has more than 5 questions, answering a page shows a Continue button that opens the next modal
  4. On the final page, the submission is created and the member gets:
    • An in-channel confirmation showing exactly what they answered
    • A DM with a copy of the same answers (best-effort — this doesn't block submission if their DMs are closed)

Sessions expire

An in-progress application expires after 30 minutes of inactivity. Starting a new application while one is already in progress cancels the old session.

How staff review submissions

Each submission posts to the review channel as an embed with the applicant's answers and five buttons:

ButtonWhat it does
AcceptAccepts the submission immediately, no reason attached
DenyDenies the submission immediately, no reason attached
Accept with reasonOpens a modal for a reason, then accepts
Deny with reasonOpens a modal for a reason, then denies
HistoryShows the applicant's past submissions for this server

Whichever reason is given (if any) is sent to the applicant by DM along with the decision. The accept_role or deny_role configured on the application, if any, is applied automatically — respecting role hierarchy, so NexaBot won't try to grant a role positioned above its own.

Once a submission is decided, the review card's buttons are disabled and the embed updates to show who decided it. A submission can only be decided once — if two staff members click at the same time, only the first one goes through.

Limits

LimitValue
Questions per application25
Max answer length4000 characters (Discord's modal cap)
Applications per panel5
Session inactivity timeout30 minutes