BlueFletch Enterprise
  • BlueFletch Enterprise
  • Product Guides
    • BlueFletch Launcher
      • Configurable Layouts
        • Layouts
        • Orientation Options
        • Criteria
        • Widgets
        • Implied Groups
        • Kiosk Mode
        • Persistent Foreground App
        • Password Protected Applications
        • Quick Start Applications Folder
        • Layout Custom Actions
        • Replacement Values
        • Assets Manager
      • Theming
        • Configure Theme
        • Site-Specific Theming
        • Custom Field Display
      • Site Information Service
      • Custom Intents
        • Standard Android Intents
        • Platform Actions
        • Filtering
        • Technical Guide
      • Security and Safety
        • Clear App Data on Logout
        • Application Enabler
        • Disable Packages
        • Key Management
        • NFC Enable/Disable
        • Secure Notifications
        • Wi-Fi UI Settings Enable/Disable
        • Motion Activated Device Lock
        • Unique Login
        • Local Admin Password
        • Device Remote Lock
      • Device Loss Prevention
        • Low Battery Mode
        • Luggage Tag Mode
        • Secure Device Mode
      • Launcher Provider SDK
      • Load Configurations via QR Code Scan
      • Getting Started
      • Technical Guide
      • Release Notes
    • Authentication and SSO
      • Features
        • Secondary Authentication
          • PIN
          • Face Recognition
          • NFC Tag
          • Barcode
          • Alternate Secondary Authentication
      • Technical Guide
        • LDAP
        • AppAuth/OIDC
        • Okta (Session)
        • MSAL
        • ADFS 3.0/2012 Using ADAL
      • Release Notes
    • Support Application
      • Features
        • Events to Splunk
        • Logs to Azure
        • External Configuration Support
        • Application Usage History
        • Generating RxLogger Log Files
      • Technical Guide
        • Event Information
        • Event Examples
      • Support Installer
      • Getting Started
      • Release Notes
    • Device Finder
      • Features
        • Device Details
        • Device Status
        • View Site Devices
      • Technical Guide
      • Getting Started
      • Release Notes
    • Browser
      • Features
        • Custom Scripts
        • FIDO2 / Webauthn Support
        • URL AllowList and BlockList
      • Technical Guide
        • Configuring Browser
        • All Configuration
        • Available Intents
        • APIs and Page Actions
      • Release Notes
    • Chat
      • Features
      • Technical Guide
      • Getting Started
      • Release Notes
    • Playbook Agent
      • Features
      • Getting Started
      • Release Notes
    • Portal
      • Login & Logout
      • Navigation & Account Settings
      • Support Agent
        • Home
        • Device Details
        • Dashboards
        • Cards
        • Event Explorer
        • Reports
      • Enterprise Launcher
        • Creating a Configuration
        • Sending a Notification
        • Managing Sites
      • Playbook MDM
        • Playbooks
        • Plays
        • Devices
        • Deployment Groups
        • Zebra StageNow
      • EMM Console
        • Overview
        • Setup
          • Enroll Org in EMM
          • Policy Management
          • Provisioning
          • Device Management
          • Installing Playbook in EMM
        • Troubleshooting
          • Device Issues
          • Policy Issues
      • Chat Manager
        • Overview
        • Chat Roles
        • Chat Channels
        • Chat Audio Transcription
        • Message Logs
      • Admin
        • Organization
        • Single Sign On
          • Azure Setup
          • Okta Setup
          • Google Workspace Setup
          • Portal Setup
        • Users
        • Roles
          • Overview
          • Predefined Roles
          • Permissions
          • Manage Roles
        • Downloads
        • Agents
        • Key Management
          • Overview
          • API Keys
          • Device Keys
          • Device Restrictions
          • Allowed IP Addresses
        • Enterprise
        • Audit Logs
      • Event Forwarding
      • Remote Control
      • Getting Started
      • Release Notes
    • Other Applications
      • Messaging
        • Features
        • Technical Guide
        • Release Notes
      • Keyboard
        • Features
        • Technical Guide
          • How to: Set Keyboard as default
        • Release Notes
      • Bluetooth
        • Features
        • Release Notes
      • Voice Chat
        • Features
        • Release Notes
      • Device Remote Control
        • Features
        • Technical Guide
        • Release Notes
      • Device ID
        • Features
        • Technical Guide
        • Release Notes
      • Suite Installer
        • Technical Guide
        • Release Notes
      • Accessibility Enabler
        • Release Notes
      • EPM Plugin
        • Features
        • Technical Guide
        • Release Notes
    • Workforce Identity
  • Technical Documentation
    • Updating License Key
    • Commonly Reported Issues
    • Deploying BlueFletch Enterprise
      • Android 10 and 11
      • MDMs
        • Workspace One (VMWare AirWatch)
        • SOTI
        • Microsoft Intune
          • Microsoft Intune + Playbook
      • From Portal to Playbook Agent
