Leanplum's user guides and developer documentation.

Choose a delivery method

Scheduled delivery, triggers and "display when" events, optimal time, quiet hours and more delivery options for messages

When you compose a message, one of the most important things is to decide when to deliver it to your users.

Let’s go through the delivery options based on the most common use cases. Keep in mind that regardless of the delivery type, each message will only be delivered to users that fit the target you’ve set.

Delivery type
Use case

“I want to send a message right away.”

“I want to send a message on October 2nd, 2017.”

“I want to send users a message after they do something specific in the app.”

“I want to send users a push notification after they enter a geofence.”

Note: Locally triggered push notifications do not work with our Quiet Hours feature. This is because the send is controlled by the local trigger, and not Leanplum's servers.

“I want to bypass Leanplum’s automated delivery options and use a server-to-server call to trigger a message.”

"I want this message to show as soon as the user opens the app."

Different types of messages have different delivery options.

Push notifications and emails are sent directly from Leanplum's servers, which gives them delivery options like immediate, scheduled, and optimal time.
In-app messages and inbox messages are pre-loaded onto the user's device, so they must be sent after a "Display when" event, like "User starts app."

Immediate

Available for push notifications, email, app inbox messages and webhooks.

Sends the message when you click “Send Now”. Some messages may take up to 15 mins for us to process and send to your users, depending on server load.

Scheduled

Available for push notifications, email, app inbox messages and webhooks.
You can also schedule delivery at a specific date and time. You can choose between four possible timing/timezone options:

Our timezone is PST, which is why Pacific time is an option. See "Sender's timezone" for more details.

Our timezone is PST, which is why Pacific time is an option. See "Sender's timezone" for more details.

  • User’s timezone: Users will receive the message at the scheduled time as defined by their own timezone.
  • Sender's timezone: Users will receive the message at the scheduled time as defined by the sender's timezone (i.e., if you create the message from a GMT+3 timezone, the dropdown menu will show "GMT+3 time").
  • UTC time: Users will receive the message at the scheduled time as defined by UTC (Coordinated Universal Time).
  • Optimal Time: Leanplum will send the message to each user during the time of day that they tend to be most active within your app.

Optimal time tips

  • If you schedule a message for Optimal time delivery on the same day, it's possible that some users' optimal time has already passed for the day. If this is the case, the message will send immediately for those users (unless Quiet Hours is enabled).
  • If users have no previous sessions, country information, or default timezone, Leanplum will not be able to calculate User's timezone or optimal time delivery, which will cause messages not to send. (Imported users often do not have this session or user information.) To avoid message send failures, use UTC time to schedule your messages until these users have more session information, or contact your CSM to make sure you have a default timezone and default optimal time set for users with 0 sessions.

Quiet Hours

The Quiet Hours feature limits the hours when a user can receive a message (for any message other than in-app messages). See limit message send times for more on Quiet Hours.

If you set Quiet Hours, and your message delivery time falls into the quiet hours window, the message will send as soon as the Quiet Hours period has ended (e.g., if your Quiet Hours end at 6 am and a message was scheduled for 5:45 am, it will be sent at 6:01 am). This is unless you are using optimal time.

Using Quiet Hours with Optimal time.

If a user's Optimal time falls within your scheduled Quiet Hours, Leanplum will calculate the next-most optimal time and send the message then. This could be either before or after the Quiet hours period.

Triggered

Available for all message types in Leanplum. Trigger event options appear under “Display when” for in-app messages.
You can trigger a message based on user activity instead of scheduling a fixed delivery time. This is a great way to reach users at the right moment, since delivery will be relative to their activity in your app. Available triggers are based on the events tracked by our SDK, including the custom events and states you track.

Trigger options

Trigger
Timing

User first starts app

Fires when a first-time user starts the app. (This trigger is not available for in-app messages.)

User starts app

Fires when any user starts the app and a new session begins.

User starts or resumes app

Fires when a user starts the app and a new session begins OR when a user resumes activity after backgrounding the app within the same session.

User triggers event

Send the message when the event occurs, regardless of parameter values.

User triggers event when parameter

Send the message when the event occurs AND an event parameter is a certain value.

User advances to state triggers

Send the message when the State changes, regardless of parameter values.

User advances to state triggers when parameter

Send the message when the State change occurs AND a State parameter is a certain value.

User attribute changes

Send the message when a certain attribute changes, regardless of what it changes to or from.

User attribute changes to

Send the message only when a user attribute changes to a certain value.

User attribute changes from/to

Send the message only when a user changes from a certain value (A) to another specified value (B).

Advanced trigger options

Trigger
Timing

User triggers event when parameter is greater than / less than

Send the message when the user triggers an event with a parameter value greater than or less than the value you select.

User triggers event when parameter contains

Send the message when the user triggers an event with a parameter value that contains some.

User advances to state when parameter is greater than / less than

Send the message when the user advances to a state with a parameter value greater than or less than the value you select.

User advances to state when parameter contains

Send the message when the user advances to a state with a parameter value that contains some value.

User attribute changes to greater than / less than

Send the message when the user attribute value changes to something greater than or less than the value you select.

User attribute changes to contain

Send the message when the user attribute value changes to something that contains the value you select.

Delay

You can delay a message's delivery by a certain number of seconds, minutes, or days after the trigger occurs.

Exclusions

You can exclude certain users from receiving a triggered message. The options are the exact same as the trigger options (User starts app, User triggers event, etc.). Just use the "unless" option in your message's delivery to set an exclusion.

For example, you can create an onboarding message that will be delivered to users 5 days after the user first starts app unless the user completes their profile (user triggers event > profileComplete).

Limits

You can limit the number of times a triggered message is sent to the same user. For example, you could set a message to display when user starts app, with a limit of "Up to 1 time ever". This ensures that even if the user meets the delivery criteria multiple times, they will not receive the message more than you intend.

Triggered Locally

Available for push notifications only.

Use this method if you need trigger multiple push notifications during the same session, or for geofence triggers. You can send a push notification to a user when:

  • User enters region
  • User exits region
  • User starts app
  • User triggers event
  • User advances to state
  • User attribute changes

To use this feature, your app must include the Leanplum SDK Location library. For more info, see Message users when they enter or exit a geofence region.

Manual

Available for push notifications, email, app inbox messages and webhooks.
You can choose to deliver the message manually via our sendMessage API call.