Apps that build custom discount types with Shopify Functions shopify/Discount can now register intents. Sidekick launches the app's create and edit flows, and the app is shown first in the candidate picker.
Even for app-specific discount types, merchants were sometimes sent to Shopify's default discount UI.
shopify/Discount With the intent's create / edit actions, Sidekick launches the app's create and edit flows. The app is also shown first in the picker.
admin.app.intent.linkIn your React Router app,navigate to an existing page. This lets you reuse your current admin pages.
admin.app.intent.renderPurpose-built Admin UI extension rendered inline.Requires API 2026-04 or later
admin.discount-details.function-settings.render -based extensions areautomatically prioritized without registration.
| Element | Details |
|---|---|
| Actions | create edit — both types are supported |
| metaschema | shopify-intent.json is used for registration |
| Baseline schema | shopify/discount.json : see reference |
| matchValue | functionId is set here to tie the intent to a specific Shopify Function implementation. Apps with multiple implementations can register a flow for each implementation. |
| value schema | In the edit flow, it carriesthe discount GID . |
| Limit | Each registered intent counts toward theper-app intent limit(the exact limit isn't specified) |
Existing extension.ui.paths | continue to work. However, declaring App Intents is recommended for deep Sidekick integration across both create and edit. |
Existing appskeep working as-is, with no migration required. Apps that don't create Function-based discount types are unaffected.
admin.app.intent.link discounts appear in the Shopify mobile app's list, buttapping them doesn't open the app's edit flow.
Existing appsrequire no changes. If you want your flows prioritized in Sidekick and the candidate picker, choose one of the following.
That alone gives it priority placement automatically.
intent.link registrationFor reusing your existing React Router–based discount UI.
intent.render registrationFor providing a focused inline UI extension (API 2026-04 or later).
matchValue set to functionId , mapping each intent 1:1 to its Function implementation. Apps with multiple implementations register one per implementation.
The intent's value schema contains the discount's GID. Design the edit screen to use it to identify the target discount.
admin.app.intent.render requires API 2026-04 or later. link can reuse existing React Router pages, making it easier to adopt.
Each registration counts toward the per-app intent limit. Apps with many Function implementations need to choose which ones to surface in Sidekick (the limit value isn't specified).
extension.ui.paths remains valid and no migration is needed. However, declaring App Intents is recommended if you want deep integration with both Sidekick create and edit.Note: with link flows, the edit screen doesn't open on mobile, so prepare guidance copy for merchants who mostly work on mobile.
admin.app.intent.link and declare both create and edit intents.matchValue(functionId) set. For ambiguous requests, let merchants choose from a picker of candidates.admin.discount-details.function-settings.render), or use admin.app.intent.render to register a purpose-scoped inline UI.intent.render requires API version 2026-04 or later. Update your target API version before you start.shopify/Discount intents can