К основному содержанию
скилл CX Codex

dx-app-analytics-query — скилл для Claude Code

Скилл помогает получать данные об использовании управляемых пакетов через App Analytics и настраивать режим симуляции. Нужен для запросов к данным подписчиков.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add forcedotcom/sf-skills --skill dx-app-analytics-query -a claude-code
Открыть на GitHub

Что делает dx-app-analytics-query

Скилл работает с двумя типами Salesforce: AppAnalyticsQueryRequest для асинхронных запросов и AppAnalyticsSettings для настроек App Analytics. Он помогает выбрать PackageUsageSummary, PackageUsageLog или SubscriberSnapshot, задать период, пакеты и формат файла, а затем проверить состояние запроса и скачать результат.

Запрос создаётся через REST Data API, после чего агент отслеживает переходы New, Pending, Complete, Expired, Failed или NoData. Для последовательной загрузки можно использовать AvailableSince, а для тестов включить enableSimulationMode. Доступны csv и parquet, а также none, gzip и snappy.

Это повод заранее проверить срок действия DownloadUrl: после истечения DownloadExpirationTime ссылка больше не подойдёт для скачивания. AppAnalyticsQueryRequest не разворачивается через Metadata API, потому что это sObject.

Какие задачи решает

  • получить сводку использования управляемого пакета
  • запросить снимок данных подписчиков
  • настроить режим симуляции App Analytics
  • проверить состояние асинхронного запроса
  • скачать результаты в CSV или Parquet

Примеры запросов агенту

  • Разбери, как получить PackageUsageSummary для управляемого пакета через AppAnalyticsQueryRequest.
  • Настрой AppAnalyticsSettings с enableSimulationMode: true для тестирования App Analytics.
  • Проверь, почему запрос AppAnalyticsQueryRequest перешёл в состояние Failed, и объясни, что делать с ErrorMessage.

Как установить dx-app-analytics-query

1Через Skills CLI (Vercel)

npx skills add forcedotcom/sf-skills --skill dx-app-analytics-query -a claude-code

2Вручную: положить файлы

~/.claude/skills/dx-app-analytics-query/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/dx-app-analytics-query/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о dx-app-analytics-query

Что делает dx-app-analytics-query?

Скилл помогает создавать и отслеживать AppAnalyticsQueryRequest, получать данные об использовании пакетов и настраивать AppAnalyticsSettings, включая режим симуляции.

Почему AppAnalyticsQueryRequest нельзя разворачивать через Metadata API?

AppAnalyticsQueryRequest — это sObject. Его создают и проверяют через REST Data API, а AppAnalyticsSettings разворачивают через Metadata API.

Исходный текст

SKILL.md · Apache-2.0
---
name: dx-app-analytics-query
description: "ISV App Analytics metadata types — AppAnalyticsQueryRequest and AppAnalyticsSettings. Use this skill when the user asks about retrieving managed package usage data, configuring App Analytics simulation mode, querying subscriber snapshots, or understanding the AppAnalyticsQueryRequest lifecycle (New → Pending → Complete → Expired). TRIGGER when: user mentions App Analytics, AppAnalyticsQueryRequest, AppAnalyticsSettings, package usage data, subscriber analytics, ISV analytics, or simulation mode for app analytics. DO NOT TRIGGER when: the task is about standard Salesforce reports/dashboards (use reporting skills), custom SOQL on Account/Contact (use querying-soql), or Data Cloud query/search (use retrieving-datacloud)."
metadata:
  version: "1.0"
  domains: ["Developer Experience"]
  minApiVersion: "56.0"
  relatedSkills:
    - "platform-soql-query"
  cliTools:
    - tool: ["sf"]
      semver: ">=2.0.0"
---

# App Analytics

## When This Skill Owns the Task

Use `dx-app-analytics-query` when the work involves:
- Creating `AppAnalyticsQueryRequest` records via the REST/sObject API
- Configuring `AppAnalyticsSettings` via the Metadata API (simulation mode, opt-out)
- Understanding the query lifecycle: New → Pending → Complete → Expired → Failed
- Choosing between dataType values: PackageUsageSummary, PackageUsageLog, SubscriberSnapshot
- File format and compression options for analytics downloads
- Time-range filtering with startTime, endTime, availableSince
- Troubleshooting failed or expired analytics queries

