Hello,
We use intercom on a react-native expo app using @intercom/intercom-react-native 8.1.0
We have different Intercom workflow set for “When customer opens a new conversation in the Messenger” based on day/time, custom attributes.
We noticed our Android users always see the first workflow they have been presented, even if another one should be shown. We were indeed able to reproduce it.
This issue happen no matter how the new conversation window is triggered, either when the user start a new conversation from the Home space or using Intercom.presentMessageComposer();
This issue does not happen on iOS and one way to “fix” it is by force quitting the app from the android app settings
Hey there
The issue with the Android users always seeing the first workflow they have been presented, even if another one should be shown, could be related to how notifications and actions are handled within the app.
On Android, the application is responsible for drawing the notification and handling what happens when the notification is clicked. If there is a custom installation or another push system involved, it may require manual handling. For Intercom to draw the notification and handle the workflow correctly, the following must be called:
intercomPushClient.handlePush(getApplication(), message);
This should be done automatically in standard installations, but for custom installations or if there are problems with the standard installation, this needs to be handled manually. If you have a custom setup or another push system, ensure that the Intercom push client is correctly implemented as per the instructions provided in the Intercom documentation for Android FCM push notifications.
Thank you for your prompt response. However, we don’t currently use Intercom push notifications at all—our issue arises solely within the in-app Messenger. Because of that, I’m not quite sure how the guidance about handling push notifications addresses this situation.
Specifically, on Android, once a user sees their first Intercom workflow, every subsequent “new conversation” experience shows that same workflow—even though our day/time-based conditions or custom attributes have changed. On iOS, however, everything works correctly, and the Messenger displays the proper workflow. The only way to reset Android’s behavior is by force-quitting the app, which isn’t a practical user solution.
We suspect there may be some internal session or caching logic on Android that prevents Intercom from re-checking or refreshing the workflow logic. Do you have any suggestions on how to ensure Intercom reinitializes or updates the user session (and thus the relevant workflow) on Android? Any insights or documentation pointers for in-app use cases—beyond push notifications—would be greatly appreciated.
The Intercom SDK for Android manages user sessions internally, so once a user is logged in, you do not need to log them in again each time the app is opened. The SDK maintains the user's session without the need to re-register or re-login the user.
However, if you're experiencing issues with workflows not updating based on new conditions or attributes, you should ensure that when users log out, you are calling Intercom.logout(). This will clear Intercom's local cache and dismiss any Intercom UI, which should help in making sure that the next time a user initiates a new conversation, they are presented with the correct workflow based on the updated conditions or attributes. It's important to ensure that when you log out a user, you do not immediately start a new session with the previous user's data. If you call Intercom('boot', intercomSettings); after Intercom('shutdown');, make sure that intercomSettings does not contain any user data.
This will start a fresh session without the previous user's data and should hopefully prevent the caching issue you're experiencing on Android :)
Thank you for the clarification regarding Intercom.logout()
. I tested your suggestion by manually logging out the user, then logging them in again with the correct user attributes before showing message composer:
await Intercom.logout();
await Intercom.loginUserWithUserAttributes({email: user.email});
await Intercom.presentMessageComposer();
Unfortunately, the original issue remains—we still see the same workflow as before, even though our day/time or attribute-based conditions should have triggered a different workflow.
Could you please advise on the following?
- Same User, Updated Conditions: Our users generally stay logged in across sessions. We need Intercom to recognize that day/time or other attributes have changed without requiring a full logout cycle.
- Android-Specific Behavior: This issue only affects Android; iOS consistently updates to the correct workflow on each new conversation. Is there any known caching or refresh issue on Android that would prevent new workflows from showing unless the app is force-quit or fully restarted?
- Manual Refresh: Is there a recommended way (besides
logout()
) to force Intercom to re-check user attributes for workflows when initiating a new conversation on Android?
Any additional guidance or next steps would be greatly appreciated, as logging out each time isn’t a practical option and doesn’t solve the issue. Thanks again for your help.
Reply
Join the Intercom Community 🎉
Already have an account? Login
Login to the community
No account yet? Create an account
Intercom Customers and Employees
Log in with SSOEnter your E-mail address. We'll send you an e-mail with instructions to reset your password.