> ## 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.

# Publish and share a form

> Clear the readiness checks, publish a form, share its link or QR code, and pause, duplicate or delete it.

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>;
};

A form only accepts submissions once it's published. This page covers the checks a form must pass
first, sharing the link, and what you can do with a form afterwards.

<Screenshot id="ss-forms-publish-and-share-hero" alt="The Share tab with the public link, a QR code and the Before you publish checks all passing" />

<Info>
  **Before you start:** a form that sends a confirmation or welcome email needs a sender address
  on a verified sending domain. See [Add a sending domain](/channels/email/add-a-sending-domain).
</Info>

## Readiness checks

Brudcast checks a form before it can go live. You see the checks in **Before you publish**: beside
the form while you create it, and on the **Share** tab afterwards. Each failing check has a button
that takes you to the fix.

| Check                       | Applies to                                    | What it needs                                                                                        |
| --------------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **Target list**             | Signup forms, and full page forms with a list | An active contact list                                                                               |
| **Questions**               | Full page forms                               | At least one question                                                                                |
| **Question mapping**        | Full page forms                               | Every mapped question can fill the field it's mapped to                                              |
| **Answer options**          | Full page forms                               | Choice questions have options, grids have rows and columns, images and videos have something to show |
| **Email field**             | Forms that add to a list                      | Exactly one email field                                                                              |
| **Sender address**          | Forms with confirmation or welcome email on   | An address to send from                                                                              |
| **Verified sending domain** | Forms with confirmation or welcome email on   | The sender address's domain is verified                                                              |
| **Confirmation links**      | Forms with confirmation or welcome email on   | A platform setting. If this fails, contact support.                                                  |
| **Sending status**          | Forms that add to a list                      | Your organization's sending isn't restricted                                                         |
| **Redirect URL**            | Forms with a redirect set                     | A public `https://` address                                                                          |
| **Contact allowance**       | Forms that add to a list                      | A warning only: your contact limit is full, so new signups are recorded but not added                |

Every check except **Contact allowance** blocks publishing. The **Publish** button stays unavailable
until they pass; hover over it to see the first thing to fix.

## Publish

<Steps>
  <Step title="Clear the checks">
    Fix every blocking item in **Before you publish**. While you're creating a form, the button reads
    **Publish · 2 items left** until nothing is outstanding.
  </Step>

  <Step title="Publish">
    Select **Publish**. The form goes **Live** and its link starts accepting submissions.
  </Step>

  <Step title="Read the summary">
    A dialog confirms the form is live, with the link, a QR code and a summary of what happens to
    each submission. Select **View submissions** (or **View responses**) to watch them arrive, or
    **Close**.

    <Screenshot id="ss-forms-publish-and-share-01-live" alt="The Your signup form is live dialog with the public link, QR code and a summary of where signups go" />
  </Step>
</Steps>

## Share the form

The **Share** tab has everything you need to send people to the form.

* **Public link:** the form's address, in the form `https://forms.brudcast.com/f/…`. Select
  **Copy**. You can also copy it with **Copy link** at the top of a live form, or from the row menu
  on the **Forms** page.
* **QR code:** opens the same link. Select **Download PNG** for a print-ready image with the form's
  name under the code, for a flyer, a slide or a poster.

The link stays the same when you pause and publish again, so you can print it safely.

## Pause a form

Select **Unpublish** at the top of a live form. The form changes to **Paused** and its link stops
accepting submissions. Select **Publish** to reopen it at the same link.

Brudcast also pauses forms for you. If your organization's sending is restricted, for example
during a [sending review](/deliverability/overview), every live form that adds to a list is
paused, because the contacts it would add couldn't be emailed. The forms are republished when
sending is active again. A form you paused yourself during that time is republished too.

Full page forms with no list aren't paused: they send no email and add no one to a list.

## Duplicate a form

On the **Forms** page, open a form's row menu and select **Duplicate**. You get a new draft named
"*name* (copy)", with the same questions, design, copy and settings, and a new link. Submissions
and statistics stay with the original.

A form's kind is fixed once it's published. To turn a signup form into a full page form, duplicate
it and switch the type on the copy before you publish it.

## Delete a form

On the **Forms** page, open the row menu and select **Delete**. The form's link stops working
immediately. The signups it collected, and their consent records, are kept.

## Design and branding

Put your brand on the hosted page from the **Design** tab (the **Design** section while you're still
creating the form). Under **Brand**, select **Cover image** to add a wide image across the top of the
page, and **Logo** to add one above the form title. Both come from your image library: JPEG, PNG, GIF
or WEBP, up to 5 MB. Select **Replace** to change an image, or the bin icon to remove it, then
**Save design**.

| You can set                                  | Fixed by Brudcast                |
| -------------------------------------------- | -------------------------------- |
| A cover image and a logo                     | Colors, typeface and page layout |
| The subtitle and button label                | The shape of buttons and fields  |
| The messages after submitting and confirming | The Brudcast credit on the page  |
| The subject lines of the form's emails       |                                  |

Every hosted form uses the same accessible design, so it works on phones and screen readers without
extra effort from you.

The **Copy** tab holds every piece of text apart from the questions: the **Subtitle**, the
**Button label** (Subscribe on a signup form, Submit on a full page form), the message shown
**after submitting** when confirmation is on, the message shown **after confirming**, and the
**Confirmation email subject** and **Welcome email subject**. Leave a box empty to use the default,
and select **Save copy** when you're done.

Select **Preview** at the top of the form to see the page inside the dashboard, or **Open in new
tab**. A preview link stops working after 15 minutes; open a new one from **Preview**.

## Submissions and spam protection

Every submission is recorded, including the ones the spam checks refused. 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. 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.

| 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.

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. 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.

Rejected submissions are kept for 7 days and expired ones for 90 days. Confirmed submissions and
responses are kept 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. Across **All forms** you get **Live forms**, **Signups (30d)** and **Responses
(30d)**. Filtered to **Signup form** you get **Live signup forms**, **Signups (30d)** and
**Confirmation rate**. Filtered to **Full page form** you get **Live page forms**, **Responses
(30d)** and **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="Verify the sending domain of the address this form sends from" icon="circle-alert">
    **Why:** confirmation and welcome emails go out from your own domain, and the sender address's
    domain isn't verified. **Fix:** verify the domain under **Channels > Email**, or pick a sender
    address on a domain that's already verified in the form's **Settings**.
  </Accordion>

  <Accordion title="Add exactly one email field so signups can be identified" icon="circle-alert">
    **Why:** a form that adds to a list needs one email question to identify each person.
    **Fix:** on a full page form, map one question to **Email address** on the **Mapping** tab.
  </Accordion>

  <Accordion title="The redirect URL must be a public https address" icon="circle-alert">
    **Why:** the redirect uses `http://`, or points at a private or local address.
    **Fix:** change **Redirect after submitting** on the **Settings** tab to a public `https://`
    page, or clear it.
  </Accordion>

  <Accordion title="Sending is currently restricted for this organization" icon="circle-alert">
    **Why:** your organization's sending is under review or suspended, so forms that add contacts
    can't go live. **Fix:** see [Deliverability overview](/deliverability/overview). A full page form
    with no list can still be published.
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="Create a form" icon="clipboard-pen" href="/forms/create-a-form#double-opt-in-and-consent">
    Set up the confirmation email.
  </Card>

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

  <Card title="Suppression list" icon="shield-off" href="/contacts/suppressions">
    Why a suppressed address is refused.
  </Card>
</Columns>
