Skip to main content

Sidekick app extensions

Developer preview

We're selecting developer partners to get limited early access and provide feedback on Sidekick app extensions. Submit your interest and we'll reach out if you're selected.

Sidekick is the AI assistant built into Shopify. It helps merchants get things done without leaving their flow. Your app can connect its data and workflows using app extensions. Sidekick can search your app’s data, answer questions with your app’s context, and take merchants straight to the right page in your app.

You can also let Sidekick assist directly inside your app. Define safe, scoped actions—like editing an email template, creating a product review, or updating a support issue—and Sidekick will suggest changes and bring up the right UI, but merchants stay in control of what gets updated. This guide shows you how to expose data sources and actions, handle authentication and permissions, and test your integration in development.

Tools extension flow chart

Anchor to How Shopify's platform powers tools & app extensionsHow Shopify's platform powers tools & app extensions

When a merchant invokes an app extension, Shopify's platform powers the interaction. The app extension is executed in the Shopify sandbox, and has access to the same APIs as your app. The app extension returns the result to Sidekick, and Sidekick displays the result to the merchant.

Tools extension sequence diagram

Anchor to Example: Search in an email appExample: Search in an email app

In this example, a merchant can ask Sidekick to find the best performing subject lines in their email campaigns. Sidekick searches using the app extension in the Shopify Messaging app, then returns the best results. Clicking on an option invokes the app, navigated right to the correct result.

Sidekick email search interface

Anchor to Expose data to SidekickExpose data to Sidekick

Use an extension to expose data in your app. By providing your app's data in an extension, Sidekick can search your app's data to get tailored results. Merchants can get value from your app just by working with Sidekick, while also staying in their flow.


Anchor to Expose actions to SidekickExpose actions to Sidekick

Use an extension to expose actions in your app. By providing your app's actions in an extension, Sidekick can take the merchant to the right page in your app to perform the action.


Anchor to Add an extensions summary to your appAdd an extensions summary to your app

When your app has one or more Sidekick-eligible extensions, you must provide an extensions_summary in your shopify.app.toml. This is a developer-written, consolidated summary of what your app's Sidekick extensions can do. Sidekick uses this summary to route merchant questions to the correct app.

The extensions_summary is separate from the description field in individual shopify.extension.toml files. While each extension's description explains what that specific extension does, the extensions_summary provides a high-level overview of all your app's Sidekick capabilities in one place.

Anchor to Configure your extensions summaryConfigure your extensions summary

Add the extensions_summary field under the [sidekick] section in your shopify.app.toml:

shopify.app.toml

[sidekick]
extensions_summary = "Search, Create, and Edit Email and SMS campaigns"
Required

The extensions_summary field is required if your app has any Sidekick-eligible extensions. Omitting this field produces a validation error when you deploy.

Limits

The extensions_summary field has a 256-token limit.

Anchor to What makes a good extensions summaryWhat makes a good extensions summary

A good extensions_summary:

  • Describes the actions your Sidekick extensions support (for example, Search, Create, Edit)
  • Includes the domain or entity types they cover (for example, Email campaigns, SMS campaigns)
  • Is specific enough for Sidekick to match merchant questions to your app

A poor extensions_summary:

  • Is generic or vague (for example, "My sidekick summary" or "Tools for your app")
  • Doesn't mention the specific operations or data types your extensions handle

Do: Be specific about what operations your extensions support and what domain they cover.

[sidekick]
extensions_summary = "Search, Create, and Edit Email and SMS campaigns"
[sidekick]
extensions_summary = "Search and analyze product reviews, create review request campaigns, and manage review display settings"

Don't: Use generic descriptions that don't help Sidekick understand your app's capabilities.

[sidekick]
extensions_summary = "My sidekick summary"
[sidekick]
extensions_summary = "Tools for your app"

Anchor to Writing effective extension descriptionsWriting effective extension descriptions

The description field in your shopify.extension.toml is how Sidekick decides whether your extension is relevant to a merchant's question. A vague or generic description means Sidekick won't know when to use your extension, and merchants will have to explicitly name your app to invoke it.

Write your description as if you're telling Sidekick exactly what your extension can do. Be specific about the domain, the type of data or actions it covers, and the kinds of merchant questions it can answer.

Anchor to What makes a good descriptionWhat makes a good description

A good description:

  • Names the specific domain your extension covers (for example, "email campaigns", "product reviews", "shipping rates")
  • Describes the concrete tasks or queries it supports

A poor description:

  • Is generic or could apply to any app (for example, "Search extension for your app")
  • Doesn't mention the specific data or actions the extension provides
  • Uses internal or technical jargon that doesn't match how merchants talk

The following examples show the difference between descriptions that work well and descriptions that don't.

Do: Be specific about what your extension does and what data it covers.

description = "Tools for working with email, searching email campaigns, and getting email campaign stats"
description = "Search and analyze product reviews, ratings, and customer feedback across your store"
description = "Look up shipping rates, delivery estimates, and carrier options for orders"

Don't: Use generic descriptions that could apply to any app.

description = "Search extension for your app"
description = "Tools for your store"
description = "Extension that helps with data"

The same guidance applies to individual tool descriptions in your tools.json file. Each tool's description field should clearly state what the tool does and what kind of input it expects, so Sidekick can choose the right tool for the merchant's request.


The following limits are enforced when you deploy your app extension or when Sidekick invokes it at runtime:

ResourceLimit
Extension description256 tokens
Extensions summary (shopify.app.toml)256 tokens
Instructions2,048 tokens
Intents per app5
Query string500 characters
Response size4,000 tokens
Response time1 second
Tool description512 characters
Tool name64 characters
Tools per app20, across all extensions

Anchor to More ways for merchants to use your appMore ways for merchants to use your app

Merchants can interact with your app in new ways, and get even more unique value. App extensions you register for your app can be invoked inline during other scenarios, helping merchants keep their place and never lose what they’re working on.

Anchor to Awareness across ShopifyAwareness across Shopify

Sidekick and the Shopify admin can suggest your app when its registered intents can help a merchant get things done. Your app can be in front of new audiences, just in time when the merchant can get the most out of it.

Anchor to Sidekick & apps gain new powersSidekick & apps gain new powers

As merchants interact with Sidekick and other apps that utilize your app's intents, your app becomes more useful and even more powerful. Merchants can get value from your app just by working with Sidekick, while also staying in their flow.


Was this page helpful?