> For the complete documentation index, see [llms.txt](https://kb.craftformswp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.craftformswp.com/documentation/form-building/create-form/blocks/confirmation.md).

# Confirmation (thank-you message)

The Confirmation block is the message a visitor sees **in place of the form** after they send it. You write it with ordinary blocks (headings, text, images, buttons) and it can use their answers: "Thanks, Olena! A technician will call you within 24 hours." It can also show the submission number and a summary of everything they filled in, and offer a **Submit another response** button. Use it when a small pop-up message isn't enough, but a separate thank-you page is more than you need.

![A Confirmation message shown in place of the form after a repair request](https://97821998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM2yV1foUgoGHBC66VBDw%2Fuploads%2FcGugfIAJK6RVD5t9iWlO%2Fconfirmation--thank-you-message.jpg?alt=media)

### What you need

* The Confirmation block works in the free version.
* `{{order.*}}` tags only have a value when the form creates an order (catalog items and online payments, **CraftForms PRO**).

### Add a Confirmation to a form

1. Open your form (**CraftForms → Forms → Edit**).
2. Add the **Confirmation** block inside the form. Put it after the last field or after the Steps block. A form can have one Confirmation.
3. It starts with a heading ("Thank you!") and a paragraph. Change them, and add any blocks you like: headings, paragraphs, images, lists, buttons, columns. From the CraftForms blocks you can add **All Form Data** and **QR Code / Barcode**. Fields can't go in it: the form is gone by then.
4. Type `{{` in a paragraph or heading to pick an answer or another tag (see [Show the visitor's answers](#show-the-visitors-answers)).
5. **Save** the form.

In the editor the block has a blue tab: **Confirmation · Shown in place of the form after it's sent**. Use the arrow on the tab to fold it out of the way while you work on the fields. Tags such as `{{field.full_name}}` show as written in the editor; they're filled in on the page.

![The Confirmation block in the form editor, with its settings in the sidebar](https://97821998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM2yV1foUgoGHBC66VBDw%2Fuploads%2FSo6cwTbrlDtkKsNeLy0q%2Fconfirmation--confirmation-block-editor.jpg?alt=media)

### Settings

Select the Confirmation block to see these in the sidebar:

| Setting                              | What it does                                                                                                                                                                                          |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| (summary line)                       | Says what happens after a submit on this form, for example "After a submit, the Confirmation message replaces the form." If the form has a Redirect URL, a warning says the Confirmation isn't shown. |
| **"Submit another response" button** | On by default. Shows a button under the message that brings the form back, empty and at its first step, for another answer.                                                                           |
| **Button text**                      | The button's wording. Empty uses "Submit another response".                                                                                                                                           |

The block's **Styles** tab has text and background colour, and its **Advanced** settings have margin and padding.

### Show the visitor's answers

The message is filled in on the server after the form's submit actions have run, so it can use the same tags as an email template:

| Tag                                                                        | Shows                                                                                                                                                                                                                                                     |
| -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `{{field.full_name}}` or `{{email.full_name}}`                             | An answer, by field name. For a choice, the label of the chosen option ("A repair"). Exposed smart variables work too.                                                                                                                                    |
| `{{submission.id}}`                                                        | The number of the saved submission. Only when the form has a **Save Submission** action.                                                                                                                                                                  |
| `{{order.number}}`, `{{order.total}}`                                      | The order the form created (PRO).                                                                                                                                                                                                                         |
| `{{all_fields.table}}`, `{{all_fields.list}}`, `{{all_fields.paragraphs}}` | Every answer the visitor filled in, as a table, a bulleted list or paragraphs. Add `_by_step` (`{{all_fields.list_by_step}}`) to group them under each step's title on a [multi-step form](/documentation/form-building/create-form/multi-step-forms.md). |
| `{{site.name}}`, `{{date.date}}` and the other site and date tags          | As in emails.                                                                                                                                                                                                                                             |

The **All Form Data** block inserts the `{{all_fields…}}` tag for you: pick **Display as** (Table, Bulleted list, Paragraphs) and, for a multi-step form, **Group by step**. Empty and hidden fields are left out.

For an answer that may be empty, add a fallback after a `|`: `Thanks, {{field.full_name|there}}!` reads "Thanks, there!" when no name was given. See [fallback values](/documentation/form-building/create-form/conditional-text.md#fallback-values).

To show a sentence only for some answers, wrap it in a condition: `{{#if service == 'repair'}}A technician will call you.{{else}}We'll be in touch.{{/if}}`. You can also give a whole block a **Show if** condition in its sidebar. Both are explained in [Conditional Text and Fallbacks](/documentation/form-building/create-form/conditional-text.md). A paragraph or heading left empty by a condition is removed, so it doesn't leave a gap.

All tags are listed in [Dynamic Tags and Variables](/documentation/form-building/create-form/dynamic-tags-and-variables.md).

### What happens after a submit

One rule decides where the visitor goes after a successful submit. The first that applies wins:

1. **Redirect URL.** If the form has one (sidebar **Form** tab → **After Submission → Redirect URL**), the visitor goes there. The Confirmation isn't shown.
2. **Confirmation.** If the form has a Confirmation block, it replaces the form.
3. **Default.** Otherwise the form's Notification block shows the success message. After an online payment, the visitor goes to the **Payment success URL** (Settings → Payments), usually the page with the [Order Summary](/documentation/ecommerce/orders/order-summary.md) block.

The **After Submission** panel and the Confirmation's sidebar both say which one applies to the form you're editing.

![The After Submission panel saying the Confirmation message replaces the form](https://97821998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM2yV1foUgoGHBC66VBDw%2Fuploads%2FIfWTrct8gwAXC2YkGuGU%2Fconfirmation--after-submission-panel.jpg?alt=media)

When the Confirmation shows:

* The form's fields, steps, progress bar and buttons are hidden, and the message takes their place. The page scrolls to it if needed, and screen readers are moved to it.
* The pop-up success message isn't shown on top of it.
* On a multi-step form the step map ends in **Confirmation** instead of **Submit**.
* **Submit another response** brings the form back empty, at step 1. Reloading the page does the same.

### Online payments

The same rule applies to hosted payments, where the buyer pays on Stripe, PayPal, Mollie or Square and then comes back:

* With a **Confirmation** and no Redirect URL, the buyer comes back to the page the form is on and sees the Confirmation there. The message is prepared when the checkout starts, so it shows the answers and the order number.
* If the payment hasn't been confirmed yet when the buyer arrives, a line is added above the button: "We are confirming your payment. You will get an email when it is done."
* If the order was cancelled, the form is shown as usual.
* With a **Redirect URL**, the buyer goes there. With neither, they go to the Payment success URL.

See [Online Payments](/documentation/ecommerce/online-payments.md) for setting up the gateways.

### Forms on another website

A form embedded on another website (CraftForms → Embed) shows its Confirmation after a normal submit, as on your own site. After a hosted payment, the buyer can't be brought back to the other website's page, so they go to the Payment success URL instead. Put the Order Summary block on that page. See [Embed](/documentation/form-building/embed.md).

### Translations

* The texts you write in the Confirmation (headings, paragraphs, the button text) are translated with the other texts of the form, in the form's **Translations** window.
* The message is shown in the language the form was shown in.
* The default "Submit another response" text and the payment line can be reworded, and translated, on **Settings → Field Message Translations → Confirmation message**. See [Field Message Translations](/documentation/form-building/general-settings/field-message-translations.md).

### Good to know

* The message is built after the submit, so nothing of it is in the page beforehand. Visitors can't see it by looking at the page source.
* Submitted values are cleaned before they're shown, as in emails: a visitor can't add scripts to the page through their answers.
* `{{submission.id}}` is empty when the form doesn't save submissions. Use a fallback (`{{submission.id|pending}}`) or a condition if the action may be missing.
* Need a separate thank-you page instead, for example for ad conversion tracking? Use the Redirect URL. It can carry answers: `https://example.com/thank-you?email={{field.email}}`.
