本文へ移動
cccskills
無料GitHub で公開

analytics-requirements-gathering

Use this skill to elicit, document, and validate CRM Analytics requirements — covering data source mapping (Salesforce object sync vs external connector vs Data Cloud), transformation needs, audience-specific lens or dashboard views, and drill-down path specifications — before any dataset or dashboard is built. Trigger keywords: CRM Analytics requirements, analytics data source mapping, CRM Analytics audience requirements, analytics visualization requirements. NOT for the formula and target behind each KPI — use admin/analytics-kpi-definition. NOT for building the dashboard once requirements are agreed — use admin/analytics-dashboard-design.

インストール方法を見る

含まれるファイル(8)

  • SKILL.md13.6 KB
  • references/examples.md6.1 KB
  • references/gotchas.md8.3 KB
  • references/llm-anti-patterns.md7.7 KB
  • references/metadata-examples.md5.6 KB
  • references/well-architected.md4.9 KB
  • scripts/check_analytics_requirements_gathering.py3.7 KB
  • templates/analytics-requirements-gathering-template.md2.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Analytics Requirements Gathering

This skill activates when a practitioner needs to gather, document, and validate CRM Analytics requirements before any dataset, dataflow, or dashboard is built. It produces a requirements package: data source inventory, audience matrix, transformation requirements, refresh budget, and drill-down specifications. The analytics developer uses it as the authoritative spec.


Before Starting

Gather this context before working on anything in this domain:

  • Decide first whether stakeholders need CRM Analytics or standard Reports and Dashboards. CRM Analytics fits cross-object aggregation, external data, predictive insight, and multi-audience row-level security. For single-object reporting with no external data, standard Reports are the cheaper choice.
  • Confirm the org's CRM Analytics platform license. The Analytics Platform Setup Guide states several limits per license (for example, concurrent dataflow runs differ between CRM Analytics Plus and CRM Analytics Growth), so the license shapes the refresh plan, not only the price.
  • Synced Salesforce objects land as connected objects. The CRM Analytics REST API guide states that connected objects "can't be visualized directly"; a recipe or dataflow must build a dataset from them.
  • Capture the source type of every input (Salesforce local sync, external connection, Data Cloud, CSV upload). The type decides the extraction path, the limits that apply, and whether a recipe or dataflow is needed.

Questions to Ask Before Configuring

Ask these before anyone designs a dataset. Each one traces to a gotcha in references/gotchas.md.

QuestionWhy it mattersWhat a good answer addsWhat proper configuration adds over just doing it
"Which questions must the analytics answer, and could a standard report answer them?"CRM Analytics costs licenses and build effort; some needs fit ReportsA documented platform decision with its reasonNo dashboard built on a license the need did not justify
"Who may see which rows, and is that the same as their Salesforce record access?"A dataset without row-level security shows every row to anyone with dataset access (gotcha 3)An audience matrix with a predicate or sharing-inheritance choice per roleRow-level security designed before the first dataset exists, not retrofitted
"How fresh must each source be, and what other dataflows and recipes already run?"Dataflow and recipe runs share a 60-run rolling 24-hour limit (gotcha 5)A refresh cadence per source that fits the run budgetSchedules that keep running instead of being refused at the daily limit
"Which exact fields does each source need, including fields that hold sensitive data?"The Integration User extracts data; a job fails on fields it cannot read (gotcha 2)A field list checked against the Integration User's accessA first run that succeeds, and sensitive fields excluded on purpose
"Do predicates need custom User fields such as region or territory?"The Security User must be able to read every User field a predicate references (gotcha 6)The User fields named in the requirementPredicates that query without errors on day one
"Is any source outside this Salesforce org (another org, a warehouse, Data Cloud)?"External and output connections count against org limits differently from the local connection (gotcha 7)A source-type column in the data source matrixA refresh plan that does not surprise the integration team

What a proper requirements package adds over "just building a dashboard": a platform decision that can be defended, a row-level security model per audience, and a refresh plan that fits the org's run limits.


Core Concepts

Data Source Types

Source typeSetupGrounding
Salesforce local syncData sync loads source objects as connected objects; a recipe or dataflow builds the datasetREST guide: connected objects "can't be visualized directly"
External connectionConnector and credentials; data synced as connected objects, then prepared by a recipeREST guide, Replicated Dataset resources
Data CloudUNVERIFIED (2026-10-03): direct query of Data Cloud objects without a dataset, and its SAQL limits, are help-only claims not re-read in this passNone in fetched guides
CSV uploadCreates a dataset directly; upload with metadata for row-level securitySecurity guide: predicate in the external data metadata file

