Push Notifications

You can use push notifications with the Chat SDK to notify your users every time the agent sends a new message to the conversation.

Setting up the push notifications in Zendesk Chat dashboard

To set up push notifications in your dashboard, follow the guidelines in Help Center.

Enabling push notifications for your app

Set up Firebase

We recommend following Google's guide for setting up and configuring your Firebase app instance. See Set up a Firebase Cloud Messaging client app on Android on the Firebase website. Ensure you're set up to receive push notifications by reviewing the Handling messages section as well.

Registering your push token

If you followed the Google tutorial linked above, you should be able to access your device's Firebase token. You can pass this token to the Chat SDK by calling the registerPushToken method of the PushNotificationsProvider:

PushNotificationsProvider pushProvider = Chat.INSTANCE.providers().pushNotificationsProvider();
if (pushProvider != null) {    pushProvider.registerPushToken("YOUR FIREBASE TOKEN");}

Parsing the push notification

In your FirebaseMessagingService class, override onMessageReceived and pass the result of remoteMessage.getData() into the processPushNotification method. This will return a parsed PushData object containing the message type, title, message contents, author, and timestamp of the push notification.

class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override    onMessageReceived(RemoteMessage remoteMessage) {    super.onMessageReceived(remoteMessage);
    PushData pushData = pushNotificationsProvider.processPushNotification(remoteMessage.getData());}

Types of push notifications

The Chat SDK supports two types of push notifications:

  • New chat message notification
  • Chat has ended notification
New chat message notification
{  "aps" : {    "alert" : {      "title" : "{agent name}",      "body" : "{agent message}",    }  },  "data": {    "type" : "zd.chat.msg",    "ts" : "{millisecond timestamp (long)}"  }}
Chat has ended notification
{  "aps" : {    "alert" : {      "title-loc-key" : "ios.ZDCChat.pushChatEndedTitle",      "loc-key" : "ios.ZDCChat.pushChatEndedBody",      "loc-args" : [ "{agent name}" ]    }  },  "data": {    "type" : "zd.chat.end",    "ts" : "{millisecond timestamp (long)}"  }}

You can identify the type of a push notification by calling pushData.getType().

Displaying a push notification

You can display an Android push notification by following Google's official guidelines. See Create a Notification in the Android dev docs.