# Global frequency capping

To prevent overwhelming your users with multiple messages from overlapping campaigns, use **Global frequency capping**. This feature limits the number of marketing messages a user receives within a specific timeframe. Once the message limit is reached for a channel, no further messages will be sent until the period resets.

<Aside type="danger" title="Update your API requests">

Set **message type** in API requests so frequency capping applies the way you intend.

* **Push:** [`message_type`](/developer/api-reference/messages-api/api-prerequisites/#message_type) in [`createMessage`](/developer/api-reference/messages-api/#createmessage) requests
* **Email:** [`email_type`](/developer/api-reference/email-api/#createemailmessage) in [`createEmailMessage`](/developer/api-reference/email-api/#createemailmessage) requests

**Transactional** sends are not subject to frequency capping. If you omit the type, capping applies.

For the Control Panel, see [Marketing vs. transactional messages](/product/messaging-channels/marketing-vs-transactional/).

</Aside>

Silent pushes and Live Activity updates aren't subject to frequency capping.

## Configure Global frequency capping

To control the number of messages sent to a user within a specific timeframe:

1. Go to **Settings > Message delivery settings > Frequency capping**.

<img src="/messaging-channels-global-frequency-capping-1.webp" alt="Frequency capping settings tab in Message Delivery Settings"/>

2. Toggle the switch on to enable frequency capping for the desired channels ([push notifications](/product/messaging-channels/push-notifications/), [emails](/product/messaging-channels/emails/), [in-apps](/product/messaging-channels/in-apps/), [SMS](/product/messaging-channels/sms/), [WhatsApp](/product/messaging-channels/whatsapp-messages/), [App Inbox](#app-inbox)).

3. Set the maximum number of messages per user for each channel and the corresponding time period.

<img src="/messaging-channels-global-frequency-capping-2.webp" alt="Message limit, period, and counting mode set for push, email, in-app, SMS, WhatsApp, and Inbox"/>

> For example, you can allow up to 4 push notifications, 2 emails, and 2 WhatsApp messages in a 5-day period.

You can allow 1 to 1,000 messages per period, and the period can be 1 to 30 days. If you enter a value outside these ranges, the field changes it to the nearest allowed value, for example 1,500 messages to 1,000.

4. Choose a **Counting mode** for the channel:

   * **Rolling window** (default): counts messages sent within the last N×24 hours before each send. For example, with a cap of 3 pushes per 2 days, a push sent Monday at 9 AM stops counting on Wednesday at 9 AM, and a push sent Monday at 3 PM stops counting on Wednesday at 3 PM.
   * **Calendar day**: counts messages sent today and on the previous N-1 calendar days, starting at midnight. Select the **Capping timezone** (for example, `America/New_York`) that sets when midnight falls for this channel. For example, with the same cap of 3 pushes per 2 days, on Wednesday every push sent since Tuesday midnight counts. Right after midnight, the window moves to Wednesday and Thursday. If you don't select a timezone, Pushwoosh counts calendar days in UTC.

<img src="/messaging-channels-global-frequency-capping-11.webp" alt="Counting mode section with Rolling window and Calendar day options and a Capping timezone picker"/>

<Aside type="tip">
Calendar day suits teams that plan or report messaging by fixed daily periods rather than a rolling 24-hour window.
</Aside>

Counting mode is also available wherever you can set a custom frequency cap: [one-time campaigns](/product/messaging-channels/push-notifications/send-push-notifications/one-time-push/#set-frequency-capping), [instant in-apps](/product/messaging-channels/in-apps/send-in-apps/send-instant-in-apps/#configure-frequency-capping), and [customer journey message elements](/product/customer-journey/journey-elements/channels/).

### App Inbox

To cap [App Inbox](/product/messaging-channels/message-inbox/send-app-inbox-messages/) messages, use the **Inbox** toggle in this list.

App Inbox has its own counter, separate from push and every other channel. A user who has reached the push limit for the day can still receive an Inbox message, and the other way around.

App Inbox has no send rate setting: users pick up Inbox messages one at a time when they open the app, so there's no delivery spike to limit.

<img src="/messaging-channels-global-frequency-capping-12.webp" alt="Inbox toggle turned on with its own message limit and counting mode"/>

### Exclude users from global frequency capping

You can exclude specific users from frequency capping. Messages to excluded users bypass every limit on every channel, both the global limit and any custom limit set on a message.

To exclude users from capping:

1. Go to **Settings > Message delivery settings > Frequency capping**.
2. In **Users excluded from frequency capping**, enter one [User ID](/product/pushwoosh-knowledge-hub/users-userids/) or one email at a time.
3. Click **Add to list**.
4. Repeat steps 2-3 for each additional user.
5. Click **Apply changes**.

<img src="/messaging-channels-global-frequency-capping-10.webp" alt="Users excluded from frequency capping section with User ID or email field and Add to list button"/>

Users remain excluded until you remove them from the list in message delivery settings.

To clear the exclusions list, click **Clear exceptions list**, then click **Apply changes**.

## Global frequency capping for Journey messages

<Aside type="caution" title="Important">
 Please note that to change the capping settings for active journeys, you will first need to pause the journey.
</Aside>

When creating message elements in customer journeys, **Global frequency capping** settings are applied by default.

<img src="/messaging-channels-global-frequency-capping-3.webp" alt="Frequency capping indicator in journey message settings"/>
<Aside>
If no limit is set in Message delivery settings, the message will use **unlimited** global frequency capping. If needed, click the **Set up** link in the delivery settings to configure the limits.

<img src="/messaging-channels-global-frequency-capping-5.webp" alt="Delivery settings showing unlimited frequency capping and Set up link when limit is not configured"/>
</Aside>



However, you have the option to customize how certain messages are handled by overriding the Global frequency capping settings. You can do the following:

### Ignore Global frequency capping

Select **Send messages without global frequency capping** to bypass global frequency capping rules. The user will receive this message regardless, even if they have exceeded the set message limits for the channel. The message also doesn't count toward the channel's global counter, so it doesn't use up the quota of other messages. Use with caution to avoid sending too many messages.

<img src="/messaging-channels-global-frequency-capping-9.webp" alt="Delivery settings with Send messages without global frequency capping option selected"/>

### Use custom frequency capping

This option allows you to set a custom limit on the number of messages sent within a specified period. Here, define the number of messages (e.g., 5) and the time frame (e.g., 10 days) in which these messages can be sent. Choose a counting mode for this custom limit: [Rolling window or Calendar day](#configure-global-frequency-capping), same as for the global setting.
<Aside type="caution" title="Important">
When custom frequency capping is enabled, only the custom limit applies. Global capping isn't checked for this message and can't block it.

The message still counts toward the channel's global counter, though.

Example:

- **Global limit for the channel:** 2 messages a day.
- **Campaign A's custom limit:** 3 messages a day.

Because Campaign A has its own custom limit, it sends all 3 messages today. The global limit of 2 doesn't restrict it at all.

But each of those 3 messages still counts toward the global counter. Campaign B relies on global capping, with no custom limit of its own. Since the global count for today is already past 2, Campaign B won't be able to send to that user at all today, because it was Campaign A's messages that used up the quota.
</Aside>

<img src="/messaging-channels-global-frequency-capping-4.webp" alt="Custom frequency capping"/>

<Aside type="tip">
If you want to limit how often users can receive messages specifically from a journey (e.g., only once every 10 days), use [Campaign entry limits](/product/customer-journey/journey-settings/#campaign-entry-limit), not frequency capping.
Entry Limits restrict how often users can enter a journey and receive its messages.
</Aside>


## Example scenario

Imagine you're managing multiple marketing campaigns across push notifications, emails, and SMS. To prevent overwhelming your customers with too many messages, you decide to set up Frequency capping and limit the number of messages each user can receive to 3 push notifications, 2 emails, and 1 SMS per user within 7 days.

Here are the steps to set it up:

### Enable Global frequency capping

1. Go to **Settings > Message delivery settings > Frequency capping**.
2. Toggle the switch on for push notifications, emails, and SMS.
3. Specify the maximum number of messages a user can receive: 3 push notifications, 2 emails, and 1 SMS.
4. Specify the time period for 7 days.

<img src="/messaging-channels-global-frequency-capping-6.webp" alt="Screenshot showing frequency capping settings with 3 push, 2 emails, and 1 SMS per 7 days"/>

### Configure critical messages

If you want to make sure that important messages, such as payment confirmations, are always delivered immediately, regardless of any message limits, select **Send messages without global frequency capping** in the delivery settings of the specific journey steps where this is needed.

<img src="/messaging-channels-global-frequency-capping-9.webp" alt="Delivery settings with Send messages without global frequency capping option selected"/>

Examples of other critical messages can include security alerts, password reset requests, critical app updates, and more.

### Customize capping for specific messages

Let's say you want to send a special offer push notification every time a user completes a specific in-app action. However, to avoid repeating the same message too often, you want to ensure this message is shown no more than once every 3 days, even though your Frequency capping allows 3 push notifications per week.

To configure it:

1. Set up a customer journey triggered by the user completing the target action.
2. Within the customer journey builder, go to the settings for the message element and select **Use custom frequency capping**.
3. Set the custom cap to 1 message every 3 days.
<Aside type="caution" title="Important">
Custom frequency capping replaces global capping for this message, so only the custom limit is checked. The message still counts toward the channel's global counter, though, so it can use up part of the weekly budget shared with other push campaigns that rely on global capping. [See an example](#use-custom-frequency-capping).
</Aside>

## View frequency capping statistics

You can see how frequency capping affects your messages in several places.

* **Project dashboard**: the [Project overview](/product/first-steps/pushwoosh-interface-overview/#project-overview) shows a Frequency capping block on the Push and Email tabs for the selected period, 30 days by default.
* **Individual message statistics**: the Overview tab of [push notification](/product/statistics-and-analytics/messaging-statistics/push-notification-statistics/) and [email](/product/statistics-and-analytics/messaging-statistics/email-statistics/) message statistics lists frequency capping as one of the Audience stage's exclusion reasons.
* **Aggregated messages**: the [Campaigns distribution](/product/statistics-and-analytics/aggregated-messages/#campaigns-distribution) funnel lists frequency-capped recipients as one of the Audience stage's exclusion reasons, as a single count of unique recipients skipped.
* **Customer Journey**: the [Communications statistics](/product/statistics-and-analytics/journey-statistics/overall-journey-statistics/#metrics-by-channel) window reports frequency capping on every channel tab.

For answers to common questions, see [Global frequency capping FAQ](/product/messaging-channels/message-delivery-settings/frequency-capping-faq/).