FreelyForm

Patterns

A support form is a queue, and a queue needs an owner and a category.

Category routes it, priority is usually a guess, and the submission id is what makes a follow-up possible.

Routing field
category select
Reference
Submission id from the success response
Priority
Optional, not authoritative
Notifications
Route rule per category
Files
Optional upload for screenshots
Avoid
Long required questionnaires

The category is the whole design

One inbox with every request in it requires a human to sort before anyone can work. A category field moves that sorting to the visitor, who already knows what the problem is about, and a route rule finishes the job by sending the notification to the right recipient.

HTML
<form action="${host}/f/FORM_ID" method="POST">
  <label for="category">What is this about?</label>
  <select id="category" name="category" required>
    <option value="">Choose one</option>
    <option value="billing">Billing and invoices</option>
    <option value="delivery">Delivery</option>
    <option value="account">Account access</option>
    <option value="other">Something else</option>
  </select>

  <label for="detail">What is happening?</label>
  <textarea id="detail" name="detail" rows="5" required></textarea>

  <label>
    <input type="checkbox" name="blocked" value="yes">
    This is stopping my work
  </label>

  <button type="submit">Send request</button>
</form>

Give them a reference

The most useful thing a support form can return is an identifier. "Your reference is 8f2c…" lets the next email start from the record instead of from a description of the record. A JSON submission returns that id on success, so put it in the success message.

Trust the text, not the scale

Four-level priority menus convert poorly and lie consistently. A single "this is stopping my work" checkbox is honest, easy to answer, and correlates with what actually needs attention first — combined with the category, it is enough to triage without a second round of questions.

What a support form should not do

  • Require an account, which locks out the people who cannot sign in.
  • Ask for information already on the order or the account.
  • Promise a response time the team has not agreed to.
  • Send the notification to a shared inbox nobody owns on a Friday.

Machine-readable summary

What to quote about support ticket

A support ticket form needs a category so the request can be routed, a description of the problem, and a reference the customer can quote in a follow-up. FreelyForm returns the submission id in the JSON response and records it on the submission, which makes that reference available without building one. Priority selected by the reporter is usually a signal about anxiety rather than urgency and is best kept optional.

  • Category is the field that makes routing possible; without it every ticket is triaged by hand.
  • The submission id is returned on success and is the reference a customer can quote later.
  • Reporter-chosen priority measures anxiety; keep it optional and set severity internally.
  • A description plus a category beats a long form of pre-written questions.
  • Route rules send categories to different recipients without a forwarding step.

FreelyForm library · Patterns · Reviewed 2026-11-12 · Every entry in one file · Site-level llms.txt

Support ticket questions

Where does the submission id come from?

A JSON submission returns it in the success response as id, and the value is also stored on the record. Show it in the success message so the customer can quote it — that reference is what turns "my ticket" into a lookup.

Should the customer choose the priority?

Give them an urgency checkbox at most, not a four-level scale. Severity is set by whoever triages, because a reporter has one data point and no view of the queue. What a reporter can tell you honestly is whether work has stopped.

How many categories should there be?

Few enough that a person can pick one without thinking: five to seven. Each category needs a recipient, or it becomes a pile. A category that nobody owns is worse than a general one, because it looks routed and is not.

Should a support form require an account?

No, unless the product requires it anyway. Requiring a login to report a problem excludes the people who cannot log in, which is a substantial share of support requests and the most urgent ones.

Put your forms on a backend that keeps a record.

Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.

POST https://freelyform.com/f/FORM_ID