workflow_dispatch trigger in GitHub Actions to define custom inputs for manual workflows. By specifying parameters, you can create a more intuitive, guided interface for team members and contributors.
GitHub supports up to 10 top-level inputs in a
See the Workflow Syntax documentation for details.
workflow_dispatch trigger. Use descriptive names and defaults to simplify the form.See the Workflow Syntax documentation for details.

Supported Input Types
Use these five input types to collect values in your workflow form:| Input Type | Description | YAML Example |
|---|---|---|
| boolean | True/false toggle | type: boolean |
| choice | Select one option from a list | type: choice + options: |
| string | Free-form text | type: string |
| number | Numeric value | type: number |
| environment | Select from repository environments | type: environment |
Basic Input Example
Below is a minimal example showingchoice, boolean, string, and environment inputs. Access them in steps via ${{ inputs.<name> }}:
Example Repository
Clone or browse the trigger-inputs repository to see these inputs in action. It contains a simple README and one workflow file:
Defining the Workflow
Open.github/workflows/trigger-inputs.yml in your editor:

Running the Workflow
- Go to the Actions tab, select Triggered Workflow with Various Inputs, and click Run workflow.
- GitHub displays a form based on your
inputsblock:

- Choose the branch, toggle Run tests, pick your Test type, select an Environment, and enter Build number or Message as needed.
- Click Run workflow.
Creating Environments
If no environments exist, add them under Settings → Environments. We created two examples here:
Viewing the Run
After you submit the form, watch the job start:

Conditional Steps and Debugging
When you guard a step with a boolean input, compare directly to a boolean:Avoid comparing a boolean input to a string (
'true'). That always evaluates to false, as shown in the debug logs below.
Summary
- Define up to 10
workflow_dispatchinputs (boolean, choice, string, number, environment). - Access values with
${{ inputs.<name> }}in your steps. - Use inputs in
if:conditional expressions. - Enable workflow debug logs to troubleshoot.