## Support requirements All public apps are required to provide at least one support channel that allows merchants to get help. Shopify doesn’t provide merchant support for apps built by third parties. App developers are required to support merchants in a timely manner. Having a valid support email address on file is always required, even if email isn’t your preferred support channel. ## How merchants request support Shopify displays “Get support” links to merchants in several places: - App settings page in the Shopify admin - Embedded apps display a support link in the top-right action menu - Shopify App Store listing By default, these links open a contact form in a modal so that merchants can ask for help. Shopify relays the message to your support email address on file. In some cases, this email address is publicly visible, such as on the Shopify App Store.

“Get support” link in app settings

“Get support” link in an embedded app

“Get support” link in the Shopify App Store

## Support channels You can select your preferred contact method for merchants seeking support. The available support channel options are: * Required: Email (default) * Optional: Support portal URL (such as a forum or ticketing system) * Optional: Phone number (display-only) In addition, embedded apps can use [custom support events](#custom-support-events) to trigger advanced functionality for logged-in users. ### Set your preferred support channel You can edit your preferred support channel at any time: 1. From your Partner Dashboard, open the primary app listing that you want to edit. 1. In the **Support** section of **App Store listing content**, select your preferred support channel. 1. Enter your email under **Support email address**. An email address is always required. 1. (Optional) If you selected "Support portal", then enter your URL under **Support portal URL**. 1. Click **Save**. ### Provide localized support channels By default, all localized app listings inherit the preferred support channel from your primary app listing. You can override this behavior by locale to provide different contact methods for each language. 1. From your Partner Dashboard, open the localized app listing that you want to edit. 1. In the **Support** section of **App Store listing content**, uncheck **Use support channels from primary listing** 1. Enter your email under **Support email address**. An email address is always required. 1. (Optional) If you selected "Support portal", then enter your URL under **Support portal URL**. 1. Click **Save**. ## Custom support events [Embedded apps](/docs/apps/build/admin) can use [App Bridge](/docs/api/app-bridge-library) to extend the “Get support” action. This enables advanced functionality such as initiating a real-time chat directly in your app. Custom support events are only available for logged-in users in the Shopify admin. Your preferred support channel is used in all other contexts. ### Step 1: Create a new admin link extension To opt into custom support events, you need to enable [admin link extensions](/docs/apps/build/admin/admin-links). This allows you to update the behavior of "Get support" links throughout the Shopify admin: 1. In your terminal, navigate to your embedded app project. 1. Generate a new link extension with the Shopify CLI (requires v3.71+):

This generates a new extension with this file structure:

1. Open `{app}/extensions/support-link/shopify.extension.toml` and update it to target your selected app route:

1. Run `shopify app dev` to test that your extension works as expected. 1. Run `shopify app deploy` to deploy your extension to production. Now, when merchants click "Get support" for your app from anywhere in the admin, they'll be redirected to the app's `/help` route. ### Step 2 (Optional): Register your callback in App Bridge You can optionally trigger additional custom behavior in your embedded app with a callback function. If the user was redirected to your app from elsewhere in the admin by a [link extension](#step-1-create-a-new-admin-link-extension), then the callback fires after the designated app route has loaded. If the user is already in your embedded app, then the callback fires without redirecting. The `registerHandler` method registers your callback function with App Bridge. We recommend registering this callback in your app's global context, so that it's available from any embedded app route.

Check the App Bridge API reference for complete details on the [App Bridge Support API](/docs/api/app-bridge-library/apis/support). ## Best practices and recommendations Apps that provide great support have higher merchant satisfaction, get better reviews, and make more sales. Ultimately, choosing the right tooling and methodology to best support your app’s users is up to you. Check the Shopify Partner Blog for more on [how to build effective app support processes](https://www.shopify.com/partners/blog/how-to-build-an-effective-and-friendly-app-support-process), along with [advice from experienced app developers](https://www.shopify.com/partners/blog/expert-advice-on-how-to-10x-app-support).