Delegate elsewhere when the user is:
- Running standard CRM SOQL queries → platform-soql-query
- Working with Data Cloud SQL or DMOs → retrieving-datacloud
- Building reports/dashboards on standard objects → reporting skills
- Deploying or retrieving generic metadata XML → deploying-metadata / retrieving-metadata

---

## Available Types

### AppAnalyticsQueryRequest (REST/sObject API)

An asynchronous query request that ISV partners use to retrieve usage analytics data for their managed packages from the ISV Intelligence Data Lake. Records are created via `POST /services/data/vXX.0/sobjects/AppAnalyticsQueryRequest` and polled via `GET /services/data/vXX.0/sobjects/AppAnalyticsQueryRequest/<id>`. The system processes the query and provides a presigned download URL upon completion.

**Fields (14 properties):**

| Field | Type | Description |
|-------|------|-------------|
| DataType | string (filterable) | Type of analytics data. Values: `PackageUsageSummary`, `PackageUsageLog`, `SubscriberSnapshot` |
| RequestState | string (filterable) | Processing status. Values: `New`, `Pending`, `Complete`, `Expired`, `Failed`, `NoData`, `Delivered` |
| StartTime | string | Start of time range for requested data |
| EndTime | string | End of time range. Should be set on an hour boundary |
| AvailableSince | string | Limits query to data indexed after this time (inclusive). Use for incremental retrieval |
| PackageIds | string | Comma-delimited list of managed package IDs (033-prefix) |
| OrganizationIds | string | Comma-delimited list of subscriber org IDs to filter results |
| DownloadUrl | string | Presigned URL for downloading results. Populated when RequestState is Complete |
| DownloadSize | long | Size in bytes of the result data file |
| DownloadExpirationTime | string | Time at which the download URL expires |
| FileType | string (filterable) | Output format. Values: `csv`, `parquet` |
| FileCompression | string (filterable) | Compression. Values: `none`, `gzip`, `snappy` |
| QuerySubmittedTime | string | Time the query was submitted to the Data Lake |
| ErrorMessage | string | Diagnostic message for failed queries |

### AppAnalyticsSettings (Metadata API)

Configuration settings for ISV App Analytics that control simulation mode and opt-out behavior. Deployed via the Metadata API (`sf project deploy`) or Tooling API.

**Fields (2 properties):**

| Field | Type | Description |
|-------|------|-------------|
| enableSimulationMode | boolean (filterable) | When true, allows querying sample usage logs for integration testing without real subscriber data |
| enableAppAnalyticsOptOut | boolean (filterable) | When true, opts this subscriber org out of AppExchange App Analytics data collection |

---

## Request Lifecycle

```text
New → Pending → Complete → (download within expiration window)
                         → Expired (download URL no longer valid)
                         → Delivered (download confirmed received)
         → Failed (check errorMessage)
         → NoData (no matching records for the criteria)
```

---

## Common Patterns

### Query Package Usage Summary (last 7 days)

Create a record via the REST API:

```bash
POST /services/data/v60.0/sobjects/AppAnalyticsQueryRequest
Content-Type: application/json

{
  "DataType": "PackageUsageSummary",
  "StartTime": "<7-days-ago>T00:00:00Z",
  "EndTime": "<today-on-hour-boundary>T00:00:00Z",
  "PackageIds": "033XXXXXXXXXXXX",
  "FileType": "csv",
  "FileCompression": "gzip"
}
```

Poll the record via GET until `RequestState` reaches `Complete`, then download from `DownloadUrl`.

### Incremental Data Retrieval

Set `AvailableSince` to the timestamp of your last successful query completion to avoid re-downloading data you already have.

### Enable Simulation Mode for Testing

Deploy `AppAnalyticsSettings` via Metadata API with `enableSimulationMode: true` to query sample data without real subscribers.

---

## High-Signal Gotchas