Requirements must name the type of every source. The implementation path differs per type.

Audience-Specific Views

CRM Analytics separates two access layers, and requirements must state both:

LayerWhat it controlsHow it is configured
App sharingWho can open the app and its dashboards and datasetsWaveApplication shares with View, EditAllContents, or Manage access to users, groups, or roles
Row-level securityWhich rows each user sees in a datasetA security predicate on the dataset, or sharing inheritance from Salesforce objects

Sharing inheritance increases sync, job, and query time, and the more complex the sharing settings, the larger the impact (Analytics Security Implementation Guide).

Transformation Requirements

Raw object data usually needs work before it is useful:

  • field renames for consistent naming across datasets
  • computed fields (revenue tiers, fiscal period labels, region groupings)
  • dataset joins, with the join type stated (keep every primary row, or only matches)
  • date dimension derivations (fiscal year and quarter from CloseDate)

Requirements must specify each transformation. The developer cannot infer them from field names.


Common Patterns

Pattern: Data Source Mapping Matrix

When to use: At the start of every CRM Analytics requirements engagement.

How it works:

  1. List every data source the analytics needs.
  2. For each source record the type, the connection, the fields needed, and the refresh cadence.
  3. For Salesforce objects list fields, not just objects; extra fields lengthen sync and recipe runs.
  4. For external sources confirm the connector and credentials exist or are in scope.

Pattern: Audience Matrix

When to use: More than one role will use the analytics and they should see different rows or layouts.

How it works:

  1. List every role or persona.
  2. For each role record which rows they may see (own records, team, territory, all).
  3. Record whether they need a different dashboard layout or the same dashboard filtered.
  4. Name the mechanism per role: security predicate, sharing inheritance, or app sharing only.

The worked artifact, an audience matrix turned into deployable app sharing and a dataset predicate, is in references/metadata-examples.md.


Decision Guidance

SituationRecommended ApproachReason
Single-object reporting with filters and groupingStandard Reports and DashboardsNo CRM Analytics license required
Cross-object aggregation (Opportunity, Account, Activity)CRM AnalyticsRecipes join datasets and persist the result
Predictive scoring or trend analysisCRM Analytics with Einstein DiscoveryPredictive features need the CRM Analytics license
Data from an external warehouseCRM Analytics external connectionExternal data cannot feed standard Reports
Different rows for VP and individual repSecurity predicate or sharing inheritance on the datasetApp sharing alone controls access to the app, not rows
Frequent refresh on many sourcesPlan the run budget first60 dataflow and recipe runs per rolling 24 hours, shared

Recommended Workflow

  1. Qualify the platform decision. Decide CRM Analytics or standard Reports, write the reason down, and confirm the CRM Analytics license.
  2. List the reporting questions. Every dataset and dashboard must trace to a question.
  3. Build the data source matrix. For each question identify the source, its type, the exact fields, and the refresh cadence. Check the fields against the Integration User's access.
  4. Document transformations. Joins with their type, computed fields, date derivations, and renames.
  5. Build the audience matrix. Roles, the rows each may see, the predicate or sharing-inheritance choice, and any custom User fields the predicates need.
  6. Budget the refreshes. Count every scheduled dataflow and recipe that runs longer than two minutes against the 60-run rolling 24-hour limit.
  7. Review with stakeholders and the developer. Confirm the package is complete and buildable, then hand off with references/metadata-examples.md as the configuration target.

Review Checklist

  • CRM Analytics vs standard Reports decision documented with rationale
  • CRM Analytics license confirmed
  • Every data source has a type (local sync / external / Data Cloud / CSV)
  • Field-level requirements per source, checked against the Integration User
  • Transformation requirements specified (joins with type, computed fields, date dimensions)
  • Audience matrix complete with a row-level security mechanism per role
  • Custom User fields used in predicates listed for the Security User
  • Refresh cadence per source fits the 60-run daily budget
  • Drill-down paths documented for each summary visualization

Salesforce-Specific Gotchas

The deep versions, with sources, live in references/gotchas.md.

