React Native (Expo): Unable to Disable Push Notifications After Device Token Registration in Intercom SDK | Community
Skip to main content

React Native (Expo): Unable to Disable Push Notifications After Device Token Registration in Intercom SDK

  • February 24, 2026
  • 1 reply
  • 46 views

We are using the Intercom React Native Plugin in our Expo project. We integrate Intercom using the @intercom/intercom-react-native plugin.

Below are our project dependency versions:

  • "expo": "~54.0.20"

  • "react-native": "0.81.5"

  • "@intercom/intercom-react-native": "^9.6.1"

We are facing an issue where it is not possible to disable push notifications once a device push token has been registered.

The SDK provides the method:

Intercom.sendTokenToIntercom(token: string)

to register a device token. However:

  • Even if we pass an invalid or random string to this method, the user continues to receive push notifications.

  • There is no available SDK method to remove or unregister a previously registered push token.

We also verified this behavior using the Intercom REST API:

  • Updating the contact via the PUT /contacts/{id} endpoint does not override the enabled_push_messaging field.

  • Explicitly setting enabled_push_messaging to false or null has no effect.

Based on our testing, once a device token is registered with Intercom in a React Native (Expo) app, push notifications cannot be programmatically disabled using either the SDK or the REST API.

We would like clarification on the following:

  1. Is there a supported way to unregister a device token?

  2. Can push notifications be programmatically disabled for a specific user?

  3. What is the recommended approach to fully opt a user out of push notifications after token registration?

1 reply

Forum|alt.badge.img+4
  • Intercom Team
  • February 27, 2026

Hey ​@Subin Subramanian 

There’s no API/SDK call to “unset” a push token; Enabled push messaging reflects whether a valid device token exists on the contact. Passing a random token won’t unregister it.

  • Supported ways to stop Intercom push:
    • Logout to clear the device token; on next login don’t send the token while the user is opted out.
    • Suppress on-device delivery:
      • Android/React Native: in your FirebaseMessagingService, check IntercomModule.isIntercomPush(...) and only call IntercomModule.handleRemotePushMessage(...) if the user hasn’t opted out. Otherwise, drop it.
      • iOS: disable automatic handling and, in userNotificationCenter:didReceive..., if Intercom isIntercomPushNotification and the user is opted out, return without calling handleIntercomPushNotification.

Recommended opt‑out flow (per device):

  1. When a user opts out, call Intercom.logout() to clear the registered token on that device.
  2. Keep them logged in without calling Intercom.sendTokenToIntercom while opted out.
  3. If you can’t logout, use the manual push-handling approach to drop Intercom pushes for that user on that device.

Notes:

  • The enabled_push_messaging field isn’t a manual toggle; it derives from token presence, so PUT /contacts won’t force it off.
  • Contacts can have multiple device tokens; opt‑out handling is per device.