> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-feat-acul-js-sdk-1-7-0-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Learn about the available nodes and input field components you can render using Forms.

# Nodes and components

Forms lets you add nodes and components, such as fields, blocks, and widgets for your users to interact with the form. You can then reference the data input, from components, in your forms and flows.

## Form nodes

There are five types of form nodes: Start, Step, Flow, Router and Ending screen. These nodes have a very specific purpose for the structure of the form.

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/Yz2uQfY-DVUNvuqK/docs/images/cdy7uua7fh8z/5V4GsHxxC2cjxx1aODCxPd/309850c72bbce224e7a8d3f5af34114c/form-editor-preview.png?fit=max&auto=format&n=Yz2uQfY-DVUNvuqK&q=85&s=f2fbb08ba82df3789d0c6bef6497af30" alt="Dashboard >  Forms > Form Editor" data-og-width="1393" width="1393" data-og-height="637" height="637" data-path="docs/images/cdy7uua7fh8z/5V4GsHxxC2cjxx1aODCxPd/309850c72bbce224e7a8d3f5af34114c/form-editor-preview.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/Yz2uQfY-DVUNvuqK/docs/images/cdy7uua7fh8z/5V4GsHxxC2cjxx1aODCxPd/309850c72bbce224e7a8d3f5af34114c/form-editor-preview.png?w=280&fit=max&auto=format&n=Yz2uQfY-DVUNvuqK&q=85&s=6684c1d7be9b73858f707a1ee83de2ef 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/Yz2uQfY-DVUNvuqK/docs/images/cdy7uua7fh8z/5V4GsHxxC2cjxx1aODCxPd/309850c72bbce224e7a8d3f5af34114c/form-editor-preview.png?w=560&fit=max&auto=format&n=Yz2uQfY-DVUNvuqK&q=85&s=fa8ae603c1c88668ed012f9e33ce8ef3 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/Yz2uQfY-DVUNvuqK/docs/images/cdy7uua7fh8z/5V4GsHxxC2cjxx1aODCxPd/309850c72bbce224e7a8d3f5af34114c/form-editor-preview.png?w=840&fit=max&auto=format&n=Yz2uQfY-DVUNvuqK&q=85&s=6957df1b6c41c88b8d0004b4232f70ca 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/Yz2uQfY-DVUNvuqK/docs/images/cdy7uua7fh8z/5V4GsHxxC2cjxx1aODCxPd/309850c72bbce224e7a8d3f5af34114c/form-editor-preview.png?w=1100&fit=max&auto=format&n=Yz2uQfY-DVUNvuqK&q=85&s=4b5ac0ca70f8a8ae996d904926d7fc1e 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/Yz2uQfY-DVUNvuqK/docs/images/cdy7uua7fh8z/5V4GsHxxC2cjxx1aODCxPd/309850c72bbce224e7a8d3f5af34114c/form-editor-preview.png?w=1650&fit=max&auto=format&n=Yz2uQfY-DVUNvuqK&q=85&s=4e97277dbbdbef6c6b842447e11b138b 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/Yz2uQfY-DVUNvuqK/docs/images/cdy7uua7fh8z/5V4GsHxxC2cjxx1aODCxPd/309850c72bbce224e7a8d3f5af34114c/form-editor-preview.png?w=2500&fit=max&auto=format&n=Yz2uQfY-DVUNvuqK&q=85&s=d613309cc030ffec67d764016ce09bda 2500w" />
</Frame>

## Step node

Step nodes are the visual representation of the form. They can contain any number of components, such as fields, blocks, and widgets where the user can fill in their data.

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/2tbkcXkVon0BawCvYgnvIz/e2ce566320af18a6b08702f04f763126/form-step-node.png?fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=a2079bb616aec5dd70b1516708565875" alt="Dashboard > Foms > Step node" data-og-width="840" width="840" data-og-height="456" height="456" data-path="docs/images/cdy7uua7fh8z/2tbkcXkVon0BawCvYgnvIz/e2ce566320af18a6b08702f04f763126/form-step-node.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/2tbkcXkVon0BawCvYgnvIz/e2ce566320af18a6b08702f04f763126/form-step-node.png?w=280&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=b79e4f44297030f0e3476ca618d8801c 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/2tbkcXkVon0BawCvYgnvIz/e2ce566320af18a6b08702f04f763126/form-step-node.png?w=560&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=bb46c566f1010bbf45a3d4e6533267b0 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/2tbkcXkVon0BawCvYgnvIz/e2ce566320af18a6b08702f04f763126/form-step-node.png?w=840&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=9054a70ae85807eed88e078eb0a4dc8a 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/2tbkcXkVon0BawCvYgnvIz/e2ce566320af18a6b08702f04f763126/form-step-node.png?w=1100&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=59c5e5c4739cffbe9a8e1e136ac5132a 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/2tbkcXkVon0BawCvYgnvIz/e2ce566320af18a6b08702f04f763126/form-step-node.png?w=1650&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=1fe4e6717f477911a2fafbcc065fb93f 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/2tbkcXkVon0BawCvYgnvIz/e2ce566320af18a6b08702f04f763126/form-step-node.png?w=2500&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=4446a5a82c0937440207d8bbbc4a595a 2500w" />
</Frame>

### Field components

