Building a form
The FlaviBot form builder is a five-step wizard: Questions, Access, Schedule and limits, Notifications and actions, then Review. This page walks through what each step holds, starting with the questions themselves.
Nothing is published while you work. The builder keeps your unsaved changes between visits and offers to restore them, it has undo and redo, and the form only exists for respondents once you save it and switch it on.
What can you ask?
A form holds up to 50 questions. Every one of them has a label (the question itself), optional help text shown underneath, and a Required switch.
The rest depends on the type you pick. There are ten:
| Type | The respondent | What you can set |
|---|---|---|
| Short text | writes one line | minimum and maximum length, a validation pattern with your own error message |
| Long text | writes a paragraph | the same as short text |
| Single choice | picks one option | the options, shuffling them, and a branch per option |
| Checkboxes | ticks any number of options | the options, shuffling, minimum and maximum selections |
| Dropdown | picks one option from a list | the options, shuffling, and a branch per option |
| Rating scale | picks a point on a scale | the lowest and highest value, and a label for each end |
| Number | types a number | the minimum and maximum value |
| Email or URL | types one of the two | which of the two formats to require |
| Date | picks a day | the earliest and latest date allowed |
| Date range | picks a start day and an end day | the earliest and latest date allowed |
Every rule you set is checked twice: in the respondent's browser before they can move on, and again on FlaviBot's side when the answers arrive, so a rule cannot be talked out of.
A validation pattern is a regular expression the answer has to match. It is compiled when you save, and a pattern that cannot be compiled is refused there and then rather than silently rejecting every answer later.
How do you show a question only sometimes?
Two rules live on each question, and both read another question's answer:
- Conditional visibility shows the question only when that other answer matches.
- Conditionally required keeps the question visible but makes it required only when the other answer matches.
Both are written the same way: pick the question to depend on, pick a condition — Equals, Does not equal, Includes or Is one of — and give the value.
A question cannot depend on itself, cannot depend on a question that is not in the form, and a chain of conditions cannot loop back on itself. Saving is refused in all three cases, and the offending question is named.
How do you split a long form into pages?
Add section break starts a new page. A section can carry its own title and description, and it decides where the form goes next under After this section: Continue to next section, Go to section (any section you name) or Submit form, which ends the form there.
Single choice and dropdown options can each carry a Go to of their own, so the answer itself picks the next page. That branch is only offered on those two types, since they are the only ones with exactly one answer to branch on.
A form holds up to 50 sections. If you would rather not draw the boundaries yourself, leave the form as one section and turn on Split into multiple pages automatically, which cuts it every n questions (8 by default). With section breaks in place, they do the paginating and that switch has nothing left to do.
Who is allowed to answer?
The Access step decides that, and it is where a form is marked as a ban appeal rather than a standard one. Both are covered on the other two pages of this section: the access modes in how forms work, ban appeals in responses and ban appeals.
When does the form open and close?
The Schedule and limits step decides that. Its fields are checked when someone opens the link rather than when you save:
- Opens at. Until that moment, whoever opens the link is told the form is not open yet.
- Closes at. From that moment on, the form is closed and stops taking answers.
- Maximum total responses. Once that many responses are in, the next person is told the form has reached its response limit. Someone editing an answer they already gave is not turned away by the cap.
Where do the answers turn up?
The Notifications and actions step is what connects the form back to Discord.
- Post submissions to channel gives your staff an embed per response with the review buttons on it. Forum and media channels work too: pick an existing post to keep everything in one thread, or leave the post unset and FlaviBot opens a new one per submission.
- Ping role on submission mentions one role on that post.
- Send the respondent a confirmation DM sends them a receipt. It uses your Confirmation message, which is also the text shown on the page once they submit.
- Actions on decision are the roles to add and remove, and the DM to send, when a response is accepted or denied. What they do is covered in responses and ban appeals.
- Branding — an accent colour, a header image and a footer for the fill page. Premium only.
How do you publish a form?
The last step, Review, is a summary: the question count, how many are required and how many are conditional, whether there is a cap or a closing date, and where submissions will be posted. Save form writes it.
A new form is saved as a draft, which nobody can fill in yet. It goes live from the switch on the forms list, and that is also where the active-forms cap is checked: if you are already at your plan's limit, switching one on is refused and you are pointed at the upgrade page. Turning the switch back off closes the form to new answers and keeps everything you have collected — it does not give the slot back, though: for that, delete the form.
Next: responses and ban appeals.
