> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/continuous-delivery/use-continuous-delivery/cd-building-blocks/cd-steps/approvals/using-harness-approval-steps-in-cd-stages.md).

# Using manual Harness approval steps in CD stages

This topic describes how to enable Harness user group(s) to approve or reject a stage at any point in its execution.

During deployment, the user group members use the Harness Manager to approve or reject the deployment manually.

Approvals are usually added in between stage steps to prevent the stage execution from proceeding without an approval.

For example, in a [Kubernetes blue green deployment](/continuous-delivery/use-continuous-delivery/deploy-services-on-different-platforms/kubernetes/kubernetes-executions/create-a-kubernetes-blue-green-deployment.md), you might want to add an approval step between the stage deployment step, where the new app version is deployed to the staging environment, and the Swap Primary with Stage step, where production traffic is routed to the pods for the new version.

#### Add an Approval step in a CD stage <a href="#add-an-approval-step-in-a-cd-stage" id="add-an-approval-step-in-a-cd-stage"></a>

1. In a CD stage, in **Execution**, select **Add Step**.
2. Select **Harness Approval**. The **Harness Approval** settings appear.
3. Follow the steps in [Harness Approval stages](/harness-ai/use-harness-platform/approvals/adding-harness-approval-stages.md) to add Approval steps for manual intervention.

#### Video <a href="#video" id="video"></a>

Here's a manual approval step during the execution of a pipeline:

![](/files/xxEsLXqbY6oGXQ06bM4T)

An approver can approve or reject the step, stopping the pipeline. The approver can also add comments and define variables for use by subsequent approvers and steps.

Here's a quick video that walks you through setting up and running the step:

{% embed url="<https://www.youtube.com/watch?v=V-d6kaMBf-w>" %}

#### Sample YAML <a href="#sample-yaml" id="sample-yaml"></a>

Here's what a manual approval step looks like in YAML:

```yaml
- step:
    type: HarnessApproval
    name: Harness Approval Step
    identifier: Harness_Approval_Step
    timeout: 1d
    spec:
      approvalMessage: Test
      includePipelineExecutionHistory: true
      approvers:
        userGroups:
          - docs
        minimumCount: 1
        disallowPipelineExecutor: false
      approverInputs:
        - name: foo
          defaultValue: bar
      isAutoRejectEnabled: false
```

### See also <a href="#see-also" id="see-also"></a>

* [Update Jira Issues in CD Stages](/continuous-delivery/use-continuous-delivery/cd-building-blocks/cd-steps/ticketing-systems/update-jira-issues-in-cd-stages.md)
* [Using Harness Approval APIs](/continuous-delivery/troubleshooting-and-resources/knowledge-base-article/harness-approval-api.md)
* [Add ServiceNow Approval steps and stages](/harness-ai/use-harness-platform/approvals/service-now-approvals.md)
