Support SDK integration checklist
Before implementing the Support SDK, the developer, product, and support teams in your organization should work together to finalize the following integration details:
Decide what features of the framework to implement
Decide what authentication option to use
Decide whether or not to identify anonymous users who submit tickets
Decide what Zendesk Support brand to use (if applicable)
The answer to each question requires developers to coordinate activities with an administrator of your organization's Zendesk Support account. Each decision is described in more detail in the following sections.
The Support SDK consists of two standalone features:
- Help Center - Lets users browse and search your knowledge base in the Zendesk Help Center. Includes views to submit and track support requests
- Contact Us - Lets users submit support requests to your agents in Zendesk Support. Also lets them track their submitted requests
Note that while the Contact Us form is offered as a standalone feature, the same functionality is included in Help Center. You can disable it in Help Center if you want.
For feature details, see the introduction for the iOS SDK or Android SDK documentation.
These features include their own UI. If you prefer building your own UIs, the framework also includes API providers. For details, see the API providers documentation for the iOS SDK or Android SDK docs.
On the Zendesk Support side, an administrator must enable the agreed features in the Zendesk Support admin interface. If implementing Help Center, the admin must also configure it in Zendesk Support. If you're an admin, see Adding support options to your mobile app for customers in the Zendesk Help Center.
Your application must authenticate as a Zendesk Support user on each mobile device to let the person access content or create tickets in Zendesk Support. You can choose between two types of authentication:
- Anonymous access
- JSON Web Token (JWT) authentication
On the development side, developers can implement one option or the other but not both.
On the Zendesk Support side, an administrator must enable the chosen option in the Zendesk Support admin interface.
Coordinate with your IT and support teams to choose an option. For example, you can opt for JWT authentication if you meet the following requirements:
Your organization can build and maintain a dedicated JWT endpoint for the Support SDK. See Building a dedicated JWT endpoint for the Support SDK
Your organization has a user database and a way for the endpoint to query it. The Zendesk Support service will pass a unique identifier to the JWT endpoint and wait for your system to look up the user in the database and send a response that the user is known and trusted
Your mobile application has access to the unique identifier of the current user. The application can then pass the identifier to the Support SDK to authenticate the user in Zendesk Support
Even if you meet the requirements, anonymous access might still be a viable option depending on the needs of your organization. Use the following table to help you decide:
|Link tickets to existing end user in Zendesk Support||Yes||Yes (see next section)|
|End user can access tickets created on the current device||Yes||Yes|
|End user can access all their tickets||Yes||No|
|Access a restricted Help Center||Yes||No|
For implementation details, see the authentication documentation for the iOS SDK or Android SDK docs.
User identification decision
The Support SDK lets users submit support requests -- also known as tickets -- to agents in Zendesk Support. Zendesk Support creates and maintains a user record of anybody who submits a request. If you identify a user in your mobile app, the tickets they submit from the application can be linked to their user profile in Zendesk Support.
Linking tickets to users ensures that agents in Zendesk Support see all the requests created by a particular user. It also gives your organization a more complete picture of its relationship with the user.
With JWT authentication, users are always identified. You can skip this decision.
With anonymous access, you can choose to identify users or not:
If you don't identify a user, a user named "Mobile App User" is created in Zendesk Support when the user makes his or her first support request from a device. Zendesk Support uses a device identifier to associate all subsequent requests from the same device with the anonymous user in Zendesk Support. Another user named "Mobile App User" is created for requests submitted from a different device.
If you identify the user with an email address, then the requests can be linked to an existing user profile in Zendesk Support, if any. If the user doesn't have a user profile in Zendesk Support, a friendlier user record is created in Zendesk Support with the identifying information. All subsequent tickets from the user are linked to the profile in Zendesk Support.
You can also provide a name with the identifier but it's optional. A name alone can't identify a user in Zendesk Support. However, if you include it and the user doesn't exist in Zendesk Support yet, the name is used to create a user. If you don't include it, a user is still created but "Mobile App User" is used for the name instead.
Note: Identifying a user is not the same as authenticating a user. The SDK will only show the user the tickets created on the device, not all the tickets associated with the user's profile in Zendesk Support.
Zendesk Support brand decision
Every Zendesk Support account has one brand by default. In addition, the Zendesk Suite Professional and Enterprise plans in Support can have multiple brands for multiple customer segments. A "brand" is a customer-facing identity in Zendesk Support. For example, each brand can have its own Help Center. For more information, see Multibrand resources.
Out of the box, the Support SDK uses the default brand created when the Zendesk Support account was set up. If your Zendesk Support account has multiple brands, you can change the brand in the SDK. See the initialization documentation for the iOS SDK or the Android SDK.