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

data-storytelling-design

Designing data stories and narrative-driven analytics in Salesforce: structuring CRM Analytics dashboards for executive communication, text widgets and conditional highlights for annotation, sequential narrative in Tableau Story sheets, and Einstein Discovery narrative REST endpoints. Trigger keywords: data storytelling dashboard, executive analytics narrative, CRM Analytics text widget annotation, Tableau story sheet, smart data discovery narrative API. NOT for building the Einstein Discovery story or prediction definition - use admin/einstein-discovery-setup. NOT for choosing between Reports, CRM Analytics and Tableau - use admin/einstein-analytics-basics.

インストール方法を見る

含まれるファイル(7)

  • SKILL.md14.1 KB
  • references/examples.md7.5 KB
  • references/gotchas.md9.4 KB
  • references/llm-anti-patterns.md4.8 KB
  • references/well-architected.md3.4 KB
  • scripts/check_data_storytelling_design.py2.2 KB
  • templates/data-storytelling-design-template.md1.4 KB

SKILL.md(原文)

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

Data Storytelling Design

Use this skill when designing analytics experiences in Salesforce tools that go beyond charts — specifically when you need to guide the viewer toward a decision, frame an insight with context, or create a sequential narrative. Applies to CRM Analytics dashboard annotation, Tableau Story sheets, and Einstein Discovery narrative REST API for machine-generated insight text.


Before Starting

Gather this context before working on anything in this domain:

  • What decision should the audience make after viewing this story? Without a clear call to action, storytelling design defaults to decoration.
  • Who is the audience: executives requiring 3-second insight comprehension, operational managers needing drill-down, or frontline users acting on recommendations?
  • Which platform is in scope: CRM Analytics (text widgets, animated pages), Tableau (Story sheets), or Smart Data Discovery API (embedded programmatic narrative)?
  • Are KPIs already defined? Data storytelling design assumes KPI definitions exist — if not, use analytics-kpi-definition first.

Questions to Ask Before Configuring

Each question traces to a gotcha in references/gotchas.md.

QuestionWhy it mattersWhat a good answer addsWhat proper configuration adds over just doing it
"What should the audience decide after reading this, in one sentence?"The only narrative vehicle is a text widget, and it needs a message to bind (Gotcha 1)A headline sentence and the steps whose values it quotesThe page leads with a conclusion instead of a chart grid
"Where will people read it: desktop, CRM Analytics mobile app, Salesforce mobile app, or a phone browser?"Phones get a separate layout only if one is built, and phone browsers are not supported for embedded dashboards (Gotcha 4)A layout per device and a page order for the phoneThe story survives the device it is read on
"Does any list in the story need to be complete?"Values tables show 100 rows and compare tables 2,000 by default (Gotcha 3)A stated row limit or a linked detail pageNo headline claims completeness the widget does not deliver
"Does the story include machine-written insight from Einstein Discovery?"The narrative comes from a REST resource someone must call and render (Gotcha 2)The surface (LWC, Visualforce, integration) and a human review stepGenerated text appears where the audience reads it, after review
"Will any number come live from outside Salesforce?"Apex steps cost API calls and are not packaged (Gotcha 5)A scheduled dataset for external figures, or an accepted API costThe story deploys to other orgs and does not load the API budget
"Is this a recurring review in Tableau, and must past versions stay frozen?"Story points follow their source sheets and lose some dynamic features (Gotcha 6)Duplicated source sheets and a fixed story sizeThe board sees the story that was approved, at the size it was designed for

What proper configuration adds over "just building a dashboard": one message per page that updates with the data, a layout per device, and limits stated where the audience can see them.

Core Concepts

The Salesforce CRM Analytics Design Framework

Salesforce's CRM Analytics design guidance defines three principles (UNVERIFIED (2026-10-03): the Trailhead units cited for this framework and the Z-pattern returned HTTP 404 on 2026-10-03, so the wording below could not be re-checked):

  1. Clarity — One primary message per page. Eliminate visual noise. Prioritize the insight over the mechanism.
  2. Efficiency — Minimize the number of interactions to reach the key insight. Pre-compute answers rather than asking users to calculate mentally.
  3. Consistency — Use the same color, layout, and interaction patterns across all pages. Do not alternate chart types for the same metric category.

The prescribed layout is a Z-pattern: summary metric tiles at top-left, supporting context to the right, detail charts below-left, and filter/action controls below-right. This matches natural reading patterns for left-to-right audiences and ensures executives see the headline number first.

Storytelling Surfaces Are Bifurcated by Tool