- AppAnalyticsQueryRequest is an **sObject** — create and poll records via the REST Data API (`/sobjects/AppAnalyticsQueryRequest`), NOT via Metadata API XML deployment.
- AppAnalyticsQueryRequest does NOT have Apex triggers and does NOT flow through custom objects or Flows.
- Download URLs expire — always check `DownloadExpirationTime` before attempting download.
- `EndTime` should be set on an hour boundary for consistent results.
- `AvailableSince` is inclusive — data indexed at exactly that timestamp will be included.
- `PackageIds` uses 033-prefix IDs, not 04t (package version) IDs.
- Data is processed asynchronously by the ISV Intelligence Data Lake infrastructure. There is no synchronous query option.
- `FileType: parquet` with `FileCompression: snappy` gives optimal performance for large datasets.

---

## Output Format

```text
Analytics task: <query / configure / troubleshoot>
Data type: <PackageUsageSummary / PackageUsageLog / SubscriberSnapshot>
Package IDs: <033-prefixed IDs>
Time range: <startTime> to <endTime>
File format: <csv|parquet> / <none|gzip|snappy>
Request state: <current state>
Next step: <poll for completion / download / investigate failure>
```

© forcedotcom · Apache-2.0 · forcedotcom/sf-skills

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
app-analytics appeeky Помогает настроить трекинг мобильного приложения, собрать карту событий и оценить воронку покупок. Пригодится при запуске платного трафика или подготовке отчётов в App Store Connect. CX Codex +1 3 400установок salesforce-dx Mindrally Скилл задаёт агенту правила разработки на Salesforce DX: Apex, триггеры, LWC, scratch orgs и выкладка через SFDX CLI. CX Codex +1 688установок salesforce-developer https://github.com/Jeffallan Пишет Apex-классы, собирает Lightning Web Components, оптимизирует SOQL-запросы и настраивает пакетную обработку на платформе Salesforce. Следит за governor limits и булкифицирует код. CX Codex +1 4 300установок writing-mappings celigo Помогает писать маппинги полей и трансформации в интеграциях Celigo: Mapper 2.0, Transformation 2.0, лукапы и response mapping. CX Codex +1 3 000установок salesforce-flow-design официальный github Проверяет архитектуру Salesforce Flow: выбор типа, bulk-безопасность и обработку ошибок. Подходит для проектирования и ревью Flow перед активацией. 839установок salesforce-development Mindrally Скилл задаёт агенту правила разработки на Salesforce: Apex, триггеры, Lightning Web Components, SOQL и метаданные. Пригодится, когда пишете код для org и хотите, чтобы агент держал стиль и лимиты платформы. CX Codex +1 659установок

Из того же набора167

integration-connectivity-connected-app-configure Скилл для настройки OAuth в Salesforce: Connected Apps, External Client Apps, JWT bearer и PKCE. Пригодится, когда правите .connectedApp-meta.xml или .eca-meta.xml. CX Codex +1 5 400установок experience-ui-bundle-frontend-generate Скилл для правок интерфейса в уже собранном UI-бандле Salesforce: страницы, компоненты, вёрстка, навигация, брендинг. CX Codex +1 5 300установок agentforce-d360-analyze Скилл восстанавливает сессии Agentforce из Data Cloud по UUID или идентификатору MessagingSession. Помогает разбирать ход диалогов, когда нужно найти причину сбоя или эскалации. CX Codex +1 5 300установок experience-ui-bundle-file-upload-generate Настраивает загрузку файлов в React-компонентах Salesforce UI bundle. Помогает связать файлы с ContentVersion и отслеживать прогресс передачи. CX Codex +1 5 200установок experience-ui-bundle-custom-app-generate Создаёт CustomApplication в Salesforce для запуска React UI bundle в Lightning Experience. Пригодится, когда нужно вывести бандл в App Launcher без Digital Experience Site. CX Codex +1 5 200установок experience-ui-bundle-salesforce-data-access Подключает чтение и запись записей Salesforce в компоненты uiBundles через @salesforce/platform-sdk. Нужен, когда страница, таблица или форма должна показывать реальные данные. CX Codex +1 5 200установок experience-ui-bundle-deploy Скилл проводит деплой UI-бандла в Salesforce-орг по шагам: авторизация, сборка, метаданные, права, self-registration, SSO и codegen. CX Codex +1 5 200установок experience-ui-bundle-app-coordinate Координирует сборку приложений React UI bundle в Salesforce с нуля. Пригодится при генерации веб-приложений и SPA через связку вспомогательных скилов. CX Codex +1 5 300установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой