NAV
API v2 API v3 Frontend SDK SALESmanago Mobile

General information

Authentication

SALESmanago Mobile API is open for our Clients, meaning that all of them can integrate without requesting additional access. To start using our API you will first need to obtain authentication data:

For endpoints starting with https://xxx.salesmanago.com:

For endpoints starting with https://api.appmanago.com:

Contact transfer

Transfer Contact to SALESmanago Mobile

Sample request:

{
    "clientId": "a1b2-...-c3d4",
    "apiKey": "e5f6-...-g7h8",
    "sha": "2aa3-...-e00c",

    "pushRegistrationId": "abcd-...-ef01",
    "applicationSimpleId": "example_app",
    "system": "ANDROID",
    "systemVersion" : "13",
    "deviceModel": "Samsung",

    "email": "name@example.com",
    "phone": "+1555443322",
    "timezone": "Europe/Madrid",
    "locale" : "es_ES"
}

Sample response:

{
    "success": true,
    "message": [
    "Contact has been created"
    ],
    "data": {
    "userId": "0a1b-...-2c3d"
    }
}

This method lets you transfer a mobile User to SALESmanago Mobile without the use of our SDK. This allows you to use SALESmanago Mobile with WebView applications or synchronize Contacts from other systems, such as Data Warehouse.

Endpoint

https://api.appmanago.com/api/contact/create

Body (JSON)

Field Limits Description
pushRegistrationId* 512 Either FCM or APN token (for Android and iOS respectively)
applicationSimpleId* 255 Simple application ID. You can check the value of this field in SALESmanago Mobile -> Application list (simple ID column).
system* enum Mobile operating system matching the pushRegistrationId type. Either “ANDROID” or “IOS”
systemVersion 255 Operating system version
deviceModel 255 Brand and/or model of the phone
email* 254 User’s email address
phone 255 User’s phone number
timezone IANA Time Zone User’s time zone
locale ISO 639‑1 + ISO
3166‑1
alpha‑2
User’s location (country and language)

Response:

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages
userId User’s identifier assigned by SALESmanago Mobile

Push notifications

List Mobile Push Notifications

Sample request:

{
    "clientId": "a1b2-...-c3d4",
    "apiKey": "e5f6-...-g7h8",
    "sha": "2aa3-...-e00c",
    "applicationId": "my_example_app"
}

Sample response:

{
    "success": true,
    "message": [],
    "notifications": [
        {
            "name": "Example push",
            "id": "a1b2-...-c3d4",
            "title": "Best deal of the year!",
            "content": "Example content of this Mobile Push notification"
        }
    ]
}

This method lets you retrieve a list of all Mobile Push notifications created within SALESmanago Mobile. It provides key details such as the notification name, ID, title, and content.

Endpoint

https://xxx.salesmanago.com/api/mobile/push/list

Body (JSON)

Field Limits Description
applicationId * 255 Simple application ID. You can check the value of this field in SALESmanago Mobile -> Application list (simple ID column).

Response:

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages
name Name of the Mobile Push notification in SALESmanago
id UUID of Mobile Push notification. The same UUID is used when sending the Mobile push via API.
title Title displayed on mobile devices
content Content displayed on mobile devices

Send existing Mobile Push notification

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "pushId": "a1b2-...-c3d4",
  "applicationId": "my_example_app",
  "email": "name@example.com",
  "properties": {
    "t_shirt_size": "XL",
    "gender": "Male"
  },
  "sendToAllDevices": "false"
}

Sample response:

{
"success": true,
"message": []
}

This method lets you send a previously created Mobile Push notification by specifying its unique identifier. It supports targeting either specific user devices or all devices associated with a user, utilizing the notification’s UUID for identification.

Endpoint

https://xxx.salesmanago.com/api/mobile/push/send

Body (JSON)

Field Limits Description
pushId* UUID UUID of Mobile Push notification. The same UUID is returned when calling the mobile/push/list method.
applicationId* 255 Simple application ID. You can check the value of this field in SALESmanago Mobile -> Application list (simple ID column).
email* 254 Contact identifier—either their email address, or their identifier from SALESmanago: Contact ID or User ID.

You can specify only one of those fields.
contactId UUID
userId 255
properties 16 * 255 Array of key-value pairs with details to be used in placeholders
sendToAllDevices Boolean Users may access the app from multiple devices. Depending on this flag the Mobile Push is sent to:
  • false: Last device only,
  • true: All user’s devices.
