> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Form Connector

> Form connectors expose a public web endpoint where clients fill out a form and submit data into a flow, with a drag-and-drop designer and user authentication support.

export const TrustedIp = () => <>
    <p>The following functions are available in the <strong>Trusted IP Addresses</strong> section:</p>

    <table>
      <thead>
        <tr><th>Function</th><th>Description</th></tr>
      </thead>
      <tbody>
        <tr><td><strong>Add</strong></td><td>Enter a new IP address range.</td></tr>
        <tr><td><strong>Edit</strong></td><td>Modify the selected IP address range.</td></tr>
        <tr><td><strong>Delete</strong></td><td>Deletes the selected IP address range from the list.</td></tr>
      </tbody>
    </table>

    <p>The following restrictions apply to this feature:</p>

    <ul style={{
  listStyleType: 'disc',
  paddingLeft: '1.5rem'
}}>
      <li style={{
  display: 'list-item'
}}><code>localhost</code> cannot be modified or removed from the list.</li>
      <li style={{
  display: 'list-item'
}}>Any IP addresses outside of the defined ranges are rejected.</li>
      <li style={{
  display: 'list-item'
}}>Ranges are supported. For example, the entry <code>100.10.100.1-15</code> indicates that IP addresses between <code>100.10.100.1</code> and <code>100.10.100.15</code> are allowed.</li>
      <li style={{
  display: 'list-item'
}}>Classless inter-domain routing (CIDR) notation is supported. For example, the entry <code>100.10.100.0/24</code> indicates that IP addresses between <code>100.10.100.0</code> and <code>100.10.100.255</code> are allowed.</li>
      <li style={{
  display: 'list-item'
}}>Wildcard patterns are supported. For example, the entry <code>100.10.100.*</code> indicates that IP addresses beginning with <code>100.10.100</code> are allowed.</li>
    </ul>

    <Note>
      <p>In order for clients to reach the server, a clear network path is required. In cloud environments you might need to make changes in three places:</p>
      <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• The networking rules in the cloud console.</p>
      <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• The firewall rules on the machine hosting the application. For example, when using an Amazon AMI, you might use an <em>Uncomplicated Firewall</em> (UFW) to allow traffic on the desired port. A common strategy in Linux environments is to forward traffic from ports lower than 1024 to a non-standard port higher than 1024, while configuring the application to use the non-standard port. This avoids permission issues associated with non-root users binding to ports lower than 1024.</p>
      <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• The <a href="/26.3/self-hosted/en/getting-started/administration/settings/network-access">Network Access</a> portion of the <a href="/26.3/self-hosted/en/getting-started/administration/settings/security">Security</a> tab.</p>
    </Note>
  </>;

export const NameDescription = ({extraRows}) => <table>
    <thead>
      <tr>
        <th>Setting</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><strong>Connector Id</strong></td>
        <td>The static, unique identifier for the connector.</td>
      </tr>
      <tr>
        <td><strong>Connector Type</strong></td>
        <td>Displays the connector name and a description of what it does.</td>
      </tr>
      <tr>
        <td><strong>Connector Description</strong></td>
        <td>An optional field to provide a free-form description of the connector and its role in the flow.</td>
      </tr>
      {extraRows}
    </tbody>
  </table>;

