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

# App Store Connect (write)

> Let the agent ship metadata changes, version creates, and review replies directly to App Store Connect.

The `asc_write` integration uses the same App Store Connect credentials you've already set up for read-only sync — it just unlocks the **write** capability for the agent.

## Prerequisite

You must already have a working App Store Connect connection on Appeeky (used for the daily metrics sync). Without that, the agent has nothing to write *as*.

## Enable

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X PUT https://api.appeeky.com/v1/cofounder/integrations/asc_write \
  -H "X-API-Key: $APPEEKY_KEY" \
  -d '{ "credentials": {}, "integrationConfig": {} }'
```

There are no credentials to provide — the existing ASC connection is reused.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
PUT /v1/cofounder/preferences
{
  "agentMode": "write",
  "enabledIntegrations": ["asc_write"]
}
```

## Action types

In write mode + `asc_write` enabled, the agent can propose:

### `asc_metadata_update`

Update one of: `keywords`, `description`, `subtitle`, `promotional_text`, `whats_new` for a given locale.

```jsonc theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "type": "asc_metadata_update",
  "field": "subtitle",
  "currentValue": "Take amazing screenshots",
  "proposedValue": "AI-powered screenshot stitching",
  "rationale": "Aligns with rising 'AI' keyword volume; competitors started shipping similar wording last week.",
  "locale": "en-US"
}
```

### `asc_review_reply`

Replies to a specific user review.

```jsonc theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "type": "asc_review_reply",
  "reviewId": "...",
  "reviewTitle": "Crashes",
  "reviewRating": 1,
  "proposedReply": "Sorry to hear that — we shipped a fix in v3.2.2 yesterday...",
  "tone": "apologetic"
}
```

### `asc_version_create`

Creates a draft version (you still need to upload a build via Xcode).

```jsonc theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "type": "asc_version_create",
  "versionString": "3.2.2",
  "whatsNew": "Hotfix: addresses crash on launch reported in iOS 17.4...",
  "rationale": "5 one-star reviews in 24h all reference v3.2.1 launch crash."
}
```

## Recommended approval workflow

1. Start in `agentMode: "read"` for the first week to see what the agent *would* propose.
2. Switch to `write` but don't auto-approve anything.
3. Review proposed actions in `cofounder_actions` (or via Slack approval buttons).
4. After 2-3 weeks, add `asc_review_reply` to `autoApproveTypes` — replies are reversible.
5. Keep `asc_metadata_update` and `asc_version_create` in manual approval indefinitely. They're not reversible without another change cycle.

## How approvals work

In review mode, every proposed action lands in `cofounder_actions` with `status: "proposed"`. Approve/reject via:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
PATCH /v1/cofounder/actions/<actionId>/review
{ "decision": "approved" }
```

When approved, the action is queued for execution by the actor on the next run cycle. Or if you have Slack with a Bot Token, click the inline buttons.

## My Apps draft fallback (2026-07)

Not every account can write to App Store Connect live (missing **App Manager** role, expired key, etc.). **Google Play** apps never receive ASC writes. Co-founder still proposes the same `asc_metadata_update` / `asc_version_create` actions — the actor tries ASC first, then:

| Outcome                 | What happens                                                                     |
| ----------------------- | -------------------------------------------------------------------------------- |
| ASC succeeds            | Live metadata/version updated as today                                           |
| ASC fails or Google app | Draft saved in **My Apps → Localizations** or **Releases** (`source: cofounder`) |
| Run status              | Still **completed** — briefing notes *"Review in My Apps before publishing"*     |

This matches the dashboard workflow: generate → review → publish. Chat tools `publish_localization` and the Localizations tab publish endpoint push drafts to the live store when credentials allow.

See [My Apps workspace](../capabilities/my-apps-workspace) for the full tool list.

## Safety guarantees

* The agent never proposes changes that contradict your most recent live metadata without flagging the diff in the rationale
* Every applied change is recorded in `cofounder_memory_episodes` with before/after metric snapshots so you can measure outcomes (see [A/B Test Memory](../capabilities/ab-test-memory))
* ASC writes are **per-locale** — the agent never applies a change globally without you choosing the locale explicitly
