Mobile SDK - FAQs

Answering the most asked questions

Ryan Quinn avatar
Written by Ryan Quinn
Updated over a week ago

General

What is the size of Intercom mobile SDKs?

The size of the SDKs will vary but Mobile SDK sizes are roughly:

  • iOS: ~2.5mb

  • Android: ~3mb ( will shrink on install with any shared dependencies etc.)


Platforms and support

Do you have any Xamarin Support?

No, you will have to rely on community libraries if it is needed.

Do you have any React Native Support?

We do! Our React Native wrapper was released June 24, 2021. Installation information can be found in our Developer Docs here.

Do you have any Ionic support?

Officially, we do not support Ionic. However, Intercom may work with both Ionic 1 & 2. To use the Intercom with Ionic, run the following:

cordova plugin add cordova-plugin-intercom

Make sure you initialize Intercom correctly.

Ionic 1

For Ionic 1 you can use Intercom like this:

.run(function($ionicPlatform) {

$ionicPlatform.ready(function() {

cordova.plugins.intercom.registerIdentifiedUser({userId: "123456"});

cordova.plugins.intercom.setLauncherVisibility('VISIBLE');

});

})

Ionic 2

For Ionic 2 you need to add the folling variable to your app.component.ts:

declare var cordova:any;

You can then use Intercom like this:

this.platform.ready().then(() => {

cordova.plugins.intercom.registerIdentifiedUser({userId: "12345"});

cordova.plugins.intercom.setLauncherVisibility('VISIBLE');

});

Keep in mind that this method of installation is not officially supported.

Is there a minimum required iOS SDK version?

To receive updates for the Intercom iOS SDK you will be required to have the minimum version of iOS 13. With that being said, we will continue to support customers on earlier versions of iOS, however, no updates will be made for these legacy versions.


Features

Does the Messenger work in mobile apps?

Yes! But, the Messenger works slightly differently in mobile apps, compared to desktop. This article explains how to update your SDKs to work with the new Messenger, and which features are supported on iOS and Android apps.

What’s available with Messenger in mobile apps?

When visitors or users access the Messenger on your iOS or Android app, they'll be able to engage with the Help and Messages Spaces if you have these enabled, as well as apps you add to your Home Space - so they can do more than chat.

They'll also be able to start conversations with you and submit tickets.

Your customers can send images & GIFs, but uploading other files is not currently supported on mobile.

Does Intercom mobile SDK support multiple languages?

When Intercom is loaded in your mobile app, the user's language is detected based on the language of the OS. The Messenger will load in the user's language if it is supported in your workspace. If your workspace doesn't support their language, the Messenger will load in your workspace's default language.

Intercom does not automatically track mobile user's language in an attribute on their profile like we do for web. For user's loaded in the Messenger on the web, Intercom tracks their language in the "Browser language" attribute, which is only applicable to web integrations.

If you want to target outbound content at mobile users based on language, you will need to set up tracking yourself. You can either use the language_override attribute to track mobile user language, or create a custom attribute to track language.

Does Intercom mobile SDK support video upload on mobile?

No, we don’t support video or file upload on mobile at this time, only images can be uploaded.

Do the mobile SDKs support Right To Left languages(RTL)?

Currently, we don't officially support RTL in the mobile SDKs. However, newer features in the SDKs such as the Help Center do support it, which is why you will see a reference to RTL in newer releases of the SDKs. We do plan to fully support RTL in the future but for now, we don't currently support RTL.

How can I use Intercom to display announcements like a splash screen?

Intercom doesn't offer a specific splash screen feature, but you can use outbound messages like Chats and Posts to achieve a similar effect. Chats can be used to announce something to your customers through the Intercom Messenger and prompt them to start a conversation. Posts can be used to make an announcement in your product that will immediately get the attention of your customers and can be sent in two sizes, Small or Large.

Can I send messages to specific screens in my mobile app?

It's not possible to send a message to users of your mobile app on specific screens.

However, as a workaround, you can begin tracking a custom attribute, let's call it 'current_screen', and then update that attribute with an identifier (i.e. a name or an ID) of the screen whenever your users navigate to a different screen in your mobile app. This can be done for all screens, or perhaps just the ones you anticipate targeting with an auto-message.

After implementing the attribute you can configure the rule 'current_screen is splashScreen' in your targeted audience to send a message only to users who are on the splash screen.

Does Intercom track any extra attributes about users via mobile SDKs?

Once a the mobile SDK is installed in a workspace, extra attributes will be main available in the web interface

For iOS/Android

  • Is mobile unidentified

    • unidentified users are those that have not logged in an email/user_id (similar to leads in the web integration but remember that all mobile SDK records are users)

  • Enabled Push Messaging

    • indicates that the record as a device token and thus can receive push messaging/notifications