export const SlasTab = ({siteName = "CData Arc"}) => <>
    <p><em>Settings related to configuring Service Level Agreements (SLAs).</em></p>
    <p>
      SLAs enable you to configure the volume you expect connectors in your flow to send or receive, and to set the time frame in which you expect that volume to be met. {siteName} sends emails to warn the user when an SLA is not met, and marks the SLA as <em>At Risk</em>, which means that if the SLA is not met soon, it will be marked as <em>Violated</em>. This gives the user an opportunity to step in and determine the reasons the SLA is not being met, and to take appropriate actions. If the SLA is still not met at the end of the at-risk time period, the SLA is marked as violated, and the user is notified again.
    </p>
    <p>
      To define an SLA, toggle <strong>Expected Volume</strong> on, then click the <strong>Settings</strong> tab.
    </p>
    <img src="/public/images/sla_empty.png" alt="SLA Empty" />
    <ul>
      <li>If your connector has separate send and receive actions, use the radio buttons to specify which direction the SLA pertains to.</li>
      <li>In the <strong>Expect at least</strong> portion of the window:
        <ul>
          <li>Set the minimum number of transactions you expect to be processed (the volume)</li>
          <li>Use the <strong>Every</strong> fields to specify the time frame</li>
          <li>Indicate when the SLA should go into effect. If you choose <strong>Starting on</strong>, complete the date and time fields.</li>
          <li>Check the boxes for the days of the week that you want the SLA to be in effect. Use the dropdown to choose <strong>Everyday</strong> if necessary.</li>
        </ul>
      </li>
      <li>In the <strong>Set status to 'At Risk'</strong> portion of the window, specify when the SLA should be marked as at risk.
        <ul>
          <li>By default, notifications are not sent until an SLA is in violation. To change that, check <strong>Send an 'At Risk' notification</strong>.</li>
        </ul>
      </li>
    </ul>
    <p>
      The following example shows an SLA configured for a connector that expects to receive 1000 files every day Monday-Friday. An at-risk notification is sent 1 hour before the end of the time period if the 1000 files have not been received.
    </p>
    <img src="/public/images/sla_defined.png" alt="SLA Configuration Example" />
    <Note>
      You can turn off SLA alerts if necessary. This can be useful during maintenance windows. Click <strong>Settings</strong> on the navbar, then navigate to <strong>Alerts &gt; General Alerts</strong>. Click the tablet and pencil icon to edit, and uncheck the <strong>SLA Alerts</strong> setting.
    </Note>
  </>;

export const AlertsTab = ({siteNameShort = "Arc"}) => <>
    <p><em>Settings related to configuring alerts.</em></p>
    <p>
      Before you can execute Service Level Agreements (SLAs), you need to set up email alerts for notifications. By default, {siteNameShort} uses the global settings on the <a href="/26.3/self-hosted/en/getting-started/administration/settings/alerts">Alerts</a> tab. To use other settings for this connector, toggle <strong>Override global setting</strong> on.
    </p>
    <p>
      By default, error alerts are enabled, which means that emails are sent whenever there is an error. To turn them off, uncheck the <strong>Enable</strong> checkbox.
    </p>
    <p>
      Enter a <strong>Subject</strong> (mandatory). Check <strong>Allow {siteNameShort}Script in Subject</strong> to use {siteNameShort}Script in the <strong>Subject</strong> field. When you select this, the <strong>{siteNameShort}Script Editor</strong> button appears (<img src="/public/images/rest_arcscript_editor.png" alt="arcscript editor button" style={{
  display: 'inline',
  verticalAlign: 'middle',
  margin: 0
}} />).
    </p>
    <p>
      Optionally, enter a comma-separated list of <strong>Recipient</strong> emails.
    </p>
  </>;

export const MiscConnector = () => <>
    <p><em>Miscellaneous settings are for specific use cases.</em></p>
    <table>
      <thead>
        <tr>
          <th>Setting</th>
          <th>Description</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Other Settings</strong></td>
          <td>Enables you to configure hidden connector settings in a semicolon-separated list (for example, <code>setting1=value1;setting2=value2</code>). Normal connector use cases and functionality should not require the use of these settings.</td>
        </tr>
      </tbody>
    </table>
  </>;

