> This page is for Tools.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.moveworks.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.moveworks.com/_mcp/server.

# Input Arguments

Input arguments define the external data a **Compound Action** requires to run, sourced from plugin triggers (e.g., webhooks) or upstream callers like a conversation process. They act as entry points, ensuring workflows receive validated, typed inputs, think user email for personalization or ticket IDs for routing, before diving into steps. By declaring them upfront, you enable dynamic execution while enforcing structure, reducing runtime errors and easing integration.

In the Editor, you set up **Input Arguments** by pressing on the **Input Args** button.

![](https://files.readme.io/6961db83d4f07565cf06837a15de12f4d80e4b38269d053e7a8a478beb838b50-CleanShot_2025-09-17_at_11.51.11.png)

# Setting Up Input Arguments

Access the Input Args panel in the Compound Action Editor to add, edit, or remove them. Click the **Input Args** button in the editor header to open the panel. Each argument needs a name, data type, optional description, and required flag. Saving updates the config instantly.

![](https://files.readme.io/40b7d50eb4444cfe5333dbd8a4c83be7aeb8a86f7601fa660dc132e6eadd4bc7-CleanShot_2025-09-17_at_11.46.59.png)

1. **Create New**: Click "Create New" to open a new form to create an argument.
2. **Define Details**: Enter name (e.g., `user_email`), select the type, add a description, and toggle required.

   ![](https://files.readme.io/4061c5a4260f40333a535560e6d3ea702ccd853a9c450ed90e7194c35a035030-CleanShot_2025-09-17_at_11.47.08.png)

# Available Data Types

See [Data Types](/tool-studio/core-concepts/data-types) to check the available types in compound actions.

# Usage in Compound Actions

Inputs get stored in the data bank and flow into steps via data mapping (e.g., `data.user_email` in action args).

```yaml
steps:
  - action:
      action_name: validate_email
      input_args:
        email: data.user_email  # From declared string arg
      output_key: validation_result
  - switch:
      cases:
        - condition: validation_result.valid == true
          steps:
            - notify:
                recipient_id: data.user_id  # Another input
                message: '''Email confirmed!'''
```