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

# Using form variables

<View title="Developer" />

<View title="Federal docs" />

<View title="EU docs" />

This topic explains how to use form variables to collect configuration data from members when they begin using your integration. Most integrations need to collect one or more pieces of configuration data that support the integration, such as API tokens or webhook endpoints.

## Build form variables

To support your configuration, you must describe a set of `formVariables` that define your configuration properties. The `formVariables` populate a form in the LaunchDarkly user interface (UI) that members complete to add your integration.

Here's an example:

<CodeGroup>
  ```json title="Example manifest" lines wrap theme={null}
  "formVariables": [
      {
          "key": "name",
          "name": "Name",
          "type": "string"
      },
      {
          "key": "webhookUrl",
          "name": "Incoming webhook URL",
          "description": "Enter your Microsoft Teams [incoming webhook URL](https://example-documentation.com).",
          "defaultValue": "https://example.com/inbound_webhook",
          "type": "url",
          "isSecret": true
      }
  ]
  ```
</CodeGroup>

Here's how the `formVariables` entry above displays on the LaunchDarkly **Integrations** page:

<Frame caption="Example integration configuration panel in the LaunchDarkly UI">
  <img src="https://mintcdn.com/launchdarkly/hutarVphEq2dY_zb/images/auto/integrations-form-variable.auto.png?fit=max&auto=format&n=hutarVphEq2dY_zb&q=85&s=9d7bf56114bdf6f40c4f64fa7a1469d0" alt="Example integration configuration panel in the LaunchDarkly UI" width="1180" height="766" data-path="images/auto/integrations-form-variable.auto.png" />
</Frame>

Form variables apply to the entire integration configuration. There are no capability-specific form variables.

Here are the form variables you need to supply:

* `key`, `name`, `description`, and `type` are required.
* `formVariables[].description` is used as a field label on the UI. You can use simple Markdown to link a word or phrase to an external URL.
* Optionally, you can set `isSecret` or `isOptional` if necessary, or provide guidance with `placeholder` and `defaultValue`. If you provide a `defaultValue`, you must also set `isOptional` to `true` and vice versa.

Accepted form variable `type`s are `string`, `boolean`, `uri`, `enum`, and `dynamicEnum`.

To learn more, read the [manifest schema](https://github.com/launchdarkly/integration-framework/blob/main/manifest.schema.json).
