Using the Mobile SDK to embed customer service in your app Follow

all plans

Note:  The SDK functionality is limited on Essential. The Conversations feature is not available.

The Zendesk SDK for iOS and Android enables you to embed Zendesk Support options natively in your app so your customers can get help directly in your app. The SDK lets users do any of the following:

  • Create tickets from your app
  • View and comment on existing tickets in-app, without switching to email
  • Browse and search your Help Center knowledge base in-app, without being redirected to a browser
  • Rate your app in the app store or send you direct feedback

You configure the options you want. Before you start, however, meet with product managers and developers to decide how to integrate the SDK in the application. Use the Zendesk SDK integration checklist for guidance.

Once your organization has decided how to integrate the SDK, you must register and configure the SDK in Zendesk Support and your developers must integrate the SDK in the application. If you're a developer, see the SDK developer documentation for more information.

Registering the application in Zendesk Support

You must be a Zendesk Support administrator to complete these steps.

To register the application

  1. Click the Admin icon () in the sidebar, then select Channels > Mobile SDK.
  2. Click Add an app.

    If this is your first time setting up the SDK, click Get Started, then click Add an app.

    The Setup tab opens by default.

  3. Enter a Name for your app.

    The name is for your reference only and is not shown to your customers.

  4. Copy and save the code snippet for Android or iOS or both, depending on the application versions. If your developers are working on an iOS app, ask them if they need the Objective-C or Swift version of the snippet.
  5. For Authentication method, select Anonymous or JWT, depending on your authentication decision. This is required.
    • Anonymous does not authenticate users who submit tickets through the SDK, so they are considered untrusted.
    • JWT securely authenticates users who submit tickets through the SDK. This option requires additional setup.
  6. If you selected JWT as the authentication method, enter a placeholder URL for JWT URL. Example:

    https://yoursubdomain.com/api/zendesk-jwt

    You can only enter a value for JWT URL after a team in your organization builds a dedicated JWT endpoint for the Zendesk SDK. They can't build it until you provide them with the secret in the next step.

    You can't use an existing JWT endpoint with the SDK. The endpoint must meet the requirements outlined in Building a dedicated JWT endpoint for the Zendesk SDK.

  7. If you selected JWT, copy and save the JWT secret. The secret is only shown once, so make sure you save it somewhere safe.
  8. Click Save.
  9. Send the code snippet or snippets to the application developers in charge of integrating the SDK.
  10. If applicable, send the JWT secret to the team in charge of building the dedicated JWT endpoint. Refer the team to Building a dedicated JWT endpoint for the Zendesk SDK. Include instructions for the team to send you the endpoint URL when they're done.

    When you receive the final URL from them, return to this configuration page and update the JWT URL field.

Configuring the SDK in Zendesk Support

You can go ahead and configure the SDK to include components for the support options you want.

The mobile SDK includes a contact form by default, so your customers can submit tickets in your app. Custom ticket fields are not yet available in the contact form in the Mobile SDK.

In addition to the option to submit a ticket, you can customize the SDK to include any of the following support options in your app:
  • Conversations gives customers the ability to view and comment on existing tickets.
    Note: This component is not available on Essential.
  • Help Center enables customers to browse and search your knowledge base.
  • Rate My App enables your customers to rate your app in the app store or send feedback directly to you in a ticket.
Note: Chat is provided by separate Chat SDKs for iOS and Android.

You must be a Zendesk Support administrator to configure the SDK.

Your developers can also build custom UIs and use them with API providers in the SDK. If you're a developer, see the API provider docs for iOS and Android.