Fields are UI components where users input their information in Forms.

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/BBoh2i8DRnlTJSC0/docs/images/cdy7uua7fh8z/6fuBdJcbDybzcVaiByUkoQ/2ad29c8dbbcc6ddf850f5efc004a75e0/forms-fields.png?fit=max&auto=format&n=BBoh2i8DRnlTJSC0&q=85&s=0f247bc49eba59dae307cdaf111a2558" alt="Dashboard > Forms > Fields" data-og-width="1404" width="1404" data-og-height="663" height="663" data-path="docs/images/cdy7uua7fh8z/6fuBdJcbDybzcVaiByUkoQ/2ad29c8dbbcc6ddf850f5efc004a75e0/forms-fields.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/BBoh2i8DRnlTJSC0/docs/images/cdy7uua7fh8z/6fuBdJcbDybzcVaiByUkoQ/2ad29c8dbbcc6ddf850f5efc004a75e0/forms-fields.png?w=280&fit=max&auto=format&n=BBoh2i8DRnlTJSC0&q=85&s=08b85ac5cdbacfbbd0c746065d06882d 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/BBoh2i8DRnlTJSC0/docs/images/cdy7uua7fh8z/6fuBdJcbDybzcVaiByUkoQ/2ad29c8dbbcc6ddf850f5efc004a75e0/forms-fields.png?w=560&fit=max&auto=format&n=BBoh2i8DRnlTJSC0&q=85&s=22f4760212e87881be1f1d6cb574367a 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/BBoh2i8DRnlTJSC0/docs/images/cdy7uua7fh8z/6fuBdJcbDybzcVaiByUkoQ/2ad29c8dbbcc6ddf850f5efc004a75e0/forms-fields.png?w=840&fit=max&auto=format&n=BBoh2i8DRnlTJSC0&q=85&s=8cde3fa72309fbcdfcabfec57ae26430 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/BBoh2i8DRnlTJSC0/docs/images/cdy7uua7fh8z/6fuBdJcbDybzcVaiByUkoQ/2ad29c8dbbcc6ddf850f5efc004a75e0/forms-fields.png?w=1100&fit=max&auto=format&n=BBoh2i8DRnlTJSC0&q=85&s=9b15c8cc01add14a339ab07e4fc74d7c 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/BBoh2i8DRnlTJSC0/docs/images/cdy7uua7fh8z/6fuBdJcbDybzcVaiByUkoQ/2ad29c8dbbcc6ddf850f5efc004a75e0/forms-fields.png?w=1650&fit=max&auto=format&n=BBoh2i8DRnlTJSC0&q=85&s=c85c9ec00c4c0040681102b7ac149c38 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/BBoh2i8DRnlTJSC0/docs/images/cdy7uua7fh8z/6fuBdJcbDybzcVaiByUkoQ/2ad29c8dbbcc6ddf850f5efc004a75e0/forms-fields.png?w=2500&fit=max&auto=format&n=BBoh2i8DRnlTJSC0&q=85&s=c320160496117c7345d9ca3f1b52cca9 2500w" />
</Frame>

#### Field settings

Fields have a number of default settings that you can configure to meet your requirements.

The default field settings are:

| Settings         | Description                       |
| ---------------- | --------------------------------- |
| ID               | The unique id                     |
| Label            | Display or hide a label           |
| Required         | Input value is required           |
| Hint text        | Display a hint text               |
| Placeholder text | Text visible to the user          |
| Default value    | Default value visible to the user |
| Transient        | Enable or disable data mask       |

#### Field validation rules

| Settings                  | Description                    |
| ------------------------- | ------------------------------ |
| Min. length / Max. length | Require an input value length. |
| Min. value / Max. value   | Require a number value length. |

#### Available fields in Forms

The available fields with their specific settings and data output types are:

