Bug Report Form Template

Stop chasing bug reports through Slack messages and incomplete tickets. This form captures everything an engineer needs to reproduce an issue: clear steps, expected vs actual behavior, severity, frequency, and the user's environment. Embed it in your app or link to it from your help center.

Free for non-commercial projects, with unlimited forms and responses.

Last updated

The starting point

About this template

A bug report is only useful if an engineer can reproduce what the reporter saw. Most of the ones that arrive through chat, email or a support inbox cannot be: they describe a symptom without the path that produced it, they say "it's broken" without saying what was expected instead, and they leave out the browser, the URL and whether it happens every time or once a week. Someone then spends a day going back and forth to recover the three facts that should have arrived with the report.

More about this template

This template asks for those facts up front. Steps to Reproduce, What Did You Expect to Happen and What Actually Happened are three separate required fields rather than one description box, because splitting them is what turns an impression into a reproducible case. Severity and frequency together decide what gets picked up first, and Browser / Device and URL Where the Bug Occurs are optional so a reporter who does not know them can still submit. The Screenshot or Video Link field lets reporters paste a Loom recording or a hosted screenshot; if you would rather receive the image itself, add an Upload field in the editor so reporters can attach it directly, up to 2 MB.

Where the form lives matters as much as what it asks. Embed it inside your app behind a "Report a problem" link and the reporter is already in context; put it in the help centre and it catches the people who went looking for an answer first. Submissions land in your dashboard and can be pushed straight into an issue tracker with a webhook, so a report becomes a ticket without anyone retyping it. It is free with unlimited submissions, which means you can leave it open to everyone rather than rationing who is allowed to tell you something is broken.

11 fields to make your own8 required in this starting form

Make it fit your workflow.

Use your own copy to change labels, remove questions and add the details you need. Try the preview alongside this guide to see what respondents will be asked.

The questions, explained

Fields in this template

Review the starting questions and choices. You can change them in your own copy.

  • Short answerRequired

    Your Name

    Jane Smith

  • Email addressRequired

    Email Address

    you@email.com

  • Short answerRequired

    Bug Title

    Short summary of the issue

  • Single choiceRequired

    Severity

    4 choices
    • Critical — blocks me completely
    • High — major issue but I can work around it
    • Medium — annoying but not blocking
    • Low — minor or cosmetic
  • Long answerRequired

    Steps to Reproduce

    1. Go to… 2. Click… 3. See…

  • Long answerRequired

    What Did You Expect to Happen?

    Describe the expected behavior.

  • Long answerRequired

    What Actually Happened?

    Describe what you saw instead, including any error messages.

  • Single choiceRequired

    How often does this happen?

    4 choices
    • Every time
    • Sometimes
    • Once
    • Not sure
  • Short answerOptional

    Browser / Device

    Chrome 122 on macOS 14

  • Short answerOptional

    URL Where the Bug Occurs

    https://app.example.com/page

  • Short answerOptional

    Screenshot or Video Link

    Paste a Loom, Imgur, or Dropbox link

Where it fits

Who uses this template

Suggested uses, and why this starting point can help. Adapt the questions to your own process.

Software companies

Turn initial interest into information you can review. Use the answers to prepare a relevant follow-up and decide whether the opportunity fits your work. Review “Bug Title” in particular and adapt it to the detail you need.

Product managers

Collect answers in a consistent structure, so you can compare responses while keeping each person’s explanation in context. Review “Severity” in particular and adapt it to the detail you need.

QA teams

Replace scattered requests with a consistent starting point. The answers help you understand the work, identify gaps and prepare a follow-up. Review “Steps to Reproduce” in particular and adapt it to the detail you need.

Customer support agents

Ask for the context needed to understand the request before replying. This reduces the back-and-forth needed to establish the basic facts. Review “What Did You Expect to Happen?” in particular and adapt it to the detail you need.

Developers

Use this as a starting point when you need the same essential information from each person. Review the questions against your process before sharing your copy. Review “What Actually Happened?” in particular and adapt it to the detail you need.

Beta testers

Use this as a starting point when you need the same essential information from each person. Review the questions against your process before sharing your copy. Review “How often does this happen?” in particular and adapt it to the detail you need.

Open-source maintainers

Use this as a starting point when you need the same essential information from each person. Review the questions against your process before sharing your copy. Review “Browser / Device” in particular and adapt it to the detail you need.

What's included

Severity, frequency, and environment fields
Structured steps-to-reproduce field with multi-line input
Separate expected vs actual behavior fields
URL and screenshot link fields for context
Email field so reporters can be followed up with
Free with unlimited submissions
Embeds inside any app, help center, or SaaS dashboard

How to create a bug report form

  1. 1

    Click "Use this template" to add the bug report form to your free formformform account.

  2. 2

    Update the severity and frequency options to match the language your team uses internally.

  3. 3

    Add a hidden field that captures the app version or release tag, so engineers know which build to check.

  4. 4

    Set your notification email — ideally a shared inbox or Slack-connected address so triage isn't blocked on one person.

  5. 5

    Customize the appearance to match your product so the form feels native when embedded.

  6. 6

    Publish and embed — drop the form in your help center, your app's feedback widget, or link to it from a footer.

Best practices for your bug report form

Always ask for steps to reproduce

without them, half of all bug reports become unactionable conversations. Make the field required.

Separate expected from actual

these are two different questions and combining them produces vague reports. Keep them as distinct fields.

Capture severity from the user's perspective

let them tell you how bad it is rather than guessing from the description.

Keep the Screenshot or Video Link field

a Loom recording or hosted screenshot link is often the fastest way to communicate a UI bug, and a file upload field works well alongside it if you'd rather receive the image directly.

Don't ask for too much

if a field doesn't help engineers fix bugs faster, leave it out. Friction kills bug reports.

Set up routing

pipe submissions into your issue tracker (Jira, Linear, GitHub) via webhook so they don't sit in an inbox.

Frequently asked questions

Is this bug report form free?

Yes. You can collect unlimited bug reports for free, with no trial period and no credit card required.

Can users attach screenshots?

Yes, two ways. The Screenshot or Video Link field takes a Loom recording or a hosted image link, which is often fastest when the reporter already has one open. If you would rather receive the file itself, formformform does have file upload: it is a section in the form editor, up to 2 MB per file. Add an Upload field in the editor and reporters can attach the image directly. Both work on an encrypted form too — there the browser encrypts the file before it is uploaded, so what reaches the server is ciphertext and the real filename never touches the database. Keeping both fields is reasonable; they suit different reporters.

Can I send bug reports to my issue tracker?

Yes. Use formformform's webhook feature to push every submission to Jira, Linear, GitHub, or any tool that accepts incoming webhooks. You can also forward email notifications to a tracker that supports email-in.

Can I add custom fields for my product?

Absolutely. Add a dropdown for which feature is affected, a hidden field for app version, or any other context your team needs.

Can I embed the form inside my SaaS app?

Yes. Use the embed code or iframe to drop the form into a help modal, a settings page, or a dedicated feedback page in your app.

How do I prevent spam submissions?

formformform handles spam protection automatically — no CAPTCHA needed. Most reports come from real users who hit issues, and our filters catch the rest.

Related templates

More Customer Support form templates

View all Customer Support form templates →

Want a second opinion?

Explore how formformform fits the forms you need to build.

Opens with product context and a link to this page.

View or copy the prompt

Start with the Bug Report Form template

Free for non-commercial projects, with unlimited forms and responses.

Use this template