> ## Documentation Index
> Fetch the complete documentation index at: https://docs.open.cx/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect App Store and Google Play reviews

> Connect App Store and Google Play so every new app review opens a session your AI or team can answer. Use when setting up app review replies.

Every new App Store or Google Play review opens a session in the inbox. Your AI or your team
answers it there, and the answer is published on the store as the app's one public developer reply.

Each store is connected on its own, in one of two ways:

| Store       | Connect directly                 | Or through Appfigures   |
| ----------- | -------------------------------- | ----------------------- |
| App Store   | Your App Store Connect account   | Your Appfigures account |
| Google Play | Your Google Play Console account | Your Appfigures account |

A direct connection needs no extra subscription. Appfigures needs an Appfigures plan that includes
review replies. A store uses one connection at a time.

## Before you start

* You need permission to manage channel settings in OpenCX to connect or change a store.
* In OpenCX, go to **Channels → App Reviews** and choose **Connect** on the store's card. Pick how
  to connect the store, choose **Continue**, then follow that option's setup steps.

## Connect the App Store directly

1. In [App Store Connect](https://appstoreconnect.apple.com/access/integrations/api), open
   **Users and Access → Integrations → App Store Connect API** and generate a **Team key** with the
   **Customer Support** role.
2. Download the key file (`.p8`). Apple lets you download it only once.
3. Copy the **Issuer ID** shown above the list of keys, and the **Key ID** of the new key.
4. Find each app's **Apple ID** under **App Information**.
5. In OpenCX, choose **App Store Connect**, fill in the four fields, and upload or paste the `.p8`
   file. Separate several Apple IDs with commas.

## Connect Google Play directly

1. In Google Cloud, enable the **Google Play Android Developer API** for a project, then create a
   service account and download a **JSON key** for it.
2. In [Play Console](https://play.google.com/console/developers/users-and-permissions), open
   **Users and permissions**, invite the service account's email, and grant it **Reply to reviews**
   for your apps.
3. In OpenCX, choose **Google Play Developer API**, upload or paste the JSON key, and enter the
   package names of your apps (for example `com.example.app`). Separate several with commas.

<Note>
  Google can take several hours to activate a newly invited service account. Until then, replies are
  refused and the reviews stay answerable.
</Note>

## Connect through Appfigures

1. Link your App Store Connect and Google Play Console accounts in Appfigures.
2. Create a personal access token under **Account → API** in Appfigures.
3. In OpenCX, choose **Appfigures** on the store's card and paste the token. The same token serves
   both stores.

## What happens after you connect

* New reviews appear in the inbox within a few minutes. Reviews from the last two days are collected
  when you first connect; a large backlog arrives over the next few checks rather than all at once.
* Reviews that already have a developer reply on the store are skipped.
* The session's side panel shows the rating, the reviewer's name, and the app version. For direct
  connections it also links to the store: the review itself on Google Play, and the app's reviews on
  the App Store.
* Google Play only shares reviews that include text. Star-only ratings do not open sessions.

OpenCX checks the credentials when you save. A key it can never use (a wrong file, a missing Apple
ID, a malformed package name) is rejected with a message saying what to fix. For a direct connection,
OpenCX also reads your reviews once with the new key; if the store refuses it, nothing is saved.
This proves the key can read reviews, not that it can reply: a missing reply permission only shows
when the first reply fails, and that review stays answerable once you fix it.

## Choose where collection starts

**Collect reviews from** is optional. Reviews submitted before that date never open sessions. If you
are moving a store from another connection, for example from Appfigures to a direct connection,
pick today: collection then starts from the moment you save, so reviews already in your inbox are
not opened a second time. You can change or clear it later from **Manage connection** without
entering the credentials again.

## Replying

A review takes exactly one public developer reply.

| Store       | Reply length   | Replies per hour |
| ----------- | -------------- | ---------------- |
| App Store   | No limit       | No limit         |
| Google Play | 350 characters | About 30         |

The composer counts characters against the store's limit. On the App Store, Apple publishes the
reply after its own review, so it can take a while to appear.

## Pause, switch, or disconnect

* **Pause:** turn off **Open sessions for new reviews** on the store's card. No new sessions open,
  and reviews already in the inbox stay answerable.
* **Update credentials:** choose **Manage connection** to open the current connection's settings and
  enter new credentials.
* **Switch:** disconnect the store, then connect it again, pick the other option, and set **Collect
  reviews from** to today. Reviews that arrived through the old connection can no longer be replied
  to from OpenCX; answer those on the store directly.
* **Disconnect:** deletes the stored credentials. New reviews stop opening sessions, and reviews
  already in the inbox can no longer be replied to.

## Troubleshooting

| Symptom                                                     | Fix                                                                                                                                                                                    |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| "The private key must be the full contents of the .p8 file" | Upload the `.p8` file you downloaded from App Store Connect, not a key from elsewhere.                                                                                                 |
| "Paste the full JSON key file of the service account"       | Paste the whole JSON file Google Cloud gave you, including `client_email` and `private_key`.                                                                                           |
| Google Play replies fail right after connecting             | Check the service account has **Reply to reviews** in Play Console, and allow a few hours for a new invite to take effect.                                                             |
| No new sessions                                             | Check the store's card shows **Connected**, not **Paused**, that the app IDs or package names are correct, and that **Collect reviews from** is not later than the reviews you expect. |
