﻿---
title: Manual triggers
description: Understand manual triggers and how to create and configure them.
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/6814/explore-analyze/workflows/triggers/manual-triggers
products:
  - Elastic Cloud Enterprise
  - Elastic Cloud Hosted
  - Elastic Cloud Serverless
  - Elastic Cloud on Kubernetes
  - Elastic Stack
  - Kibana
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Generally available since 9.4, Preview in 9.3
---

# Manual triggers
Manual triggers run workflows on-demand through the UI or API. They require explicit user action to start a workflow. Use manual triggers for testing, one-off tasks, administrative actions, or workflows that require a human decision to start.
To define a manual trigger, use the following syntax:
```yaml
triggers:
  - type: manual
```

This allows you to run a workflow manually by:
- Clicking **Run** in the Workflows UI
- Calling the workflow execution API, either directly or from an external system


## Input parameters

Manual triggers can accept input parameters, which you can reference in any step. When you define inputs at the workflow level, users are prompted to provide values when they run the workflow.
<tip>
  Refer to [Pass data and handle errors > Choose between constants and inputs](/elastic/docs-content/pull/6814/explore-analyze/workflows/authoring-techniques/pass-data-handle-errors#workflows-constants-or-inputs) to learn when to use inputs or constants in workflows.
</tip>

The location of `inputs` in the YAML depends on your version. On stack 9.4 and earlier, `inputs` sits at the top level of the workflow. On stack 9.5+ and on serverless, `inputs` sits inside the `manual` trigger. Refer to [Workflow anatomy](/elastic/docs-content/pull/6814/explore-analyze/workflows/authoring-techniques/anatomy#workflows-anatomy-inputs) for the full reference.
<applies-switch>
  <applies-item title="stack: preview 9.3, ga 9.4" applies-to="Elastic Stack: Generally available since 9.4, Elastic Stack: Preview in 9.3">
    ```yaml
    name: Manual Processing Workflow
    inputs:
      - name: environment
        type: string
        required: true
        default: "staging"
        description: "Target environment for processing"

      - name: batchSize
        type: number
        required: false
        default: 100
        description: "Number of records to process"

      - name: dryRun
        type: boolean
        required: false
        default: true
        description: "Run in test mode without making changes"

    triggers:
      - type: manual

    steps:
      - name: validateInputs
        type: console
        with:
          message: |
            Starting workflow with:
            - Environment: {{ inputs.environment }}
            - Batch Size: {{ inputs.batchSize }}
            - Dry Run: {{ inputs.dryRun }}
    ```
  </applies-item>

  <applies-item title="{ stack: ga 9.5+, serverless: ga }" applies-to="Elastic Cloud Serverless: Generally available, Elastic Stack: Planned">
    ```yaml
    name: Manual Processing Workflow

    triggers:
      - type: manual
        inputs:
          - name: environment
            type: string
            required: true
            default: "staging"
            description: "Target environment for processing"

          - name: batchSize
            type: number
            required: false
            default: 100
            description: "Number of records to process"

          - name: dryRun
            type: boolean
            required: false
            default: true
            description: "Run in test mode without making changes"

    steps:
      - name: validateInputs
        type: console
        with:
          message: |
            Starting workflow with:
            - Environment: {{ inputs.environment }}
            - Batch Size: {{ inputs.batchSize }}
            - Dry Run: {{ inputs.dryRun }}
    ```
  </applies-item>
</applies-switch>