False is the default value.
- Σ 4kB Maximum total size of Mobile Push notification supported by Android/iOS

Response:

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages

Send custom Mobile Push notification

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "pushId": "a1b2-...-c3d4",
  "applicationId": "my_example_app",
  "email": "name@example.com",
  "contactId": "1a2b-...-3c4d",
  "title": {
    "personalized": false,
    "text": "Act now and save big 💰"
  },
  "content": {
    "personalized": true,
    "text": "Claim your ${discount:extra} discount now. ${product_rec:Your product} is still waiting for you!"
  },
  "deeplink": {
    "personalized": true,
    "text": "myapp://shop/product/${product_rec_slug}"
  },
  "properties": {
    "discount": "20%",
    "product_rec": "Turtleneck sweater",
    "product_rec_slug": "sweaters/turtleneck_sweater"
  },
  "imageUrl": "https://example.com/media/mobile_app/notification.png",
  "soundName": "reminder_chime",
  "sendToAllDevices": "false"
}

Sample response:

{
  "success": true,
  "message": []
}

This method lets you send a custom Mobile Push notification by specifying the title, content, deeplink, image, and sound values. It supports targeting either specific user devices or all devices associated with a user.

Endpoint

https://xxx.salesmanago.com/api/mobile/push/sendCustom

Body (JSON)

Field Limits Description
applicationId* 255 Simple application ID. You can check the value of this field in SALESmanago Mobile -> Application list (simple ID column).
email* 254 Contact identifier—either their email address, or their identifier from SALESmanago: Contact ID or User ID.

You can specify only one of those fields.
contactId UUID
userId 255
title* 255 Mobile Push title (headline). Maximum of 40 characters recommended for optimal display.
content 2048 Mobile Push content (body). Maximum of 160 characters recommended for optimal display.
deeplink* 2048 Either an URL address pointing to a website or an URI address pointing to a specific module of the application, e.g. myapp://shop/category/promo
personalized Boolean Boolean value. Set to true if the title/content/deeplink is personalized.
To personalize the values using details stored in SALESmanago use: ${cst.detailname:fallback}
To personalize the values using properties stored in SALESmanago Mobile use: ${propertyname:fallback}
text 255/2048 Value for title/content/deeplink
properties 16 * 255 Array of key-value pairs with details to be used in placeholders
sendToAllDevices Boolean The app User may access the app from multiple devices. Depending on this flag the Mobile Push is sent to:
  • false: last device only
  • true: all user’s devices.
False is the default value.
imageUrl 2048 URL of PNG or JPG image. Aspect ratio (Android): 2:1, e.g. 512x1024.
soundName 255 Notification sound name (without file extension) as declared in your app’s resources. Android supports .mp3 and .wav sound formats.
- Σ 4kB Maximum total size of Mobile Push notification supported by Android/iOS

Response:

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages

Batch send existing Mobile Push notification

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "pushId": "a1b2-...-c3d4",
  "applicationId": "my_example_app",
  "date": "1659938887999",
  "contacts": [
     {
        "addresseeType": "EMAIL",
        "value": "name1@example.com, name2@example.com, name3@example.com"
     },
     {
        "addresseeType": "TAG",
        "value": "FEMALE_CLOTHING"
     }
  ],
  "properties": {
    "discount": "20%",
    "product_rec": "Turtleneck sweater"
  },
  "sendToAllDevices": "false"
}

Sample response:

{
   "success": true,
   "message": []
}

This method lets you send a previously created Mobile Push notification by specifying its unique identifier to multiple Contacts at the same time. It supports targeting by email addresses, Contact and User identifiers as well as tag value from SALESmanago.

Endpoint

https://xxx.salesmanago.com/api/mobile/push/sendMass

Body (JSON)

Field Limits Description
pushId* UUID UUID of Mobile Push notification. The same UUID is returned when calling the mobile/push/list method.
applicationId* 255 Simple application ID.
date UNIX timestamp [ms] UNIX timestamp in milliseconds for scheduling the Mobile Push notification. To send the Push notification immediately, use currentTimeMillis().
contacts Array of addresseeTypes objects
addresseeType* 255 Addressing type (EMAIL, CONTACT_ID, TAG, USER_ID)
value* 255 Contact email addresses, Contact identifiers, or tag(s)
properties 16 * 255 Array of key-value pairs with details to be used in placeholders
sendToAllDevices Boolean The app User may access the app from multiple devices. Depending on this flag the Mobile Push is sent to:
  • false: last device only,
  • true: all user’s devices.