Note: The mobile SDK attribute 'Enabled Push Messaging' is only ever set to 'True' or 'Unknown'. If a user has a device token attached to their user profile, 'Enabled Push Messaging' will return true. Otherwise, it will return 'Unknown'.

For Android

  • Last seen on android

  • Android sessions

  • Android app version

  • Android device

  • Android os version

For iOS

  • Last seen on ios

  • Ios sessions

  • Ios app version

  • Ios device

  • Ios os version

When are mobile sessions incremented?

  • iOS

    • We increment the iOS session count the first time a user is registered

    • And subsequently on every UIApplicationDidBecomeActiveNotification that is triggered by a user opening your app, once they happen twenty seconds apart.

    • Application opens within twenty seconds are not counted.

  • Android: follows similar rules

Is there a difference in App Version type attributes?

  • iOS App version is of string type

  • Android App Version is of "version" type allowing greater then and less than

Do Product Tours work on mobile?

Product Tours let you create guided in-app experiences for your customers, so you can drive better adoption.

Product Tours works on desktop only. It doesn't currently work on mobile devices (including tablets) in the browser or in mobile apps.

Do Workflows work on mobile?

Yes, they do!

Are there known connectivity issues for customers in Vietnam?

Yes there are.

If you or your customers located in Vietnam are having connectivity issues with the intercom.com domain in our mobile SDKs, you can override the default domain name following these steps:

Android

Add the following meta-data in your app's AndroidManifest.xml:

<meta-data
android:name="io.intercom.android.sdk.host"
android:value=".intercom-messenger.com" />

iOS

Add this attribute in your Info.plist:

Key: IntercomCustomURL
Type: String
Value: intercom-messenger.com

With this change, all API requests will go through intercom-messenger.com instead of mobile-messenger.intercom.com.

This is supported on Android SDK 9.1.2+ and iOS SDK 13+.

How are push notifications sent from Intercom?

While there are differences between how Apple and Android handle push, the principles are the same illustrated below

  1. Request for push device token: When an app wants to use push notifications and a user accepts the permissions dialog, a request is sent to the relevant push service for a push device token. This token is the ‘address’, allowing the push service to deliver a push to a specific device when requested (similar to an email address)

  2. Push device token sent: If the request is valid, the push service will return a valid token to the device.

  3. Push device token passed to Intercom A token must be sent from the device to another service to be used for push. It may be sent to an app developer’s own server, to Intercom, to another third party, or all of the above. When this token is received on Intercom's end, we attach it to the user record.

  4. Push package sent from Intercom to Apple/Google When a push notification is to be sent the following information needs to be sent to the Apple/Google push servers:

    1. Device Token

    2. Notification details (e.g. logo, title, body)

    3. Authentication details (which allows us to send push on behalf of the app: this is where Apple iOS certificates and Google Android GCM/FCM keys come into play and need to be updated in the Intercom Settings dashboard)

  5. Push notification sent to device

    1. If Intercom authenticates to the push service for a given token, the push will be sent to the device

    2. Push services do use Quality of Service (QOS)


Using Intercom mobile SDKs

Can you initialize / switch multiple app_ids dynamically

This is possible on Android but not iOS.

  • Instead of using Intercom.intialize(application,api_key,app_id) to initialize the app call Intercom.registerForLaterInitialisation(this);

  • Then later in the app, when ready to set the app_id call Intercom.intialize(application,api_key,app_id)

  • To switch again

    • logout of current session Intercom.client().logout()

    • initialise again via Intercom.intialize(application,api_key,app_id)

Do the Android/iOS mobile SDKs maintain session data on uninstalling and reinstalling of the app?

No they do not

  • For iOS: the apps are sandbox so the new installation will not have awareness of any previous install.

  • For Android: all the data will be gone on uninstall

If an app is upgraded e.g. via App/Play Store or in development mode, the session data will be maintained.

How does Intercom store session data on the mobile device of an app using our SDK?

We store a file identity.icm that contains an anonymous UserId for unidentified users. For identified users we store their email (if they have provided one), their userid and intercom id. We use this to prevent re-registering a previously registered user. In terms of a session and whether we create a new one, this is determined by the time interval since the last session. The default here is 20 seconds. We don’t store anything on disk to track this.

Can the Android SDK be installed on an app that doesn't have Google Play Services i.e. the app is installed via Huawei App Gallery instead of Google Play Store?

No, Google Play Services are required for our Android SDK.

Where can I find my Mobile API key?

Your mobile API Keys can be found by hovering over your avatar profile photo on the lower left of the screen when logged-in to Intercom, and then choosing Settings > Installation > iOS / Android:

Also, if you haven't checked out our installation guides for iOS, Android, and/or Cordova, React Native, we recommend giving those a read! 😊

Can I import device tokens into Intercom?

No, device tokens cannot be imported into Intercom.


💡Tip

Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts


Did this answer your question?