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

# FAQs

> Frequently asked questions about Optexity

## General

<AccordionGroup>
  <Accordion title="What is Optexity?">
    Optexity is a platform for building and running browser automations using AI-assisted element location and robust execution.
  </Accordion>
</AccordionGroup>

## Parameters & Credentials

<AccordionGroup>
  <Accordion title="Do I need to build new automation for each user or login credentials?">
    No. Use [Parameters](/docs/building-automations/parameters) to run the same automation with different values. Pass credentials at runtime via the inference request.
  </Accordion>

  <Accordion title="How do I access parameter values?">
    Use the `{parameter_name[index]}` syntax. For single values use `{username[0]}`. In loops, use `{variable[index]}` for the current iteration. See [Parameters](/docs/building-automations/parameters) for details.
  </Accordion>

  <Accordion title="How do I handle passwords and secrets securely?">
    Use `secure_parameters` instead of hardcoding credentials. Optexity retrieves values at runtime from secure storage like 1Password or generates TOTP codes. Your secrets are never exposed in the workflow.

    | Provider  | Use Case            | Documentation                                       |
    | --------- | ------------------- | --------------------------------------------------- |
    | 1Password | Passwords, API keys | [1Password Integration](/docs/advanced/onepassword) |
    | TOTP      | 2FA codes           | [TOTP Integration](/docs/advanced/totp-integration) |

    ```json theme={null}
    "secure_parameters": {
      "password": [{
        "onepassword": {
          "vault_name": "my_vault",
          "item_name": "my_login",
          "field_name": "password"
        }
      }]
    }
    ```
  </Accordion>
</AccordionGroup>

## Control Flow

<AccordionGroup>
  <Accordion title="How do I iterate over multiple items on a page?">
    Use `for_loop_node`. Set `variable_name` to iterate over values from input parameters or extracted data, or set `locator` to iterate over every element a Playwright locator matches when you don't know the count in advance (e.g. every row of a results table). See [For Loop Node](/docs/building-automations/for-loop-node).
  </Accordion>

  <Accordion title="How do I handle conditional logic?">
    Use `if_else_node` to execute different actions based on conditions. See [If Else Node](/docs/building-automations/if-else-node).
  </Accordion>
</AccordionGroup>

## Two-Factor Authentication

<AccordionGroup>
  <Accordion title="Can Optexity handle 2FA/MFA?">
    Yes. Optexity integrates with authenticator apps (Google Authenticator, Microsoft Authenticator, Authy). See [TOTP Integration](/docs/advanced/totp-integration).
  </Accordion>

  <Accordion title="Do you handle OTP over email?">
    This is a work in progress. Contact us for details.
  </Accordion>
</AccordionGroup>

## Data & Downloads

<AccordionGroup>
  <Accordion title="How do I access downloaded files?">
    Use the `GET /api/v1/get_downloads` endpoint. Downloaded files are stored in cloud storage with signed URLs. See [Downloads & Files](/docs/advanced/downloads-files).
  </Accordion>

  <Accordion title="Where is my extracted data stored?">
    Extracted data is stored in Optexity cloud storage. Retrieve it via `GET /api/v1/get_output_data` or receive it in callbacks.
  </Accordion>

  <Accordion title="Do I have to poll to get results?">
    No. Set up a callback URL in the dashboard to receive data automatically when automation completes. See [Callbacks](/docs/advanced/callbacks).
  </Accordion>
</AccordionGroup>

## Form Interactions

<AccordionGroup>
  <Accordion title="How do I fill a field and select from a dropdown that appears?">
    Use two sequential actions: first `input_text` to type, then `click_element` to select. Add `before_sleep_time` to wait for the dropdown.

    ```json theme={null}
    [
      {
        "type": "action_node",
        "interaction_action": {
          "input_text": {
            "command": "get_by_role(\"textbox\", name=\"Search\")",
            "input_text": "{search_term[0]}"
          }
        },
        "end_sleep_time": 1
      },
      {
        "type": "action_node",
        "interaction_action": {
          "click_element": {
            "prompt_instructions": "Click on the dropdown option '{search_term[0]}'."
          }
        },
        "before_sleep_time": 2
      }
    ]
    ```
  </Accordion>

  <Accordion title="How do I select from a native dropdown?">
    Use `select_option` for native `<select>` elements:

    ```json theme={null}
    {
      "type": "action_node",
      "interaction_action": {
        "select_option": {
          "command": "get_by_label(\"Country\")",
          "select_values": ["United States"]
        }
      }
    }
    ```

    Use `input_text` + `click_element` for custom dropdowns that populate after typing.
  </Accordion>

  <Accordion title="How do I skip an action when the element might not exist?">
    Omit the `command` field to use AI-based element finding, or set `skip_prompt: true` with `assert_locator_presence: true` to skip gracefully.
  </Accordion>
</AccordionGroup>

## Pricing & Access

<AccordionGroup>
  <Accordion title="Do you have a free tier?">
    Yes. All automations are free to build and run using the [open source version](https://github.com/Optexity/optexity).
  </Accordion>

  <Accordion title="Do you provide cloud browsers?">
    Yes. Contact [founders@optexity.com](mailto:founders@optexity.com) to request cloud access.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Does Optexity handle CAPTCHAs?">
    Yes. Stealth mode prevents most CAPTCHAs in both open source and cloud versions.
  </Accordion>

  <Accordion title="Automation is not working reliably">
    If the automation is correct but failing, try changing `browser_channel` to `"chrome"` instead of `"chromium"` in your workflow. Some websites work better with Chrome.
  </Accordion>
</AccordionGroup>
