@salesforce/afv-skills 1.41.0 → 1.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/package.json +1 -1
  2. package/skills/dx-app-analytics-query/SKILL.md +1 -3
  3. package/skills/platform-dataspace-access-configure/SKILL.md +1 -3
  4. package/skills/data360-activate/README.md +0 -38
  5. package/skills/data360-activate/SKILL.md +0 -127
  6. package/skills/data360-connect/README.md +0 -57
  7. package/skills/data360-connect/SKILL.md +0 -163
  8. package/skills/data360-connect/examples/connections/heroku-postgres.json +0 -15
  9. package/skills/data360-connect/examples/connections/ingest-api-connection.json +0 -5
  10. package/skills/data360-connect/examples/connections/ingest-api-schema.json +0 -31
  11. package/skills/data360-connect/examples/connections/redshift.json +0 -16
  12. package/skills/data360-connect/examples/connections/sharepoint-unstructured.json +0 -20
  13. package/skills/data360-connect/examples/connections/snowflake-connection.json +0 -42
  14. package/skills/data360-harmonize/README.md +0 -31
  15. package/skills/data360-harmonize/SKILL.md +0 -126
  16. package/skills/data360-orchestrate/README.md +0 -120
  17. package/skills/data360-orchestrate/SKILL.md +0 -263
  18. package/skills/data360-orchestrate/assets/definitions/activation-target.template.json +0 -5
  19. package/skills/data360-orchestrate/assets/definitions/activation.template.json +0 -7
  20. package/skills/data360-orchestrate/assets/definitions/calculated-insight.template.json +0 -7
  21. package/skills/data360-orchestrate/assets/definitions/data-action-target.template.json +0 -5
  22. package/skills/data360-orchestrate/assets/definitions/data-action.template.json +0 -5
  23. package/skills/data360-orchestrate/assets/definitions/data-graph.template.json +0 -21
  24. package/skills/data360-orchestrate/assets/definitions/data-stream.template.json +0 -55
  25. package/skills/data360-orchestrate/assets/definitions/dmo.template.json +0 -17
  26. package/skills/data360-orchestrate/assets/definitions/identity-resolution.template.json +0 -30
  27. package/skills/data360-orchestrate/assets/definitions/mapping.template.json +0 -14
  28. package/skills/data360-orchestrate/assets/definitions/relationship.template.json +0 -12
  29. package/skills/data360-orchestrate/assets/definitions/search-index.template.json +0 -9
  30. package/skills/data360-orchestrate/assets/definitions/segment.template.json +0 -16
  31. package/skills/data360-orchestrate/references/feature-readiness.md +0 -157
  32. package/skills/data360-orchestrate/references/plugin-setup.md +0 -138
  33. package/skills/data360-orchestrate/scripts/bootstrap-plugin.sh +0 -53
  34. package/skills/data360-orchestrate/scripts/diagnose-org.mjs +0 -511
  35. package/skills/data360-orchestrate/scripts/generate-manifest.mjs +0 -68
  36. package/skills/data360-orchestrate/scripts/verify-plugin.sh +0 -58
  37. package/skills/data360-prepare/README.md +0 -50
  38. package/skills/data360-prepare/SKILL.md +0 -203
  39. package/skills/data360-prepare/examples/ingestion-api/.env.example +0 -8
  40. package/skills/data360-prepare/examples/ingestion-api/README.md +0 -48
  41. package/skills/data360-prepare/examples/ingestion-api/send-data.py +0 -144
  42. package/skills/data360-query/README.md +0 -43
  43. package/skills/data360-query/SKILL.md +0 -128
  44. package/skills/data360-query/examples/search-indexes/hybrid-structured.json +0 -44
  45. package/skills/data360-query/examples/search-indexes/vector-knowledge.json +0 -43
  46. package/skills/data360-segment/README.md +0 -35
  47. package/skills/data360-segment/SKILL.md +0 -123