False is the default value.
- Σ 4kB Maximum total size of Mobile Push notification supported by Android/iOS

Response:

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages

Batch send custom Mobile Push notification

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "applicationId": "my_example_app",
  "date": "1659938887999",
  "title": {
       "personalized": false,
       "text": "Act now and save big 💰"
   },
   "content": {
       "personalized": true,
       "text": "Claim your ${discount:extra} discount now. ${product_rec:Your product} is still waiting for you!"
   },
  "deeplink": {
       "personalized": true,
       "text": "myapp://shop/product/${product_rec_slug}"
  },
  "properties": {
    "discount": "20%",
    "product_rec": "Turtleneck sweater",
    "product_rec_slug": "sweaters/turtleneck_sweater"
  },
  "imageUrl": "https://example.com/media/mobile_app/notification.png",
  "soundName": "reminder_chime",
  "sendToAllDevices": "false"
}

Sample response:

{
   "success": true,
   "message": []
}

This method lets you send a custom Mobile Push notification by specifying the title, content, deeplink, image and sound values to multiple Contacts at the same time. It supports targeting by email addresses, Contact and User identifiers as well as tag value from SALESmanago.

Endpoint

https://xxx.salesmanago.com/api/mobile/push/sendMassCustom

Body (JSON)

Field Limits Description
applicationId* 255 Simple application ID.
date UNIX timestamp [ms] UNIX timestamp in milliseconds for scheduling the Mobile Push notification. To send the Push notification immediately, use currentTimeMillis().
contacts Array of addresseeTypes objects
addresseeType* 255 Addressing type (EMAIL, CONTACT_ID, TAG, USER_ID)
value* 255 Contact email addresses, Contact identifiers, or tag(s)
title* 255 Mobile Push title (headline). Maximum of 40 characters recommended for optimal display.
content* 2048 Mobile Push content (body). Maximum of 160 characters recommended for optimal display.
deeplink* 2048 URI address pointing to a specific module of the application, e.g. myapp://shop/category/promo.

You can specify only one of the fields: deeplink or URL
personalized Boolean Boolean value. Set to true if the title/content/deeplink is personalized. Use ${placeholder:fallback} for personalization.
text 255/2048 Value for title/content/deeplink
properties 16 * 255 Array of key-value pairs with details to be used in placeholders
sendToAllDevices Boolean The app User may access the app from multiple devices. Depending on this flag the Mobile Push is sent to:
  • false: last device only,
  • true: all user’s devices.
False is the default value.
imageUrl* 2048 URL of PNG or JPG image. Aspect ratio (Android): 2:1, e.g. 512x1024.
soundName 255 Notification sound name as declared in your app
- Σ 4kB Maximum total size of Mobile Push notification supported by Android/iOS

Response:

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages

Analytics

Get list of sent Mobile Push notifications

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "email": "name@example.com",
  "userId": 1234567,
  "entriesNumber": 20,
  "dateFrom": 1559938888000,
  "dateTo": 1659938888000
}

Sample response with extended scope:

{
    "success": true,
    "message": [],
    "data": [
        {
            "name": "Example push name",
            "title": "Example title",
            "message": "Example message",
            "sentDate": 1600345364000,
            "read": true,
            "deeplink": "https://www.salesmanago.com",
            "mid": "b4db4d3b-...-ca33289d6c8c",
            "cid": "5816705",
            "displayed": 1600345388000,
            "actionTaken": 1600345390000,
            "dismissed": null
        }
    ]
}

This method lets you list sent Mobile Push notifications, detailing their delivery and interaction metrics. It’s useful for tracking the performance and engagement of sent notifications.

Endpoint

https://api.appmanago.com/api/v2/push/history
Important: This method utilizes a different endpoint domain and different request authorization data compared to other methods.

Body (JSON)

Field Limits Description
userId* 255 Contact identifier—either their email address or User ID from SALESmanago. If both fields are present, the User ID will be prioritized.
email* 254
entriesNumber 500 Number of entries to retrieve. If the number is not within the range of 1-500, it will automatically be set to 500. The default value is 500.
dateFrom UNIX timestamp [ms] Time range of the Mobile Push notifications to be retrieved. If you do not specify those fields, the entriesNumber of last messages will be retrieved.
dateTo UNIX timestamp [ms]
extended Boolean Optional flag to retrieve additional data such as displayed, actionTaken, and dismissed