#GotchaOne-line consequence
1Connected objects can't be visualized directlyA requirement that stops at "sync Opportunity" has no dataset
2The Integration User decides what can be extractedJobs fail on unreadable fields
3No predicate means every row for everyone with accessA shared dashboard leaks rows
4Sharing inheritance costs job and query timeHeavy sharing slows every refresh
560 dataflow and recipe runs per rolling 24 hoursAggressive cadences block other jobs
6The Security User must read predicate User fieldsQueries error when a custom User field is unreadable
7External and output connections count against org limitsIntegration budgets are hit unexpectedly

Output Artifacts

ArtifactDescription
CRM Analytics requirements documentQuestions, data source inventory, transformations, audience matrix, drill-down paths
Data source mapping matrixPer-source type, connection, fields, refresh cadence
Audience matrixRoles mapped to app sharing and row-level security
Refresh budgetScheduled jobs counted against the 60-run daily limit
CRM Analytics vs Reports decision recordDecision with rationale and license confirmation

Related Skills

  • admin/analytics-kpi-definition: define KPI formulas and targets after requirements are gathered
  • admin/saql-query-development: downstream implementation using this document
  • admin/requirements-gathering-for-sf: general Salesforce requirements gathering companion
  • admin/analytics-recipe-design: turns the transformation requirements into a recipe

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Use this skill when writing test-first, behavior-driven acceptance criteria in Given/When/Then format for a Salesforce user story. Covers happy path, edge cases, negative paths, permission boundaries, and data-state preconditions so the AC block can drive UAT scripts and Apex test design downstream. Trigger keywords: given when then, gherkin, behavior driven AC, test first acceptance criteria, scenario outline, BDD acceptance criteria. NOT for the user-story format itself (use admin/user-story-writing-for-salesforce). NOT for UAT script writing (use admin/uat-test-case-design). NOT for Apex test method generation (use agents/test-class-generator). NOT for high-level UAT planning (use admin/uat-and-acceptance-criteria). More triggers: acceptance criteria record, ac_id, req_id on a criterion, artefact under test, negative case for a rule-type requirement, no-match fall-through criterion, oracle for a Then clause, test type apex flow manual, criteria linter, check_ac_format.py, --manifest-dir.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Task and Event objects: polymorphic WhatId/WhoId, Activity object model, ActivityHistory vs OpenActivity, activity timeline customization, bulk task creation, Einstein Activity Capture boundaries. NOT for turning on EAC or calendar sync — use admin/einstein-activity-capture-setup. NOT for Email-to-Case — use admin/case-management-setup. Covers ActivitiesSettings metadata, enableActivities, shared Task/Event custom fields and FLS, TaskStatus value sets, Shared Activities and TaskRelation/EventRelation, recurring and child activities, and partial-success bulk DML on Task.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Design Invocable Apex actions that return deterministic, agent-friendly errors instead of surfacing raw exceptions to the LLM. NOT for authoring the action itself — @InvocableMethod schema, labels, security context — use agentforce/custom-agent-actions-apex. NOT for the Apex tests that force each error branch — use agentforce/agent-action-unit-tests.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Use when designing how an Agentforce agent extracts structured input parameters (slots) from a user's natural-language utterance to invoke an action. Triggers: 'agent extract date from user', 'agent action argument extraction', 'agentforce slot filling', 'agent invocable input mapping', 'agent fails to fill required parameter'. NOT for action authoring (use agentforce/agent-actions) or for prompt-template variable binding (use agentforce/prompt-builder-templates).

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Apex test patterns for @InvocableMethod agent actions: per-reason-code branch coverage, bulk safety, callout mocking, deterministic assertions. NOT for testing whether the agent routes to the right topic or answers well — use agentforce/agent-testing-and-evaluation. NOT for designing the error envelope the tests assert on — use agentforce/agent-action-error-handling.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Designing or reviewing Agentforce actions: Flow actions, Apex invocable actions, prompt-template actions, action naming, input and output contracts, confirmation requirements, and safe error behavior. Triggers: 'agent actions', 'build an agent that can look up an order', 'make the agent able to check order status', 'give the agent a capability', 'agent that can retrieve a record', 'flow action for agent', 'agent invocable action', 'action schema design'. NOT for writing the Apex class itself — use agentforce/custom-agent-actions-apex. NOT for the reason_code error envelope that stops an agent retry loop — use agentforce/agent-action-error-handling.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

PranavNagrecha のスキルをすべて見る

このスキルの問題を報告する