agentforce-architectur…
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA…
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
Claude Code
$ npx -y skills add forcedotcom/sf-skills --skill dx-app-analytics-query --agent claude-code
Codex
$ npx skills add forcedotcom/sf-skills --skill dx-app-analytics-query -a codex -y
Cursor
$ npx skills add forcedotcom/sf-skills --skill dx-app-analytics-query -a cursor -y
Gemini CLI
$ npx skills add forcedotcom/sf-skills --skill dx-app-analytics-query -a gemini-cli -y
GitHub Copilot
$ npx skills add forcedotcom/sf-skills --skill dx-app-analytics-query -a github-copilot -y
OpenCode
$ npx skills add forcedotcom/sf-skills --skill dx-app-analytics-query -a opencode -y
Windsurf
$ npx skills add forcedotcom/sf-skills --skill dx-app-analytics-query -a windsurf -y
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"Use `dx-app-analytics-query` when the work involves:
Delegate elsewhere when the user is:
---
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 |
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 |
---
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)---
Create a record via the REST API:
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`.
Set `AvailableSince` to the timestamp of your last successful query completion to avoid re-downloading data you already have.
Deploy `AppAnalyticsSettings` via Metadata API with `enableSimulationMode: true` to query sample data without real subscribers.
---
This repository provides Salesforce agent skills, plugins, and sample apps for building applications.
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA…
Use this skill to Upgrade Einstein Bots into Agentforce agents end-to-end in a single pass, orchestrating per-bot Agent Spec…
Data Cloud 360° view of a single Agentforce session. TRIGGER when user asks to trace, inspect, summarize, or describe a specific…
Build, modify, audit, repair, optimize, debug, and deploy agents with Agentforce Agent Script. TRIGGER when: user creates,…
Analyze production Agentforce agent behavior using session traces and Data Cloud, and manage Agent Health Monitoring (AHM)…
Use to design an AI agent persona — identity, voice, tone, behavioral style, guardrails — and encode it into Agent Script (.agent…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.