Response:

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages
name Name of the Mobile Push notification
title Title displayed on mobile devices
message Content of the Mobile Push notification message
sentDate The date and time when the Mobile Push notification was sent in UNIX timestamp [ms]
read Indicates whether the notification has been read or not
deeplink URL or a deep link that the notification can direct to when opened
mid ID of Mobile Push notification
cid Conversation ID of Mobile Push notification
displayed UNIX timestamp when the notification was displayed on the user’s device
actionTaken UNIX timestamp when the user has interacted with or dismissed the notification. Note that in most cases, only one of the fields will have a value.
dismissed

Get list of conversations by Push ID

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "pushId": "a1b2-...-c3d4"
}

Sample response with extended scope:

{
    "success": true,
    "message": [],
    "data": [
        {
            "conversationId": 1234567,
            "name": "Spring campaign test A",
            "sentDate": 1600345364000
        },
        {
            "conversationId": 1234568,
            "name": "Spring campaign test B",
            "sentDate": 1600345364000
        }
    ]
}

This method lets you retrieve a list of conversations linked to a specific Mobile Push notification using its UUID, providing details such as conversation ID, name, and the date the notification was sent.

Endpoint

https://api.appmanago.com/api/push/conversation/list
Important: This method utilizes a different endpoint domain and different request authorization data compared to other methods.

Body (JSON)

Field Limits Description
pushId* UUID UUID of Mobile Push notification. The same UUID is returned when calling the mobile/push/list method.

Response:

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages
data Array of objects with conversation list
conversationId ID of conversation
name Conversation name
sentDate The date and time when the Mobile Push notification was sent in UNIX timestamp [ms]

Get stats of sent Mobile Push notification

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "conversationId": 1234567
}

Sample response with extended scope:

{
    "success": true,
    "message": [],
    "data": [
        {
            "name": "Example push name",
            "platform": "android",
            "sentDate": 1600345364000,
            "sentNumber": 234567,
            "displayedNumber": 123456,
            "clickedNumber": 111111,
            "dismissedNumber": 12345
        }
    ]
}

This method lets you obtain overall statistical data for a sent Mobile Push notification by conversation ID, including details like platform, number of notifications sent, displayed, clicked, and dismissed.

Endpoint

https://api.appmanago.com/api/push/conversation/stats
Important: This method utilizes a different endpoint domain and different request authorization data compared to other methods.

Body (JSON)

Field Limits Description
conversationId* Int ID of conversation for Mobile Push notification. The same ID is returned when calling the push/conversation/list method.

Response:

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages
data Object with conversation stats
name Conversation name
platform Platform (android/ios) to which the conversation was sent
sentDate The date and time when the Mobile Push notification was sent in UNIX timestamp [ms]
sentNumber The number of individual Mobile Push notifications sent
displayedNumber The number of times the Mobile Push notification was displayed on users’ devices
clickedNumber The count of how many times users clicked the Mobile Push notification
dismissedNumber The number of times users dismissed the Mobile Push notification without interacting further

Get data about sent Mobile Push notification

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "conversationId": 1234567
}

Sample response:

{
  "success": true,
  "message": [],
  "jobId": 123456
}

Method used to get the file URL:
/api/job/status
See docs >>

Sample file structure:

contactId,email,phone,name,platform,sentDate,displayedDate,clickedDate,dismissedDate
abcd-...-1234,name1@example.com,+15554443322,Example push name,android,1600345364000,1600345366000,1600345368000,null
cdef-...-5678,name2@example.com,+15554442211,Example push name,ios,1600345364000,1600345366000,1600345368000,null

This method lets you fetch per-contact data about a Mobile Push notification for a specific conversation ID, including user-specific stats such as email, phone, platform, and engagement dates.

Endpoint

https://api.appmanago.com/api/push/conversation/data
Important: This method utilizes a different endpoint domain and different request authorization data compared to other methods.

Body (JSON)

Field Limits Description
conversationId* Int ID of conversation for Mobile Push notification. The same ID is returned when calling the push/conversation/list method.

As a result of the request you will receive a jobId that can be used to get the file with exported data using the job/status method.

File contents (CSV):

