> ## Documentation Index
> Fetch the complete documentation index at: https://www.courier.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Throttle

> Limit how many times a user or global scope can pass through a point in the journey within a time period.

Throttle nodes limit how many times a user (or global scope) can pass through a specific point in the journey within a time period. This prevents notification fatigue and enforces rate limits.

<Frame caption="Throttle configuration panel with max allowed, period, and scope settings">
  <img src="https://mintcdn.com/courier-4f1f25dc/kTEr7cZVe0KtgIWx/assets/platform/journeys/throttle-config.png?fit=max&auto=format&n=kTEr7cZVe0KtgIWx&q=85&s=7c3df6c4db8ce9fa324171708983f669" width="1764" height="1266" data-path="assets/platform/journeys/throttle-config.png" />
</Frame>

## Configuration

| Field           | Description                                                                                 |
| --------------- | ------------------------------------------------------------------------------------------- |
| **Max allowed** | The maximum number of times a recipient can pass through this throttle within the period    |
| **Period**      | The time window for the limit (e.g., 1 hour, 24 hours, 7 days)                              |
| **Scope**       | What the limit applies to: **per user** (keyed by user ID) or **global** (across all users) |

When a run hits a throttled node and the limit is reached, the node is skipped and execution continues to the next node. The message is not queued or delayed; it's simply not sent.

## Example

A throttle configured as "max 3 per 24 hours, per user" ensures that even if a journey is invoked 10 times for the same user in a day, only the first 3 send nodes downstream of the throttle will fire.

## Global Throttle

Set the scope to **Global** instead of **Per user** to apply a single limit across all users. This is useful when you want to limit the total volume of a specific notification type, regardless of who receives it.

For example, a global throttle of "max 1000 per hour" on a promotional journey ensures you don't flood your email provider if a marketing event triggers thousands of invocations.

## Combining with Other Nodes

Throttle nodes work well in combination with other logic:

* **Throttle + [Branch](/platform/journeys/nodes/branch)**: Throttle first, then branch on priority. Only messages that pass the throttle are evaluated.
* **Throttle + [Delay](/platform/journeys/nodes/delay)**: Place the throttle before a delay to prevent too many delayed messages from queuing up.

## What's Next

<CardGroup cols={2}>
  <Card title="Branch" href="/platform/journeys/nodes/branch" icon="code-branch">
    Add conditional logic after throttling
  </Card>

  <Card title="Delay" href="/platform/journeys/nodes/delay" icon="clock">
    Pause execution between steps
  </Card>

  <Card title="Create Your First Journey" href="/tutorials/journeys/how-to-create-your-first-journey" icon="circle-play">
    Build, publish, and invoke a journey from scratch
  </Card>

  <Card title="Metrics" href="/platform/journeys/metrics" icon="chart-line">
    Monitor throttle impact on journey completion rates
  </Card>
</CardGroup>
