---
title: "Pause Workflow Execution"
icon: "hourglass-half"
---

## Pause Workflow Execution

The Delay step pauses the execution of your workflow for a specified duration, which can be a fixed amount of time or a dynamically calculated value.

### When to Use

*   **Rate limiting**: Prevent API throttling by spacing out requests to external services.
*   **Polling**: Wait a specific interval before retrying a check or polling an endpoint again.
*   **Multi-step operations**: Introduce a pause between dependent actions to ensure previous steps have completed.
*   **Cooldown periods**: Create a "cooldown" phase between consecutive actions.

### Configuration

*   **DelayMs**: Specify the delay duration in milliseconds. This can be a static number or a dynamic Handlebars expression.
    *   **Example (fixed delay):** `7000` (for 7 seconds)
    *   **Example (dynamic delay):** `{{Variables.delayMs}}`

### Where to Find

You can find the **Delay Step** in the **Flow Control** section of the step library.

<CardGroup>
  <Card>
    ![](/images/flow-control-delay-step.png)
  </Card>
</CardGroup>

### Input

The Delay step does not require a specific input shape. While it receives any upstream input, it typically does not modify it.

**Example Input:**

```json
[
  { 
    "$type": "sdkStep", 
    "Output": { 
      "StatusCode": 200 
    } 
  }
]
```

### Output Schema

The step outputs details about the delay, including its duration and timestamps.

```json
{
  "$type": "sdkStep",
  "Output": {
    "DelayMs": 7000,
    "StartedAt": "2025-12-15T13:17:12.093Z",
    "CompletedAt": "2025-12-15T13:17:19.091Z"
  },
  "Success": true
}
```

*   **`Output.DelayMs`**: The configured delay duration in milliseconds.
*   **`Output.StartedAt`**: The timestamp when the delay period began.
*   **`Output.CompletedAt`**: The timestamp when the delay period ended.
*   **`Success`**: A boolean indicating if the delay step completed successfully.