Powered by GitBook
On this page
  • Sending Messages
  • BlueFletch Portal
  • Rest API
  • Notification Body
  • Cancelling a Message
  • Configuring the Messaging Client
  1. Product Guides
  2. Other Applications
  3. Messaging

Technical Guide

PreviousFeaturesNextRelease Notes

Last updated 1 month ago

Sending Messages

Messages are sent via MQTT Topics. By defualt, there are 4 topic types supported:

  • Device

  • Store

  • Role

  • Group

To post messages / notifications to a Topic, BlueFletch Enterprise supports two methods:

  • BlueFletch Portal

  • Rest API

BlueFletch Portal

By using the BlueFletch Portal, an Admin can send messages to a specific topic. Simply log into the and navigate to the 'Enterprise Launcher' tab, then 'Notifications'.

Rest API

Posting a JSON object to the 'Notify' endpoint will send messages to the Topic.

URL : https://ems-services-api.bluefletch.com/playbook/apiv1/api/notify

Method: POST

Parameters : topic a string representing the Topic to post the message.

Example CURL

curl -X POST "https://ems-services-api.bluefletch.com/playbook/apiv1/api/notify?topic=associates"  
          -H "x-bf-pb-apikey: apikeyhere"  -H "accept: */*" 
          -H "Content-Type: application/json" 
          -d "{ \"notificationId\": 6001, 
                \"contentTitle\": \"Customer Phone Call\", 
                \"contentText\": \"Call Jenny\", 
                \"expandedTitle\": \"\",  
                \"expandedText\": [],  
                \"packageName\": \"com.android.dialer\",  
                \"intentAction\": \"android.intent.action.CALL\", 
                \"intentExtras\": [{ \"key\": \"DATA\", \"value\": \"tel:\/\/8675309\" } ], 
                \"autoCancel\": true, 
                \"onGoing\": false, 
                \"useSound\": true, 
                \"useHeadsUp\": false}"

Notification Body

Field
Description

notificationId

number indicates the Notification Id. Should be unique per notification. Can use the same Id to replace an existing message being displayed

contentTitle

string Title of the message to display

contentText

string Text of the Message body

expandedTitle

string Expanded Text of the Message body

expandedText

array Array of string to display in the expanded message

packageName

string Represents the package to invoke if the message display is press by the user

intentAction

string Represents the ACTION to invoke if the message display is pressed by the user

intentExtras

array Array of Intent Objects to insert within the intent posted when if the message display is pressed by the user

autoCancel

boolean true/false, allow the user to dismiss the message

onGoing

boolean true/false,

useSound

boolean true/false,

useHeadsUp

boolean true/false

soundName

Intent Object

Field
Description

key

string key of the Intent data

value

string value for the intent object

Example Notification Body

{
    "notificationId": 6001,
    "contentTitle": "Customer Phone Call",
    "contentText": "Call Jenny",
    "expandedTitle": "",
    "expandedText": [],
    "packageName": "com.android.dialer",
    "intentAction": "android.intent.action.CALL",
    "intentExtras": [
        {
            "key": "DATA",
            "value": "tel://8675309"
        }
    ],
    "autoCancel": true,
    "onGoing": false,
    "useSound": true,
    "useHeadsUp": false
}

Cancelling a Message

If desired to cancel a notification that has been sent, use the following notification format:

{
    "notificationId": 6001,
    "notificationAction": "cancel"
}

Using the notificationAction of "cancel", along with the notification Id of the sent message, will cause the messaging application to remove the message from the device notification tray.