@@ -1,126 +0,0 @@
1
- ---
2
- name: data360-harmonize
3
- description: "Salesforce Data Cloud Harmonize phase. Use this skill when the user works with DMOs, mappings, relationships, identity resolution, unified profiles, data graphs, or universal IDs. TRIGGER when: user works with DMOs, mappings, relationships, identity resolution, unified profiles, data graphs, or universal IDs. DO NOT TRIGGER when: the task is only about streams/DLOs (use data360-prepare), segments/insights (use data360-segment), retrieval/search (use data360-query), or STDM/session tracing (use agentforce-observe)."
4
- metadata:
5
- cliTools:
6
- - tool: ["node"]
7
- semver: ">=18.0.0"
8
- - tool: ["sf"]
9
- semver: ">=2.0.0"
10
- relatedSkills:
11
- - "agentforce-observe"
12
- - "data360-orchestrate"
13
- - "data360-prepare"
14
- - "data360-query"
15
- - "data360-segment"
16
- version: "1.0"
17
- domains: ["Data 360"]
18
- ---
19
-
20
- # data360-harmonize: Data Cloud Harmonize Phase
21
-
22
- Use this skill when the user needs **schema harmonization and unification work**: DMOs, field mappings, relationships, identity resolution, unified profiles, data graphs, or universal ID lookup.
23
-
24
- ## When This Skill Owns the Task
25
-
26
- Use `data360-harmonize` when the work involves:
27
- - `sf data360 dmo *`
28
- - `sf data360 identity-resolution *`
29
- - `sf data360 data-graph *`
30
- - `sf data360 profile *`
31
- - `sf data360 universal-id lookup`
32
-
33
- Delegate elsewhere when the user is:
34
- - still ingesting streams or building DLOs → [data360-prepare](../data360-prepare/SKILL.md)
35
- - working on segment logic or calculated insights → [data360-segment](../data360-segment/SKILL.md)
36
- - running SQL, describe, or search-index workflows → [data360-query](../data360-query/SKILL.md)
37
-
38
- ---
39
-
40
- ## Required Context to Gather First
41
-
42
- Ask for or infer:
43
- - source DLO and target DMO names
44
- - whether the task is schema creation, mapping, IR, or graph-related
45
- - target org alias
46
- - whether a ruleset already exists
47
- - the user’s desired unified entity model
48
-
49
- ---
50
-
51
- ## Core Operating Rules
52
-
53
- - Inspect DMO schema before creating mappings.
54
- - Run the shared readiness classifier before mutating harmonization assets: `node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase harmonize --json`.
55
- - Prefer `dmo list --all` when browsing the catalog, but use first-page `dmo list` for fast readiness checks.
56
- - Use `query describe` or `dmo get --json` instead of inventing unsupported describe flows.
57
- - Treat identity resolution runs as asynchronous and verify results after execution.
58
- - Keep unified-profile work separate from STDM/session tracing work.
59
-
60
- ---
61
-
62
- ## Recommended Workflow
63
-
64
- ### 1. Classify readiness for harmonize work
65
- ```bash
66
- node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase harmonize --json
67
- ```
68
-
69
- ### 2. Inspect the catalog
70
- ```bash
71
- sf data360 dmo list --all -o <org> 2>/dev/null
72
- sf data360 identity-resolution list -o <org> 2>/dev/null
73
- ```
74
-
75
- ### 3. Inspect schema before mapping
76
- ```bash
77
- sf data360 query describe -o <org> --table ssot__Individual__dlm 2>/dev/null
78
- sf data360 dmo get -o <org> --name ssot__Individual__dlm --json 2>/dev/null
79
- ```
80
-
81
- ### 4. Create or review mappings intentionally
82
- ```bash
83
- sf data360 dmo mapping-list -o <org> --source Contact_Home__dll --target ssot__Individual__dlm 2>/dev/null
84
- sf data360 dmo map-to-canonical -o <org> --dlo Contact_Home__dll --dmo ssot__Individual__dlm --dry-run 2>/dev/null
85
- ```
86
-
87
- ### 5. Run IR only after mappings are trustworthy
88
- ```bash
89
- sf data360 identity-resolution create -o <org> -f ir-ruleset.json 2>/dev/null
90
- sf data360 identity-resolution run -o <org> --name Main 2>/dev/null
91
- ```
92
-
93
- ---
94
-
95
- ## High-Signal Gotchas
96
-
97
- - `dmo list` should usually use `--all`.
98
- - Use `query describe` or `dmo get --json`; there is no `dmo describe` command.
99
- - Mapping and related commands can be sensitive to API-version differences.
100
- - Unified DMO names are ruleset-specific rather than generic.
101
- - Data graph definitions are sensitive to field selection and relationship shape.
102
- - If `dmo list` works but `identity-resolution list` is gated, treat that as a phase-specific gap rather than a full Data Cloud outage.
103
-
104
- ---
105
-
106
- ## Output Format
107
-
108
- ```text
109
- Harmonize task: <dmo / mapping / relationship / ir / data-graph>
110
- Source/target: <dlo → dmo or ruleset/graph names>
111
- Target org: <alias>
112
- Artifacts: <json files / commands>
113
- Verification: <passed / partial / blocked>
114
- Next step: <segment / retrieve / follow-up>
115
- ```
116
-
117
- ---
118
-
119
- ## References
120
-
121
- - [../data360-orchestrate/assets/definitions/dmo.template.json](../data360-orchestrate/assets/definitions/dmo.template.json)
122
- - [../data360-orchestrate/assets/definitions/mapping.template.json](../data360-orchestrate/assets/definitions/mapping.template.json)
123
- - [../data360-orchestrate/assets/definitions/relationship.template.json](../data360-orchestrate/assets/definitions/relationship.template.json)
124
- - [../data360-orchestrate/assets/definitions/identity-resolution.template.json](../data360-orchestrate/assets/definitions/identity-resolution.template.json)
125
- - [../data360-orchestrate/assets/definitions/data-graph.template.json](../data360-orchestrate/assets/definitions/data-graph.template.json)
126
- - [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
@@ -1,120 +0,0 @@
1
- # data360-orchestrate
2
-
3
- Salesforce Data Cloud skill family for sf-skills. This is the **cross-phase orchestrator** for community-driven Data Cloud workflows built around the external `sf data360` CLI runtime.
4
-
5
- ## What this skill is for
6
-
7
- Use `data360-orchestrate` when the task spans multiple Data Cloud phases:
8
- - connection + ingestion + harmonization setup
9
- - troubleshooting a Data Cloud pipeline end to end
10
- - managing data spaces or data kits
11
- - deciding which specialized Data Cloud skill to use next
12
-
13
- ## What this skill is *not*
14
-
15
- - It does **not** vendor or fork the external Data Cloud CLI plugin.
16
- - It does **not** use MCP.
17
- - It does **not** replace phase-specific skills once the problem is localized.
18
- - It does **not** cover STDM/session tracing/parquet analysis; use `agentforce-observe` for that.
19
-
20
- ## Data Cloud skill family
21
-
22
- | Skill | Purpose |
23
- |---|---|
24
- | [data360-orchestrate](../data360-orchestrate/) | Orchestrator, data spaces, data kits, cross-phase workflows |
25
- | [data360-connect](../data360-connect/) | Connections, connectors, source discovery |
26
- | [data360-prepare](../data360-prepare/) | Data streams, DLOs, transforms, DocAI |
27
- | [data360-harmonize](../data360-harmonize/) | DMOs, mappings, identity resolution, data graphs |
28
- | [data360-segment](../data360-segment/) | Segments, calculated insights |
29
- | [data360-activate](../data360-activate/) | Activations, activation targets, data actions |
30
- | [data360-query](../data360-query/) | SQL, async query, vector search, search indexes |
31
-
32
- ## Runtime model
33
-
34
- This family assumes:
35
- - Salesforce CLI (`sf`)
36
- - a Data Cloud-enabled org
37
- - the external community `sf data360` plugin linked into `sf`
38
-
39
- See [references/plugin-setup.md](references/plugin-setup.md).
40
-
41
- ## Deterministic helpers included
42
-
43
- | Path | Purpose |
44
- |---|---|
45
- | [scripts/bootstrap-plugin.sh](scripts/bootstrap-plugin.sh) | Clone/update the community plugin, compile it, and link it into `sf` |
46
- | [scripts/verify-plugin.sh](scripts/verify-plugin.sh) | Check that the runtime is available before starting Data Cloud work |
47
- | [scripts/diagnose-org.mjs](scripts/diagnose-org.mjs) | Classify org readiness by phase before mutating Data Cloud assets |
48
- | [references/feature-readiness.md](references/feature-readiness.md) | Map high-signal errors and feature gates to concrete next steps |
49
- | [assets/definitions/](assets/definitions/) | Generic JSON templates for repeatable Data Cloud definition files |
50
-
51
- ## Generic templates
52
-
53
- The family includes reusable starting points for:
54
- - data streams
55
- - DMOs
56
- - mappings
57
- - identity resolution rulesets
58
- - segments
59
- - search indexes
60
-
61
- These are intentionally generic and should be adapted to the target org.
62
-
63
- ## Quick start
64
-
65
- ### 1. Verify the runtime
66
-
67
- ```bash
68
- bash ./scripts/verify-plugin.sh
69
- # or with an org alias
70
- bash ./scripts/verify-plugin.sh myorg
71
- ```
72
-
73
- The helper treats `sf data360 doctor` as advisory and falls back to additional read-only smoke checks when an org is only partially provisioned.
74
-
75
- ### 2. Diagnose feature readiness before mutating
76
-
77
- ```bash
78
- node ./scripts/diagnose-org.mjs -o myorg --json
79
- # optional retrieve-plane probe, only when you know the table is real
80
- node ./scripts/diagnose-org.mjs -o myorg --phase retrieve --describe-table MyDMO__dlm --json
81
- ```
82
-
83
- Use the diagnose helper to distinguish between:
84
- - feature-gated modules
85
- - empty-but-enabled modules
86
- - query-plane issues
87
- - runtime/auth problems
88
-
89
- ### 3. Bootstrap the plugin if needed
90
-
91
- ```bash
92
- python3 ~/.claude/sf-skills-install.py --with-datacloud-runtime
93
- # or run the helper script directly
94
- bash ./scripts/bootstrap-plugin.sh
95
- ```
96
-
97
- ### 4. Start with read-only inspection
98
-
99
- ```bash
100
- sf data360 man
101
- sf data360 doctor -o myorg 2>/dev/null
102
- sf data360 dmo list -o myorg 2>/dev/null
103
- sf data360 segment list -o myorg 2>/dev/null
104
- sf data360 activation platforms -o myorg 2>/dev/null
105
- ```
106
-
107
- ## Common examples
108
-
109
- ```text
110
- "Set up a Customer 360 proof of concept in Data Cloud"
111
- "Troubleshoot why my unified profiles are not increasing"
112
- "I need to figure out whether this issue is in mappings, identity resolution, or segment SQL"
113
- "Show me how to inspect data spaces and data kits for this org"
114
- ```
115
-
116
- ## References
117
-
118
- - [SKILL.md](SKILL.md) - Orchestrator guidance
119
- - [references/plugin-setup.md](references/plugin-setup.md) - Plugin install and verification
120
- - [references/feature-readiness.md](references/feature-readiness.md) - Readiness classification and setup guidance
@@ -1,263 +0,0 @@
1
- ---
2
- name: data360-orchestrate
3
- description: "Salesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use agentforce-observe), standard CRM SOQL (use platform-soql-query), or Apex implementation (use platform-apex-generate)."
4
- metadata:
5
- cliTools:
6
- - tool: ["curl"]
7
- semver: ">=7.0.0"
8
- - tool: ["git"]
9
- semver: ">=2.0.0"
10
- - tool: ["node"]
11
- semver: ">=18.0.0"
12
- - tool: ["npx"]
13
- semver: ">=9.0.0"
14
- - tool: ["python3"]
15
- semver: ">=3.10.0"
16
- - tool: ["sf"]
17
- semver: ">=2.0.0"
18
- - tool: ["yarn"]
19
- semver: ">=1.22.0"
20
- relatedSkills:
21
- - "agentforce-observe"
22
- - "automation-flow-generate"
23
- - "data360-activate"
24
- - "data360-connect"
25
- - "data360-harmonize"
26
- - "data360-prepare"
27
- - "data360-query"
28
- - "data360-segment"
29
- - "platform-apex-generate"
30
- - "platform-custom-field-generate"
31
- - "platform-custom-object-generate"
32
- - "platform-data-manage"
33
- - "platform-metadata-deploy"
34
- - "platform-soql-query"
35
- version: "1.0"
36
- domains: ["Data 360"]
37
- ---
38
-
39
- # data360-orchestrate: Salesforce Data Cloud Orchestrator
40
-
41
- Use this skill when the user needs **product-level Data Cloud workflow guidance** rather than a single isolated command family: pipeline setup, cross-phase troubleshooting, data spaces, data kits, or deciding whether a task belongs in Connect, Prepare, Harmonize, Segment, Act, or Retrieve.
42
-
43
- This skill intentionally follows sf-skills house style while using the external `sf data360` command surface as the runtime. The plugin is **not vendored into this repo**.
44
-
45
- ---
46
-
47
- ## When This Skill Owns the Task
48
-
49
- Use `data360-orchestrate` when the work involves:
50
- - multi-phase Data Cloud setup or remediation
51
- - data spaces (`sf data360 data-space *`)
52
- - data kits (`sf data360 data-kit *`)
53
- - health checks (`sf data360 doctor`)
54
- - CRM-to-unified-profile pipeline design
55
- - deciding how to move from ingestion → harmonization → segmentation → activation
56
- - cross-phase troubleshooting where the root cause is not yet clear
57
-
58
- Delegate to a phase-specific skill when the user is focused on one area:
59
-
60
- | Phase | Use this skill | Typical scope |
61
- |---|---|---|
62
- | Connect | [data360-connect](../data360-connect/SKILL.md) | connections, connectors, source discovery |
63
- | Prepare | [data360-prepare](../data360-prepare/SKILL.md) | data streams, DLOs, transforms, DocAI |
64
- | Harmonize | [data360-harmonize](../data360-harmonize/SKILL.md) | DMOs, mappings, identity resolution, data graphs |
65
- | Segment | [data360-segment](../data360-segment/SKILL.md) | segments, calculated insights |
66
- | Act | [data360-activate](../data360-activate/SKILL.md) | activations, activation targets, data actions |
67
- | Retrieve | [data360-query](../data360-query/SKILL.md) | SQL, search indexes, vector search, async query |
68
-
69
- Delegate outside the family when the user is:
70
- - extracting Session Tracing / STDM telemetry → [agentforce-observe](../agentforce-observe/SKILL.md)
71
- - writing CRM SOQL only → [platform-soql-query](../platform-soql-query/SKILL.md)
72
- - loading CRM source data → [platform-data-manage](../platform-data-manage/SKILL.md)
73
- - creating missing CRM schema → [platform-custom-object-generate](../platform-custom-object-generate/SKILL.md) or [platform-custom-field-generate](../platform-custom-field-generate/SKILL.md)
74
- - implementing downstream Apex or Flow logic → [platform-apex-generate](../platform-apex-generate/SKILL.md), [automation-flow-generate](../automation-flow-generate/SKILL.md)
75
-
76
- ---
77
-
78
- ## Required Context to Gather First
79
-
80
- Ask for or infer:
81
- - target org alias
82
- - whether the plugin is already installed and linked
83
- - whether the user wants design guidance, read-only inspection, or live mutation
84
- - data sources involved: CRM objects, external databases, file ingestion, knowledge, etc.
85
- - desired outcome: unified profiles, segments, activations, vector search, analytics, or troubleshooting
86
- - whether the user is working in the default data space or a custom one
87
- - whether the org has already been classified with `scripts/diagnose-org.mjs`
88
- - which command family is failing today, if any
89
-
90
- If plugin availability or org readiness is uncertain, start with:
91
- - [references/plugin-setup.md](references/plugin-setup.md)
92
- - [references/feature-readiness.md](references/feature-readiness.md)
93
- - `scripts/verify-plugin.sh`
94
- - `scripts/diagnose-org.mjs`
95
- - `scripts/bootstrap-plugin.sh`
96
-
97
- ---
98
-
99
- ## Core Operating Rules
100
-
101
- - Use the external `sf data360` plugin runtime; do **not** reimplement or vendor the command layer.
102
- - Prefer the smallest phase-specific skill once the task is localized.
103
- - Run readiness classification before mutation-heavy work. Prefer `scripts/diagnose-org.mjs` over guessing from one failing command.
104
- - For `sf data360` commands, suppress linked-plugin warning noise with `2>/dev/null` unless the stderr output is needed for debugging.
105
- - Distinguish **Data Cloud SQL** from CRM SOQL.
106
- - Do **not** treat `sf data360 doctor` as a full-product readiness check; the current upstream command only checks the search-index surface.
107
- - Do **not** treat `query describe` as a universal tenant probe; only use it with a known DMO/DLO table after broader readiness is confirmed.
108
- - Preserve Data Cloud-specific API-version workarounds when they matter.
109
- - Prefer generic, reusable JSON definition files over org-specific workshop payloads.
110
-
111
- ---
112
-
113
- ## Recommended Workflow
114
-
115
- ### 1. Verify the runtime and auth
116
- Confirm:
117
- - `sf` is installed
118
- - the community Data Cloud plugin is linked
119
- - the target org is authenticated
120
-
121
- Recommended checks:
122
- ```bash
123
- sf data360 man
124
- sf org display -o <alias>
125
- bash ./scripts/verify-plugin.sh <alias>
126
- ```
127
-
128
- Treat `sf data360 doctor` as a broad health signal, not the sole gate. On partially provisioned orgs it can fail even when read-only command families like connectors, DMOs, or segments still work.
129
-
130
- ### 2. Classify readiness before changing anything
131
- Run the shared classifier first:
132
- ```bash
133
- node ./scripts/diagnose-org.mjs -o <org> --json
134
- ```
135
-
136
- Only use a query-plane probe after you know the table name is real:
137
- ```bash
138
- node ./scripts/diagnose-org.mjs -o <org> --phase retrieve --describe-table MyDMO__dlm --json
139
- ```
140
-
141
- Use the classifier to distinguish:
142
- - empty-but-enabled modules
143
- - feature-gated modules
144
- - query-plane issues
145
- - runtime/auth failures
146
-
147
- ### 3. Discover existing state with read-only commands
148
- Use targeted inspection after classification:
149
- ```bash
150
- sf data360 doctor -o <org> 2>/dev/null
151
- sf data360 data-space list -o <org> 2>/dev/null
152
- sf data360 data-stream list -o <org> 2>/dev/null
153
- sf data360 dmo list -o <org> 2>/dev/null
154
- sf data360 identity-resolution list -o <org> 2>/dev/null
155
- sf data360 segment list -o <org> 2>/dev/null
156
- sf data360 activation platforms -o <org> 2>/dev/null
157
- ```
158
-
159
- ### 4. Localize the phase
160
- Route the task:
161
- - source/connector issue → Connect
162
- - ingestion/DLO/stream issue → Prepare
163
- - mapping/IR/unified profile issue → Harmonize
164
- - audience or insight issue → Segment
165
- - downstream push issue → Act
166
- - SQL/search/index issue → Retrieve
167
-
168
- ### 5. Choose deterministic artifacts when possible
169
- Prefer JSON definition files and repeatable scripts over one-off manual steps. Generic templates live in:
170
- - `assets/definitions/data-stream.template.json`
171
- - `assets/definitions/dmo.template.json`
172
- - `assets/definitions/mapping.template.json`
173
- - `assets/definitions/relationship.template.json`
174
- - `assets/definitions/identity-resolution.template.json`
175
- - `assets/definitions/data-graph.template.json`
176
- - `assets/definitions/calculated-insight.template.json`
177
- - `assets/definitions/segment.template.json`
178
- - `assets/definitions/activation-target.template.json`
179
- - `assets/definitions/activation.template.json`
180
- - `assets/definitions/data-action-target.template.json`
181
- - `assets/definitions/data-action.template.json`
182
- - `assets/definitions/search-index.template.json`
183
-
184
- ### 6. Verify after each phase
185
- Typical verification:
186
- - stream/DLO exists
187
- - DMO/mapping exists
188
- - identity resolution run completed
189
- - unified records or segment counts look correct
190
- - activation/search index status is healthy
191
-
192
- ---
193
-
194
- ## High-Signal Gotchas
195
-
196
- - `connection list` requires `--connector-type`.
197
- - `dmo list --all` is useful when you need the full catalog, but first-page `dmo list` is often enough for readiness checks and much faster.
198
- - Segment creation may need `--api-version 64.0`.
199
- - `segment members` returns opaque IDs; use SQL joins for human-readable details.
200
- - `sf data360 doctor` can fail on partially provisioned orgs even when some read-only commands still work; fall back to targeted smoke checks.
201
- - `query describe` errors such as `Couldn't find CDP tenant ID` or `DataModelEntity ... not found` are query-plane clues, not automatic proof that the whole product is disabled.
202
- - Many long-running jobs are asynchronous in practice even when the command returns quickly.
203
- - Some Data Cloud operations still require UI setup outside the CLI runtime.
204
-
205
- ---
206
-
207
- ## Output Format
208
-
209
- When finishing, report in this order:
210
- 1. **Task classification**
211
- 2. **Runtime status**
212
- 3. **Readiness classification**
213
- 4. **Phase(s) involved**
214
- 5. **Commands or artifacts used**
215
- 6. **Verification result**
216
- 7. **Next recommended step**
217
-
218
- Suggested shape:
219
-
220
- ```text
221
- Data Cloud task: <setup / inspect / troubleshoot / migrate>
222
- Runtime: <plugin ready / missing / partially verified>
223
- Readiness: <ready / ready_empty / partial / feature_gated / blocked>
224
- Phases: <connect / prepare / harmonize / segment / act / retrieve>
225
- Artifacts: <json files, commands, scripts>
226
- Verification: <passed / partial / blocked>
227
- Next step: <next phase, setup guidance, or cross-skill handoff>
228
- ```
229
-
230
- ---
231
-
232
- ## Cross-Skill Integration
233
-
234
- | Need | Delegate to | Reason |
235
- |---|---|---|
236
- | load or clean CRM source data | [platform-data-manage](../platform-data-manage/SKILL.md) | seed or fix source records before ingestion |
237
- | create missing CRM schema | [platform-custom-object-generate](../platform-custom-object-generate/SKILL.md), [platform-custom-field-generate](../platform-custom-field-generate/SKILL.md) | Data Cloud expects existing objects/fields |
238
- | deploy permissions or bundles | [platform-metadata-deploy](../platform-metadata-deploy/SKILL.md) | environment preparation |
239
- | write Apex against Data Cloud outputs | [platform-apex-generate](../platform-apex-generate/SKILL.md) | code implementation |
240
- | Flow automation after segmentation/activation | [automation-flow-generate](../automation-flow-generate/SKILL.md) | declarative orchestration |
241
- | session tracing / STDM / parquet analysis | [agentforce-observe](../agentforce-observe/SKILL.md) | different Data Cloud use case |
242
-
243
- ---
244
-
245
- ## Reference Map
246
-
247
- ### Start here
248
- - [references/plugin-setup.md](references/plugin-setup.md)
249
- - [references/feature-readiness.md](references/feature-readiness.md)
250
-
251
- ### Phase skills
252
- - [data360-connect](../data360-connect/SKILL.md)
253
- - [data360-prepare](../data360-prepare/SKILL.md)
254
- - [data360-harmonize](../data360-harmonize/SKILL.md)
255
- - [data360-segment](../data360-segment/SKILL.md)
256
- - [data360-activate](../data360-activate/SKILL.md)
257
- - [data360-query](../data360-query/SKILL.md)
258
-
259
- ### Deterministic helpers
260
- - [scripts/bootstrap-plugin.sh](scripts/bootstrap-plugin.sh)
261
- - [scripts/verify-plugin.sh](scripts/verify-plugin.sh)
262
- - [scripts/diagnose-org.mjs](scripts/diagnose-org.mjs)
263
- - [assets/definitions/](assets/definitions/)
@@ -1,5 +0,0 @@
1
- {
2
- "developerName": "CRM_Target",
3
- "displayName": "CRM Target",
4
- "description": "Example activation target definition for a downstream destination"
5
- }
@@ -1,7 +0,0 @@
1
- {
2
- "developerName": "High_Value_Customers_Activation",
3
- "displayName": "High Value Customers Activation",
4
- "description": "Example activation linking a published segment to a destination target",
5
- "segmentName": "High_Value_Customers",
6
- "activationTargetName": "CRM_Target"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "developerName": "Lifetime_Value",
3
- "displayName": "Lifetime Value",
4
- "description": "Example calculated insight over an order-style DMO",
5
- "definitionType": "CALCULATED_METRIC",
6
- "expression": "SELECT ssot__IndividualId__c, SUM(ssot__TotalAmount__c) AS total_spend FROM ssot__SalesOrder__dlm GROUP BY ssot__IndividualId__c"
7
- }
@@ -1,5 +0,0 @@
1
- {
2
- "developerName": "Webhook_Target",
3
- "displayName": "Webhook Target",
4
- "description": "Example data action target for downstream delivery"
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "developerName": "Notify_High_Value_Customer_System",
3
- "displayName": "Notify High Value Customer System",
4
- "description": "Example data action definition that uses a downstream data action target"
5
- }
@@ -1,21 +0,0 @@
1
- {
2
- "developerName": "Customer_360_Graph",
3
- "displayName": "Customer 360 Graph",
4
- "description": "Example Data Graph rooted on a unified customer entity",
5
- "sourceObject": {
6
- "name": "UnifiedssotIndividualMain__dlm",
7
- "type": "derived",
8
- "fields": [
9
- {
10
- "name": "ssot__Id__c"
11
- },
12
- {
13
- "name": "ssot__FirstName__c"
14
- },
15
- {
16
- "name": "ssot__LastName__c"
17
- }
18
- ],
19
- "relatedObjects": []
20
- }
21
- }
@@ -1,55 +0,0 @@
1
- {
2
- "name": "Customer_Stream",
3
- "label": "Customer Stream",
4
- "datasource": "SalesforceDotCom_Home",
5
- "datastreamType": "CONNECTORSFRAMEWORK",
6
- "connectorInfo": {
7
- "connectorType": "SalesforceDotCom",
8
- "connectorDetails": {
9
- "name": "SalesforceDotCom_Home",
10
- "sourceObject": "Custom_Object__c"
11
- }
12
- },
13
- "dataLakeObjectInfo": {
14
- "label": "Customer",
15
- "name": "Customer__dll",
16
- "category": "Profile",
17
- "dataspaceInfo": [
18
- {
19
- "name": "Default"
20
- }
21
- ],
22
- "dataLakeFieldInputRepresentations": [
23
- {
24
- "name": "Id",
25
- "label": "Record ID",
26
- "dataType": "Text",
27
- "isPrimaryKey": true
28
- },
29
- {
30
- "name": "External_Id_c",
31
- "label": "External ID",
32
- "dataType": "Text",
33
- "isPrimaryKey": false
34
- }
35
- ]
36
- },
37
- "sourceFields": [
38
- {
39
- "name": "Id",
40
- "dataType": "Text"
41
- },
42
- {
43
- "name": "External_Id__c",
44
- "dataType": "Text"
45
- }
46
- ],
47
- "mappings": [],
48
- "refreshConfig": {
49
- "isAccelerationEnabled": true,
50
- "refreshMode": "UPSERT",
51
- "frequency": {
52
- "frequencyType": "HOURLY"
53
- }
54
- }
55
- }
@@ -1,17 +0,0 @@
1
- {
2
- "developerName": "Customer_Profile__dlm",
3
- "label": "Customer Profile",
4
- "category": "Profile",
5
- "fields": [
6
- {
7
- "name": "External_Id_c__c",
8
- "label": "External ID",
9
- "type": "Text"
10
- },
11
- {
12
- "name": "Preferred_Tier_c__c",
13
- "label": "Preferred Tier",
14
- "type": "Text"
15
- }
16
- ]
17
- }
@@ -1,30 +0,0 @@
1
- {
2
- "label": "Main",
3
- "description": "Generic identity resolution ruleset using customer identifiers and contact points",
4
- "configurationType": "individual",
5
- "rulesetId": "main",
6
- "doesRunAutomatically": false,
7
- "matchRules": [
8
- {
9
- "label": "Exact Email",
10
- "criteria": [
11
- {
12
- "entityName": "ssot__ContactPointEmail__dlm",
13
- "fieldName": "ssot__EmailAddress__c",
14
- "matchMethodType": "exactnormalized",
15
- "caseSensitiveMatch": false,
16
- "shouldMatchOnBlank": false
17
- }
18
- ]
19
- }
20
- ],
21
- "reconciliationRules": [
22
- {
23
- "entityName": "ssot__Individual__dlm",
24
- "ruleType": "lastupdated",
25
- "shouldIgnoreEmptyValue": true,
26
- "sources": [],
27
- "fields": []
28
- }
29
- ]
30
- }