# Unread Message Count

When the customer service replies user's message, user can receive a notification of unread messages, even if the AIHelp page is not currently displayed.

You can implement this function either by every-5-minutes' polling or by third-party push.

WARNING

By default, AIHelp uses a randomly generated deviceId as userId to poll for the count of unread messages.

So, until you sync the correct userId to AIHelp, the unread message count may be inaccurate.

# By Fetching v4.6.0

# API

# fetchUnreadMessageCount

Calling this method allows you to actively retrieve the unread message count for the current user.

AIHelpSupport.fetchUnreadMessageCount(new OnMessageCountArrivedCallback() {
    @Override
    public void onMessageCountArrived(int msgCount) {
        // write your code here
    }
});

You can call this API at any time to query the unread message count for the current user, but please note:

  1. This method has a 5-minute frequency limit:

Repeated calls within the limit period will return the result of the previous query. During development, you can check the logs to see the time until the next valid call.

  1. This method will return 0 in the following situations to notify the caller that the current user has no unread messages:
  • When the polling feature is not enabled.
  • When the user has no ongoing complaints.
  • When the user is on an AIHelp page.
  • When the user opens the customer service conversation window.

# By Polling

WARNING

This feature is disabled by default, please contact us before your integration.

# API

# startUnreadMessageCountPolling()

Call this method to start a polling job for the count of unread messages.

AIHelpSupport.startUnreadMessageCountPolling(new OnMessageCountArrivedCallback() {
    @Override
    public void onMessageCountArrived(int msgCount) {
        // write your code here
    }
});

The count of unread messages is pulled every 5 minutes within the function.

This method will return 0 in the following situations to notify the caller that the current user has no unread messages:

  • When the polling feature is not enabled.
  • When the user has no ongoing complaints.
  • When the user is on an AIHelp page.
  • When the user opens the customer service conversation window.

# Definition

# onUnreadMessageCountCallback

  • Type: OnMessageCountArrivedCallback
  • Detail: Required. Callback for unread message count.

# By Third-Party Push

Now we take firebase as an example to illustrate how the in-app notification works.

1、follow up Google Documentation (opens new window) to integrate Firebase in your app;

2、call the following method to inform AIHelp of the player's push token and push platform

AIHelpSupport.updateUserInfo(new UserConfig.Builder().setUserId("uid").build());
AIHelpSupport.setPushTokenAndPlatform("PUSH_TOKEN", PushPlatform.FIREBASE);

3、override onMessageReceived method in your custom FirebaseMessagingService.java, and alert your users when you receive a new message while your app is foreground:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);
    // Check if current application is foreground and visible to users
    if (isAppForeground()) {
        if (remoteMessage.getData() != null) {
            if ("yes".equals(remoteMessage.getData().get("elva"))) {
                // alert your users that he/she has received a new message
            }
        }
    }
}

4、AIHelp push data format is as follows:

{
    "to":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
        "body":"This is your new message content",
        "title":"customer service sends you a message.",
        "sound":"Enabled",
        "priority":"high",
        "uid":"..."
    },
    "data":{
        "body":"This is your new message content",
        "title":"customer service sends you a message.",
        "uid":"...",
        "elva":"yes",
        "entry_tag":"..."
    }
}
Last Updated: 12/29/2023, 8:27:54 AM