export const Logging = () => <>
    <p><em>Settings that govern the creation and storage of logs.</em></p>
    <table>
      <thead>
        <tr>
          <th>Setting</th>
          <th>Description</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Log Level</strong></td>
          <td>The verbosity of logs generated by the connector. When you request support, set this to <strong>Debug</strong>.</td>
        </tr>
        <tr>
          <td><strong>Log Subfolder Scheme</strong></td>
          <td>Instructs the connector to group files in the Logs folder according to the selected interval. The <strong>Weekly</strong> option (which is the default) instructs the connector to create a new subfolder each week and store all logs for the week in that folder. Leaving this setting blank tells the connector to save all logs directly in the Logs folder. For connectors that process many transactions, using subfolders helps keep logs organized and improves performance.</td>
        </tr>
        <tr>
          <td><strong>Log Messages</strong></td>
          <td>Check this to have the log entry for a processed file include a copy of the file itself. If you disable this, you might not be able to download a copy of the file from the <strong>Transactions</strong> tab.</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MacrosExamples = ({extraMacros = []}) => <>
    <p>
      Some macros, such as %Ext% and %ShortDate%, do not require an argument, but others do. All
      macros that take an argument use the following syntax: <code>%Macro:argument%</code>
    </p>

    <p>Here are some examples of the macros that take an argument:</p>

    <ul>
      <li>%Header:headername%: Where <code>headername</code> is the name of a header on a message.</li>
      <li>%Header:mycustomheader% resolves to the value of the <code>mycustomheader</code> header set on the input message.</li>
      <li>%Header:ponum% resolves to the value of the <code>ponum</code> header set on the input message.</li>
      <li>%RegexFilename:pattern%: Where <code>pattern</code> is a regex pattern. For example, <code>%RegexFilename:^([\w][A-Za-z]+)%</code> matches and resolves to the first word in the filename and is case insensitive (<code>test_file.xml</code> resolves to <code>test</code>).</li>
      <li>%Vault:vaultitem%: Where <code>vaultitem</code> is the name of an item in the <a href="/26.3/self-hosted/en/getting-started/administration/settings/global-settings-vault">vault</a>. For example, <code>%Vault:companyname%</code> resolves to the value of the <code>companyname</code> item stored in the vault.</li>
      <li>%DateFormat:format%: Where <code>format</code> is an accepted date format (see <a href="/26.3/self-hosted/en/scripting/value-formatters/date-formatters#sample-date-formats">Sample Date Formats</a> for details). For example, <code>%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%</code> resolves to the date and timestamp on the file.</li>
      {extraMacros.filter(item => item.example).map(item => <li key={`ex-${item.name}`}>{item.example}</li>)}
    </ul>

    <p>You can also create more sophisticated macros, as shown in the following examples:</p>

    <ul>
      <li>Combining multiple macros in one filename: <code>%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%</code></li>
      <li>Including text outside of the macro: <code>MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%</code></li>
      <li>Including text within the macro: <code>%DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%</code></li>
    </ul>
  </>;

export const MacrosTable = ({siteName = "CData Arc", extraMacros = []}) => <>
    <p>
      Using macros in file naming strategies can enhance organizational efficiency and contextual
      understanding of data. By incorporating macros into filenames, you can dynamically include
      relevant information such as identifiers, timestamps, and header information, providing
      valuable context to each file.
    </p>

    <p>{siteName} supports these macros, which all use the following syntax: <code>%Macro%</code>.</p>

    <table>
      <thead>
        <tr><th>Macro</th><th>Description</th></tr>
      </thead>
      <tbody>
        <tr><td>ConnectorID</td><td>Evaluates to the ConnectorID of the connector.</td></tr>
        <tr><td>ConnectorName</td><td>Evaluates to the name of the connector. Enables you to include the connection name in file names or paths: for example, to tag backup files by which database connection produced them.</td></tr>
        <tr><td>Ext</td><td>Evaluates to the file extension of the file currently being processed by the connector.</td></tr>
        <tr><td>Filename</td><td>Evaluates to the filename (extension included) of the file currently being processed by the connector.</td></tr>
        <tr><td>FilenameNoExt</td><td>Evaluates to the filename (without the extension) of the file currently being processed by the connector.</td></tr>
        <tr><td>MessageId</td><td>Evaluates to the MessageId of the message being output by the connector.</td></tr>
        <tr><td>RegexFilename:<em>pattern</em></td><td>Applies a RegEx pattern to the filename of the file currently being processed by the connector.</td></tr>
        <tr><td>Header:<em>headername</em></td><td>Evaluates to the value of a targeted header (<code>headername</code>) on the current message being processed by the connector.</td></tr>
        <tr><td>LongDate</td><td>Evaluates to the current datetime of the system in long-handed format (for example, Wednesday, January 24, 2024).</td></tr>
        <tr><td>ShortDate</td><td>Evaluates to the current datetime of the system in a yyyy-MM-dd format (for example, 2024-01-24).</td></tr>
        <tr><td>DateFormat:<em>format</em></td><td>Evaluates to the current datetime of the system in the specified format (<code>format</code>). See <a href="/26.3/self-hosted/en/scripting/value-formatters/date-formatters#date-formats-with-literal-characters">Sample Date Formats</a> for the available datetime formats.</td></tr>
        <tr><td>Vault:<em>vaultitem</em></td><td>Evaluates to the value of the specified vault item.</td></tr>
        {extraMacros.map(item => <tr key={item.name}>
            <td>{item.name}</td>
            <td>{item.description}</td>
          </tr>)}
      </tbody>
    </table>
  </>;

export const siteNameShort = "Arc";