To configure your SDK

  1. Click the Admin icon () in the sidebar, then select Channels > Mobile SDK.
  2. Click the Customization tab.

  3. If you do not want to include the Help Center component, click the toggle to Off.

    This component is enabled by default. Help Center enables customers to browse or search your knowledge base categories, sections, and articles in-app. Community browsing and searching is not yet available.

    Adding Help Center also enables you to monitor Help Center usage initiated from the SDK. For information on filtering Help Center analytics for SDK see Analyzing Help Center community and knowledge base activity and Analyzing Help Center search results.

    The Help Center component is not available if you have not activated Help Center. You can click Create to activate Help Center now.

  4. If you do not want to include the Conversations component to enable customers to view and comment on existing tickets, click the toggle to Off.

    This component is enabled by default for Team, Professional, and Enterprise. (This component is not available on Essential.)  Conversations enables customers to view their existing tickets, make updates, and see updates from agents in-app. When this option is Off, customers still have the option to create tickets through the SDK, but they do not have access to existing tickets.

  5. Beside Tags, enter one or more tags that you'd like to add to tickets submitted through the SDK.

    You can separate multiple tags with a space or comma. It's a good idea to add a tag so that you can easily create a view to see all your tickets that come in through the SDK.

  6. Click Save.
  7. Click the Rate My App tab.
  8. If you do not want to add the Rate my app component, click the toggle to Off. Otherwise, configure the settings (see Configuring Rate My App).

    This component is enabled by default. Rate my app enables you to ask your customers in-app whether they like your app. Positive responses are sent to your app store ratings page, while negative responses are sent directly to you in a ticket.

  9. Click Save.

Configuring Rate My App

Rate My App is a component of the Mobile SDK that enables you to ask customers in-app whether they like your app. Customers who respond positively are sent to your app store ratings page where they can rate your app. Customers who respond negatively can send you feedback directly in a ticket that you can follow up on.

Tickets created by Rate My App contain the tag “ratemyapp_feedback.” You can create a view to see all the tickets created by Rate My App.

Note: If you have not set up the Mobile SDK yet, see Setting up the SDK and sending the code to your developers.

To configure settings for Rate My App

  1. In the Rate my app tab of the Mobile SDK settings page, click the Enable Rate my app toggle to On, if it is not already enabled.

  2. For Visits, select an option from the drop-down menu to indicate the number of times a customer must visit your app before they are prompted to rate it.
  3. For Duration, select an option from the drop-down menu to indicate the number of days a customer must have your app installed before they are prompted to rate it.
  4. For Delay, enter the number of seconds a customer must be on a page before they are prompted to rate your app.

    The visits, duration, and delay conditions must all be met before a user is prompted to rate your app.

  5. Beside Tags, enter any tags you want to add to tickets submitted through Rate My App.

    By default, Rate My App tickets contain the tag “ratemyapp_feedback.” You can specify additional tags.

     

  6. Beside Apple app store link, enter the URL for your app if it is published in the Apple App Store.

    For example, https://itunes.apple.com/us/app/id<your_app_id>.

  7. Beside Android app store link, enter the URL for your app if it is published in the Android app store.

    For example, https://play.google.com/store/apps/details?id=<package_name>.

  8. Click Save.

Changing the components in your SDK

You manage the SDK components from Zendesk Support. Changes are automatically reflected in the SDK in your app.
Note: When the SDK is live in your app, you can turn off individual components from the Mobile SDK settings page in Zendesk Support, but you cannot turn the SDK off completely. To fully remove the SDK from your app, an app update is required.

To make changes to the components in your SDK

  1. Click the Admin icon () in the sidebar, then select Channels > Mobile SDK.
  2. Click the options menu beside the name of the app you want to edit, then click Edit.

     

  3. Click the appropriate tab to make changes to your SDK components.
  4. Click Save when you are finished.

To remove an app from the Mobile SDK settings page

  1. Click the Admin icon () in the sidebar, then select Channels > Mobile SDK.
  2. Click the options menu beside the name of the app you want to edit, then click Delete.
  3. Click OK to confirm the deletion.

    The app is removed from the Mobile SDK settings page. This means that you can no longer make changes to the components. This does not remove the SDK from your app. To fully remove the SDK from your app, an app update is required.

 

Understanding the end-user experience

Your customers' experience will vary depending on which components you've enabled in the SDK. End-users always have the ability to submit a ticket in the SDK. As you enable other components, they are added to the experience, giving your customers more support options.

When all of the components are enabled, your customers can search your Help Center, create tickets, view their existing tickets, and rate your app.

Creating and viewing tickets

When customers visit the support page in your app they can use the contact form to submit a ticket. The ability to submit a ticket is on by default in the mobile SDK and cannot be turned off.

If you have enabled Conversations for the Mobile SDK, customers can view their existing tickets in-app. They can see updates to their tickets made by your Support agents, and they can add their own comments, without switching to email.

Knowledge base

