> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brudcast.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Submissions and responses

> Read what your forms collect, filter by status, tune the spam checks, and understand the figures on the Forms page.

export const Screenshot = ({id, src, srcDark, alt, caption}) => {
  if (!src) {
    return <Placeholder id={id} kind="screenshot" label="Screenshot coming soon" description={alt} icon={<ImageIcon />} />;
  }
  return <figure className="brd-media" data-media-id={id}>
      <img className="brd-media-frame block dark:hidden" src={src} alt={alt} />
      <img className="brd-media-frame hidden dark:block" src={srcDark || src} alt={alt} />
      {caption && <figcaption className="brd-media-caption">{caption}</figcaption>}
    </figure>;
};

Every submission your forms collect is recorded, including the ones the spam checks refused. This is
the page you come back to: read what came in, see who confirmed, and adjust the checks that guard
the form.

<Screenshot id="ss-forms-submissions-and-responses-hero-table" alt="A signup form's Submissions tab listing rows with Status, Bot check and Confirmed times, one row Awaiting confirmation and one Rejected" />

<Info>
  **Before you start:** a form collects nothing until it's **Live**. See
  [Publish and share](/forms/publish-and-share).
</Info>

## Read what came in

Open a signup form's **Submissions** tab, or a full page form's **Responses** tab.

* A **signup row** shows the **Email** (partly hidden until you click it), **Status**, **Bot check**,
  **Submitted** and **Confirmed** times and the **IP**.
* A **response row** shows the first four answers. Select **View** to read every answer and open
  uploaded files. Download links for uploaded files are short-lived, so open a new one from the
  response rather than saving the link.
* Select **Export page** to download the responses on the current page as a CSV.

Answers are stored encrypted, so they can be read but not searched. Filter by status instead.

## Submission statuses

| Status                    | Meaning                                                                          |
| ------------------------- | -------------------------------------------------------------------------------- |
| **Awaiting confirmation** | The confirmation email was sent and the person hasn't clicked it yet             |
| **Confirmed**             | The person joined the list, after confirming or straight away with single opt-in |
| **Received**              | A response to a form that doesn't add to a list                                  |
| **Expired**               | The confirmation link ran out after 7 days without a click                       |
| **Rejected**              | A check refused it, or the person declined the confirmation                      |
| **Send failed**           | The confirmation email couldn't be sent after several attempts                   |

A row's menu offers **Resend confirmation** for a submission **Awaiting confirmation**, and
**Delete**, which removes the submission but leaves any contact it already created.

<Warning>
  The delete confirmation says the submission's consent record goes with it. It doesn't: the consent
  record stays on the contact, because it's the evidence of what that person agreed to. Deleting the
  **contact** is what removes their consent records. See
  [Double opt-in and consent](/forms/create-a-form#double-opt-in-and-consent).
</Warning>

## Spam checks

Five checks guard every form: a hidden field that only bots fill in, a minimum time on the page, an
hourly cap, a response cap, and a bot challenge most people never see. Forms that add to a list also
check your suppression list and your contact limit. Tune them on the **Settings** tab, under
**Bot protection** and **After submitting**.

| Setting                            | Default  | What it does                                                                               |
| ---------------------------------- | -------- | ------------------------------------------------------------------------------------------ |
| Bot challenge                      | On       | If it can't be reached, the submission is accepted and its bot check shows **Unavailable** |
| **Minimum seconds on the page**    | 3        | Rejects submissions sent faster than a person could fill the form, from 0 to 120           |
| **Submissions allowed per hour**   | 100      | Caps the form's submissions each hour, from 1 to 100,000                                   |
| **Stop after this many responses** | No limit | Closes the form after that many submissions, not counting rejected ones                    |
| **One response per email address** | Off      | Refuses a second submission from an address that already confirmed or responded            |

Most rejections look like a success to the visitor on purpose. Telling a bot which check caught it
helps it get past, and telling a stranger that an address is already on your list gives away
information about your contacts. You still see the reason under the status here.

<Tip>
  Raise **Submissions allowed per hour** before you share a form somewhere busy, such as a live
  event. Real people who arrive over the cap see an error and have to try again later.
</Tip>

## How long submissions are kept

| Kind                                | Kept for              |
| ----------------------------------- | --------------------- |
| Rejected submissions                | 7 days                |
| Expired submissions                 | 90 days               |
| Confirmed submissions and responses | Until you delete them |

## Form statistics

The **Forms** page shows how your forms are doing over the last 30 days, and the figures change with
the type filter.

| Filter             | Figures                                                             |
| ------------------ | ------------------------------------------------------------------- |
| **All forms**      | **Live forms**, **Signups (30d)**, **Responses (30d)**              |
| **Signup form**    | **Live signup forms**, **Signups (30d)**, **Confirmation rate**     |
| **Full page form** | **Live page forms**, **Responses (30d)**, **Added to a list (30d)** |

Submissions include rejected ones, so a burst of bot traffic raises **Signups (30d)** and lowers
**Confirmation rate**. The 30 days roll: each day the oldest drops out. A figure shows `-` while
it's loading or can't be read.

A low confirmation rate usually means one of two things. Lots of **Rejected** rows point at bots;
lots of **Awaiting confirmation** and **Expired** rows point at confirmation emails not reaching
inboxes.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Signups are rising but the confirmation rate is falling" icon="circle-alert">
    **Why:** rejected submissions count toward **Signups (30d)**, so bot traffic inflates the top of
    the figure and never confirms. **Fix:** filter the **Submissions** tab by **Rejected** to see
    how many there are, then raise **Minimum seconds on the page** or leave the bot challenge on.
  </Accordion>

  <Accordion title="Lots of submissions are stuck on Awaiting confirmation" icon="circle-alert">
    **Why:** the confirmation emails aren't reaching inboxes. **Fix:** check that the form's sender
    address is on a verified sending domain, and read
    [Deliverability overview](/deliverability/overview). The link lasts 7 days, after which the
    submission is **Expired** and the person has to submit the form again.
  </Accordion>

  <Accordion title="A submission shows Send failed" icon="circle-alert">
    **Why:** the confirmation email couldn't be sent after several attempts, for example because
    your organization's sending is restricted. **Fix:** clear the restriction, then use
    **Resend confirmation** on the row.
  </Accordion>

  <Accordion title="Real people are getting an error at a live event" icon="circle-alert">
    **Why:** the form passed **Submissions allowed per hour**, which is 100 by default.
    **Fix:** raise it on the **Settings** tab, under **After submitting**.
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="Publish and share" icon="share-2" href="/forms/publish-and-share">
    Get the form live and share its link or QR code.
  </Card>

  <Card title="Create a form" icon="clipboard-pen" href="/forms/create-a-form#double-opt-in-and-consent">
    How double opt-in and consent records work.
  </Card>

  <Card title="Lists" icon="list" href="/contacts/lists">
    Where confirmed signups land.
  </Card>

  <Card title="Forms overview" icon="clipboard-list" href="/forms/overview">
    Form statuses, limits and where submissions go.
  </Card>
</Columns>