Salesforce has three distinct storytelling surfaces with different builder toolchains:

  1. CRM Analytics: Narrative is built via text widgets (static or dynamic text bound to step selections or results), conditional highlights (number and chart properties such as numberColor set from another step's results through bindings), and pages within each layout. The documented widget types include no "executive summary" type, so all narrative is built with text widgets and layout discipline. UNVERIFIED (2026-10-03): the earlier "animated pages (step-through presentation mode)" feature does not appear in the Dashboard JSON Guide.

  2. Tableau: Has dedicated Story sheets — a separate workbook tab type that arranges a sequence of views with captioned navigation. Story sheets support annotations directly on chart views. Tableau Pulse (part of Tableau Cloud) delivers automated narrative digests to Slack and email based on metric subscriptions.

  3. Einstein Discovery / Smart Data Discovery: The Einstein Discovery REST API returns narrative data for a story from POST /services/data/vXX.X/smartdatadiscovery/narrative (API 51.0+). These narratives must be surfaced in custom Visualforce pages, LWC components, or Experience Cloud; nothing in the documentation places them in CRM Analytics dashboards automatically.

CRM Analytics Text Widgets for Contextual Annotation

A text widget in CRM Analytics can contain:

  • Static narrative text (titles, definitions, caveats)
  • Dynamic values bound to dataset queries (e.g., "Revenue is {value} this quarter")
  • Conditional formatting based on step results

The most common storytelling mistake is omitting text widgets entirely, leaving dashboards as chart grids with no context. The text widget is the primary vehicle for executive framing in CRM Analytics.


Common Patterns

Pattern: Z-Pattern Executive Summary Dashboard

When to use: When building a CRM Analytics dashboard for C-suite or VP-level audiences requiring a 30-second status read.

How it works:

  1. Row 1 (full width): 3–5 metric tiles with KPI names, current period values, and conditional highlights (green/yellow/red thresholds).
  2. Row 1, rightmost: A text widget with the single-sentence narrative — the headline insight.
  3. Row 2: Two supporting charts (trend and breakdown) that explain the headline metrics.
  4. Row 3: Drill-down table or filter controls for managers who need detail.

Why not a chart grid without text: a chart grid leaves the viewer to find the message. UNVERIFIED (2026-10-03): the earlier statement that Salesforce's Trailhead content "establishes" this comes from Trailhead units that returned HTTP 404 on 2026-10-03.

Pattern: Tableau Story Sheet for Sequential Narrative

When to use: When the insight requires building up context across multiple views — problem, root cause, recommendation.

How it works:

  1. Build individual Tableau worksheets for each step of the story.
  2. Create a Story sheet (New Story in Tableau Cloud/Desktop).
  3. Add each worksheet as a Story Point with a caption telling the viewer what to conclude.
  4. Use annotations on chart points to call out specific data moments.

Why not multiple dashboard tabs: Dashboard tab navigation requires the viewer to discover the sequence. Story sheets enforce guided sequence and are presentation-mode compatible.


Decision Guidance

SituationRecommended ApproachReason
Executive CRM Analytics dashboardZ-pattern layout + text widgets + conditional highlightsOfficial design framework prescribes this pattern
Sequential narrative presentationTableau Story sheetsDesigned for guided sequential narrative
Machine-generated insight text in a custom LWCSmart Data Discovery narrative REST APIProgrammatic narrative endpoint for embedding in custom surfaces
Frontline user dashboard with action triggersCompact metric tiles + filter controlsEfficiency principle: minimize clicks to action
Automated narrative digest in SlackTableau Pulse metric subscriptionsPulse delivers AI-generated digest summaries to Slack/email
Chart-type selection for a specific metricUse analytics-dashboard-design skillThat skill covers chart type, binding, and faceting mechanics

Recommended Workflow

Step-by-step instructions for an AI agent or practitioner working on this task:

  1. Define the audience and decision — Write one sentence: "After viewing this story, [audience] will [take this action or make this decision]." If this sentence cannot be written, design has not started.
  2. Select the platform surface — Choose CRM Analytics, Tableau Story sheets, or Smart Data Discovery API based on tool access and delivery channel.
  3. Design the layout — For CRM Analytics: apply the Z-pattern. For Tableau: plan the Story Point sequence. Map each visual element to evidence supporting the primary message.
  4. Write narrative text first — Draft text widget content for CRM Analytics or Story Point captions for Tableau before building charts. Narrative-first design prevents "chart soup."
  5. Configure conditional highlights — In CRM Analytics metric tiles, set color thresholds matching the business definition of on-track, at-risk, and critical. Use the same threshold values across all KPI tiles on a page.
  6. Validate with target audience — Do a 30-second test: show the dashboard for 30 seconds, then ask what action the viewer would take. Revise the narrative structure if they cannot answer clearly.
  7. Build the phone layout and check the limits: add a Mobile gridLayouts entry with its own page order, set row limits on tables, and compare against the worked dashboard JSON in references/examples.md, Example 3.

Review Checklist

Run through these before marking work in this area complete:

  • Primary call to action defined and reflected in layout
  • Z-pattern applied (CRM Analytics) or Story Point sequence defined (Tableau)
  • Text widget narrative present on CRM Analytics dashboard pages
  • Conditional highlights configured with business-meaningful thresholds
  • Consistent color and layout patterns across all pages/sheets
  • 30-second readability test passed with a representative viewer

Salesforce-Specific Gotchas

The full list with sources is in references/gotchas.md. The ones that most often break a story:

GotchaConsequence
No executive summary widget (Gotcha 1)The headline must be a text widget, ideally bound to step values
Narrative comes from /smartdatadiscovery/narrative (Gotcha 2)Custom code calls and renders it; the earlier /wave/smartdatadiscovery/narratives path was wrong
Default table rows 100 or 2,000 (Gotcha 3)Lists look complete but are truncated unless the step sets a limit

Output Artifacts

ArtifactDescription
Layout blueprintZ-pattern or Story Point sequence diagram for the target surface
Text widget contentNarrative text for each page, bound to dataset values where applicable
Conditional highlight thresholdsColor threshold definitions per KPI metric
Storytelling surface decisionDocuments which platform surface was chosen and why

Related Skills

  • admin/analytics-dashboard-design — Use for chart type selection, binding, faceting, and SAQL step configuration — the technical layer below storytelling
  • admin/analytics-kpi-definition — Use to define KPI formulas and metric logic before designing the narrative around them
  • admin/analytics-requirements-gathering — Use to elicit stakeholder requirements before designing any analytics experience
  • agentforce/einstein-discovery-development — Use for Einstein Discovery story creation and narrative REST API integration

レビュー

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

同じリポジトリのスキル

概要と使いどころ

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 のスキルをすべて見る

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