If you have enabled the Help Center component for the Mobile SDK, customers can browse your knowledge base categories, sections, and articles directly in your app, without being redirected. 

Customers can also search your knowledge base, then select and view any article from the results list, in-app.

Adding Help Center also enables you to monitor Help Center usage initiated from the SDK. For information on filtering Help Center analytics for SDK see Analyzing Help Center community and knowledge base activity and Analyzing Help Center search results.

Rate my app

If you have enabled the Rate My App component, customers will receive the Rate my app prompt at the specified time, according to the conditions you configured.

Customers have three options in the prompt:

  • Yes sends the user to your app page in the app store so they can rate your app.
  • No sends the user to a ticket where they can provide feedback.

    You can then follow up on directly with the customer.

  • Don't ask me again closes the prompt with no action.

 

Have more questions? Submit a request

Comments

  • 0

    @jessie - can you share any apps that are using the mobile/web SDKs today? I'd love to see these in action.

  • 0

    Hi Makenzie,

    You can check out the SDK functionality via our sample app - Remember The Date, which is available for download in both the Apple App Store and the Android Play Store.

    You can also find links to examples from Getaround, Gree and Switkey under the "See our SDK at work" section on this page:
    https://www.zendesk.com/embeddables/

  • 0

    I really would like to see both sides of a working example of a JWT authentication process, I have a ASP script working for the web widget working I got it from here https://support.zendesk.com/hc/en-us/articles/203663856-Configure-Zendesk-for-your-Active-Directory-Microsoft-environment
    however I cannot figure out who to implement the same script in our mobile app as there doesn't seem to be a way to web redirect back into the app, is there something I could look at to get me on the right path?

  • 0

    Hi Stephen,

    We have some docs on the developer site to help. Both include some information on the server-side requirements

    Android
    iOS

    Here is a diagram showing the flow. Note that we expect a 200 response. We're using JWT, but this isn't JWT SSO.

    Thanks,
    Barry.

  • 0

    Thanks been reading that over but was really hoping they had some workable examples of what that looks serverside wise starting to think I'm just in over my head here.

  • 0

    Hi Stephen,

    You should be able to reuse most of the script.

    Rather than redirecting, the mobile app expects a 200 response with the jwt as a part of the body rather than a URL parameter.

    {
      "jwt": "<your_jwt_token_response>"
    }
    

    We need iat, jti, name and email in the JWT.

  • 0

    Awesome Thanks I managed to get the 200 response coming back when I test the .asp in a web browser, now I just need to figure out how to pass the authentication to IIS in the form of the user_token there's no way to have it auth the POST in a different way is there?

  • 0

    Hi Stephen,

    The user_token will be POSTed to the endpoint you define by us. If you look at 2) in the diagram above you'll see how that part of the flow works.

    1) You'll set a JWT identity in the iOS / Android code
    2) The SDK will send the JWT identity to the Zendesk Server
    3) The Zendesk server will POST it to you as a user_token to your endpoint
    4) You locate the user
    5) The JWT is passed back to Zendesk
    6) Zendesk generates an access token and send back to the SDK.

    I hope this helps!
    Barry.

  • 0

    Understand that part it's getting the endpoint to accept the user_token like the web portal jwt I'm just using iis basic authentication with asp but how to get the iis to understand the user_token I am sending it as basic authentication credentials.

  • 0

    Hi Stephen,

    We require that the JWT endpoint is not behind basic auth because our servers need to be able to communicate with it. You would need to tell IIS to not require basic auth on the your JWT endpoint.

    Thanks,
    Barry.

  • 0

    Are there any plans to allow the mobile SDK to provide contextual support (ie. depending on the page you're on in-app, you'll be served up some suggested KB articles, along with the option to search).

  • 0

    That's a great question, Amie!  The SDK has the capability to search for content or to provide suggested articles using the SDK Providers (iOS or Android) feature.  As an example, to pull suggested articles in an iOS app, you could use this code snippet to include these articles.

    I hope this helps, Amie!

  • 0

    Where does one pass the brand name in the sdk. We have it working, but tickets are coming in as the default zendesk brand and not the brand we are using it for. Where am i missing this.

    Edited by eball
  • 0

    Hi @eball! You set the brand when you initialise the Support SDK. Docs for this are below:

Please sign in to leave a comment.

Powered by Zendesk