Configuring the Messaging Client

Configuring the Messaging Client is only required if you are configuring another MQTT broker in addition to the BlueFletch MQTT broker cluster.

The Messaging application can be configured to connect to one or more MQTT brokers. The application configuration is declared in the BlueFletch Launcher configuration and the Launcher sends it to the Messaging application.

Messaging by default is configured to connect to the BlueFletch MQTT broker cluster in BlueFletch's Google Cloud Instance. To add a new broker for the Messaging application to connect to, create a new configuration in Launcher as follows:

Add the notifications array at the root level of the launcher.json file:

    "notifications" : [
        {
          "brokerId" : "myCustomBroker",
          "name" : "My Custom Broker",
          "url":  "ssl://<mqttBrokerHost:Port>",
          "urls": "",
          "randomizeUrls" : true,
          "enableOrganizationGroup" : true,
          "useEnhancedMessaging" : true,
          "muteNotificationsOnCall" : true,
          "notificationAcquireWakelocks" : true,
          "receiveOfflineMessages" : false,
          "mqttUserName" : "<mqttUserName>",
          "mqttPassword" :  "<mqttPassword>",
          "enableNotificationsAlwaysOn" : true,
          "enableHeadsUpNotifications" : true,
          "subscribeToIdentityGroups": false
        }

    ]
Field
Description

brokerId

string A free form string ID used by Messaging internally to differentiate brokers. Must not contain spaces.

name

string Friendly name for this broker connection. This will be displayed in the Messaging UI.

url

string The full URL (scheme, host and port) for the MQTT broker. Use this if connecting to one broker, or if you have a load balancer in front of your broker cluster. If there are multiple brokers, this key must still have a string value present, but define the broker list in the "urls" string. For secure MQTT, use the ssl:// scheme.

urls

string A comma delimited list of URLs corresponding to each server in an MQTT broker cluster. Messaging will select a broker URL for connection at random from the list (or will select in order if "randomizeUrls": false). If this key-value is used, "url" will be ignored but still requires a string value be present.

Leave string empty to disable.

randomizeUrls

boolean Set to true to randomly pick the server to connect to among the "urls" list, otherwise Messaging will use the servers in the order listed. Default is true.

enableOrganizationGroup

boolean If set to true, Messaging will create a parent topic corresponding to your BFE Organization ID. This means that to the final topic string will be /<orgId>/topicName. Default is set to true.

useEnhancedMessaging

boolean If set to true, Messaging will create a broadcast intent internally in the device for other applications to receive the message payload directly.

muteNotificationsOnCall

boolean If set to true, Messaging will not make a notification sound if the device is currently on an audio call.

notificationAcquireWakelocks

boolean If set to true, Messaging will wake up the device when a message arrives.

receiveOfflineMessages

boolean (Deprecated) Must always be set to false.

mqttUserName

string The user ID for the MQTT connection.

mqttPassword

string The password for the MQTT connection.

enableNotificationsAlwaysOn

boolean If set to true, will automatically subscribe with the device serial number and site even when no user session is present.

enableHeadsUpNotifications

boolean (Deprecated) Must always be set to true.

subscribeToIdentityGroups

boolean If set to true, Messaging will subscribe to a topic for each identity group the user belongs to. Note that this may generate a lot of topics in your MQTT broker.

disableVolumeAdjustment

boolean If set to true, the device's volume will not be automatically adjusted to the maximum setting when a new message is received. Default is false. Introduced in Messaging version 3.5.1.

Enter the desired topic and json object of the message, then press send. See for the format of the JSON Object.

Header : x-bf-pb-apikey the organization's

Body : the JSON object representing the message to send. See for the format of the JSON Object.

string Optional parameter to specify a custom audio file on the device for notifications if useSound=true AND useHeadsUp=true. Example strings: If using local file path: "/sdcard/Download/ems/MyRingTone", where the file /sdcard/Download/ems/MyRingTone.mp3 exists on the device (note to not include the file extension in the field value). If using assets: "soundName": "assets:message_tone", where an exists in the launcher.json such as "message_tone": "https://example-file-hosting-site.com/MyRingTone.mp3".

Notification Body
API Key
Notification Body
asset
Portal