export const siteName = "CData Arc";

Form connectors expose a public web endpoint where clients fill out a form and submit that data into a {siteName} flow.

## Key Capabilities

* Web-based form creation with drag-and-drop designer
* Support for sections, detail tables, and multiple field types
* User authentication and access control for form submissions
* Dynamic form generation with customizable branding and success messages

## Overview

Forms are created on the connector **Form Designer** tab. A form is divided into sections and detail tables, each of which can have a variable number of fields. For details, see [Creating Forms](#creating-forms).

When you use a Form connector to submit new data, you should place the connector at the start of a connected flow. Clients can connect to the web endpoint, view and fill out the form, and submit this data into the configured {siteNameShort} flow. For more information, see [Submitting Form Data](#submitting-form-data).

The following sections explain how to configure the connector, create forms, and submit new form data.

## Connector Configuration

This section contains all of the configurable connector properties.

### Form Designer Tab

*Settings related to building a set of form fields that are organized into sections and detail tables.*

<img src="https://mintcdn.com/cdata-arc/Lo_2D5t4szDfleFN/public/images/Form_connector_form_designer.png?fit=max&auto=format&n=Lo_2D5t4szDfleFN&q=85&s=6beeba37012cbd774a7b7784f7dd8e46" width="700" data-path="public/images/Form_connector_form_designer.png" />

When clients connect to the configured endpoint and submit a form, they see fields that are laid out exactly as they are configured in the panel above.

The designer includes the following settings (see [Creating Forms](#creating-forms) for more details).

| Setting             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Form URL**        | A link to the published form.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| **Form**            | Title of the form (for example, your company name).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| **Add**             | Dropdown to add a section or a detail table. **Add Section** lets you add specific sections to a form, and **Add Detail** lets you add a detail table to the form. Detail tables act like a pre-configured table where the form user can add as many records as they need for the dataset.                                                                                                                                                                                                                                             |
| **Form Fields**     | Drag and drop fields into detail table and section areas of the form. Repeat this as many times as necessary. The field types are:<br />**Text Field** — An input text box with a name and description.<br />**Dropdown** — A dropdown list with name and dropdown options.<br />**Radio Buttons** — A set of radio buttons with name and radio button options.<br />**Checkboxes** — A set of checkboxes with name and checkbox options.<br />**File Upload** — Allows form users to upload specific file types directly to the form. |
| **Logo**            | Upload your company logo, which appears at the top of the form. By default it uses the {siteName} logo. You can also change the color of the banner.                                                                                                                                                                                                                                                                                                                                                                                   |
| **Success Message** | The confirmation message users see after they submit form data successfully. You can change the default message or add additional text.                                                                                                                                                                                                                                                                                                                                                                                                |

### Settings Tab

#### Connector Settings

*Settings related to the core configuration of the connector.*

<NameDescription />

#### Advanced Settings

| Setting               | Description                                                                                                                                                                                                                             |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Local File Scheme** | A scheme for assigning filenames to messages that are output by the connector. You can use macros in your filenames dynamically to include information such as identifiers and timestamps. For more information, see [Macros](#macros). |

### Form Users Tab

The **Form Users** tab lets you create user credentials for clients so that they can access the public endpoint. If a client is not logged into the application administration console already, that client is prompted to enter the **User** and **Password** combination when they browse to the endpoint.

You can add, edit, and delete credentials on this tab.

#### Adding Users

To add user credentials:

1. Click **Add User** to open the **Add Form User** dialog box.

2. Enter a username and password. (Click the eye icon to see the contents of the password field.)

3. Click **Save Changes** and the new user is added to the list of form users.

#### Editing Users

To edit users:

1. Click the ellipses next to the user that you want to edit, then click **Edit**.

2. Edit the credentials and click **Save**. If you decide not to make changes, click **Cancel**.

#### Deleting Individual Users

To delete individual users:

1. Click the ellipses next to the user that you want to edit, then click **Remove**.

2. Click **Remove** to delete the user or **Cancel** to cancel the deletion request.

#### Deleting Multiple Users

To remove multiple users, select the checkboxes for the users you want to delete, then click **Remove**. Confirm the deletion, or cancel the request.

### Server Tab

#### Trusted IP Addresses

<TrustedIp />

### Advanced Tab

#### Logging

<Logging />

#### Miscellaneous

<MiscConnector />

### Alerts Tab

<AlertsTab />

### SLAs Tab

<SlasTab />

### Transactions Tab

This tab lists all messages associated with the connector. Use the search bar to find specific messages, or click the funnel icon to apply a filter. You can filter by time, message direction, and/or status.

Incoming form responses appear on this tab.

## Configuring the IIS Server

If your {siteNameShort} instance is hosted on an IIS server and you use Microsoft Windows authentication to login to the application, you must disable Windows authentication for your users. Otherwise, the Form connector cannot properly authenticate users, and the connector will not work properly.

To disable Windows authentication:

1. In your IIS manager, create a new folder named `connector` in the base application path.

2. Select **Authentication** under **IIS** (in the right pane) for the `connector` folder.

   <img src="https://mintcdn.com/cdata-arc/6KwLqCromZpN96Gn/public/images/form_iis_1.png?fit=max&auto=format&n=6KwLqCromZpN96Gn&q=85&s=e77c9c7c75acdf035f32ca851489c4f1" width="450" data-path="public/images/form_iis_1.png" />

3. Set **Windows Authentication** to **Disabled** for this folder.

   <img src="https://mintcdn.com/cdata-arc/6KwLqCromZpN96Gn/public/images/form_iis_2.png?fit=max&auto=format&n=6KwLqCromZpN96Gn&q=85&s=78fb1c327a11c957ca15a2be6b318c47" width="500" data-path="public/images/form_iis_2.png" />

## Creating Forms

Forms have fields, sections, and details:

* **Section**: A heading that groups fields together
* **Detail**: An object that acts like a pre-configured table where the form user can add as many records as they need for the dataset
* **Field**: An input box with a label where users enter form data

To get started, click the **Add** button next to the form title, and choose whether to **Add Section** or **Add Detail**.

### Adding Sections

*Sections* divide fields in the form by categorizing them under a heading. For example, the **Ship To** section might contain fields like **Address**, **City**, and **Zip**.

Sections are not required in order to add fields to the form. However, sections provide logical groupings of items that help users quickly understand the form.

To add a section:

1. Choose **Add Section** from the dropdown. Enter a section name.

2. Now you can start [Adding Fields](#adding-fields) to the section.

   <img src="https://mintcdn.com/cdata-arc/Lo_2D5t4szDfleFN/public/images/Form_connector_form_designer_add_section_results.png?fit=max&auto=format&n=Lo_2D5t4szDfleFN&q=85&s=d6f8febed25e4113a2ca6e9ef2d20a72" width="450" data-path="public/images/Form_connector_form_designer_add_section_results.png" />

### Adding Detail Tables

*Detail* tables allow form creators to embed a table in the web form to enable structured, row-based data entry. They include a configurable number of columns which you define during the form creation. They are ideal for capturing repeatable datasets in a single form submission. End users can then dynamically add as many rows as needed and enter values for each column in those rows. See [Accessing Your Form](#accessing-your-form) for an example.

To add a detail table to your form:

1. Click **Add Detail** from the dropdown. Enter a name.

2. Now you are ready to add columns to the table. Select any of the [form field types](#form-field-types).

   <img src="https://mintcdn.com/cdata-arc/Lo_2D5t4szDfleFN/public/images/Form_connector_form_designer_add_detail_result.png?fit=max&auto=format&n=Lo_2D5t4szDfleFN&q=85&s=5d506e4e0a8ea45153aaeaf6807b37dd" width="450" data-path="public/images/Form_connector_form_designer_add_detail_result.png" />

### Adding Fields

*Fields* are the basic unit of input for the form.

To add a field:

1. Drag an object from the **Form Fields** section into your section or detail table.

2. Enter a **Display Name** (for example, Line Item Id). By default, **XML Name** is populated, but you can use the **Override** checkbox to supply a different name.

3. Use the **Is required** checkbox to specify whether the field is mandatory.

4. The other options vary based on the [form field type](#form-field-types). The following example shows a text field being defined. When you are finished defining the field, click **Add**.

   <img src="https://mintcdn.com/cdata-arc/Lo_2D5t4szDfleFN/public/images/Form_connector_form_designer_form_field.png?fit=max&auto=format&n=Lo_2D5t4szDfleFN&q=85&s=75ccbf5e406ee56614547dd543bff75c" width="450" data-path="public/images/Form_connector_form_designer_form_field.png" />

<Tip>
  <p>To edit a field, click the link to its name, or the ellipses to the right of the name.</p>
  <p>To remove a field, click the ellipses and choose **Remove Instance**.</p>
  <p> Drag and drop fields in a section or detail table to reorder their position in the form.</p>
</Tip>

### Form Field Types

#### Text Field Options

* Display Name: Name of the field in the form.
* XML Name: Sanitized version of the Display Name. It must be a valid XML element name.
* Override: Checkbox which allows you to change the default XML Name.
* Is required: Checkbox indicating whether the field is mandatory.
* Default Value: Populates the form with the text supplied here.
* Description: Helper text describing what the field is for.

#### Dropdown Field Options

* Display Name: Name of the field in the form.
* XML Name: Sanitized version of the Display Name. It must be a valid XML element name.
* Override: Checkbox which allows you to change the default XML Name.
* Dropdown Options: The list of options that appear in the form dropdown field. Click **Add Option** to add the options you need.
* Is required: Checkbox indicating whether the field is mandatory.
* Default Value: Populates the form with the text supplied here.
* Description: Helper text describing what the field is for.

#### Radio Button Field Options

* Display Name: Name of the field in the form.
* XML Name: Sanitized version of the Display Name. It must be a valid XML element name.
* Override: Checkbox which allows you to change the default XML Name.
* Radio Button Options: The list of options that appear in the form radio button field. Click **Add Option** to add the options you need.
* Is required: Checkbox indicating whether the field is mandatory.
* Default Value: Populates the form with the text supplied here.
* Description: Helper text describing what the field is for.

#### Checkbox Field Options

* Display Name: Name of the field in the form.
* XML Name: Sanitized version of the Display Name. It must be a valid XML element name.
* Override: Checkbox which allows you to change the default XML Name.
* Checkbox Options: The list of options that appear in the form checkbox field. Click **Add Option** to add the options you need.
* Is required: Checkbox indicating whether the field is mandatory.
* Default Value: Populates the form with the text supplied here.
* Description: Helper text describing what the field is for.

#### File Upload Field Options

* Display Name: Name of the field in the form.
* XML Name: Sanitized version of the Display Name. It must be a valid XML element name.
* Override: Checkbox which allows you to change the default XML Name.
* Accepted File Type Extensions: The allowed list of upload file types. For example, `.xml` only accepts XML files. To allow all file types, use `*`. Click **Add Option** to add the options you need.
* Is required: Checkbox indicating whether the field is mandatory.
* Default Value: Populates the form with the text supplied here.
* Description: Helper text describing what the field is for.

### Accessing Your Form

When you finish designing your form, access it by clicking the **Form URL** link at the top of the designer. The following form is a simple example:

<img src="https://mintlify.s3.us-west-1.amazonaws.com/cdata-arc/public/images/Form_connector_final_form.png" width="650" />

## Submitting Form Data

After you create a form, users access the Form connector's web endpoint and submit data using the form.

For fields in the main form, users simply enter the values that correspond to the labels on the form (which are taken from the name of the fields that you created).

Users can add rows to the detail table by clicking **Add Row**. Once a user enters all their data, they click **Submit** to submit their data. If the submission is successful, a message similar to the following appears.

<img src="https://mintcdn.com/cdata-arc/Lo_2D5t4szDfleFN/public/images/Form_connector_form_designer_success_message.png?fit=max&auto=format&n=Lo_2D5t4szDfleFN&q=85&s=dc4a0a18a7e78a5e73005d98f42f5b88" width="250" data-path="public/images/Form_connector_form_designer_success_message.png" />

When a user submits a form, the form data is pushed to the **Transactions** tab. The output is an XML file that contains the following structure:

```xml theme={null}
<Items>
  <FormTitle>
    <FieldA>data</FieldA>
    <FieldB>more data</FieldB>
    <FieldC>even more data</FieldC>
    <DetailTitle>
      <SubFieldA>123</SubFieldA>
      <SubFieldB>456</SubFieldB>
    </DetailTitle>
    <DetailTitle>
      <SubFieldA>135</SubFieldA>
      <SubFieldB>246</SubFieldB>
    </DetailTitle>
  </FormTitle>
</Items>
```

This output is well suited to being processed by an [XML Map Connector](./xml-map/xml-map) so that it can be mapped into an XML format that is usable by another connector.

## Macros

<MacrosTable />

### Examples

<MacrosExamples />