<AccordionGroup>
  <Accordion title="Text field">
    Standard input lets a user enter any string value.

    ##### Text field settings

    The text field setting is:

    | Settings  | Description                   |
    | --------- | ----------------------------- |
    | Multiline | Enable multi-line input text. |

    ##### Text field output value

    The text field output value data type is a `string`.

    ```json lines theme={null}
    {
      "text_field_id": "Auth0"
    }
    ```
  </Accordion>

  <Accordion title="Email field">
    Standard input lets a user enter email string values.

    ##### Email field output value

    The email field output value data type is a `string`.

    ```json lines theme={null}
    {
      "email_field_id": "username@domain.com"
    }
    ```
  </Accordion>

  <Accordion title="Phone field">
    Standard input lets a user enter phone number values.

    ##### Phone field settings

    The phone field settings are:

    | Settings                | Description                                                                       |
    | ----------------------- | --------------------------------------------------------------------------------- |
    | Country picker          | Enable or disable Country picker. By default, it displays the user’s IP location. |
    | Filter placeholder text | Text visible to the user in the country search window.                            |

    ##### Phone field output value

    The phone field output value data type is either a `string` or, if Country picker is enabled, an `object` .

    The phone field output data type value as a `string`:

    ```json lines theme={null}
    {
      "phone_field_id": "8005550175"
    }
    ```

    The phone field output data type value as an `object` :

    ```json lines theme={null}
    {
      "phone_field_id": {
        "national_number": "8005550175",
        "national_format": "(800) 555-0175",
        "international_number": "+18005550175",
        "international_format": "+1 800-555-0175",
        "country_code_iso": "US",
        "country_code_number": "1"
      }
    }
    ```
  </Accordion>

  <Accordion title="Choice field">
    Standard input that lets a user select single or multiple choice values.

    ##### Choice field settings

    The Choice field settings are:

    | Settings                   | Description                                        |
    | -------------------------- | -------------------------------------------------- |
    | Multiple choice            | Enable several choice options.                     |
    | Other option               | Let users enter their own option.                  |
    | Advanced > Internal values | Assign an internal value to each choice option.    |
    | Advanced > Bulk edit       | Bulk edit label and internal choice option values. |

    ##### Choice field output value

    The choice field output value data type is either a `string` or, if multiple choice is enabled, as an `array of strings` .

    The choice field output data type  value as a `string`:

    ```json lines theme={null}
    {
      "choice_field_id": "Option A"
    }
    ```

    The choice field output data type value as an  `array of strings`:

    ```json lines theme={null}
    {
      "choice_field_id": ["Option A", "Option B"]
    }
    ```
  </Accordion>

  <Accordion title="Cards field">
    Standard input that lets a user select single or multiple choice image values.

    ##### Cards field settings

    The cards field settings are:

    | Settings                   | Description                               |
    | -------------------------- | ----------------------------------------- |
    | Multiple choice            | Enable several choice options.            |
    | Hide labels                | Hide card labels.                         |
    | Advanced > Internal values | Assign an internal value for each option. |

    ##### Cards field output value

    The cards field output value data type is either a `string` or, if multiple choice is enabled, as an `array of strings`.

    The cards field output data type value as a `string`:

    ```json lines theme={null}
    {
      "card_field_id": "Option A"
    }
    ```

    The cards field output data type value as an `array of strings`:

    ```json lines theme={null}
    {
      "card_field_id": ["Option A", "Option B"]
    }
    ```
  </Accordion>

  <Accordion title="URL field">
    Standard input lets a user enter a URL value.

    ##### URL field output value

    The URL field output value data type is a string:

    ```json lines theme={null}
    {
      "url_field_id": "https://auth0.com"
    }
    ```
  </Accordion>

  <Accordion title="Password field">
    Standard input that lets a user enter a password or a secret value.

    ##### Password field settings

    The password field settings are:

    | Settings                 | Description                                                                                                                                                                     |
    | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Require complex password | Passwords must contain an uppercase, a lowercase, a symbol and a number.                                                                                                        |
    | Enforce NIST guidelines  | The password cannot be less than 8 characters, passwords obtained from previous breach corpuses, dictionary words, repetitive or sequential characters, content-specific words. |
    | Add strength meter       | A graphical meter with a red, yellow and green scale is displayed under the password field to show the strength of the password input.                                          |
    | Hash                     | Select an algorithm to hash the input value directly in the browser.                                                                                                            |

    ##### Password field output value

    The password field output value data type is a masked `string`:

    ```json lines theme={null}
    {
      "password_field_id": "███"
    }
    ```
  </Accordion>

  <Accordion title="Payment field">
    Standard input that lets a user enter payment information using a payment provider. Payments are processed before the Ending node.

    ##### Payment field settings

    The payment field settings are:

    | Settings            | Description                                                                             |
    | ------------------- | --------------------------------------------------------------------------------------- |
    | Payment type        | Select either a one-off (Charge) or recurring (Subscription) payments.                  |
    | Amount              | Specify the amount for a one-off (Charge) payment.                                      |
    | Currency            | Specify the currency for a one- off ( Charge) payment.                                  |
    | Subscription action | Select either to create or update an existing subscription.                             |
    | Customer action     | Select either to create or update an existing customer.                                 |
    | Display options     | Display and edit Card number, Expiration date, and Security code labels and Trustmarks. |

    ##### Payment field output value

    The payment field output value data type is either a string or an object  for after submission flows.

    The payment field output value data type as a `string`:

    ```json lines theme={null}
    {
      "payment_field_id": "pm_1P19e..."
    }
    ```

    The payment field output value data type for subscriptions as an `object` :

    ```json lines theme={null}
    {
      "payment_field_id": {
        "payment_method_id": "pm_1P19e...",
        "customer_id": "cus_PqrM...",
        "price_ids": [
          "price_1ONHR..."
        ],
        "subscription_id": "sub_1P1A...",
        "payment_intent_id": "pi_3P19e5..."
      }
    }
    ```

    The payment field output value data type for charge as an `object` :

    ```json lines theme={null}
    {
      "payment_field_id": {
        "payment_method_id": "pm_1P19e...",
        "customer_id": "cus_PqrM...",
        "amount": 100,
        "payment_intent_id": "pi_3P19e5..."
      }
    }
    ```
  </Accordion>

  <Accordion title="Legal field">
    Standard input that adds legal text and a check input.

    ##### Legal field output value

    The legal field output value data type is a `boolean`.

    ```json lines theme={null}
    {
      "legal_field_id": true
    }
    ```
  </Accordion>

  <Accordion title="Dropdown field">
    Standard input that lets a user select single or multiple dropdown choice values.

    ##### Dropdown field settings

    The dropdown field settings are:

    | Settings                   | Description                               |
    | -------------------------- | ----------------------------------------- |
    | Multiple selector          | Enable several choice options.            |
    | Advanced > Internal values | Assign an internal value for each option. |
    | Advanced > Bulk edit       | Bulk edit label and internal values.      |

    ##### Dropdown field output value

    The dropdown field output value data type is either a `string` or, if multiple choice is enabled, as an `array of strings` .

    The dropdown field output data type  value as a `string`:

    ```json lines theme={null}
    {
      "dropdown_field_id": "Option A"
    }
    ```

    The dropdown field output data type value as an `array of strings`:

    ```json lines theme={null}
    {
      "dropdown_field_id": ["Option A", "Option B"]
    }
    ```
  </Accordion>

  <Accordion title="Number field">
    Standard input that lets a user enter number values.

    ##### Number field output value

    The number field output value data type is a `number`.

    ```json lines theme={null}
    {
      "number_field_id": 123
    }
    ```
  </Accordion>

  <Accordion title="Date / Time field">
    Standard input that lets a user enter either a date or time values.

    ##### Date / Time field settings

    The date/time field settings include:

    | Key    | Description                        |
    | ------ | ---------------------------------- |
    | Format | Select either Date or Time format. |

    ##### Date / Time field output value

    The date/time field output data type value for date is a `string`:

    ```json lines theme={null}
    {
      "date_time_field_id": "2023-04-11"
    }
    ```

    The date/time field output data type value for time is a `string`:

    ```json lines theme={null}
    {
      "date_time_field_id": "23:15"
    }
    ```
  </Accordion>

  <Accordion title="Boolean field">
    Standard input that lets a user enter true or false values.

    ##### Boolean field output value

    The boolean field output value data type is a boolean.

    ```json lines theme={null}
    {
      "boolean_field_id": true
    }
    ```
  </Accordion>

  <Accordion title="Custom field">
    Standard field that you can customize to create your own field.

    ##### Custom field settings

    The custom field setting are:

    | Settings    | Description                                                                                                 |
    | ----------- | ----------------------------------------------------------------------------------------------------------- |
    | Params      | Add key-value pairs to reference in the custom field source code.                                           |
    | Source code | Add your Javascript code to the custom field.                                                               |
    | JSON Schema | By default, the custom field accepts any value format. However, you can use JSON Schema to validate values. |

    To learn more, read [Custom Field Components for Forms](/docs/customize/forms/custom-field-components).
  </Accordion>
