Sending messages manually via the API

You can send send messages manually to your users individually using your own server and our API. This method works for push notifications, app inbox messages, email, and webhooks.

Create the message

First, you need to create and start the message in the Leanplum Dashboard. Go to the Messaging dashboard and create a new message.

Select Push Notification, Email, Webhook, or App Inbox Message. Set the Delivery to Manual. When you're finished composing the message and setting your targets, click Start.

Create the sendMessage API call

You can trigger the message using the sendMessage method of our API. If you want to send the message to the selected user even if they do not match the targets, use force = true.

You must provide a deviceID and/or a userID. If deviceID is provided, the message will be sent to the corresponding device only; if you only provide the userID, the message will be sent to all devices of the user with specified userId. Messages are queued, so they will be sent after the call completes.

If the user/device does not exist, the API call is skipped and a warning will be returned. You can modify this behavior with the createDisposition option (see below).

Parameter

Type

Description

apiVersion
required

string

The version of the Leanplum API to use. The current version is 1.0.6.

action
required

string

The API method. Set this to sendMessage.

appId
required

string

Your App ID. To find your appId, go to App Settings, find your app, and click Keys & Settings.

clientKey
required

string

Your Production API key. To find your clientKey, go to App Settings, find your app, and click Keys & Settings.

userId
required (unless you choose to use deviceId)

string

The user ID of the targeted user. You can set this to an email address or whatever you use at your company for user IDs. Leave it blank to use the device ID. For more info, see Selecting a user.

messageId
required

number

The ID of the message, found in the URL when viewing a message (e.g. www.leanplum.com/dashboard#/{APP_ID}/messaging/{MESSAGE_ID}.

createDisposition

string

The policy that determines whether users are created by the API. Possible values:

  • CreateIfNeeded creates a user with the given IDs if one does not already exist.
  • CreateNever requires that the user already exists, otherwise the API call is skipped and a warning will be returned.

The default value for this method is CreateNever

deviceId
only required if you do not include a userId

string

A unique ID for the device targeted by the call. You must provide a deviceId and/or a userId. See Selecting a user.

devMode

boolean

Whether the user is in Development Mode, i.e. the caller is a developer and not a user. This is important for reporting purposes. Default: false.

force

boolean

Whether to send the message regardless of whether the user meets the targeting criteria. Default: false.

values

object

A JSON object of key-value pairs to override Jinja values in the message. For example, if the message text is Hello {{Value "name"}}, you have {{Value "numMessages"}} new messages!, you can set values to {"name": "Bob", "numMessages": 5} to produce: Hello Bob, you have 5 new messages!

Important note: If certain values are set to null, Leanplum will return the key as a string. See more details to prevent this issue.

Where do I find the message ID?

Navigate to the message in the Leanplum dashboard. The number after the last slash in the URL is the ID.

Example: http:// ... /dashboard#/12345__164/messaging/123456789

Example

Your API call should look something like this:

https://api.leanplum.com/api?appId=yourAppIdHere&clientKey=yourClientKeyHere&action=sendMessage&apiVersion=1.0.6&messageId=messageId&userId=theUserIdOfTheUser&values={{"messageText":Hello World!"}}