> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.noticeable.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Email Subscription Form

**The email subscription form widget simplifies the task of collecting data from your email subscribers. Whether you're a solo developer kickstarting a new side project, or a major corporation with millions of users, the process of creating, implementing, and beginning to compile data on subscriber interest has never been more straightforward.**

As for any Noticeable widget, you can create and edit options for your widgets from the Noticeable dashboard with no code. Once you include the widget code snipet onto your page, the email subscription form renders automatically and you are ready to collect user interest. However, the email subscription form widget has great flexibility in the sense that if you prefer to use your own HTML code to render the form on your pages, that's possible. That's what we explain hereafter.

## Custom HTML form with action linking to Noticeable

By creating your own HTML form, no data is loaded and rendered from our servers. Instead, it is seamlessly integrated into your webpage. This integration allows for a seamless user experience and efficient performance. However, the drawback is that you have to set a specific form action URL and use field names that Noticeable supports.

### Form action URL

The form POST action to use is `https://forms.noticeable.io/esX` where you need to replace `X` by your widget identifier.

### Supported input fields

Here is the list of input field names that we support:

* company-name
* company-website
* email
* fist-name
* full-name
* hp (we recommend to use a hidden input field with this name and an empty value to fight against spam)
* labels.Y (where Y is the identifier of a label that exists in your Noticeable project). It should be an input of type checkbox and has value on when checked.
* last-name
* user-id


By leveraging this approach, you can easily tailor the form to suit your specific requirements and design preferences. 

## Errors

Upon form submission, one of the following errors may happen. If you are using default options, the user who submitted the form is redirect to your Newspage with a clear error message. In the case you are using a custom error URL, you will receive the error code along with the error message either as _query parameter_ or _response header_ based on your preference. This allows you to display or customize any error message as you wish:

* FORM_DISABLED
* FORM_EMAIL_ADDRESS_INVALID_SYNTAX
* FORM_EMAIL_ADDRESS_DISPOSABLE
* FORM_EMAIL_ADDRESS_NO_MX_RECORD
* FORM_EMAIL_SUBSCRIPTION_ALREADY_EXISTS
* FORM_INTERNAL_SERVER_ERROR
* FORM_INVALID_ARGUMENT
* FORM_NOT_FOUND
* FORM_ORIGIN_FORBIDDEN
* FORM_RECAPTCHA_BAD_RESPONSE
* FORM_RECAPTCHA_INVALID_INPUT_RESPONSE
* FORM_RECAPTCHA_INVALID_INPUT_SECRET
* FORM_RECAPTCHA_INTERNAL_ERROR
* FORM_RECAPTCHA_MISSING_INPUT_RESPONSE
* FORM_RECAPTCHA_MISSING_INPUT_SECRET
* FORM_RECAPTCHA_TIMEOUT_OR_DUPLICATE
* FORM_RECAPTCHA_UNEXPECTED_RESPONSE
* FORM_RECAPTCHA_UNKNOWN_ERROR_CODE
* FORM_TURNSTILE_BAD_RESPONSE
* FORM_TURNSTILE_INTERNAL_ERROR
* FORM_TURNSTILE_INVALID_INPUT_RESPONSE
* FORM_TURNSTILE_INVALID_INPUT_SECRET
* FORM_TURNSTILE_MISSING_INPUT_RESPONSE
* FORM_TURNSTILE_MISSING_INPUT_SECRET
* FORM_TURNSTILE_TIMEOUT_OR_DUPLICATE
* FORM_TURNSTILE_UNKNOWN_ERROR_CODE
* FORM_TURNSTILE_UNEXPECTED_RESPONSE