</AccordionGroup>

### Blocks components

Blocks are UI components that add functionality to your forms but do not gather user information.

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/32e7TVx3XHhNqK7J/docs/images/cdy7uua7fh8z/7IijftJnuwcevL4bdHiaKw/f0376ca75303bb58d0df87e6af75e347/forms-block.png?fit=max&auto=format&n=32e7TVx3XHhNqK7J&q=85&s=4cae52b2082bddec3ee0cfc08e472945" alt="Dashboard > Forms > Components > Blocks" data-og-width="1404" width="1404" data-og-height="654" height="654" data-path="docs/images/cdy7uua7fh8z/7IijftJnuwcevL4bdHiaKw/f0376ca75303bb58d0df87e6af75e347/forms-block.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/32e7TVx3XHhNqK7J/docs/images/cdy7uua7fh8z/7IijftJnuwcevL4bdHiaKw/f0376ca75303bb58d0df87e6af75e347/forms-block.png?w=280&fit=max&auto=format&n=32e7TVx3XHhNqK7J&q=85&s=50ccecb38acda7092a342e232c849737 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/32e7TVx3XHhNqK7J/docs/images/cdy7uua7fh8z/7IijftJnuwcevL4bdHiaKw/f0376ca75303bb58d0df87e6af75e347/forms-block.png?w=560&fit=max&auto=format&n=32e7TVx3XHhNqK7J&q=85&s=14b0564c9eb0a969338ec5ccd0b93c86 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/32e7TVx3XHhNqK7J/docs/images/cdy7uua7fh8z/7IijftJnuwcevL4bdHiaKw/f0376ca75303bb58d0df87e6af75e347/forms-block.png?w=840&fit=max&auto=format&n=32e7TVx3XHhNqK7J&q=85&s=1897672b4a756741d70cc3d59767030e 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/32e7TVx3XHhNqK7J/docs/images/cdy7uua7fh8z/7IijftJnuwcevL4bdHiaKw/f0376ca75303bb58d0df87e6af75e347/forms-block.png?w=1100&fit=max&auto=format&n=32e7TVx3XHhNqK7J&q=85&s=9ac53de5bbeab5cd3df6f3a47fbcae39 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/32e7TVx3XHhNqK7J/docs/images/cdy7uua7fh8z/7IijftJnuwcevL4bdHiaKw/f0376ca75303bb58d0df87e6af75e347/forms-block.png?w=1650&fit=max&auto=format&n=32e7TVx3XHhNqK7J&q=85&s=26a5215a3c2980a870e98fcb093e5687 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/32e7TVx3XHhNqK7J/docs/images/cdy7uua7fh8z/7IijftJnuwcevL4bdHiaKw/f0376ca75303bb58d0df87e6af75e347/forms-block.png?w=2500&fit=max&auto=format&n=32e7TVx3XHhNqK7J&q=85&s=24ebadeb22b5971d09f16650009fabad 2500w" />
</Frame>

#### Available blocks in Forms

The available blocks are:

<AccordionGroup>
  <Accordion title="Next button block">
    A button that lets users continue to the next form node.

    <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
      * Before continuing, field validation rules are applied and validated on the client-side and server-side. If field validation rules fail, an error message is displayed for the user to verify.
      * If the next node is a flow node, a spinner loader is displayed until the flow completes. If the flow fails or returns a custom error message, an error message is displayed.
    </Callout>
  </Accordion>

  <Accordion title="Previous button block">
    A button that lets users go to the previous step node.

    <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
      If a user selects the previous button, field validation rules are re-run again even if no change to input data is done before continuing.
    </Callout>
  </Accordion>

  <Accordion title="Jump button block">
    A button that lets users skip the current step and directly jumps to the destination node.

    <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
      When skipping the current step, we won't validate and neither collect any filled out information of the current step.
    </Callout>
  </Accordion>

  <Accordion title="Resend button block">
    A component that lets users re-run a flow to generate and send a new OTP code

    <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
      if a user selects the resend button, the associated flow will generate and send a new OTP code.
    </Callout>

    | Settings       | Description                                                                                                                                                                                                                                                                                                    |
    | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Text alignment | Select text alignment, left, center, or right                                                                                                                                                                                                                                                                  |
    | Text           | Default text displayed when users select the resend button                                                                                                                                                                                                                                                     |
    | Button text    | Button text                                                                                                                                                                                                                                                                                                    |
    | Waiting text   | Text displayed when users have selected the resend button. Replaces `Text` and the `Button text` settings. Use the `“{{remaining_seconds}}”` variable to dynamically display the remaining number of seconds until the send button is enabled again. For example: “Resend in `{{remaining_seconds}}` seconds”. |
    | Flow           | Flow executed after the user selects the resend button.                                                                                                                                                                                                                                                        |
    | Max attempts   | The maximum number of attempts the user can select the resend button                                                                                                                                                                                                                                           |
    | Waiting time   | The waiting time between attempts in seconds.                                                                                                                                                                                                                                                                  |
  </Accordion>

  <Accordion title="Rich text block">
    A rich text block to personalize the step node with additional information.
  </Accordion>

  <Accordion title="Divider block">
    A line to divide different sections of the step node. It can contain a small text.
  </Accordion>

  <Accordion title="HTML block">
    A HTML block to create your custom UI.
  </Accordion>

  <Accordion title="Image block">
    An image block to personalize the step adding images.
  </Accordion>
</AccordionGroup>

### Widgets components

Widgets are pre-built components, with third-party integrations, that add client-side and server-side logic to your forms.

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/3J0IuWLP7utOPKSHc82IE9/a523afe0c240c63f714ef5fb102f8dab/forms-widget.png?fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=6613daf1a93d4f7944939f978d9f4207" alt="Dashboard > Forms > Components > Widget" data-og-width="1404" width="1404" data-og-height="721" height="721" data-path="docs/images/cdy7uua7fh8z/3J0IuWLP7utOPKSHc82IE9/a523afe0c240c63f714ef5fb102f8dab/forms-widget.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/3J0IuWLP7utOPKSHc82IE9/a523afe0c240c63f714ef5fb102f8dab/forms-widget.png?w=280&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=0cab47e725719b1576abcb5500e7905c 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/3J0IuWLP7utOPKSHc82IE9/a523afe0c240c63f714ef5fb102f8dab/forms-widget.png?w=560&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=0c463192e40f24a8d417eb6fd672806b 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/3J0IuWLP7utOPKSHc82IE9/a523afe0c240c63f714ef5fb102f8dab/forms-widget.png?w=840&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=f6185a8d1a07f2e5c28977d61a659f79 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/3J0IuWLP7utOPKSHc82IE9/a523afe0c240c63f714ef5fb102f8dab/forms-widget.png?w=1100&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=8cfb02d9ea3877cb4e4a50446f933186 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/3J0IuWLP7utOPKSHc82IE9/a523afe0c240c63f714ef5fb102f8dab/forms-widget.png?w=1650&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=438baf103dfe0b65a36ff4322b0b969e 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/qy_cZzsCifj8OPXY/docs/images/cdy7uua7fh8z/3J0IuWLP7utOPKSHc82IE9/a523afe0c240c63f714ef5fb102f8dab/forms-widget.png?w=2500&fit=max&auto=format&n=qy_cZzsCifj8OPXY&q=85&s=4d82c3cac7807dd33c27806b9addc0a2 2500w" />
</Frame>

#### Available widgets in Forms

The available widget is:

<AccordionGroup>
  <Accordion title="Google Address Widget">
    A widget that lets a user enter and validate their address.

    ##### Google Address widget settings

    The Google Address widget settings include:

    | Settings | Description                                              |
    | -------- | -------------------------------------------------------- |
    | API key  | Requires a Google Maps API key to authenticate requests. |

    ##### Google Address widget output value

    The Google Address widget output value data type is an `object`.

    ```json lines theme={null}
    {
      "google_address_widget_id": {
        "type": "Feature",
        "geometry": {
          "type": "Point",
          "coordinates": [
            -73.9654415,
            40.8054491
          ]
        },
        "properties": {
          "geocoding": {
            "type": "house",
            "housenumber": "2880",
            "street": "Broadway",
            "city": "New York",
            "county": "New York County",
            "state": "New York",
            "country": "United States",
            "postcode": "10025"
          }
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Google reCAPTCHA">
    A widget that helps protect your website from spam and abuse by verifying that a user is a human and not a bot.

    The widget supports:

    * Score-based (v3)
    * Challenge (v2)

      * Invisible reCAPTCHA badge

    Differences between `v2` and `v3`:

    * `v2` requires user interaction with visible challenges, such as clicking a checkbox or solving puzzles.
    * `v3` runs in the background and provides a score based on user behavior, without requiring user interaction. When using this version, make sure to implement additional business logic to handle the score and determine if further action is needed.

    ##### Google reCAPTCHA widget settings

    The Google reCAPTCHA widget settings include:

    | Settings   | Description                                                                                                                                                                                                               |
    | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Site key   | The public site key used to initialize the reCAPTCHA on your website. You can create it in [Google reCAPTCHA console](https://www.google.com/recaptcha/admin/create) or your Google Cloud Platform project.               |
    | Secret key | The secret key used to communicate securely with the reCAPTCHA service server-side. You can create it in [Google reCAPTCHA console](https://www.google.com/recaptcha/admin/create) or your Google Cloud Platform project. |

    ##### Google reCAPTCHA output value

    The Google reCAPTCHA widget output value data type is an `object`.

    Example of `v2` response:

    ```json lines theme={null}
    {
      "recaptcha_widget_id": {
        "success": true,
        "challenge_ts": "2025-03-26T11:22:18Z",
        "hostname": "auth.example.com"
      }
    }
    ```

    Example of `v3` response:

    ```json lines theme={null}
    {
      "recaptcha_widget_id": {
        "success": true,
        "challenge_ts": "2025-03-26T11:22:18Z",
        "hostname": "auth.example.com",
        "score": 0.9
      }
    }
    ```
  </Accordion>

  <Accordion title="Verifiable Credentials">
    A widget that lets a user verify their identity using verifiable credentials stored in their digital wallet.

    ##### Verifiable Credentials widget settings

    The Verifiable Credentials widget settings include:

    | Settings             | Description                                                                                                                                                                                      |
    | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | URL                  | The URL value used to generate the QR code. This value is returned in the `engagement` property of the verification request.                                                                     |
    | Link text            | Alternative text that will be displayed for users who cannot scan the QR code and prefer to open the link directly on their device.                                                              |
    | Size                 | The size of the QR code.                                                                                                                                                                         |
    | Public token         | The access token required to consume the polling endpoint. Please ensure the token is generated with only the `read:verification_request` scope to avoid exposing access to other resources.     |
    | Verification ID      | The verification ID generated when you start the verification request.                                                                                                                           |
    | Maximum waiting time | The maximum amount of time to wait for the verification process to complete. Once the set time is reached, polling will stop and an error will be thrown, regardless of the verification status. |

    ##### Verifiable Credentials output value

    The Verifiable Credentials widget output value data type is an `object`.

    ```json lines theme={null}
    {
      "verifiable_credentials_widget_id": {
        "state": "honored",
        "reason": "...", // The reason field contains additional information (if available) regarding the state of the verification request. 
        "presentation": {} // The presentation contains the claims provided by the wallet in response to the presentation definition.
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## Router node

Router nodes let you add rules to create conditional logic jumps between nodes.

By default, a router node has a single pass-through rule named **Default Case** that connects to other nodes. You can add additional rules based on a set of conditions that a variable must meet to then connect to other nodes. To learn more, read [Router.](/docs/customize/forms/routers)

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2IKI9sU9UPCVkMkHQ3G8lX/07df765647a69a4cf1ab8c5c7aae3c22/2025-07-15_10-31-08.png?fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=df655fc8bc2c981390a1c4785b23ff0c" alt="Dashboard > Forms > Routers " data-og-width="899" width="899" data-og-height="470" height="470" data-path="docs/images/cdy7uua7fh8z/2IKI9sU9UPCVkMkHQ3G8lX/07df765647a69a4cf1ab8c5c7aae3c22/2025-07-15_10-31-08.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2IKI9sU9UPCVkMkHQ3G8lX/07df765647a69a4cf1ab8c5c7aae3c22/2025-07-15_10-31-08.png?w=280&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=35521baba7bc666c6e0003c5de1e2f47 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2IKI9sU9UPCVkMkHQ3G8lX/07df765647a69a4cf1ab8c5c7aae3c22/2025-07-15_10-31-08.png?w=560&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=8c9340ce33f4ccd21ffe62e2daf26e97 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2IKI9sU9UPCVkMkHQ3G8lX/07df765647a69a4cf1ab8c5c7aae3c22/2025-07-15_10-31-08.png?w=840&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=bb5d924ec615e68685e2f5506d11b9e9 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2IKI9sU9UPCVkMkHQ3G8lX/07df765647a69a4cf1ab8c5c7aae3c22/2025-07-15_10-31-08.png?w=1100&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=d6bc49f90c8055c3106385da52a3ef5c 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2IKI9sU9UPCVkMkHQ3G8lX/07df765647a69a4cf1ab8c5c7aae3c22/2025-07-15_10-31-08.png?w=1650&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=a6bce2840b9fb0e5bdc2280b37fecc49 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2IKI9sU9UPCVkMkHQ3G8lX/07df765647a69a4cf1ab8c5c7aae3c22/2025-07-15_10-31-08.png?w=2500&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=d9ceef26ca153bbcf080dca1dbd0a795 2500w" />
</Frame>

## Flow node

Flow nodes let you add and create custom logic and integration flows to your forms. To learn more, read [Flows.](/docs/customize/forms/flows)

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p1pRgG0usRxks6z6/docs/images/cdy7uua7fh8z/4UGCrqzgyHTPryLoEuBwNt/e4a67be08a33b565ece89973028fa6ac/forms-flow-node.png?fit=max&auto=format&n=p1pRgG0usRxks6z6&q=85&s=d0118daf87091c17dc04b6320b8998fe" alt="Dashboard > Forms > Flow" data-og-width="1226" width="1226" data-og-height="504" height="504" data-path="docs/images/cdy7uua7fh8z/4UGCrqzgyHTPryLoEuBwNt/e4a67be08a33b565ece89973028fa6ac/forms-flow-node.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p1pRgG0usRxks6z6/docs/images/cdy7uua7fh8z/4UGCrqzgyHTPryLoEuBwNt/e4a67be08a33b565ece89973028fa6ac/forms-flow-node.png?w=280&fit=max&auto=format&n=p1pRgG0usRxks6z6&q=85&s=8329947271d07addf2f865a24e3cee82 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p1pRgG0usRxks6z6/docs/images/cdy7uua7fh8z/4UGCrqzgyHTPryLoEuBwNt/e4a67be08a33b565ece89973028fa6ac/forms-flow-node.png?w=560&fit=max&auto=format&n=p1pRgG0usRxks6z6&q=85&s=bfb22f6dc9c99a00164c6d995935d5ec 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p1pRgG0usRxks6z6/docs/images/cdy7uua7fh8z/4UGCrqzgyHTPryLoEuBwNt/e4a67be08a33b565ece89973028fa6ac/forms-flow-node.png?w=840&fit=max&auto=format&n=p1pRgG0usRxks6z6&q=85&s=ba598572e90fbd1de7913c57f23670cb 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p1pRgG0usRxks6z6/docs/images/cdy7uua7fh8z/4UGCrqzgyHTPryLoEuBwNt/e4a67be08a33b565ece89973028fa6ac/forms-flow-node.png?w=1100&fit=max&auto=format&n=p1pRgG0usRxks6z6&q=85&s=9a463712cda566fa068eae0c5927d90d 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p1pRgG0usRxks6z6/docs/images/cdy7uua7fh8z/4UGCrqzgyHTPryLoEuBwNt/e4a67be08a33b565ece89973028fa6ac/forms-flow-node.png?w=1650&fit=max&auto=format&n=p1pRgG0usRxks6z6&q=85&s=b3fe0e0fa73c894952d57e48096c5505 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p1pRgG0usRxks6z6/docs/images/cdy7uua7fh8z/4UGCrqzgyHTPryLoEuBwNt/e4a67be08a33b565ece89973028fa6ac/forms-flow-node.png?w=2500&fit=max&auto=format&n=p1pRgG0usRxks6z6&q=85&s=5bda2a8c7a94aa8b0a122526ae3a10ce 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/W8xxwN4-1aXXYjQl/docs/images/cdy7uua7fh8z/4L1ixTcIVCmslts6M4wn7u/dc07046cfd41494f40285de5c102ff52/flow-editor-example.png?fit=max&auto=format&n=W8xxwN4-1aXXYjQl&q=85&s=f595afe49de7370a22ea4c13e0272201" alt="Dashboard > Forms > Flow > Editor" data-og-width="1404" width="1404" data-og-height="728" height="728" data-path="docs/images/cdy7uua7fh8z/4L1ixTcIVCmslts6M4wn7u/dc07046cfd41494f40285de5c102ff52/flow-editor-example.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/W8xxwN4-1aXXYjQl/docs/images/cdy7uua7fh8z/4L1ixTcIVCmslts6M4wn7u/dc07046cfd41494f40285de5c102ff52/flow-editor-example.png?w=280&fit=max&auto=format&n=W8xxwN4-1aXXYjQl&q=85&s=8535b119d5decc8d57281820c029caf1 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/W8xxwN4-1aXXYjQl/docs/images/cdy7uua7fh8z/4L1ixTcIVCmslts6M4wn7u/dc07046cfd41494f40285de5c102ff52/flow-editor-example.png?w=560&fit=max&auto=format&n=W8xxwN4-1aXXYjQl&q=85&s=9e97f5437222853309dc096acc1830b2 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/W8xxwN4-1aXXYjQl/docs/images/cdy7uua7fh8z/4L1ixTcIVCmslts6M4wn7u/dc07046cfd41494f40285de5c102ff52/flow-editor-example.png?w=840&fit=max&auto=format&n=W8xxwN4-1aXXYjQl&q=85&s=c500e6fc280b0e8d8c1cb31f6d4dc3bb 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/W8xxwN4-1aXXYjQl/docs/images/cdy7uua7fh8z/4L1ixTcIVCmslts6M4wn7u/dc07046cfd41494f40285de5c102ff52/flow-editor-example.png?w=1100&fit=max&auto=format&n=W8xxwN4-1aXXYjQl&q=85&s=ad9e638c9acbe96cf4487fb99d54a705 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/W8xxwN4-1aXXYjQl/docs/images/cdy7uua7fh8z/4L1ixTcIVCmslts6M4wn7u/dc07046cfd41494f40285de5c102ff52/flow-editor-example.png?w=1650&fit=max&auto=format&n=W8xxwN4-1aXXYjQl&q=85&s=1b06d34335023df6132009a6b9b322c9 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/W8xxwN4-1aXXYjQl/docs/images/cdy7uua7fh8z/4L1ixTcIVCmslts6M4wn7u/dc07046cfd41494f40285de5c102ff52/flow-editor-example.png?w=2500&fit=max&auto=format&n=W8xxwN4-1aXXYjQl&q=85&s=6424f918e27a29df46758dc4d2d0cfb4 2500w" />
</Frame>

## Start node

Start nodes are not visible to the user. It is where you can configure hidden field variables, such as user attributes when [rendering a form with an Action.](/docs/customize/forms/render)

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2GqFDPep4akUxucmMJyb5/2b50f07f50ee29501341dc54f686de07/form-start-node.png?fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=63f7e9f40e7f6d53f2ec6b715492c5bb" alt="Dashboard > Forms > Start node" data-og-width="1233" width="1233" data-og-height="399" height="399" data-path="docs/images/cdy7uua7fh8z/2GqFDPep4akUxucmMJyb5/2b50f07f50ee29501341dc54f686de07/form-start-node.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2GqFDPep4akUxucmMJyb5/2b50f07f50ee29501341dc54f686de07/form-start-node.png?w=280&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=1957ee001e9c11f548e76a863661b8de 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2GqFDPep4akUxucmMJyb5/2b50f07f50ee29501341dc54f686de07/form-start-node.png?w=560&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=4b1c89ba4c5f2f202d1eedbd49942a03 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2GqFDPep4akUxucmMJyb5/2b50f07f50ee29501341dc54f686de07/form-start-node.png?w=840&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=99dcfdfb520bfba74e9cb60906cdf877 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2GqFDPep4akUxucmMJyb5/2b50f07f50ee29501341dc54f686de07/form-start-node.png?w=1100&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=102494c6f32a107334011b8ecb13a2ab 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2GqFDPep4akUxucmMJyb5/2b50f07f50ee29501341dc54f686de07/form-start-node.png?w=1650&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=ba941fa43fffef7a23f5a5095d26e3d6 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/YA6YwITUEnIUiKMc/docs/images/cdy7uua7fh8z/2GqFDPep4akUxucmMJyb5/2b50f07f50ee29501341dc54f686de07/form-start-node.png?w=2500&fit=max&auto=format&n=YA6YwITUEnIUiKMc&q=85&s=84a8b8f9c434254d7736e8bf6878c1c7 2500w" />
</Frame>

## Ending screen node

Every form has an Ending screen node. By default this node resumes the authentication flow and this is where you can configure an After submission flow.

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p3qdoSb7nBTNJAo4/docs/images/cdy7uua7fh8z/0icbjPpDKsnmtInimJ548/ead65b5e89de57a3079127324acd314d/ending-screen-node.png?fit=max&auto=format&n=p3qdoSb7nBTNJAo4&q=85&s=a80bddaf8de8dad48bd9e89aef93a21a" alt="Dashboard > Forms > Ending screen node" data-og-width="1196" width="1196" data-og-height="365" height="365" data-path="docs/images/cdy7uua7fh8z/0icbjPpDKsnmtInimJ548/ead65b5e89de57a3079127324acd314d/ending-screen-node.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p3qdoSb7nBTNJAo4/docs/images/cdy7uua7fh8z/0icbjPpDKsnmtInimJ548/ead65b5e89de57a3079127324acd314d/ending-screen-node.png?w=280&fit=max&auto=format&n=p3qdoSb7nBTNJAo4&q=85&s=1c9ac3f648c8ce1dfb904a91337c8a84 280w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p3qdoSb7nBTNJAo4/docs/images/cdy7uua7fh8z/0icbjPpDKsnmtInimJ548/ead65b5e89de57a3079127324acd314d/ending-screen-node.png?w=560&fit=max&auto=format&n=p3qdoSb7nBTNJAo4&q=85&s=acd5ea81acaa3ae6b041a7aee74133c6 560w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p3qdoSb7nBTNJAo4/docs/images/cdy7uua7fh8z/0icbjPpDKsnmtInimJ548/ead65b5e89de57a3079127324acd314d/ending-screen-node.png?w=840&fit=max&auto=format&n=p3qdoSb7nBTNJAo4&q=85&s=9d7acd63070d71b704aaef569af3e679 840w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p3qdoSb7nBTNJAo4/docs/images/cdy7uua7fh8z/0icbjPpDKsnmtInimJ548/ead65b5e89de57a3079127324acd314d/ending-screen-node.png?w=1100&fit=max&auto=format&n=p3qdoSb7nBTNJAo4&q=85&s=74dd2a6007f427bdc50fe0e6102a82a1 1100w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p3qdoSb7nBTNJAo4/docs/images/cdy7uua7fh8z/0icbjPpDKsnmtInimJ548/ead65b5e89de57a3079127324acd314d/ending-screen-node.png?w=1650&fit=max&auto=format&n=p3qdoSb7nBTNJAo4&q=85&s=d9609a930d3e8ba2d3c77e156934568f 1650w, https://mintcdn.com/docs-staging-feat-acul-js-sdk-1-7-0-docs/p3qdoSb7nBTNJAo4/docs/images/cdy7uua7fh8z/0icbjPpDKsnmtInimJ548/ead65b5e89de57a3079127324acd314d/ending-screen-node.png?w=2500&fit=max&auto=format&n=p3qdoSb7nBTNJAo4&q=85&s=18efc54291bfc35271c1f81cb4ea8845 2500w" />
</Frame>
