Limit message sends

Set Delivery Caps, Quiet Hours, individual message send limits, and throttling to control message sends

Leanplum lets you set delivery caps on the number of Emails, Push notifications, Webhooks, and App Inbox messages that can be sent to any given user per day or per week. Additionally, you can set limits on individual triggered messages, and you can set quiet hours to prevent poorly timed messages.

These caps and limits ensure that if a user matches the target criteria for several messages (or matches the criteria for a triggered message multiple times), they do not receive more messages than you'd like. You can also set up throttling to control the number of messages sent per minute. See below for more detail.

📘

Delivery caps and quiet hours do not apply to in-app messages. To limit the number of times an in-app message can send, you can use our built-in in-app message limits.

Delivery Caps

Delivery caps limit the total number of messages a user can receive in a given day or week, where a day is the past 24 hours and a week is the past 168 hours (7 days). Right before each message is sent to a user, Leanplum determines if the message will exceed the daily or weekly caps. If so, the message will not be sent.

Setting delivery caps
To implement caps on the number of daily and/or weekly messages per user, navigate to the App Settings page either by clicking on the App Selection bar at the top of the screen and selecting Manage Apps, or by clicking your name in the upper right corner and selecting App Settings.

Once in the App Settings page, do the following:

  1. Find the app you wish to set message caps for and click on the Keys & Settings link (Note: This requires your account to have Admin or Member privileges for that team).
  2. Click on the Messaging tab.
  3. Enter the daily and/or weekly caps you would like to use (for push, webhooks, emails, app inbox or in-app).
  4. Click Done.
1393

Exempting a message from caps
When composing a message, you can select the option Caps Exempt. This will ensure the message is sent to all users, even those who have received the maximum number of messages (set by the cap).

📘

Caps Exempt messages still count towards the daily and weekly messaging caps. This means that a Caps Exempt message can actually cause a user to reach their cap and prevent the next non-exempt message from being delivered.

Limits (server-triggered messages)

Individual email, push, webhook, and app inbox messages can be limited if the delivery type is "triggered." Adding a limit for triggered messages prevents users from receiving messages over and over again if they perform the trigger event multiple times.

You can add a limit to restrict the total number of times a single user can receive the message. This is an all-time limit, not weekly or daily.

480

See more in Limiting message sends with targets.

In-App Message Limits

You can also set limits on triggered In-app messages. However, in-app messages have a few more options than limits for other messages. There are three different types of limits you can set, and you can use all three types of limits in conjunction with one another:

  • When trigger occurs exactly n time(s)
  • When trigger occurs every n time(s)
  • Up to n time(s) per time period, where time period can be:
  • Ever
  • Per session
  • Per second
  • Per minute
  • Per hour
  • Per day
  • Per week
  • Per month

The limits menu appears after selecting a Display When event for your in-app message. See more in Limiting message sends with targets*.

726

Message Throttling

You can also add message throttling from the Keys & Settings window in App Settings. This allows you to limit the number/pace of messages sent, which can help distribute any increased load on your servers over a longer period of time.

2654

Leanplum throttles based on messages per minute: "Send up to N messages per minute per campaign." This gives you precise control regardless of the number of users in the targeted audience.

🚧

Throttling only applies to immediate and scheduled message campaigns sent to more than 50 users.

Be sure to set a reasonable limit given the size of your userbase. Any messages not sent after 30 days (due to throttling) will be dropped.

To add a throttle, once in the App Settings page:

  1. Find the app you wish to throttle message delivery for and click on the Keys & Settings link (Note: This requires your account to have Admin or Member privileges for that team).
  2. Click on the Messaging tab.
  3. Go to the Throttling section.
  4. Enter the maximum number of messages you would like to be sent per minute for any given campaign.
  5. Click Done.

Limit message sends with Targets

Delivery caps and limits allow you to control the number of messages a user will receive, but you can also use some strategic target phrases to limit messages sends.

  1. Set Target segment for your new message as Behavioral > Occurrences of Event.
598
  1. Select the Event for your specific message (e.g. "Occurrences of CartMessage view").

🚧

The messages you are trying to limit must have Events associated with them to use targeting. Leanplum will automatically create an event for your new message when you send the message to preview on one of your devices.

  1. Set the operator and values for your target (e.g. "Occurrences of CartMessage View" is less than 3).

Using the "less than 3" operator for will exclude users who have already received your message three or more times.

❗️

Triggered in-app and Inbox messages may be delivered more than the Target limit.

Targets for in-app messages and app inbox messages are synced and evaluated at app start. So, if a user falls into your target segment at the beginning of their session, they will be eligible to trigger your message an unlimited number of times until their next session starts, when their target status is re-evaluated.

This means that in-app or app inbox message may be delivered more than the Target number of occurrences within a single session. If you want to limit delivery of an in-app or inbox message within a single session, you should use the delivery limit in your message’s delivery settings. See Limit how often a user can receive messages for more.

Example: Let’s say your Target segment for the in-app message “CartMessage” is set to “Occurrences of CartMessage Send is less than 3.”
OccurCartSent.png

1460

If a user has only received this message once, they will fall into your target segment, and the message will be synced to their device.

Now, if that same user triggers CartMessage to send six more times in a single session, the message will send all six times, breaking our limit of less than three sends. This is because Leanplum won’t re-evaluate the user’s target criteria until the next session starts.

📘

This is only true for triggered in-app and app inbox messages. Targets for push notifications and email messages, unlike in-app and app inbox messages, are evaluated at the time of the send. This means the target criteria will be updated and followed as soon as the user triggers the message. In the example above, if the message was an email or push notification, the user would only receive the message a maximum of 3 times.

See How and when are targets evaluated? for more.

Delivery limits for individual message sends

Our built-in Delivery limits feature will apply as soon as the user reaches the limit for an In-app message. All the delivery settings will be synced with the message at app start. Limits can be applied to any message with triggered delivery.

So, if you set a delivery limit of “Up to 3 times ever,” the user won’t receive the message after the fourth trigger, regardless of whether or not the triggers all happened in a single session.

1508

🚧

Users who have multiple devices may trigger an in-app or app inbox message more than the delivery limit. For example, if your limit is "Up to 5 times ever," a user could fire a message 3 times on an iPad + 4 times on a phone = 7 total sends.

If you need to prevent users from receiving the same in-app message across multiple devices, consider using the Target phrase instead of the delivery limit.