# Adding a form

> Ask for a contact form and get one that works, on Pro. The fields in the markup are the fields — there is nothing to configure and nothing to connect first.
>
> From the MightyBuilder documentation: https://docs.mightybuilder.ai/forms/adding-a-form

Ask for a contact form and you get one that works. There is nothing to connect
and no fields to configure first.

**Forms are part of Pro.** On a free site the Forms area is still there, but
adding a form asks you to upgrade first, and a free site's existing forms are
left off the published site until it is on Pro again — nothing about them is
deleted.

## Asking

> Add a contact form to this page: name, email, and a message.

The AI writes an ordinary form into the page, and it starts working the moment
you publish.

## The markup is the form

There is no separate list of fields kept somewhere else. **The fields in the
markup are the fields**, so adding one means adding an input, and the AI does
that by editing the page like any other change.

This is why a form can look like anything. It is your markup, styled by your
site's CSS, not a widget dropped into a slot.

## Forms are documents

A form lives under **Content → Forms**, beside Pages and your collections. It
has its own editor, drafts, revisions and trash, and it is published with
everything else.

A page shows a form the same way it shows a block — by embedding it.

## The two pieces that make it work

If you read the markup you will see two things you did not write:

```liquid
<form method="post" action="{{ form.action }}">
  {% guard %}
  <label>Your name <input name="name" required></label>
  <button>Send</button>
</form>
```

`{{ form.action }}` is where the submission goes. `{% guard %}` is the spam
protection — invisible to a person filling the form in, and enough to stop the
bulk of automated submissions.

Leave both in. A form missing either will not accept anything.

## Changing it

Ask. "Add a phone number field, not required" edits the markup. So does "make
the button say Send enquiry" and "put the message box above the email".

## What you cannot ask for yet

File uploads, payment, and anything that needs the sender to have an account.
See [Where submissions go](/forms/where-submissions-go).
