Notifications.addListener not being triggered on Android when sending from 3rd party service

We have been using the Expo push notification service and very happy with it. We are trying to switch over to a 3rd party provider (customer.io) so that all of our communications with users can be unified. We have provided them the the device token.

Push notifications are sent and received from Customer for both iOS and Android devices. However the Notifications.addListener is only being called on iOS. Therefore, we are not able to navigate based on the customer data or send analytics.

Is there data that the Expo Push Notification service sends that need to be included?
Is there something else that I am missing?

We are on SDK 33 for Android

Update - we are on SDK Version 35 now.

@expo any help here?

Hey @first-io,

You’ll need to craft your payload in a specific manner in order for it to cooperate with the Notifications module’s listener. You can see another user describing it here but as the warning below mentions, this payload structure is subject to change at any time so this may not be the most reliable path forward. https://github.com/expo/expo/issues/5304#issuecomment-520711466

Cheers,
Adam

Thanks! I had seen that issue but I was still wasn’t quite getting it. For anyone else, this is the payload that works for us:

{
    "message": {
        "data": {
            "experienceId": "@first-io/slug",
            "title": "Your catchy title",
            "message": "Informative message",
            "body": "{\"destination\": \"next_steps\", \"key2\": \"value2\"}"
        }
    }
}