Field Description
contactId Mobile User identifier from SALESmanago Mobile
email The email address associated with the Contact to whom the Mobile Push notification was sent
phone The phone number associated with the Contact to whom the Mobile Push notification was sent
name Conversation name as defined in SALESmanago Mobile
platform The operating system platform (Android or iOS) of the user’s device that received the Mobile Push notification
sentDate The UNIX timestamp [ms] indicating the date and time when the Mobile Push notification was sent
displayedDate The UNIX timestamp [ms] indicating the date and time when the Mobile Push notification was displayed on the user’s device
clickedDate The UNIX timestamp [ms] indicating the date and time when the user clicked on the Mobile Push notification
dismissedDate The UNIX timestamp [ms] indicating the date and time when the user dismissed the Mobile Push notification without further interaction

Get conversation analytics for Mobile Push template

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "pushId": "1234-...-abcd",
  "timeFrom": 1639938888,
  "timeTo": 1659938888
}

Sample response:

{
  "success": true,
  "message": [],
  "jobId": 123456
}

Method used to get the file URL:
/api/job/status
See docs >>

Sample file structure (ZIP):

conversation_stats_export_1639938888000_0.csv [120 kB]
conversation_stats_export_1649938888000_1.csv [380 kB]
conversation_stats_export_1659938888000_2.csv [220 kB]

Sample file structure (CSV):

contactId,email,phone,name,platform,sentDate,displayedDate,clickedDate,dismissedDate
abcd-...-1234,name1@example.com,+15554443322,Example push name,android,1600345364000,1600345366000,1600345368000,null
cdef-...-5678,name2@example.com,+15554442211,Example push name,ios,1600345364000,1600345366000,1600345368000,null

This method lets you fetch per-Contact data about a sent Mobile Push notification aggregated into files for each of the conversations the template was used in.

Endpoint:

https://api.appmanago.com/api/push/conversation/data/export
Important: This method utilizes a different endpoint domain and different request authorization data compared to other methods.

Body (JSON):

Field Limits Description
pushId* UUID UUID of Mobile Push notification. The same UUID is returned when calling the mobile/push/list method.
timeFrom* UNIX timestamp [s] Time range for the export of statistics for conversations using the specified template. The maximum available time range is 30 days.
timeTo* UNIX timestamp [s]

As a result of the request you will receive a jobId that can be used to get the file with exported data using the job/status method. The file will be a ZIP archive containing CSV files for each of the conversations.

File contents (CSV):

Field Description
contactId Mobile User identifier from SALESmanago Mobile
email The email address associated with the Contact to whom the Mobile Push notification was sent
phone The phone number associated with the Contact to whom the Mobile Push notification was sent
name Conversation name as defined in SALESmanago Mobile
platform The operating system platform (Android or iOS) of the user’s device that received the Mobile Push notification
sentDate The UNIX timestamp [ms] indicating the date and time when the Mobile Push notification was sent
displayedDate The UNIX timestamp [ms] indicating the date and time when the Mobile Push notification was displayed on the user’s device
clickedDate The UNIX timestamp [ms] indicating the date and time when the user clicked on the Mobile Push notification
dismissedDate The UNIX timestamp [ms] indicating the date and time when the user dismissed the Mobile Push notification without further interaction





















































Supporting methods

Get URL of file with exported data

Sample request:

{
  "clientId": "a1b2-...-c3d4",
  "apiKey": "e5f6-...-g7h8",
  "sha": "2aa3-...-e00c",
  "jobId": 123456
}

Sample response:

{
  "success": true,
  "message": [
    "Export done"
  ],
  "fileUrl": "https://salesmanago.s3.amazonaws.com/.../abcd-...-efgh.json"
}

This method lets you fetch per-contact data about a Mobile Push notification for a specific conversation ID, including user-specific stats such as email, phone, platform, and engagement dates.

Endpoint:

https://api.appmanago.com/api/job/status

Some API methods let you asynchronously export data to a JSON file. This allows the HTTP connection to be closed, while the export is being processed in the background. Depending on the export scope, it may take up to several minutes which greatly exceeds the maximum connection time, and thus would not be possible with synchronous requests. The typical export consists of:
1. Export request that returns the jobId
2. Periodic job/status request using the jobId parameter. This method returns the file URL once the exported has been completed
3. GET request to download the JSON file The recommended interval for requesting a JSON file with job/status is 60 seconds.

Body (JSON):

Field Limits Description
jobId* Int Unique job (request) identifier as received from the export method.

File contents (JSON):

Field Description
success Boolean value informing about the result of request (successful/not successful)
message Array of additional information containing error messages
fileUrl URL of the file with export data, valid for a few minutes after it has been generated.
Important: This field is returned only when the export is completed.