Skip to main content

Migrate from the Partner Dashboard

The Dev Dashboard replaces the Partner Dashboard for app development. This unified platform provides the same powerful tools for both Partners and merchants, with an improved development experience. This guide helps you understand how to migrate your existing apps and workflows.


If your app doesn't have extensions, then migration is fully automatic and you can familiarize yourself with what's changed in the Dev Dashboard.

If your app has extensions, then you'll need to take additional steps after Shopify migrates you to the Dev Dashboard. Your current installations will continue to function, but to keep building and updating post-migration, you will need to:


Anchor to Migrate dashboard-managed extensionsMigrate dashboard-managed extensions

Note

You can no longer create and manage app extensions through dashboards. You'll only be able to create and manage extensions using Shopify CLI.

The following extension types currently managed through the Partner Dashboard need to be migrated. See the migration documentation for each extension type for more details:

Extension TypeDescriptionMigration Documentation
Admin linksDeep links, app navigation, and custom bulk operations from Shopify adminMigrate admin links
Flow lifecycle EventsFlow trigger usage notificationsMigrate legacy Flow extensions
Flow actionsShopify Flow integrations for actionsMigrate legacy Flow extensions
Flow triggersShopify Flow integrations for triggersMigrate legacy Flow extensions
Marketing activity extensionsMarketing campaign integrationsMigrate marketing activity extensions

Anchor to Use CLI-managed app configurationUse CLI-managed app configuration

As part of this transition, CLI-managed app configuration from your shopify.app.toml is now always included when you run shopify app deploy and shopify app dev. Shopify CLI will automatically remove the include_config_on_deploy property from your shopify.app.toml file.

If your shopify.app.toml isn't up to date with values on your dashboard, then use shopify app config link.

Caution

If you see unexpected configuration changes when running shopify app deploy, then your shopify.app.toml may not be up to date with values set using your dashboard.

Learn more about managing app config files.


Anchor to Migrate to extension user identifiersMigrate to extension user identifiers

As part of this transition, all extensions need to include user identifiers in the uid field of their shopify.extension.toml. The UID only needs to be set once and can be reused across all copies of your app. Extension UIDs are unique, source-defined, app-scoped identifiers that are used by shopify app deploy to determine whether an extension is being created, updated, or deleted.

Non-interactive deploys (shopify app deploy --force) and the shopify app dev command will fail until you've completed these steps.

Note

The uid is different from the extension identifiers found in the .env file, that were previously generated by shopify app deploy. After mapping uid values during app deploy, the .env extension identifiers are no longer used, and uid values can be shared across all copies of your app.

A one-time interactive deploy is required to create and map uid values:

  1. Run shopify app deploy against a code branch that represents the current release of your app.
    • Shopify CLI generates a new uid value for each extension, based on the extension handle, and writes it to the shopify.extension.toml file.
    • In the confirmation prompt for the deploy, Shopify CLI will indicate that all your extensions are updated.
      Caution

      Removing and adding an extension can result in data loss on installed stores. If you see extensions that are new and removed, instead of updated, this indicates a failure to map the extension. Update the extension handle or .env environment variable to match the extension on Shopify.

    • Select Yes to confirm the deploy and release of the app.
    • The uid values are set on Shopify as the identifiers for your extensions.
  2. Commit the new uid values to your source control.
  3. For each additional app instance:
    1. Merge the new uid values into the appropriate code branch for the app instance.
    2. Run shopify app deploy --config <name> to map the same uid values to the app instance.

Anchor to How extensions are mapped to ShopifyHow extensions are mapped to Shopify

During uid mapping, Shopify CLI uses the following logic to map extensions to Shopify:

  1. Identify the active .env file for the current app configuration. For example:
    • If shopify.app.toml is active, then .env is used.
    • If shopify.app.prod.toml is active, then .env.prod is used.
  2. Look for an extension identifier in the .env file for the current app configuration, based on the extension handle. The environment variable is named SHOPIFY_<HANDLE_SNAKE_CASE>_ID. For example:
    • If the extension handle is discount, then the environment variable is SHOPIFY_DISCOUNT_ID.
    • If the extension handle is product-reviews, then the environment variable is SHOPIFY_PRODUCT_REVIEWS_ID.
  3. If an extension identifier isn't found in .env, then match on the extension type and handle.
  4. If no match is found, prompt for any potential matches.
Note

Prior to Dev Dashboard migration, the shopify app deploy command populated these .env files. If an .env file is not available for your app configuration, update extension handles to match their values on Shopify.

After this initial deploy, the only value used to determine if an extension is being created, updated, or deleted is the uid value.


The Dev Dashboard consolidates app development tools into a single, modern interface that's integrated with your Shopify organization. Here's what's moving:

  • App creation and configuration moves from the Partner Dashboard to the Dev Dashboard.
  • Development stores are now managed in the Dev Dashboard with more flexibility.

  • Monitoring and logs are now available directly in the Dev Dashboard.
  • Shopify CLI connects to the Dev Dashboard seamlessly (requires the latest version of Shopify CLI).
  • Metafield and metaobject definitions can now be configured declaratively through your app configuration.

  • User permissions are now managed through your organization settings, not separately.
  • Role-based access integrates with Shopify's standard user management.
  • Organization-wide app access for all stores in your organization.

Was this page helpful?