# Release your Action

[Video](https://www.youtube.com/watch?v=7sBJd-DID2k)

Testing your Action with users gives you the opportunity to get early feedback and fix any technical or user experience issues before you release it widely.

The [Actions console](https://console.actions.google.com/) supports release environments so that you can give a limited set of users access to test a new Action, or newer version of your existing Action, before deploying it to the public.

## Lifecycle of a release

The following diagram shows potential paths the lifecycle of an Action can take:
![Diagram showing the possible lifecycle paths of releasing an Action](https://developers.google.com/static/assistant/console/images/release/release-001.png) **Figure 1.** Lifecycle of an Action with release environments.

There are two types of pre-production release environments that the Actions console supports:

- **Alpha**: This channel should be used to quickly test early versions of your Action.

  - Lets you distribute your Action to a small set of users without going through a full Google review.
  - Users are given warnings that the Action hasn't undergone a Google review for policy compliance.
  - Ideal for internal testing.
- **Beta**: This channel lets you distribute an Action to a limited set of users after passing a full Google review.

  - You should use this channel to give users outside your organization access to early versions of the Action.
  - Users will be informed that the Action is a preview version.
  - Since the beta version has passed Google review, you can elect to make it public at any time without another review by Google.

> [!NOTE]
> **Note:** You can only have one "live" alpha or beta version of your Action released.

## Release environment comparison

The table below summarizes the differences between deployment channels.

|   | Simulator | Alpha | Beta | Production |
| Intended audience | Developer only | Early testers within your team, friends, and family | Testers outside of your team | All Google Assistant users |
| Requires Google Review | No | No | Yes | Yes |
| Who has access | Developer only | Developer-defined list of users. Users must opt in. | Developer-defined list of users. Users must opt in. | Publicly available to all Google Assistant users |
| Max # of users | 1 | 20 | 200 | N/A |
| Where available | Simulator and all Assistant devices | All Assistant devices | All Assistant devices | All Assistant devices |
| Actions Builder | Supported | Supported | Supported | Yes |
| Actions SDK | Supported | Supported | Supported | Yes |
| Dialogflow | Supported | Supported | Supported | Yes |
| Smart Home | Supported (requires account linking) | Not supported | Not supported | Yes |
| Templates | Supported | Not supported | Not supported | Yes |
| Explicit invocation | Supported | Supported | Supported | Yes |
| Implicit invocation | Supported | Supported | Supported | Yes |
| Account linking | Supported | Supported | Supported | Yes |
|---|---|---|---|---|

> [!NOTE]
> **Note:** If you are using Dialogflow versioning, you can deploy different versions to different release environments. To learn more, see [Submit your project](https://developers.google.com/assistant/conversational/df-asdk/submit-project#dialogflow_versioning_faq).

## Manage tests for alpha or beta release

To set up your testing for alpha or beta, follow these steps:

1. Click either **Manage Alpha testers** or **Manage Beta testers**.
2. Type in the email addresses for the testers, separated by commas. You can specify up to 20 testers for alpha testing and up to 200 testers for beta testing.

   > [!NOTE]
   > **Note:** Testers must have a Google account (@gmail.com) or a Google Workspace. You cannot designate multiple users via a Google group email alias.

   ![Screenshot of Add Beta testers](https://developers.google.com/static/assistant/console/images/release/add-beta-tester.png)
3. Copy the **Opt-in link** to share with your testers.

4. Click **Save**.

You should send an invitation email to your testers with a link to the alpha or beta version of your Action (the opt-in link). To learn more, see [Get feedback](https://developers.google.com/assistant/console/releases#get-feedback).

### Opt-in link

The opt-in link represents your Action directory page and never changes. The link points testers to your directory page and see the opt-in card for the eligible environment. If you listed the same testers for alpha and beta, they are eligible for both and see an opt-in card for the alpha version first.

### Implement fulfillment for an alpha or beta release

The release channel information is not included in the HTTP request from Assistant to your fulfillment. To handle release channels in your fulfillment, you should provide different fulfillment URLs (for example, one fulfillment URL for the beta and another URL for the production version of your Action).

### Get feedback

Once your Action has been released to the alpha or beta release channel, you should invite your testers by sharing your opt-in link (which is the same as your Assistant directory listing).

Make sure to indicate to your testers that they must:

- Have the Google Assistant app downloaded on their mobile devices in order to perform alpha or beta testing.
- Log in to the Google Assistant app using the same account which you designated as an alpha or beta tester.

After you deploy your Action, any new testers need to wait for at least 3 hours
before they can access the Action using the opt-in link.

When users click on this link, they are directed to the corresponding Action's
directory page. They should click on the **I'm in** button at the bottom of the
Action's directory page to opt in as a tester for the first time.

After the tester opts in on their phone, your Action is immediately available
on all of their devices. Testers will see your Action in the **My Apps** section
of the Google Assistant app labeled with one of these modes: *Alpha* , *Beta* ,
or *No testing* . The *No testing* option will serve users the Production version
of your Action, if available. If there is no Production version, users will not
be served with anything.

> [!NOTE]
> **Note:** Users cannot rate your Action in the Google Assistant app if they are using alpha or beta versions. Instead, you should provide testers with a way to provide feedback by email, via a website, in a message forum, or through another suitable mechanism.

### Best practices

- **Make sure users can join the tests.** Your testers need to have a Google account (@gmail.com) or a G Suite account to join a test.
- **Choose the appropriate testing type.** An alpha testing group should be small and test the least stable, experimental versions of your Actions (such as within your company or team). Use beta testing with a larger group to test stable versions of your Actions that are near release.
- **Provide a channel for testers to send you feedback.** Alpha and beta channels are only available to your own testers. Make sure to offer them the ability to provide feedback by email, via a website, in a message forum, or through another suitable mechanism.
- **Run concurrent tests on the same action.** You can run alpha and beta tests concurrently.

### Known issues

- The Assistant directory for the web is not supported for opt-in to alpha or beta. Make sure your testers follow the link on their mobile devices (Android or iOS).
- Your changes may take a few hours to go live. Please hold off for an appropriate period of time before sharing the opt-in link with your users.

## Create a new alpha or beta release

To deploy your Action to the alpha or beta release channel, follow these steps:

1. From the Actions console, click **Deploy \> Release**.
2. Click **Start new release**.

   ![Screenshot of Start new release](https://developers.google.com/static/assistant/console/images/release/start-release.png)
3. Select **Alpha** or **Beta** and click **Submit**.

4. If prompted, indicate that you have completed the required steps in the **Action review requirements** checklist.

5. If applicable to your project, select the languages for your release.

6. Click **Submit**.

After you submit the alpha or beta version, it appears in the **Manage Releases** section.

> [!NOTE]
> **Note:** After you deploy, your version will be in the **Deploying** state for up to 3 hours before it is available to your users. After deployment is complete, other live versions in that release environment are removed.

> [!NOTE]
> **Note:** If you are a developer of the project, the test version is enabled by default on your device. If you want to access the alpha and beta versions, disable the [On device testing](https://developers.google.com/assistant/console/simulator#on-device_testing) option in the Actions console simulator.

## Upgrade an existing release from alpha or beta to production

Production releases can be a full rollout to all Google Assistant users, or a staged rollout to specific regions or a percentage of users. Staged rollouts help test the stability of your Action project. It's best to release to a small set of users and make gradual increases until you've reached 100% of users. This allows you to resolve bugs before rolling out to the entire user base.

> [!NOTE]
> **Note:** Whether released as a full or staged rollout, your Action is required to pass a review process before it's deployed to production. Only one review is required; however, if your Action is modified, it must be reviewed again. You need to submit a new version of your Action to either Beta or Production to initiate a review.

### Staged rollout

Staged rollouts allow developers to manage their production releases by launching to a subset of users and slowly ramping up to all users. You can gradually increase the regions or the percentage of users in your rollout.

> [!NOTE]
> **Note:** You cannot select a percentage of users *within* a selected region. You cannot change between staging types (*location* or *percentage of users*) when upgrading an ongoing release. You must cancel the release and start a new one if you want to change the staging type. There can be only one version active on the staged rollout track.

To deploy your Action as a staged rollout, follow these steps:

1. Under **Manage releases**, select the version to be upgraded to production rollout.
2. Click **Manage deployments**.
3. Select **Deploy to Production**.
4. Select **Staged rollout**.
5. Click **Select rollout type**.
6. Select **Specified locations** or **Percentage of users** . For more information about this selection, see [Rollout by specified locations](https://developers.google.com/assistant/console/releases#rollout-location) or [Rollout by percentage of user base](https://developers.google.com/assistant/console/releases#rollout-percent).

   ![Screenshot of selecting staged rollout](https://developers.google.com/static/assistant/console/images/release/upgrade-staged-rollout.png)
7. Click **Submit**.

To advance the stage of your rollout, see [Advance the rollout stage of a release](https://developers.google.com/assistant/console/releases#upgrade-rollout).

### Full rollout

Selecting this option releases your Action project to all users in all of your targeted countries.

To deploy your Action as a full rollout, follow these steps:

1. Under **Manage releases**, select the version to be upgraded to production rollout.
2. Click **Manage deployments**.

   ![Screenshot of selecting Manage deployments](https://developers.google.com/static/assistant/console/images/release/upgrade-mng-deploy.png)
3. Select **Deploy to Production**.

4. Select **Full rollout**.

5. Click **Submit**.

## Create a new production release without alpha or beta testing

Production releases can be a full rollout to all Google Assistant users, or a staged rollout to specific regions or a percentage of users. Staged rollouts help test the stability of your Action project. It's best to release to a small set of users and make gradual increases until you've reached 100% of users. This allows you to resolve bugs before rolling out to the entire user base.

> [!NOTE]
> **Note:** Whether released as a full or staged rollout, your Action is required to pass a review process before it's deployed to production. Only one review is required; however, if you modify your Action and release it to production, it must be reviewed again. You need to submit a new version of your Action to either beta or production to initiate a review.

### Staged rollout

Staged rollouts allow developers to manage their production releases by launching to a subset of users and slowly ramping up to all users. You can gradually increase the regions or the percentage of users in your rollout.

> [!NOTE]
> **Note:** You cannot select a percentage of users *within* a selected region. You cannot change between staging types (*location* or *percentage of users*) when upgrading an ongoing release. You must cancel the release and start a new one if you want to change the staging type. There can be only one version active on the staged rollout track.

To deploy your Action as a staged rollout, follow these steps:

1. From the Actions console, click **Deploy \> Release**.
2. Click **Start new release**.

   ![Screenshot of Start new release](https://developers.google.com/static/assistant/console/images/release/start-release.png)
3. Select **Production**.

4. If prompted, indicate that you have completed the required steps in the **Action review requirements** checklist.

5. If applicable to your project, select the languages for your release.

6. Select **Staged rollout**.

7. Click **Select rollout type**.

8. Select **Specified locations** or **Percentage of users** . For more information about this selection, see [Rollout by specified locations](https://developers.google.com/assistant/console/releases#rollout-location) or [Rollout by percentage of user base](https://developers.google.com/assistant/console/releases#rollout-percent).

   ![Screenshot of selecting staged rollout](https://developers.google.com/static/assistant/console/images/release/upgrade-staged-rollout.png)
9. Click **Submit**.

#### Rollout by specified locations

Selecting this option releases your Action project to countries or regions you choose.

To roll out your Action by location, follow these steps:

1. Click **Select countries or regions** and check the boxes for the regions to target for your release.
2. Click **Submit**.

   > [!NOTE]
   > **Note:** Only regions that you selected in location targeting are allowed.

#### Rollout by percentage of user base

This option releases your Action to a percentage of randomly selected users.

To roll out your Action to a percentage of users, follow these steps:

1. Click **Percentage of users**.
2. Select the percentage of users you want to release your Action to.

   ![Screenshot of selecting percentage of users](https://developers.google.com/static/assistant/console/images/release/upgrade-percentage.png)
3. Click **Submit**.

   > [!NOTE]
   > **Note:** You can revert this type of release by setting the percentage to 0%.

### Full rollout

Selecting this option releases your Action project to all users in all of your targeted countries.

To deploy your Action as a full rollout, follow these steps:

1. From the Actions console, click **Deploy \> Release**.
2. Click **Start new release**.

   ![Screenshot of Start new release](https://developers.google.com/static/assistant/console/images/release/start-release.png)
3. Select **Production**.

4. If prompted, indicate that you have completed the required steps in the **Action review requirements** checklist.

5. If applicable to your project, select the languages for your release.

6. Select **Full rollout**.

7. Click **Submit**.

After the production version is submitted, it appears in the **Manage Releases** section.

> [!NOTE]
> **Note:** After you deploy, your version will be in the **Deploying** state for up to 3 hours before it becomes available to your users. After deployment is complete, other live versions in that release environment will be undeployed automatically.

## Edit or undeploy a release

Once you have submitted your Action to a release channel, you can still make changes. You can test the current version, withdraw the version from review, view release details, manage deployments, undeploy, and upgrade rollout stages. This is also where you can view details on past releases.

### View and edit a release

To view release details, or make changes to your Action's release, follow these steps:

1. Under **Manage Releases** , select the version under **Release name**.
2. Choose **Edit rollout** , **Manage deployments** , or **See more**.

### Advance the rollout stage of a release

To advance the rollout stage for your Action, follow these steps:

1. Under **Manage releases**, select the version to be upgraded.
2. Click the **Edit rollout** button.
3. Make the changes to your rollout. For example, you may want to advance the user base from 5% to 20%.
4. Click **Submit**.

### Undeploy from production

- If you need to take your *staged rollout* offline, click on **Edit rollout** under **Manage releases**. You can either clear all regions or select 0%, depending on if your rollout is by location or percentage of user base.
- To undeploy an Action that is *fully rolled out* (100% of user base), click on the **Manage deployments** button under **Manage releases** and select **Undeploy from Production**.